[Aufmachergrafik: heller, corporate design]Hase und Igel 2006 Trends bei Malware und ihrer Abwehr

Ordnungsmerkmale

erschienen in: <kes> 2006#1, Seite 6

Rubrik: Bedrohung

Schlagwort: Malware-Trends

Autor: Von Mirco Rohr, Ingolstadt

Zusammenfassung: Zwei der wichtigsten Malware-Bedrohungen für 2006 werden Bot-Netze und Rootkits sein – Grund genug, sich diese Techniken einmal genauer anzusehen. Zudem lässt der Ausblick unseres Autors befürchten, dass es auch zukünftig kein neues, bequemes Allheilmittel gegen Malware geben wird.

Das Viren-Jahr 2006 begann unmittelbar mit einer Zero-Day-Attacke: dem WMF-Exploit. Mancher Hersteller von Anti-Viren-Software bezeichnete ihn als den bisher schlimmsten Vorfall. Nach Meinung des Autors war der Exploit zwar durchaus gefährlich, da alle Microsoft-Betriebssysteme davon betroffen waren – der Super-GAU war es aber nicht. Die Meldungen zu Verbreitungsgrad und -geschwindigkeit waren teils ebenfalls übertrieben – Sasser und Blaster waren um einiges schneller gewesen und hatten auch mehr Systeme infiziert.

Bei genauem Hinsehen merkte man schnell, dass über die neue Sicherheitslücke Altbekanntes installiert wurde: Nämlich ein SDBot, der zu einem IRC-Channel führt (vgl. Kasten). Damit wurden die infizierten Rechner unweigerlich Mitglied in einem so genannten Bot-Netz. Derartige Bots sind schon länger bekannt, doch sie werden uns auch in diesem Jahr unweigerlich stark beschäftigen, denn es ist noch keine Lösung in Sicht, die zur Zerschlagung solcher Bot-Netze führen könnte.

----------Anfang Textkasten----------

IRC und Bot-Netze

IRC steht für Internet Relay Chat, ein Protokoll, das für "Klönschnack" in Echtzeit konzipiert wurde und auf einer Client-Server-Architektur basiert. Die meisten IRC-Server gestatten freien Zugang für alle User. IRC ist ein offenes Netzwerkprotokoll, das auf dem Transmission Control Protocol (TCP) basiert und manchmal über Secure Sockets Layer (SSL) erweitert und verschlüsselt wird.

IRC-Bots werden nicht anders als normale Benutzer behandelt: Sie sind Daemon-Prozesse, die eine Vielzahl automatisierter Funktionen ausführen können. Die Kontrolle dieser Bots basiert normalerweise darauf, dass Befehle zu einem IRC-Channel gesendet werden, den der Angreifer eingerichtet hat und der von Bots "besucht" wird. Natürlich erfordert auch die Bot-Administration eine Authentifizierung und Autorisierung, sodass nur der Besitzer die Bots nutzen kann.

----------Ende Textkasten----------

Port Dienst
42 WINS (Host Name Server)
80 HTTP (IIS- oder Apache-Schwachstellen)
135 RPC (Remote Procedure Call)
137 NetBIOS Name Service
139 NetBIOS Session Service
445 Microsoft-DS-Service
1025 Windows Messenger
1433 Microsoft-SQL-Server
2745 Backdoor des Bagle-Wurms
3127 Backdoor des MyDoom-Wurms
3306 MySQL UDF (User Definable Functions)
5000 UPnP (Universal Plug and Play)

Tabelle 1: Liste der häufig von Malware attackierten Ports beziehungsweise gefährdeten Diensten

Unfreiwillige Helfer

Warum ist es eigentlich für Angreifer so interessant, ein Bot-Netz aufzubauen und zu steuern? Im Vordergrund steht dabei die Cyber-Kriminalität, denn mit Bot-Netzen kann man sehr viel Geld machen: Vor allem, da sich per Bot "übernommene" PCs sehr leicht für verschiedene Angriffsarten verwenden lassen, etwa DDoS, Spamming, Datenspionage und das Einschleusen von Rootkits.

