Die Köpfe der Hydra. Malware für Netzwerkgeräte

Einführung

Heutzutage sind Netzwerkgeräte wie Router, Zugangspunkte und DSL-Modems ein fester Bestandteil in Netzwerken von Heimanwendern oder Kleinunternehmen. Meistens werden diese Geräte von einem Internetprovider zur Verfügung gestellt oder von Anwendern gekauft, die ihre bestehende IT-Infrastruktur erweitern wollen. Gewöhnlich werden die Netzwerkgeräte von Leuten verwaltet, die über keine besonderen technischen Kenntnisse verfügen. Allzu oft schlecht konfiguriert und unsicher sind diese Komponenten bei netzwerkbasierten Angriffen ein leichtes Ziel, über das Cyberkriminelle schnell und sehr einfach die Kontrolle über ein Netzwerk erlangen können. Es mag erstaunlich klingen, aber diese scheinbar harmlosen Geräte geben auch ein perfektes Versteck für Online-Schädlinge ab.

Die wichtigsten Sicherheitsaspekte

Das schwächste Glied in jeder IT-Sicherheitskette ist im Grunde der Nutzer, wobei diese Regel sowohl für Netzwerk- als auch Netzwerkgeräte-Bedrohungen gilt. Natürlich kann ein hochqualifizierter und kompetenter Administrator fast alle Netzwerke absichern. Fehlen aber die notwendigen Kenntnisse und Qualifikationen, kann er die Nutzer schnell erheblichen Risiken aussetzen. Große Unternehmen mit einer hohen Anzahl an Nutzern verfügen generell über eine kostspielige, professionelle Netzwerk-Ausrüstung und beschäftigen qualifizierte, erfahrene Fachleute aus diesem Bereich. Im Gegensatz dazu kann man von kleinen Unternehmen mit zehn bis 15 Arbeitsplätzen kaum erwarten, dass sie teure Hardware anschaffen und einen Netzwerkspezialisten einstellen. Noch weniger ist davon auszugehen, dass sich Personen, die einen Router oder ein Modem bei sich zuhause haben, in allen Einzelheiten des Netzwerk-Managements auskennen – das hieße, von jedem einzelnen Computer-Nutzer anzunehmen, er sei ein IT-Experte. Heimanwender gehen im Allgemeinen davon aus, dass alles so funktioniert, wie es soll, und verlassen sich dabei auf die Standard-Einstellungen eines Geräts, ohne einen Blick in die meist komplexen technischen Handbücher zu werfen. Daher sollten sich Netzwerkprovider und Hardware-Entwickler ihrer großen Verantwortung, was die Netzwerksicherheit der von ihnen verkauften Geräte betrifft, bewusst sein.

Kleine, anwenderfreundliche Netzwerkgeräte, die sich unkompliziert in das Netzwerk einbinden lassen, werden immer beliebter. Aber wie sicher sind ihre Standard-Einstellungen eigentlich? Können wir sie benutzen, ohne ihre Standard-Konfiguration zu ändern und uns trotzdem sicher fühlen? In den meisten Fällen lautet die Antwort nein. Nehmen wir an, Sie ändern das Standard-Kennwort Ihres neu gekauften Routers nicht. Das kann ein signifikantes Risiko darstellen, da Standard-Kennwörter in der Regel weitgehend bekannt sind, und selbst wenn nicht, sind sie ziemlich leicht zu erraten oder zu knacken. Dies ist die größte Schwachstelle jeder kleineren Netzwerkinstallation, aber leider nicht die einzige. Manchmal aktiviert der Hersteller standardmäßig eine Remote-Verwaltungsfunktion oder legt sogar ein Verwaltungskonto im Hintergrund an, das für den technischen Support gedacht ist! Weiterhin sind die meisten modernen Heimrouter UPnP-fähig, das heißt, sie erlauben Anwendungen in bestimmten Fällen, die Router-Einstellungen ohne jegliche Authentifizierung zu ändern. Und das reicht schon aus, um die Geräte von technisch nicht bewanderten Nutzern und unachtsamen Spezialisten abzuschießen.

Leider ist es auch für den aufmerksamsten Nutzer unmöglich, seine IT-Ausrüstung hundertprozentig abzusichern. Das liegt an den zahlreichen Sicherheitslücken in der Firmware der Geräte, vor allem in ihrer Webschnittstelle, was sie besonders anfällig für Angriffe zur Umgehung der Authentifizierung sowie für XSS- und CSRF-Attacken macht. Dieses Problem beschränkt sich keineswegs auf die IT-Ausrüstung von Heimanwendern oder Kleinunternehmen, denn es sind auch Fälle von Exploits bekannt, deren Zielobjekte professionelle Netzwerkinstallationen sind, hergestellt von mehreren großen Unternehmen. Zudem scheinen weder die Nutzer noch die Entwickler die Bedeutung der Sicherheitsaspekte vollständig erkannt zu haben und widmen ihnen nicht die nötige Aufmerksamkeit. Im besten Fall spielen sie Updates für Netzwerkgeräte nur mit großer Verzögerung auf, selbst wenn es sich dabei um leicht zu behebende Firmware-Bugs handelt. Im schlechtesten Fall kümmern sich die Nutzer nicht darum oder wissen schlichtweg nicht, wie sie diese Geräte-Updates installieren sollen. Treten bei der Implementierung von Netzwerkdiensten Fehler auf, ist es nicht möglich, diese ohne wesentliche Änderungen zu beseitigen, so dass die meisten Defekte über Jahre hinweg bestehen bleiben.

Angriffe: Ursachen und Folgen

Fasst man das vorhergehende Kapitel zusammen, so lassen sich bei Netzwerkkomponenten die folgenden spezifischen Probleme ausmachen:

  • Schwache Standard-Kennwörter, keine Verpflichtung zur Passwortänderung
  • Unsichere Standard-Konfiguration
  • Sicherheitslücken in Firmware und Fehler bei der Implementierung von Diensten
  • Mangelndes Problembewusstsein bei Nutzern und Entwicklern, Verharmlosung der Probleme

