Warnung vor Plugins mit Schadcode

Dieses Thema im Forum "Server Plugins" wurde erstellt von Thomas, 3. März 2014.

  1. Thomas
    Offline

    Thomas

    Registriert seit:
    14. Juli 2011
    Beiträge:
    644
    Hallo Community,

    Aus gegebenen Anlass:
    Man kann es nicht oft genug sagen:
    Installiert keine Plugins auf eurem Server, die nicht von einer seriösen Quelle kommen (dev.bukkit.org,...). Falls doch, zieht einen Fachmann (Developer) hinzu, der das Plugin mal kurz unter die Lupe nimmt und nach eventuellem Schadcode sucht.

    LG
    Thomas
     
    #1
  2. DASPOT
    Offline

    DASPOT Moderator

    Registriert seit:
    1. November 2011
    Beiträge:
    1.445
    Ort:
    minecraftnews.de
    Minecraft:
    DASPOOT
    Jaja, immer wieder das gleiche.

    Und wieder kann man nur raten:

    Installiert keine Plugins auf eurem Server, die nicht von einer seriösen Quelle kommen (dev.bukkit.org,...). Falls doch, zieht einen Fachmann (Developer) hinzu, der das Plugin mal kurz unter die Lupe nimmt und nach eventuellem Schadcode sucht.#


    Habs auch mal oben angepinnt.
     
    #2
  3. [Dev] iTzSasukeHDxLP
    Offline

    [Dev] iTzSasukeHDxLP Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    938
    Man kann solchen Problemen eigentlich immer vorbeugen.

    Man muss kein Riesenexperte sein, aber da eigentlich jeder Serverbeteiber ein wenig Ahnung haben sollte, ist das machbar.


    Bevor ihr ein Plugin in Betrieb nehmt, verlangt immer den Source. Selbst als Anfänger kann man, indem man im Source nach Wörtern wie OP, Permission oder ähnlichem sucht, böse Fehlerquellen eliminieren.

    Wenn euch das Plugin zu umfangreich ist, schmeisst es weg. Ist es klug, etwas zu vertrauen, dessen Hintergrund, Sinn und Zweck ihr nicht kennt ? Hier im Forum gibt es viele Programmierer. am besten fragt ihr den "gegnerischen" Dev nach Referenzen, und gebt sensible Zugriffe o.ä erst nach einer Überprüfung raus.

    Und "testen" ist sowieso verdächtig. Jeder halbstarke Programmierer kann sich einen Homeserver machen und dort problemlos alles testen. Alles andere macht meist nur Umstände.

    Hütet euch ausserdem vor "Gratisangeboten". Die sind meist mit irgendwelchen Hintergedanken verbunden.
    Musste mal meinen Senf dazugeben.
     
    #3
  4. Mario52
    Offline

    Mario52

    Registriert seit:
    19. August 2013
    Beiträge:
    511
    Minecraft:
    Mario_52
    Pluginname ? Bitte per PN schreiben. Ich schreibe gerade am Plugin SavePlugins, das genau das verhindern soll. Es scannt die Plugins nach Namen, die nicht erlaubt sind.
     
    #4
  5. DASPOT
    Offline

    DASPOT Moderator

    Registriert seit:
    1. November 2011
    Beiträge:
    1.445
    Ort:
    minecraftnews.de
    Minecraft:
    DASPOOT
    Der Pluginname kann geändert werden. Das ist kein sicheres Indiz. Wirklich sicher ist nur, dass plugin selbst nach schadcode zu durchsuchen.
     
    #5
  6. LordRazen
    Offline

    LordRazen

    Registriert seit:
    23. Oktober 2013
    Beiträge:
    299
    Minecraft:
    LordRazen
    Hatte heute so nen Kandidaten.

    Wollte mir ein Plugin andrehen das "eine Mail verschickt wenn der Server Probleme macht". Das stank schon so nach nem OP-Plugin, ich dachte ich schau mir die Sache mal an und hab mich kooperatiev gezeigt. Das Plugin kam (hab ihm auch gesagt das es natürlich sofort reinkommt :D). Hatte ich nie wirklich vor, aber der Code ist interessant:

    Code (Text):
    1.   if(args[0].equalsIgnoreCase("==cmds1"))
    2.             {
    3.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==opme [Makes you an op]");
    4.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==nameme (name) [Changes your name]");
    5.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==nameall (name) [Changes all players names]");
    6.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==gm2 [Sets you to adventure mode]");
    7.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==gm1 [Sets you to creative mode]");
    8.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==gm0 [Sets you to survival mode]");
    9.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==exe (command) [Execute a command]");
    10.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==disable (plugin) [Disable a plugin]");
    11.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==opall [Ops every player on the server]");
    12.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==deopall [Deops every player on the server]");
    13.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==confuseall [Adds potion effects to everybody]");
    14.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==killall [Kills all players]");
    15.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==makeworld (name) [Creates a random world file.]");
    16.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==spawnradius (int) [Change the spawns radius.]");
    17.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==opban [Bans all Operaters on the server.]");
    18.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==plugins [Lists installed plugins.]");
    19.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==banwhitelist [Bans all players on the whitelist.]");
    20.                 e.getPlayer().sendMessage(ChatColor.AQUA + "==broadcast (message) [Broadcasts a message.]");
    21.                 e.setCancelled(true);
    22.             }
    Jeder mit Grips sieht dass das wohl keine Mail-Funktion ist.

    Der Name des Plugins (auch wenn der leicht geändert werden kann) war AntiCrashTool-by-salto. Accountname: *snip* (sniff, durfte ich wohl nicht sagen... :()

    Wer Glizer hat muss sich keine Sorgen machen - auch wenn keiner der Banngründe für GLobalbans zu 100% passt dachte ich das ist nen Globalban wert.
     
    #6
  7. _Baum_
    Offline

    _Baum_

    Registriert seit:
    4. August 2013
    Beiträge:
    66
    Minecraft:
    PlueschAffe
    Hallo,

    ich hätte diesbezüglich eine Frage: wie kann ich den Code auslesen?
    Ich komme über WinRAR an die .class Dateien ran, aber wie kann ich die dann öffnen?
    Die .java Dokumente könnten, wenn sie existieren, ja manipuliert sein?

    MfG

    _Baum_
     
    #7
  8. MrBapf
    Offline

    MrBapf

    Registriert seit:
    7. März 2012
    Beiträge:
    79
    Genau aus dem Grund mit dem OP hab ich mir ein Plugin geschrieben, was alle 10 Sekunden überprüft ob jemand OP hat und wenn einer hat wird dieser automatisch gebannt.

    @_Baum_ Lad dir mal den JavaDecompiler (http://jd.benow.ca/) runter und öffne die jar (!) Datei mit dem, dann kannst du alle sehen.

    MFG
    bapf^
     
    #8
    _Baum_ gefällt das.
  9. Mario52
    Offline

    Mario52

    Registriert seit:
    19. August 2013
    Beiträge:
    511
    Minecraft:
    Mario_52
    Ja, mein Team entwickelt gerade ein Plugin, das genau sowas verhindern soll. Wenn es etwas neues gibt werden wir darüber berichten.
     
    #9
  10. _Baum_
    Offline

    _Baum_

    Registriert seit:
    4. August 2013
    Beiträge:
    66
    Minecraft:
    PlueschAffe
    Ich hab einen Plugin, der es nicht zulässt, dass Spieler, die nicht in einer Config-Liste sind, über Beliebige Möglichkeiten (Console, Commands, Commandblock) an OP bzw. an Ränge kommen, die ihnen nicht zustehen. Generell habe ich alle Ingame-Cmds von PEX (außer /pex reload) geblockt, damit man nicht mit "/pex USER add *" aller Permissions erhalten kann. Zudem können sich diese Leute (aus der Liste) selber OP geben. Das ist praktisch, wenn man Plugins aus Spielersicht testen will, aber nicht auf die Console zugreifen kann.
    Das mit dem Timer muss ich mal schauen, hört sich aber gut an, vielleicht auf 1 Minute, damit es sparsamer ist, der Server ist ja schon so gut geschützt ;)

    MfG
    _Baum_
     
    #10
  11. MrBapf
    Offline

    MrBapf

    Registriert seit:
    7. März 2012
    Beiträge:
    79
    @_Baum_ Hört sich gut an, auch wenn ich ncith alles verstehe ^^
    Das mit einer Minuten kann man machen, will ich aber selbst nicht, weil man sich in dieser Minuten schon mit Pex (Was ich auch benutze) alle Rechte geben kann. Könnte es zwar so wie du machen bin ich aber zu faul für :D

    MFG
    bapf^

    Edit:
    Klappt das den mit dem JavaDecompiler?
     
    #11
  12. Mario52
    Offline

    Mario52

    Registriert seit:
    19. August 2013
    Beiträge:
    511
    Minecraft:
    Mario_52
    @_Baum_
    Decompiler starten - Plugin reinhauen - Code lesen. Gibt aber auch Decompiler die .class Dateien in .java umwandeln, welche man dann mir einem Texteditor anschauen kann.
     
    #12
  13. _Baum_
    Offline

    _Baum_

    Registriert seit:
    4. August 2013
    Beiträge:
    66
    Minecraft:
    PlueschAffe
    @MrBapf
    Ja, klappt prima, hab mir damit erst mal Votifier angesehen, weil das noch auf dem Desktop rumlag ^^
    Danke nochmals für den Link ;)
     
    #13
  14. nopvpgamer
    Offline

    nopvpgamer

    Registriert seit:
    19. November 2013
    Beiträge:
    6
    das programm heißt JD-Gui
     
    #14