Angreifern steht heutzutage eine Fülle von Programmen zur Verfügung, mit deren Hilfe sie Bot-Netze errichten und steuern können. Darunter fällt auch der schon erwähnte SDBot. Das gebräuchlichste Tool ist jedoch Agobot, das mehrere Funktionen bietet, durch die sich die Malware auf den meisten befallenen Rechnern verstecken kann (u. a. NTFS Alternate Data Streams, Anti-Virus Killer und die Polymorphic Encryptor Engine). Zudem ermöglicht Agobot Traffic-Sniffing und kann die Daten dabei bereits vorsortieren. Eine Kontrolle über andere Protokolle als IRC ist ebenfalls möglich (einige Befehle des Agobot-Clients zeigt Tab. 2).

Befehl Beschreibung
command.list Liste aller verfügbaren Befehle
bot.dns löst IP/Hostname auf
bot.execute führt eine exe-Datei auf einem Remote-Computer aus
bot.open öffnet eine Datei auf einem Remote-Computer
bot.command führt einen Befehl mit system() aus
irc.server verbindet mit einem IRC-Server
http.execute lädt eine Datei über HTTP herunter und führt sie aus
ftp.execute lädt eine Datei über FTP herunter und führt sie aus
ddos.updflood startet einen UDP-Flood
ddos.synflood startet einen SYN-Flood
redirect.http startet ein HTTP-Proxy
redirect.socks startet ein SOCKS4-Proxy
pctrl.list Liste aller Prozesse
pctrl.kill beendet einen Prozess

Tabelle 2: Auswahl von Fernsteuer-Kommandos des Malware-Tools Agobot

Der Aufbau eines Bot-Netzes läuft meist nach dem folgenden Schema ab:

Zum Schutz eigener Rechner gegen den Missbrauch als Bot dient vor allem ein – stetig aktueller – Virenschutz. Einige Bots sind allerdings so konfiguriert, dass sie Anti-Virus-Software umgehen können. Daher sollte man zusätzlich auch Personal- beziehungsweise Desktop-Firewalls installieren, um eine Kommunikation eventuell eingedrungener Malware mit der Außenwelt möglichst zu unterbinden.

Eine recht einfache Möglichkeit, manuell nach verdächtigen Verbindungen zu suchen, bietet das Kommandozeilenprogramm netstat: In der Ausgabe von netstat -an sollte man nach ESTABLISHED-Verbindungen zu TCP-Ports im Bereich 6000 bis 7000 suchen; üblicherweise liegen IRC-Ports bei 6667. Ist ein Rechner infiziert, sollte man ihn unmittelbar vom Netzwerk trennen und anschließend säubern.

Rootkits

Ein großes Problem mit wachsender Bedeutung sind so genannte Rootkits, die auch über Bot-Netze verteilt werden können. Schadprogramme für Unix sind zwar derzeit noch nicht so weit verbreitet, wie für DOS und Windows, doch gerade von dort stammt der Begriff Rootkit, der heute sehr häufig für die Bezeichnung von Stealth-Techniken verwendet und bei Trojanischen Pferden für Windows eingesetzt wird. Dass Rootkits zum Verbergen von Schadprogrammen in letzter Zeit immer beliebter wurde, belegt Abbildung 1.

[Bis Juli 2004 wurden Rootkits jeden Monat nur in bis zu fünf Schadprogrammen eingesetzt - im Zeitraum bis März 2005 waren es schon 8-14 und danach stieg die Häufigkeit sprunghaft an.]
Abbildung 1: Anwachsen der Verwendung von Rootkits in Schadprogrammen

Frühere Malware-Autoren scheiterten glücklicherweise meist daran, die Anwesenheit ihrer Fremdcodes im System auf Dauer zu verbergen. Doch in den letzten Jahren hat sich das Programmieren von Schadsoftware immer mehr von einer Beschäftigung aus jugendlichem Leichtsinn zum Profigeschäft mit kriminellem Hintergrund gewandelt. Und so stehen besonders die "Geschäftsleute" unter den Angreifern vor der Herausforderung, ihre Spuren (besser) zu verwischen.