Jedes einzelne Problem bewirkt, dass ein Router oder Modem zur leichten Beute für Cyberkriminelle wird. Aber warum sollte jemand überhaupt ein Netzwerkgerät angreifen wollen? Die Motivation ist stets dieselbe: Geld. Permanente Netzwerkkontrolle, Datenklau, Umleitung von Nutzern auf betrügerische Webseiten – mit einem Zugriff auf den Router sind solche Manipulationen ohne Weiteres möglich. Außerdem bieten diese Geräte ein perfektes Refugium für Schädlinge, die angeschlossene Computer weiter infizieren und ein riesiges Botnetz aus infizierten Geräten aufbauen können.

Vor dem Hintergrund dieser gerade beschriebenen Risiken möchte ich die möglichen Folgen nicht autorisierter Routerzugriffe noch einmal in Erinnerung rufen:

  • Abfangen von Netzwerk-Traffic
  • Die Fähigkeit, VoIP-Konversationen abzuhören
  • Diebstahl von WEP/WPA-Schlüsseln
  • Möglichkeit, die Konfiguration eines Geräts zu ändern
    • Kennwörter ändern / zurücksetzen
    • Interne Netzwerke mit WAN in Kontakt bringen
    • Gefahr von Open Backdoors (Port-Weiterleitung)
    • Änderung der DNS-Einstellungen (Drive-by-Pharming)

Der überwiegende Teil der oben beschriebenen Gefahren hat etwas mit gezielten Angriffen zu tun, allerdings ist kaum bekannt, dass sie auch häufig mit Malware-Schädlingen in Zusammenhang stehen. Gegenwärtig sieht es so aus, dass für Cyberkriminelle die Änderung von DNS-Einstellungen sowie der Aufbau von DDoS-fähigen Botnetzen am interessantesten sind. Der Spielraum für weitere Aktivitäten ist aber noch weitaus größer, wie zum Beispiel die Filterung wertvoller Daten aus abgefangenem Datenverkehr, das Verbergen von PC-Schadsoftware im RAM eines Routers oder die Verbreitung von Router-Ransomware. Nach oben sind keine Grenzen gesetzt, lautet das Credo der Cyberkriminellen.

Hüten Sie Ihre DNS!

Das Verfahren des URL-zu-IP-Mapping ist entscheidend für die Sicherheit der Anwender, die sich im Internet bewegen. Werden diese Einstellungen in böswilliger Absicht geändert, werden bekannte und vertrauenswürdige URLs möglicherweise mit gefälschten IP-Adressen verbunden, so dass Anwender Gefahr laufen, auf Phishing-, Exploit- und anderen betrügerischen Webseiten zu landen. Diese Umleitung erfolgt ohne Wissen des Anwenders: Er tippt lediglich die korrekte URL-Adresse in den Browser ein und wartet darauf, die gewünschten Inhalte zu sehen. Es braucht nur eine einzige arglistige Änderung, wobei es nicht besonders schwierig ist, sich das Ausmaß der verheerenden Schäden aufgrund eines korrumpierten DNS-Servers vorzustellen.

Das Auflösen einer URL in eine IP-Adresse ist allgemein unter dem Oberbegriff Pharming bekannt. Die Ersten, die diese Angriffsmethode nutzten, waren Trojaner, mit denen sich die Windows-Host-Datei ändern ließ. Der zweite Schritt in der Weiterentwicklung dieser Methode war die Änderung von DNS-Adressen in der Windows-Registry. Ein technisch fortgeschrittener Schädling, der sich diese Angriffsmethode zunutze machte, war 2007 der Trojaner Zlob/DNSChanger. Neben der Modifizierung von Registry-Einstellungen prüft dieser Schädling, ob der Router mit einem infizierten Computer verbunden ist, und versucht gegebenenfalls, das Kennwort mit einem Brute-Force-Angriff zu knacken. Verschafft er sich Zugriff, kann er dann dessen DNS-Server ändern.

Wie kann sich ein Anwender vor diesen Attacken schützen? In diesem Fall ist die Antwort ziemlich einfach:

  • Die Sicherheitssoftware sollte den Computer vor einer Malware-Infektion schützen und auf diese Weise Angriffe auf den Router verhindern
  • Für die Router-Management-Schnittstelle sollte ein starkes, einzigartiges Passwort verwendet werden

Ungleich komplizierter wird die Angelegenheit, wenn der Angriff ohne ein auf dem Anwender-Computer installiertes Schadprogramm erfolgt. Eine derartige Situation gab es Anfang 2011 bei einem gezielten Angriff gegen ein ISP-Unternehmen. Zahlreiche Kundenmodems wurden durch Änderung ihrer DNS-Einstellungen korrumpiert – wahrscheinlich über ein verstecktes Administrationskonto, das für den technischen Support auf jedem Gerät vorhanden war. Der Angriff erfolgte mit Sicherheit unter Verwendung einiger automatisierter Komponenten, die nach Ausführung der DNS-Modifizierungen wieder von den Geräten gelöscht wurden. In solch einem Fall ist der Nutzer absolut machtlos. Der Internetprovider trägt die Verantwortung, die Sicherheit von Modems und Routern vor Abgabe an seine Kunden sicherzustellen, insbesondere in Bezug auf die Zugangskennwörter und den Remote Access. Die Einwahl aus einem WAN sollte standardmäßig untersagt sein, und jede IP-Adresse, mit der sich eine Remote-Verbindung herstellen lässt, sollte genauestens spezifiziert werden.

Ausnutzung von Sicherheitslücken

CSRF und Drive-by-Pharming

Eine Cross-Site Request Forgery (CSRF/XSRF) ist eine webbasierte Angriffsmethode, bei der sensible Transaktionen im Namen eines angemeldeten Nutzers ohne dessen Wissen ausgeführt werden. Möglich ist dies, da eine Anfrage vom Browser eines authentifizierten Nutzers von der betreffenden Webseite nicht verifiziert, sondern direkt ausgeführt wird. Tappt der Nutzer in die Falle und ruft manipulierte Webseiten auf, die in ihrem Code derartige Anfragen in HTML- oder JavaScript-Form enthalten, beginnt der betroffene Browser, Transaktionen auszuführen, die der Nutzer weder gestartet noch beabsichtigt hat. Dazu gehört es zum Beispiel, den Anwender aus dem Portal XYZ auszuloggen, Nachrichten an das Forum XYZ zu senden oder Einstellungen zu ändern. Drive-by-Pharming bezeichnet ganz einfach eine gegen Router gerichtete CSRF-Attacke, um die DNS-Einstellungen zu ändern.

Diese Technik wurde 2006 in der Machbarkeitsstudie von Forschern der Indiana University beschrieben. Die erste Drive-by-Pharming-Attacke „in the wild” ereignete sich ein Jahr später in Mexiko und richtete sich gegen die CSRF-Schwachstelle von 2Wire-Router-Produkten. Massenweise wurde an Millionen von Nutzern eine mit einem Exploit versehene E-Mail versandt, deren Ziel es in erster Linie war, die Zugangsdaten von Online-Bankkonten abzugreifen. Das Exploit bestand aus einer Anfrage an die Webschnittstelle des Routers, die IP-Zuweisung der Webadresse www.banamex.com in eine betrügerische Adresse zu ändern. Sobald ein Anwender seine Online-Banking-Seite aufgerufen hatte, wurde er ganz offen auf eine Phishing-Seite umgeleitet. Diese war der Original-Webseite natürlich zum Verwechseln ähnlich, mit Ausnahme des zusätzlichen Felds Netkey. Überflüssig zu erwähnen, dass es sich bei NetKey um einen zufällig generierten Wert handelt, der für die Autorisierung von Online-Transaktionen in dieser Bank verwendet wird.

Abb. 1: CSRF-Anfrage


Abb. 2: Phishing-Seite (Quelle: blog.hispasec.com)


In den darauffolgenden Monaten wurden ähnliche Attacken beobachtet, wobei jedoch nicht jede E-Mail als arglistig einzustufen war: Manchmal erfolgte ein CSRF-Angriff, direkt nachdem ein Anwender den betrügerischen Link angeklickt hatte und zu der betrügerischen Website umgeleitet worden war.

Da diese Sicherheitslücke eher in den Bereich der Implementierung einzuordnen ist, hat der Anwender solange keine Chance, sie zu schließen, bis ein Firmware-Update bereitgestellt wird. Seitens der Hersteller gibt es relativ wenige Möglichkeiten zur Lösung des Problems. Eine davon besteht in der Verwendung eines einzigartigen Tokens, das zusammen mit einer Anfrage als Hidden Form Value gesendet wird.

UPnP: praktisch, aber sehr gefährlich

Die oben beschriebene Angriffsmethode führte nur dann zum Erfolg, wenn kein Router-Kennwort gesetzt oder der Anwender zum Zeitpunkt des Angriffs in der Webschnittstelle eingeloggt war. Im Kern bedeutet dies, dass für Leute, die starke und einzigartige Kennwörter eingegeben haben, das Risiko eines Angriffs geringer ist. Aber was ist, wenn eine Methode entwickelt wurde, mit der sich die Router-Einstellungen ohne jegliche Authentifizierung ändern lassen?

Universal Plug and Play (UPnP) basiert auf einer Reihe von Protokollen zur Vereinfachung des Zusammenspiels von Netzwerkkomponenten wie PCs, Druckern, Smartphones, Routern und Modems oder Zugangspunkten. UPnP legt Regeln fest, anhand derer diese Geräte einander automatisch erkennen und eine Kommunikation aufbauen. Einmal an das Netzwerk angeschlossen ist für ein UPnP-fähiges Gerät kein Eingriff von Seiten des Nutzers mehr erforderlich, um eine funktionierende Konfiguration einzurichten. Eine wunderbare Lösung für jeden technisch nicht erfahrenen Anwender, aber wie bei fast allen als „benutzerfreundlich” deklarierten Dingen ist dies unter dem Sicherheitsaspekt eher kritisch zu sehen. Der Hinweis darauf, dass UPnP überhaupt keine Authentifizierungsmethode anbietet und daher keinerlei Zugangsinformationen für die Durchführung administrativer Tätigkeiten wie die Änderung grundlegender Einstellungen des Geräts erforderlich sind, ist hier wohl mehr als ausreichend. Überdies ist UPnP bei den meisten heute erhältlichen Routern und Modems standardmäßig aktiviert.

Wie funktioniert UPnP im Detail?

  • Jedes Gerät, das an das Netzwerk angeschlossen wird, erhält eine IP-Adresse entweder über DHCP oder durch Selbstzuweisung (Local-Link-Adresse)
  • Ein neu angeschlossenes Gerät benutzt das Simple Service Discovery Protocol (SSDP), um die von ihm angebotenen Dienste zusammen mit der URL, über die diese Dienste verfügbar sind, zu melden
  • Der UPnP-Kontrollpunkt holt sich die Beschreibung des Geräts von dieser URL (im XML-Format)
  • Nun kann der Kontrollpunkt gültige Anfragen für die Dienste dieses Geräts schicken. Diese Mitteilungen nutzen das Simple Object Access Protocol (SOAP), das hauptsächlich auf XML-Format sowie RPC- und HTTP-Protokollen basiert

Über die XmlHTTPRequest-API in JavaScript oder die Flashfunktion navigateToURL können speziell konstruierte SOAP-Mitteilungen von einer betrügerischen Webseite auf das Gerät gelangen. Während Ersteres nur innerhalb des Netzwerks verwendet werden kann – sofern keine Kombination mit einem Remote-Access-Exploit vorhanden ist –, ermöglicht Letzteres bei Bedarf eine Remote-Ausführung.

Da es sich hierbei um ein ernstes Implementierungsproblem betreffend UPnP und – in einem geringeren Maße – den Aufbau des Flash-Formats handelt, haben Nutzer oder Entwickler kaum eine Möglichkeit, den Fehler zu beseitigen. Natürlich steht es uns frei, UPnP ganz einfach zu deaktivieren, womit das Problem unverzüglich gelöst wäre, aber das wäre doch ein eher primitiver Ansatz. Jedes Gerät im Netzwerk und jede Anwendung, die Netzwerk-Ressourcen nutzt, manuell zu konfigurieren, wäre ziemlich mühselig, wenn nicht in manchen Fällen sogar unmöglich. Der einzige Weg bestünde darin, der UPnP-Spezifikation ein leistungsstarkes Authentifizierungsverfahren hinzuzufügen. Übergangsweise könnten Anwender in ihren Browsern Flash deaktivieren, wobei dadurch keine hundertprozentige Sicherheit gegeben wäre, da andere Möglichkeiten existieren, die UPnP-Sicherheitslücke ohne die Verwendung von Flash auszunutzen.