Moderne Cyber-Kriminelle lösen dieses Problem genauso, wie schon die Cyber-Hooligans vor 15 Jahren: Eines der ersten Viren für den PC war das bootfähige Boot.Brain.a, das Systemfunktionen für den Zugang zur Festplatte abfing und beim Lesen des Bootsektors, etwa durch ein Anti-Virus-Programm, anstelle der infizierten Blöcke die Originaldaten vortäuschte. Mit der Zeit wurden dieselben Stealth-Mechanismen – also das Abfangen von Systemfunktionen und Vortäuschen unveränderter Daten – in Windows-Viren wie Win32.Cabanas.a verwendet.

----------Anfang Textkasten----------

Rootkit

Ursprünglich bezeichnet ein Rootkit einen Programm-Bausatz im Unix-Umfeld, der es Hackern ermöglicht, sich auf fremden Rechnern einzunisten und gleichzeitig ein Entdeckt-Werden zu verhindern. Hierzu werden ausführbare Dateien des Systems (login, ps, ls oder netstat) und System-Bibliotheken (libproc.a) ausgetauscht oder ein Kernel-Modul installiert. Ziel ist es, vor dem Anwender beziehungsweise Administrator zu verbergen, was auf seinem Computer wirklich vor sich geht. Heutzutage wird der Begriff des Rootkits aber zunehmend auch für Verschleierungstechniken benutzt, die ganz allgemein Malware auf einem befallenen Rechner verstecken sollen.

----------Ende Textkasten----------

Der zunehmende Bekanntheitsgrad von Rootkits ist auch durch die Verbreitung vieler Quelltexte im Internet zu erklären. Das Einfügen von Änderungen ist für Viren-Autoren dadurch ein leichtes Spiel. Die Popularität von Rootkits fördert zudem, dass viele Windows-Anwender mit Administrator-Rechten arbeiten, was eine erfolgreiche Installation unerwünschter Komponenten bedeutend erleichtert.

Derzeit gibt es zwei Methoden, die zum Verstecken von Rootkits angewandt werden:

Diese Methoden werden für das Verbergen von ungewöhnlichen Netz-Aktivitäten, Registry-Änderungen und auffälligen Prozessen verwendet, mit dem Ziel, die Entdeckung durch den Anwender oder Anti-Viren-Programme zu verhindern.

Die erste Methode kann sowohl im Anwender-Modus als auch im Kernel-Modus realisiert werden. Die praktische Umsetzung im Anwender-Modus ist relativ einfach: Häufiger als durch Applikationen üblich, wird hier ein Verfahren eingesetzt, das auf dem Abfangen von Aufrufen verschiedener Application-Programming-Interface-(API)-Funktionen basiert (vgl. Abb. 2).

[Ein Rootkit setzt sich zwischen Import Table der Applikation und Export Table der DLL quasi als Man-in-the-Middle fest.]
Abbildung 2: Abfangen von Anfragen an Applikations-Schnittstellen

Normalerweise erfolgen Aufrufe der System-API-Funktionen durch Dienstprogramme, entweder über spezielle Datenbereiche (Import/Export-Tabellen) oder mithilfe der Windows-API-Funktion GetProcAddress. Da der Programm-Code in DLL-Modulen abgelegt ist, kann ein Rootkit die Anfragen der Anwendung abfangen und sich so in laufende Prozesse einschleusen. Der Angreifer hat damit die Möglichkeit, alle Anwendungen des Benutzers zu kontrollieren. Die dargestellte Manipulation des Arbeitsweges ist gut dokumentiert und einfach zu realisieren, sodass sie leicht für Rootkits missbraucht werden kann.