SNMP: noch ein anderes (verstecktes) Feature

Das Simple Network Management Protocol (SNMP) wurde entwickelt, um sämtliche Netzwerkkomponenten zentral verwalten und steuern zu können. Auch wenn es nicht von allen Heimgeräten unterstützt wird, ist eine Beschreibung seiner Schwachstellen durchaus lohnenswert, da auch darüber Angriffe laufen können.

SNMP besteht aus drei Elementen:

  • Dem Manager, das heißt einem administrativen Computer
  • Den Software-Agenten, die auf anderen Geräten im Netzwerk installiert sind
  • Der Kommunikation zwischen dem Manager und den Software-Agenten plus der Abfrage oder Modifizierung von Einstellungen auf dem Remote-Gerät. Die wichtigsten Nachrichtentypen sind GetRequest, SetRequest, Response und Trap.

Alle Nachrichten enthalten einen sogenannten Community-String, der als eine Art Kennwort fungiert, um zu gewährleisten, dass die Kommunikation vertrauenswürdig ist, und um zwischen Schreib- und Leserechten sowie Nur-Leserechten zu differenzieren. Genau an diesem Punkt endet aber der SNMP-Schutz. Es existiert keinerlei Verschlüsselung, so dass selbst der Community-String im Klartext gesendet wird. Zudem sind die Standard-Strings weitgehend bekannt und extrem schwach, ebenso wenig ist eine Verpflichtung zur Änderung des Strings vorgesehen. Aber das Schlimmste kommt erst noch: Bei einer Vielzahl von Netzwerk-Elementen ist SNMP standardmäßig aktiviert, obwohl die meisten Anwender gar nichts von der Existenz von SNMP auf ihren Geräten wissen! Es ist mit einem versteckten Feature identisch, das – in manchen Fällen – auch als Backdoor genutzt wird. Diese Schwächen reichen aus, um einen erfolgreichen Angriff gegen einen Router, auf dem SNMP aktiviert ist und der lediglich über einen standardmäßig eingestellten oder schwachen Community-String verfügt, durchzuführen.

Ist ein Angreifer erst einmal in der Lage, SNMP-Requests auf dem Router zu nutzen, sind seinen Möglichkeiten, an Daten zu gelangen und Spielchen mit den Geräte-Einstellungen zu treiben, keine Grenzen mehr gesetzt. Auf manchen Geräten ist es zwar selbst bei aktiviertem Schreibrecht nicht möglich, grundlegende Einstellungen via SNMP zu ändern, aber eine SNMP-Injection-Attacke kann trotzdem mit Erfolg durchgeführt werden. Bei dieser Angriffsmethode versucht der Angreifer, Schadcode in die HTML-Seiten einer Webschnittstelle einzuschleusen und so die Nutzer unbemerkt auf Phishing- oder infizierte Seiten umzuleiten oder sonstige Aktionen wie CSRF-Angriffe auszuführen.

Abb. 3: SNMP: Ein auf den Standardwert gesetzter Community-String kann zur Code-Injection in die Webschnittstelle des Routers führen


Da es sich auch hier wieder um eine Frage der Implementierung handelt, hängt die SNMP-Sicherheit in keiner Weise von den Anwendern ab. Zwar wurden diese Sicherheitslücken in der letzten Version der SNMP-Spezifikation (SNMPv3) durch Hinzufügung einer Verschlüsselungsroutine für die Mitteilungen teilweise geschlossen, gleichzeitig jedoch modifizierten die Designer einige konzeptuelle Elemente, weswegen diese Version von den größten Hardware-Entwicklern nicht wirklich unterstützt wird. Hier besteht ein wichtiges und dringliches Problem, insbesondere, wenn Business-Netzwerke betroffen sind. Die Entwickler wären gut beraten, diesem Problem die nötige Aufmerksamkeit zu widmen, da sie ihre Kunden enormen Risiken aussetzen.

Sollten Sie aktuell erwägen, für Ihr Büro eine neue Netzwerk-Ausstattung mit SNMP-Unterstützung anzuschaffen, wäre es sicherlich empfehlenswert, nach Geräten Ausschau zu halten, die sich auf SNMPv3 verstehen. Grundsätzlich ist SNMP im Zusammenhang mit kleinen Heimnetzwerken praktisch nutzlos. Sollte daher bei Ihrem heimischen Router SNMP aktiviert sein, ist es das Beste, dieses Feature solange ausgeschaltet zu lassen, bis Sie es tatsächlich einmal brauchen. Und dann ist die Änderung des Standard-Community-Strings in einen langen und nicht lesbaren Satz absolut unumgänglich.

Binärer Schadcode

Hydra: ein Open-Source-Prototyp für Router-Malware

Vor der Kompilierung des Hydra-Codes muss der Betrüger eine der Quelldateien editieren, um die URL-Adresse des Steuerungs-IRC-Servers sowie den Link zum Download der Binärdatei zur Verfügung zu stellen.

Das Tool wurde im April 2011 im Blog des Autors veröffentlicht, wobei es aber bereits seit 2008 in Untergrund-Foren seine Runde gemacht hatte. Alle später „in the wild” entdeckten Schädlinge für die MIPS-Plattform basierten mehr oder weniger auf Hydra.

Psyb0t: greift als erster Schädling in the wild die MIPS-Plattform an

Psyb0t ist die erste binäre Malware „in the wild”, die Netzwerkgeräte direkt infiziert. Entdeckt wurde dieser Schädling im Januar 2009 von dem australischen Forscher Terry Baume, als er merkwürdige Einträge über Angriffsversuche in seinen Firewall-Logs bemerkte. Er machte später noch mehr von sich reden, als im März desselben Jahres ein Botnetz, aufgebaut aus gekaperten Routern, eine DDoS-Attacke auf das DroneBL-Portal ausführte.

Die erste bekannte, automatisch funktionierende Router-Malware trat 2008 in Form eines Open-Source-Tools in Erscheinung. Gesteuert von IRC bestand ihr Hauptzweck darin, mittels Brute-Force-Angriffen auf Router zuzugreifen, um dann DDoS-Attacken durchzuführen. Der Zugriff auf den Router konnte entweder durch die Nutzung einer eingebauten Liste mit Standard-Kennwörtern oder eines Exploits zur Umgehung der Authentifizierung erlangt werden.

Abb. 4: Teil einer Readme-Datei, verteilt mit Hydra-Quellen


Im Prinzip ist Psyb0t ein IRC-Bot, der sich mit dem Server verbindet, in den Channel gelangt und das Topic nach Kommandos absucht. Bei seiner Entdeckung, als er noch aktiv war, lautete der im Topic enthaltene Befehl, sämtliche Geräte im Netzwerk zu scannen und sich mit dem Standard-Benutzernamen und -Kennwort einen Zugriff auf die Router und Modems zu verschaffen. Sollte dieser Versuch scheitern, sollte es der Bot alternativ über ein Kennwort versuchen, das mit einem gängigen Exploit zur Umgehung der Authentifizierung erlangt wird. Dies bedeutete, dass der Schädling sich innerhalb des Netzwerks selbst weiter verbreitete und dabei alle anfälligen Geräte infizierte. Neben dem Code für seine Verbreitung enthielt Psyb0t zudem zahlreiche Kommandos, um diverse Arten von DDoS-Angriffen zu starten, das Router-Kennwort mit einem Brute-Force-Angriff zu knacken, Shell-Kommandos auszuführen und den Zugriff auf andere Dienste wie MySQL, phpMyAdmin, FTP-Server oder SMB-Shares durch Brute-Force-Angriffe zu erhalten. Da die Router-Firmware gewöhnlich Nur-Leserechte beinhaltet, ist Psyb0t ausschließlich RAM-resident, so dass ein simpler Neustart genügt, um das System zu säubern. Allerdings werden ungeschützte Geräte wieder und wieder neu infiziert, bis entweder das Kennwort geändert und/oder ein Upgrade der Firmware auf die gepatchte Version erfolgt ist.

Wahrscheinlich entschied sich sein Schöpfer aufgrund des wachsenden öffentlichen Interesses, das Botnetz schließlich stillzulegen. Am 22. März 2009 änderte er die Kommandos im IRC-Kanal-Topic dahingehend, dass alle Bot-Prozesse deaktiviert und gelöscht wurden. Er hinterließ außerdem eine Nachricht im Topic, in der er behauptete, sein Botnetz habe 80.000 infizierte Rechner gekapert und er habe das Botnetz ausschließlich im Namen der Forschung betrieben – eine mehr als fragwürdige Behauptung.

Psyb0t: Technische Einzelheiten

Psyb0t wurde für den Einsatz in Linux-basierten Systemen entwickelt, die auf der MIPSel-Plattform laufen (zum Beispiel OpenWRT, DD-WRT, MontaVista Linux und VxWorks). MIPSel bezeichnet eine RISC-Architektur, die als Byte-Reihenfolge Little Endian verwendet und hauptsächlich in eingebetteten Geräten genutzt wird. Im Unterschied zu ARM – der wichtigsten Plattform für Mobiltelefone und tragbare Geräte – ist MIPS/MIPSel die Hauptplattform für die meisten heutigen Netzwerk-Geräte.

Die Binärdatei wurde mit dem UPX-Packer gepackt, obwohl die Header korrumpiert wurden, um eine mögliche Analyse zu vereiteln. Anstelle einer echten Anti-Reverse-Methode wurde hier eigentlich nur eine Art primitive Verschleierung durchgeführt. Zum Entpacken der Datei mithilfe des standardmäßigen UPX-Packers mussten lediglich die Header durch Einfügen des fehlenden „UPX!“-Strings an den richtigen Stellen gesetzt werden.

Abb. 5: Psyb0t – korrumpierter UPX-Header


Einige der Strings in der Datei wurden verschleiert, um sie – wenn auch nur für eine kurze Dauer – geheim zu halten. So sahen ein paar der Strings vor ihrer Entschlüsselung aus:

Abb. 6: Psyb0t – verschlüsselte Strings


..und so danach:

Abb. 7: Psyb0t – Psyb0t – entschlüsselte Kommandos


Die Entschlüsselungsroutine ist höchst einfach: Benötigt wird ein bestimmter, in der Binärdatei enthaltener Schlüssel, und jedes nachfolgende Byte des Schlüssels wird von jedem nachfolgenden Byte des verschlüsselten Strings subtrahiert.

Abb. 8: Psyb0t – Psyb0t – Entschlüsselungsroutine


Psyb0t: Verbreitung

Einmal in den IRC-Channel gelangt, überprüft der Bot zunächst einmal die Kommandos im Topic. Der wichtigste Befehl hierbei ist das Kommando scan beziehungsweise seine verschiedenen Varianten rscan, lscan und rlscan. Dieser Befehl startet eine Suche nach Netzwerkkomponenten innerhalb eines fest definierten Adressenbereichs und versucht, sich unter Verwendung des Standard-Benutzernamens und -Kennworts (root/[Aa]dmin) dort einzuloggen. Scheitert dieser Loginversuch, wendet der Bot den Exploit-Code an, um damit das Kennwort aus der Konfigurationsdatei des betreffenden Geräts abzufragen. Er nutzt die Sicherheitslücke zur Umgehung des Authentifizierungsmechanismus in der Webschnittstelle aus, indem er eine speziell aufgebaute Anfrage an cgi-bin/firmwarecfg sendet, wodurch letztendlich der Hacker die gesamten Inhalte der Konfigurationsdatei erhält, darunter auch das Kennwort im Klartext. Diese Schwachstelle betrifft viele verschiedene Geräte, von denen an dieser Stelle nur D-Link und Telecom genannt sein sollen, und obwohl sie in den neueren Versionen geschlossen wurde, laufen die Nutzer älterer Hardware immer noch Gefahr, Opfer solcher Angriffe zu werden.

Abb. 9: Psyb0t – Exploit zur Umgehung der Authentifizierung