Neben diesem Vorzug gibt es bei der Realisierung von Rootkits im Anwender-Modus jedoch einen wesentlichen Nachteil: das Verbergen der Manipulation selbst. Denn das Vorhandensein von Rootkits im Anwender-Modus des Systems kann man ohne große Anstrengung über spezielle Hilfsprogramme feststellen. Und genau dies ist der Grund für das in letzter Zeit gestiegene Interesse für Rootkits im Kernel-Modus, ungeachtet ihrer komplizierteren Programmierung.

Die überwiegende Mehrheit der Rootkits im Kernel-Modus verwendet undokumentierte Strukturen des Betriebssystems. So wird etwa häufig das Abfangen der Anwendungen aus der Tabelle KeServiceDescriptorTable verwendet, in der die Zahl der Services variiert – abhängig von der Version des Betriebssystems. Dies zwingt einen Rootkit-Entwickler, zusätzliche Analysen des System-Codes durchzuführen, um Hinweise auf Programme aus der erwähnten Tabelle zu erhalten. Diese Vorgehensweise erinnert stark an das Abfangen der API-Funktionen. Schützen kann man sich davor nur durch ein entsprechend "sensibilisiertes" Anti-Malware-Programm.

Ausblick Malware-Abwehr

Im Markt für (heimische) Endanwender sind Anti-Viren-Programme längst gewöhnliche Gebrauchsgüter, die sich oft vordergründig nicht von der Konkurrenz unterscheiden. Sie werden schon einmal ihrer schöneren Verpackung wegen gekauft oder weil das Produkt erfolgreicher beworben wurde – aber nicht aus technisch untermauerten Gründen.

Zum Glück achten aber auch etliche "aufgeklärte" Anwender bei Malware-Lösungen auf technische Merkmale und beobachten unabhängige Tests, welche die Qualität der Malware-Erkennung beleuchten. Denn leider gewährleistet längst nicht jede Anti-Viren-Software auf dem Markt einen auch nur annähernd hundertprozentigen Schutz vor bekannten Schädlingen – viele nicht einmal eine 90%-ige Abwehr. Darin besteht das Hauptproblem der Anti-Viren-Unternehmen.

Natürlich hegen Hersteller von Anti-Virus-Programmen von Zeit zu Zeit immer wieder einmal den Wunsch, eine völlig neue Technik zu entwickeln, die alle Probleme auf einen Schlag löst – quasi eine Super-Pille, die vor allen Computerkrankheiten schützt, und zwar ein für alle Mal, eine Prophylaxe, die in der Lage ist, jede neue Malware zu bestimmen und möglichst noch vor dem Moment ihrer Erschaffung und dem Erscheinen im Netz ihr Bedrohungspotenzial zu tilgen.

Leider klappt das nicht. Derart universelle Mittel sind nur gegen Bedrohungen effektiv, die sich bestimmten Regeln unterwerfen. Computerviren, -würmer und andere Malware unterliegen aber keinen Gesetzen, da sie nicht natürlich entstanden sind, sondern von raffinierter Menschenhand programmiert werden. Daraus folgt, dass sich die Gesetze, denen sich Schadprogramme unterordnen, mit den Zielen des Computer-Undergrounds verändern.

Ein Beispiel ist der so genannte Behaviour-Blocker, ein Konkurrent für die traditionellen Lösungen, die auf Viren-Signaturen basieren – zwei vollkommen unterschiedliche Herangehensweisen, die einander aber nicht ausschließen. Beim Signaturvergleich prüft man Stücke des Malware-Codes gegen hinterlegte "Fingerabdrücke" bekannter Schädlinge. Ein Behaviour-Blocker beobachtet hingegen die Arbeit von Programmen und beendet sie im Falle verdächtiger oder offenkundig schädlicher Aktivitäten (gemäß bestimmter Regeln). Beide Methoden haben sowohl Vorzüge als auch Mängel.