Hat sich Psyb0t einen Zugang zu der Shell verschafft, startet er eine Suche nach der Liste der laufenden Prozesse, um seinen eigenen Prozess ausfindig zu machen. Sofern der Router nicht bereits infiziert ist, verwendet Psyb0t entweder wget oder tftp, um seinen Body vom Server herunterzuladen und auszuführen. Als nächstes sendet er eine Nachricht über den erfolgreichen Angriff an den Besitzer des Botnetzes und nimmt sich den nächsten Host vor.

„[+] R00TED ** [TIR] ** IP=%s Password=%s“
([TIR] steht für Texas-Instruments-Geräte, [STR] für Geräte, die BusyBox nutzen)

Der neu gestartete Prozess erstellt nun als erstes eine Datei mit der Größe 0 namens udhcpc.mtx, wobei die Erweiterung mtx wahrscheinlich eine Abkürzung von mutex darstellt. Dann entschlüsselt er bestimmte Strings, bevor er im Hintergrund verschwindet und die folgenden Befehle ausführt:

/etc/firewall_start
iptables -A INPUT -p tcp –dport 23 -j DROP
rm -f /var/tmp/udhcpc.env

Mit diesen Anweisungen legt der Prozess eine Backup-Kopie der Datei /var/tmp/hosts an, verbindet sich mit dem passwortgeschützten IRC-Server und loggt sich mit einem willkürlich generierten Namen, der aus dem Vorsatz [NIP] sowie neun zufälligen Zahlen und Buchstaben besteht, in den #mipsel-Channel ein. Lautet die Antwort vom Server ERR_NOMOTD, stellt der Bot zudem noch die Channel-Optionen ein.

Abb. 10: Psyb0t – Verbindung zum IRC-Server


Abb. 11: Psyb0t – Login in den IRC-Channel


Abb. 12: Psyb0t – Einstellen der Channel-Modi


Der Bot führt die in dem Channel-Topic und den Loops enthaltenen Kommandos aus und wartet auf weitere Befehle, die in privaten Nachrichten übermittelt werden können.

Psyb0t: Kommandos

Die untenstehende Liste zeigt eine vollständige Übersicht aller Kommandos, die von dieser Bot-Version interpretiert werden können:

mode killall rscan wupgrade rsgen iflood socks viri

login kill sleep ver vsel pscan rsloop smb

logout silent rejoin wget split fscan report cgen

_exit_ getip sel lscan gsel r00t uptime

sh visit esel rlscan sflood sql usel

tlist scan upgrade getinfo uflood pma spoof


In den meisten Fällen erklären sich die Befehlsnamen von selbst. Es gibt einige IRC-bezogene Kommandos (login, logout, rejoin, silent, mode), Malware-Self-Management-Kommandos (kill, killall, exit, sleep, upgrade, wupgrade, ver, report, split, *sel) und Kommandos zur System-Informationsbeschaffung (tlist, getip, getinfo, uptime, viri). Weiterhin hat der Bot die Kompetenz, Zusatzdateien (wget) herunterzuladen, spezifizierte Webseiten aufzurufen (visit), die Hostdatei zu modifizieren (spoof) und Systemkommandos auszuführen. Die interessantesten Kommandos sind allerdings jene mit Bezug auf DDoS, die für SYN-, UDP- und ICMP-Angriffe (*flood) verwendet werden, sowie diverse Scan-Befehle. Neben dem standardmäßigen Scan-Befehl und dessen oben beschriebenen Varianten existiert eine weitere Gruppe von Kommandos, die ausnahmslos dieselbe Routine in der Datei nutzen, wobei jedes Kommando eine bestimmte Funktion ausführt: pscan aktiviert den Port-Scan, r00t startet einen Brute-Force-Angriff, um das Zugangskennwort eines Geräts zu knacken, während die Kommandos fscan, sql, pma und smb ein und denselben Angriff jeweils auf den FTP-Server, den SQL-Server, das phpMyAdmin-Panel sowie SMB durchführen.

Abb. 13: Psyb0t – bei Brute-Force-Angriffen verwendete Kennwörter


Uteltend: In nome di Chuck Norris

Zwar wurde das Psyb0t Botnetz gegen Ende März 2009 abgeschaltet, aber damit war das Kapitel der Router-Malware keineswegs abgeschlossen. Ein paar Monate später, im Dezember 2009, entdeckten Wissenschaftler der Masaryk-Universität in Tschechien einen weiteren IRC-Bot, der in vielerlei Hinsicht an Psyb0t erinnerte. Das Steuerungszentrum dieses neuen Botnetzes wurde in Italien lokalisiert, und auch die Strings und Funktionsnamen in den schädlichen Binärdateien weisen darauf hin, dass der Code seinen Ursprung in Italien hat. Der Schädling enthielt den mehrfach im Code auftauchenden Satz „In nome di Chuck Norris“, und so erhielt das Botnetz die Bezeichnung „Chuck Norris“. Kaspersky Labs Signatur für diesen Schädling lautet Trojan.Linux.Uteltend, abgeleitet von einem anderen String in der Datei – einem Kommando, mit dem der Dienst Uteltend daran gehindert werden soll, auf einem infizierten Rechner zu laufen.

Abb. 14: Chuck Norris – Strings in der Binärdatei


Schauen wir uns zunächst die Parallelen zwischen den Binärdateien von Chuck Norris und Psyb0t an:

  • Identische Plattform: Linux auf MIPSel-Geräten
  • Dasselbe Packprogramm: UPX. Die Header einiger Versionen waren auf die gleiche Weise korrumpiert wie bei Psyb0t
  • IRC-Bot-Funktionen
  • Identische Verschlüsselungstechniken für Informationen mit der höchsten Sensibilitätsstufe
  • Ähnlicher Verbreitungsmechanismus
  • Verwendung eines Exploits zur Umgehung der Authentifizierung für D-Link-Router

Chuck Norris bestand nicht nur aus einer einzigen Datei. Unter der Verwendung eines Linux-Tools namens pscan und einer Reihe von IP-Adressen, die entweder aus der Datei ip.txt auf dem Router oder aus einer in die Binärdatei codierten Liste entnommen wurden, führt die Haupt-Binärdatei einen Port-Scan durch:

Abb. 15: Chuck Norris – IP-Bereiche


Danach versucht Chuck Norris, sich mittels Brute-Forcing einen Zugriff auf jedes der Netzwerk-Elemente zu verschaffen, indem es einen Satz von Standard-Kennwörtern anwendet. Das danach ausgeführte Kommando ist ebenfalls in verschlüsselter Form gespeichert:

Abb. 16: Chuck Norris – Kommando-Entschlüsselung


Der Name der Haupt-Binärdatei lautet syslgd und imitiert die Bezeichnung des legitimen Linux-Prozesses syslogd, der für Protokollnachrichten des Systems verantwortlich ist. Das stellt einen Versuch dar – wenn auch nur einen ziemlich primitiven –, sich selbst im System zu verstecken. Außerdem löst dieses Kommando einen Versuch des Schädlings aus, den kleinen SSH-Server/Client herunterzuladen, der speziell für die MIPS-Architektur kompiliert wurde. Neben anderen auf dem schädlichen Server vorgefundenen Komponenten befand sich dort auch eine Binärdatei mit IRC-Bot-Funktionen, die von Kaspersky Lab mit Backdoor.Linux.IrcShell.c betitelt wurde, sowie ein für die MIPS-Architektur kompilierter Linux-Trojaner (Trojan.Linux.Small.e).

Tsunami: Hydras neuester Kopf

Die Steuerungszentrale von Chuck Norris wurde geschlossen, bevor irgendwelche Informationen darüber an die Öffentlichkeit gelangen konnten, aber die Geschichte geht trotzdem weiter. Anfang März 2010 trat ein neuer Kopf der Hydra in Lateinamerika in Erscheinung – sehr wahrscheinlich ein direkter Abkömmling seiner Vorgängerversion. Dieser Schädling wurde als Variante von Backdoor.Linux.Tsunami klassifiziert, da er eine Vielzahl der mit dem quelloffenen DDoS-Tool Linux Kaiten/Tsunami assoziierten Unterscheidungsmerkmale aufwies. Allerdings ähneln einige Teile seines Codes sehr stark den Chuck-Norris-Binärdateien, so zum Beispiel die Funktion zur Verschleierung von Strings und der Chiffrierungsschlüssel. Ferner sind einige der Strings und IP-Adressen in der Tat identisch.

Abb. 17: Tsunami – Entschlüsselung von Channel-Name und -Kennwort


Abb. 18: Tsunami – IP-Adressen


Ein gänzlich neues Phänomen, das wir bei keiner der früheren 32-Bit-Tsunami-Versionen oder sogar Chuck Norris beobachten konnten, sind die Versuche, die DNS-Einstellungen zu ändern: In unserem konkreten Sample wurden die Nameserver auf Open-DNS-Adressen eingestellt und der Port-Bereich von 22 bis 80 blockiert:

Abb. 19: Tsunami – Blockierung von Ports, Änderung der DNS


Dank der integrierten Hilfsdatei des Bots sind die Tsunami-Bot-Kommandos problemlos lesbar. Bei der überwiegenden Mehrheit dieser Befehle handelt es sich um umbenannte oder modifizierte Kaiten-Befehle:

.mack = tcp ack+psh
.msyn = tcp syn – check for open ports or use 0.
.mudp = udp – check for open ports or use 0.
.munk = udp – nonspoof.
nick = change nick, <= 9. server = jump servers.
getspoof = spoof d-block.
spoof = spoof subnet.
disable = disable slave.
enable = enable slave.
killall = stop packeting.t
irc = send command to the irc server.
sh = system();
version = show client version.
die = kill daemon.
+chan canale [key] = joina su un chan.
-chan canale = parta chan.
scan classeip = scansione della classe A,B,C.
stop = termina la scansione manuale
stopall = termina ogni tipo di scansione
knb = comando per il mio knb.


Desinfizierungsprozess

Da die bisher beschriebene binäre Malware ausnahmslos RAM-resident ist, ist eine Desinfizierung des befallenen Geräts ziemlich einfach. Bei einem simplen Neustart des Routers ist die Gefahr jedoch groß, dass der Router erneut infiziert wird. Die wichtigsten Maßnahmen zum Schutz des Routers sind die Änderung des Kennwortes, die Sicherung der Routereinstellungen und ein Update der Firmware auf die aktuellste Version.

Fazit

Alles nur viel Lärm um nichts?

In den vergangenen vier Jahren richteten sich einige wenige Drive-by-Pharming-Attacken und eine Handvoll Malware-Zwischenfälle gegen die MIPS-Plattform. Nicht besonders viel im Vergleich zu anderen, sogar mobilen Plattformen, warum also die ganze Aufregung? Aus welchem Grund ist das Thema immer noch so wichtig?

Zunächst einmal sollte bedacht werden, dass ein bereits entwickelter und mehr als einmal „in the wild“ agierender Schadcode höchstwahrscheinlich immer wieder aktiv wird, vor allem, wenn die Angriffe für die Cyberkriminellen lukrativ waren. Die Vergangenheit hat uns gezeigt, dass die Malware-Anfänge für jede Plattform immer gleich waren. So ist zum Beispiel die Zahl schädlicher Dateien für mobile und 64-Bit-Plattformen verglichen mit 32-Bit-Malware immer noch sehr niedrig, aber niemand kann abstreiten, dass sie sich mit hoher Geschwindigkeit ausbreiten und den Malware-Markt wahrscheinlich dominieren werden, sobald die älteren Architekturen verschwinden.