Der Vorzug der Signatur-Methode ist das garantierte Abfangen bereits bekannter Malware – doch sie lässt alle Schädlinge passieren, die sie noch nicht kennt. Zu den Mängeln zählt auch der große Umfang der Signatur-Dateien und die dementsprechend hohe Ressourcen-Belastung des Rechners. Vorzug der Behaviour-Blocker ist das Erkennen auch unbekannter Schadprogramme. Doch kann dabei schnell ein Fehlalarm auftreten, denn das Verhalten moderner Viren und Trojaner ist so vielfältig, dass es unrealistisch wäre, sie mit einer einheitlichen Auswahl an Regeln aufspüren zu wollen. Das heißt, der Behaviour-Blocker wird "garantiert" einige Schadprogramme durchlassen und dennoch immer wieder die Arbeit nützlicher Programme beeinträchtigen.

Der Behaviour-Blocker hat noch einen weiteren Nachteil: Die Unfähigkeit, mit neuen Schädlingen umzugehen, die grundlegend neue Verfahren anwenden. Stellen wir uns vor, dass Unternehmen X tatsächlich einen Behaviour-Blocker entwickelt hätte, der 100 % aller aktuellen Viren abfängt, auch bislang unbekannte Varianten. Was machen die Angreifer? Sie suchen neue, andersartig schädliche Methoden und das Programm benötigt sofort eine Aktualisierung seiner "Systembeobachtungs"-Regeln. Das ist nichts anderes als ein (Signatur-)Update. Und einige Tage später kommt das nächste Update, da die Hacker und Virenprogrammierer nicht schlafen. Update folgt auf Update. Im Endeffekt hat der Anwender also wieder einen Signatur-Scanner, nur sind die Signaturen keine Code-Stücke, sondern Regeln für Verhaltensauffälligkeiten.

Dasselbe Problem trifft auch auf eine andere "proaktive" Schutzmethode zu: die heuristische Analyse. Sobald solche Erkennungsmethoden einen Angreifer dabei stören, seine Opfer zu attackieren, erscheint neue Malware, die diesen Schutz umgeht (aufgrund der allgemeinen Verfügbarkeit der Abwehrsysteme kann ein Hacker naturgemäß leicht vorab prüfen, ob sein "Zögling" der Erkennung entgeht oder nicht). Sobald ein Produkt mit moderner Heuristik oder Behaviour-Blocker ausreichend bekannt ist, funktionieren diese innovativen Methoden daher nicht mehr zuverlässig.

Daher bringen auch solche Techniken immer nur kurzzeitig besseren oder allgemeinen Schutz. Benötigen Anfänger noch mehrere Wochen oder Monate zur Überwindung der neuen Abwehr, haben professionelle Hacker diesen Schutz in kürzester Zeit ausgehebelt. Der Behaviour-Blocker oder die heuristische Analyse, egal wie effektiv sie sind, müssen also ebenfalls ständig ausgebessert und aktualisiert werden. Dabei gilt es zu berücksichtigen, dass die Ergänzung von Signatur-Datenbanken eine Sache von wenigen Minuten ist, die Nachbearbeitung und das Testen aktiver Schutzmethoden dagegen viel mehr Zeit erfordert. Daher ist die Reaktionszeit für Updates der Anti-Virus-Signatur oft um ein Vielfaches geringer als für alternative Abwehrmethoden.

Das bedeutet nun natürlich nicht, dass derartige Methoden unnütz sind! Sie erledigen ihren Teil der Arbeit und können den Ausbruch einiger Computer-Seuchen durchaus verhindern. Sie sind also sicherlich eine sinnvolle Ergänzung zu den traditionellen Signatur-Scannern – als alleinige Anti-Malware-Methode jedoch kaum zuverlässig.

Das Hase-und-Igel-Rennen zwischen Malware und Anti-Malware-Systemen bleibt uns also weiterhin erhalten – auch im neuen Jahr. Die hier intensiver besprochenen Rootkits und Bot-Netze zählen zwar zu den Aufsteigern der Malware-Szene, doch werden uns auch die herkömmlichen Varianten weiterhin auf Trab halten. Monatlich entdecken die Virenlabors weiterhin mehrere tausend neue Schadprogramme, die analysiert und entschärft werden müssen.

Mirco Rohr ist Technical Manager bei Kaspersky Labs Deutschland.