Angriffe über MIPS-Geräte sind ein relativ neues Phänomen und bergen ein enormes Potential, erhebliche Schäden anzurichten. Die folgenden Gründe geben Anlass zur Prognose, dass Malware für Netzwerkgeräte zu einem der größten Sicherheitsprobleme werden könnte:

  • Verbreitungsgrad: Im Haushalt der meisten Menschen befindet sich ein Netzwerkgerät, sei es ein vom Internetprovider bereitgestelltes ADSL-Modem oder ein Wi-Fi-Router, mit dem ihre Internetverbindung auf all ihren Desktop-, Laptop-, Tablet-PCs oder sonstigen Geräten gemeinsam genutzt werden kann.
  • Tarnung: Netzwerkkomponenten bieten ein ideales Versteck für Malware-Schädlinge, da niemand auch nur einen einzigen Gedanken an deren Sicherheit verschwendet. Wird ein Schadprogramm nicht auf einem PC oder Mac, sondern auf einem Router installiert, so bedeutet dies, dass es nicht von den aktuellen Desktop-Antiviren-Lösungen erkannt wird.
  • Leichter Zugriff: Mit einer Vielzahl an Schwachstellen und dem fehlenden Problembewusstsein der meisten Nutzer sind MIPS-Geräte genau das, wonach die Cyberkriminellen gesucht haben.
  • Permanenter Zugriff: Im Allgemeinen laufen Router ohne Unterbrechung und werden nur selten neu hochgefahren oder ausgeschaltet: optimal für die bösen Jungs!
  • Kontinuierliche Kontrolle: Durch die Übernahme der Kontrolle eines Routers ist der Angreifer in der Lage, den gesamten Datenverkehr im Netzwerk ganz offen zu überwachen und nach Datenpaketen mit sensiblen Informationen zu suchen.
  • Massenweise DNS-Umleitungen: Eine der lukrativsten Aussichten für Cyberkriminelle: Durch Änderung der IP-Adressen von DNS-Servern erfolgen Umleitungen auf betrügerische oder Phishing-Webseiten sämtlicher Hosts im Netzwerk.

Wenn wir über das Ausmaß der Bedrohungen durch MIPS-Malware sprechen, sollte weiterhin erwähnt werden, dass es nicht besonders schwierig ist, nachzuverfolgen, wie stark verbreitet diese Schädlinge tatsächlich sind. Die bisher bekannten Fälle wurden rein zufällig entdeckt – immer dann, wenn IT-Sicherheitsspezialisten selbst betroffen waren. Der durchschnittliche Heimanwender mit keinen oder geringen Kenntnissen im Bereich Netzwerksicherheit hat ohne Hilfe fast keine Chance, derartige Malware zu erkennen. Daher muss man sich folgende Frage stellen: Wie viele MIPS-Botnetze arbeiten weiterhin völlig unentdeckt? Wenn zudem das einzige Ziel von Cyberkriminellen darin besteht, die DNS-Einstellungen zu ändern, ist zur Erreichung dieses Ziels keine permanent auf dem Gerät laufende Malware erforderlich. Ein schädlicher Prozess kann unmittelbar nach Durchführung der Änderungen an der Konfiguration gelöscht werden, so dass die Infektion des Geräts unbemerkt bleiben könnte. Diese Strategie erschwert weiterhin die Nachverfolgung von Netzwerkattacken. Dieses Problem bietet ein äußerst interessantes Thema für die weitere Forschung.

Welche Maßnahmen tragen zur Verringerung des Sicherheitsrisikos bei?

Nutzer sollten darauf achten, starke Kennwörter zu verwenden, ihre Sicherheitseinstellungen zu kontrollieren und regelmäßig Updates ihrer Firmware sowie jeder relevanten Software durchzuführen. Dies sind zurzeit die einzigen Vorkehrungen, die sie selbst wirklich treffen können. Alles andere liegt voll und ganz in den Händen der Entwickler, das heißt den einzigen, die den Aufbau der Geräte ändern können. Ein erster Schritt könnte sein, zufällig generierte und für jedes Gerät einzigartige Standard-Kennwörter zu implementieren. Einige Hersteller tun dies bereits. Außerdem verfügen einige neuere Geräte über weitaus besser abgesicherte Einstellungen, die anders als ihre Vorgängermodelle keinen Remote-Zugriff unter Verwendung der Standard-Zugangsdaten erlaubenƒ. Trotzdem bleibt noch ein gewaltiges Stück Arbeit. Die UPnP-Implementierung gilt es zu überarbeiten und SNMP sollte ausschließlich in seiner abgesicherten Version verwendet werden. Schwachstellen in Firmware sowie die Sicherheit von Firmware muss verstärkt in den Fokus rücken, so dass jedes Gerät vor seiner Markteinführung obligatorisch umfassenden Sicherheitstests unterzogen wird.

Was bringt die Zukunft?

Alle Arten von Computerschädlingen entwickeln und vervielfältigen sich immer weiter, und wir müssen davon ausgehen, dass auch die MIPS-Malware diesem Muster folgt. Im Rahmen meines Artikels möchte ich noch folgende Prognosen abgeben:

  • Angriffe auf die ARM-Plattform, da sie die am zweithäufigsten genutzte Plattform für Netzwerkkomponenten ist
  • Attacken auf die proprietären Betriebssysteme der größten Hersteller, da nicht auf jedem Gerät ein Linux-basiertes Betriebssystem läuft
  • Permanente Updates von Firmware, da Cyberkriminelle möglicherweise Schadprogramme schreiben, die nach einem Neustart nicht mehr erscheinen
  • Einführung von Linux/Unix-Malware auf breiter Front, da bereits eine Vielzahl von Open-Source Hack-Tools, Bots und Backdoors existieren, die sich problemlos an die MIPS-Plattform anpassen lassen
  • Signifikante Fortschritte bei Exploits, da zahlreiche bekannte und nicht geschlossene Sicherheitslücken existieren, sowie wahrscheinlich eine große Bandbreite unbekannter Lücken
  • Hochentwickelte Verschleierungstechniken, sobald das Problem von Router-Malware einmal allgemein bekannt geworden ist und die ersten Sicherheitsprodukte bereitgestellt werden
  • Cross-Platform-Malware, mit der die Flexibilität und Effektivität von Attacken gesteigert wird. Ein Beispiel könnte Malware mit Code für unterschiedliche Router-Plattformen sein, oder auch Code, der die mit einem Router verbundenen PCs beziehungsweise einen auf einem PC laufenden Router erneut infiziert.

Das Credo der Cyberkriminellen lautet wie schon erwähnt: Nach oben sind keine Grenzen gesetzt. Wir müssen abwarten, wie sich die Situation in den nächsten Jahren entwickelt. Noch wichtiger ist allerdings, dass wir nicht passiv bleiben – es ist nicht zu spät, die Richtung zu ändern, in die sich das Thema Sicherheit für Netzwerkgeräte entwickelt.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.