Entwicklung der Selbstschutz-Technologien von Schadprogrammen

In der vorliegenden Analyse wird der Versuch unternommen, die Herausbildung eines „Selbstschutz-Instinkts“ von Schadprogrammen und dessen Weiterentwicklung unter – für Malware – immer härter werdenden Bedingungen zurückzuverfolgen, sowie die aktuelle Situation auf diesem Gebiet zu bewerten.

Zunächst muss allerdings geklärt werden, was unter dem Ausdruck „Selbstschutz von Schadprogrammen“ zu verstehen ist, denn so eindeutig wie es auf den ersten Blick erscheint, ist der Begriff keineswegs. Ein Angriff auf ein Antivirus-Programm ist ohne Zweifel eine Art des Selbstschutzes. Die eigene Funktionsweise zu verbergen kann in einem gewissen Sinne ebenfalls als Selbstschutz angesehen werden, auch wenn dieser Fall bereits nicht mehr so eindeutig zuzuordnen ist. Dass aber die Entwicklung der Schadprogramme an sich auch zu deren Selbstschutz zählt, ist alles andere als offensichtlich. Dennoch ist es so, denn die Motivation von Virenschreibern, neue Infizierungs-Plattformen und neue Schwachstellen im System zu finden, besteht unter anderem in dem Wunsch, ihre „Babys“ in einen freien Raum zu entlassen, wohin bisher noch kein Auge gesehen hat – aus dem einfachen Grund, weil es dort nichts zu sehen gab.

Um eine mögliche Verwirrung darüber zu vermeiden, was zu den Selbstschutz-Technologien zu zählen ist und was nicht, werden in der vorliegenden Analyse ausschließlich die populärsten und offensichtlichsten Methoden zum Selbstschutz von Schadprogrammen genauer beschrieben und untersucht. Dazu gehören in erster Linie verschiedene Arten der Modifizierung und Komprimierung von Code, das Verbergen im System sowie Angriffe auf die Funktionsweise von Antivirus-Programmen.

Klassifizierung

Es existieren zahlreiche und dabei völlig unterschiedliche Selbstschutz-Methoden von Schadprogrammen, daher sind auch verschiedene Klassifizierungsansätze denkbar. Einige Selbstschutz-Technologien sind darauf ausgelegt, den Signatur-basierten Antivirus-Schutz zu umgehen, andere erschweren den Spezialisten die Analyse des Schadcodes. Während das eine Schadprogramm sich möglichst raffiniert im System verbirgt, verschwendet das nächste darauf keine wertvolle Prozessorzeit und sucht stattdessen offensiv nach konkreten Antivirus-Programmen, um diese dann außer Kraft zu setzen. Überdies ist es möglich, ein und dasselbe Verfahren unterschiedlich zu klassifizieren und in verschiedene Kategorien einzuteilen.

Sinn und Zweck der vorliegenden Analyse ist es nicht, ein striktes Klassifizierungsschema der Selbstschutz-Technologien zu erstellen. Daher wird hier zur Orientierung ein eher intuitiver Klassifizierungsansatz verwendet. Als Grundlage dienen die unserer Meinung nach wichtigsten zwei Kriterien, die innerhalb der Achsen eines eigens erschaffenen Koordinatensystems angeordnet werden.

Bei dem ersten Kriterium handelt es sich um den Grad der Aktivität des Selbstschutzes von schädlichen Programmen. Die „passivsten“ Vertreter ihrer Art sind nicht in der Lage, sich selbstständig zu schützen, da sie nicht über den entsprechenden Code verfügen. Für diese wurde von ihrem Autor selbst eine gewisse Schutzhülle entwickelt. Bei den „aktivsten“ äußert sich der Selbstschutz in zielgerichteter Aggression.

Das zweite Kriterium beurteilt, wie weit sich ein Schadprogramm auf seinen eigenen Schutz spezialisiert hat. Am „höchsten spezialisiert“ sind jene Schädlinge, die auf die eine oder andere Weise die Funktion eines konkreten Antivirus-Programms außer Kraft setzen. Über „allgemeine“ Selbstschutzfunktionen verfügen Schadprogramme, die versuchen ihre Anwesenheit im System in jeglicher Beziehung so gut wie möglich zu verbergen.

In diesem Koordinatensystem werden die verschieden Selbstschutz-Arten von schädlichen Programmen angeordnet. Es sei darauf hingewiesen, dass es sich bei dem folgenden Diagramm um ein spielerisches Hilfsmittel handelt, das zur Veranschaulichung der Selbstschutz-Technologien von Schadprogrammen beitragen soll. Dieses Modell ist also ein subjektiver Entwurf der Autorin, basiert aber dennoch auf einer sorgfältigen Analyse schädlicher Programme.


Abb. 1. Selbstschutz-Technologien

Es folgt eine Aufstellung der wichtigsten Aufgaben, die von den verschiedenen Selbstschutz-Methoden von Schadprogrammen erfüllt werden:

  1. die Entdeckung von Viren mit Hilfe von Signatur-basierten Methoden soll erschwert werden;
  2. die Analyse des Schadcodes durch die Virenanalytiker soll erschwert werden;
  3. die Entdeckung von schädlichen Programmen im System soll erschwert werden;
  4. die Arbeit von „Schutz“-Software (Antivirus-Programm, Firewall) soll behindert werden.

Die vorliegende Analyse beschäftigt sich ausschließlich mit schädlichen Programmen für das Betriebssystem Windows (und dessen Vorgänger DOS), da Viren für andere Plattformen weitaus weniger verbreitet und dementsprechend auch derer Entwicklungstendenzen nur schwach ausgeprägt sind. Alle hier analysierten Tendenzen hinsichtlich ausführbarer (EXE, DLL, SYS.) schädlicher Programme beziehen sich in gewisser Weise auch auf Makro- und Script-Viren, daher werden diese auch nicht gesondert betrachtet.

Polymorphismus, Obfuskation, Verschlüsselung

Da Polymorphismus, Obfuskation und Verschlüsselung für die Lösung derselben Aufgaben zuständig sind – wenn auch mit unterschiedlicher Verteilung – ist es sinnvoll sie auch zusammen zu betrachten. Ursprünglich lagen der Modifizierung von Schadcode zwei Ziele zugrunde: die Behinderung von Dateierkennung und das Erschweren der Code-Analyse durch die entsprechenden Fachleute.

Die Geschichte der Schadprogramme beginnt in den 70er Jahren – die Geschichte ihres Selbstschutzes Ende der 80er. Der erste Virus, der versuchte, seinen Körper vor den damals bereits existierenden Antivirus-Tools zu schützen, war der DOS-Virus Cascade (Virus.DOS.Cascade), dessen Code teilweise verschlüsselt war. Dieser „Selbstschutz“ war allerdings unvollkommen, denn jedes neue – wenn auch unikale – Exemplar des Virus’ enthielt einen unveränderlichen Bestandteil, der es den Antivirus-Programmen ermöglichte, ihn zu erkennen. Das Denken der Virenschreiber hatte nun jedoch eine neue Richtung eingeschlagen und zwei Jahre später erschien der erste polymorphe Virus, Chameleon (Virus.DOS.Chameleon), auch bekannt unter der Bezeichnung „1260“. Der zeitgleich in Erscheinung tretende Virus Whale verwendete zum Schutz seines Codes bereits komplizierte Verschlüsselungsverfahren und Obfuskation. Wiederum zwei Jahre später tauchten die ersten so genannten polymorphen Generatoren auf, die als bereits fertige Lösung zum Schutz des Codes von Schadprogrammen eingesetzt werden konnten.

An dieser Stelle ist ein Exkurs über die Funktionsweise der Dateierkennung – und darüber, inwiefern sie durch Code-Modifikationen behindert werden kann – nötig.

Bis vor einigen Jahren gründeten sich Antivirus-Programme ausschließlich auf die Analyse des Dateicodes. Die schon ältere, Signatur-basierte Erkennungsmethode basierte auf der Suche nach einer strikt festgelegten Byte-Reihenfolge, häufig auf der Grundlage einer festgesetzten Verschiebung vom Anfang der Datei im binären Code des Schadprogramms. Der etwas später aufgekommene heuristische Erkennungsansatz arbeitete ebenfalls mit dem Dateicode, aber er basierte bereits auf einer freieren, größeren Erfolg versprechenden Suche nach für Schadprogramme typischen Byte-Reihenfolgen. Für ein Schadprogramm ist es zweifellos kein Problem, einen solchen Schutz zu umgehen, wenn jede Kopie des entsprechenden Programms eine völlig neue Byte-Zusammenstellung darstellt.

Die Technologien Polymorphismus und Metamorphismus sorgen dafür, dass bei jeder Erstellung einer Kopie des Schadprogramms dessen Byte-Zusammensetzung mutiert, ohne dass dabei die Funktionalität verloren geht. Verschlüsselung und Obfuskation sind in erster Linie darauf ausgerichtet, die Analyse des Schadcodes zu erschweren, wobei sie unter Umständen vielseitiger sind als etwa der Polymorphismus, wie das Beispiel des Virus Cascade zeigt, von dem jede neue Kopie mit einem unikalen Schlüssel chiffriert wurde. Die Obfuskation an sich erschwert lediglich die Analyse des Schadcodes. Wird diese Technologie allerdings – wie seit neuestem – in jeder Kopie des Schadprogramms eingesetzt, so behindert sie auch die Signatur-basierte Erkennung. Welche der oben genannten Technologien besser zum Selbstschutz von Schadprogrammen geeignet ist als die andere, lässt sich nicht allgemeingültig sagen. Vielmehr ist die Effektivität dieser Techniken von den gegebenen Umständen und der jeweiligen Umsetzung abhängig.

Der Polymorphismus war nur zu Zeiten der Dateien infizierenden DOS-Viren weit verbreitet. Der Grund hierfür liegt in dem aufwändigen Programmieren von polymorphem Code, was sich nur dann lohnt, wenn das Schadprogramm in der Lage ist, sich selbst zu reproduzieren, denn in diesem Fall weist jedes neue Exemplar eine mehr oder weniger unikale Byte-Zusammensetzung auf. Für die Mehrzahl der aktuellen Trojaner-Programme, die keine Reproduktions-Funktion haben, ist diese Technologie also nicht sinnvoll. Seit dem Ende der DOS-Viren-Ära wird die Technologie Polymorphismus daher nur noch selten in Schadprogrammen eingesetzt. Ist dies doch der Fall, dann vielmehr zur Selbstbestätigung des Autors denn als – für Schadprogramme – nützliche Funktion.


Abb. 2. Polymorpher Code P2P-Worm.Win32.Polip

Die Obfuskation hingegen ist nach wie vor aktuell – ebenso wie andere Technologien zur Code-Modifizierung, die nicht auf die Erschwerung der Schadcode-Erkennung, sondern auf die Behinderung der Schadcode-Analyse ausgerichtet sind.


Abb. 3. Diagramm: Obfuscator Code Trojan-Dropper.Win32.Small.ue

Seitdem Erkennungsmethoden mit Hilfe von Verhaltensanalysen die Signatur-basierten Verfahren abzulösen beginnen, sind Code-Modifikationen immer weniger geeignet, das Erkennen von Schadprogrammen zu verhindern. Daher sind Polymorphismus und mit ihm verwandte Technologien heutzutage nicht mehr populär und dienen lediglich zur Erschwerung der Code-Analyse.

Stealth-Viren

Die zweite Methode zum Schutz vor Entdeckung, die die Virenschreiber zu DOS-Zeiten umsetzten, war das Verbergen des schädlichen Programms im System. Erstmals wurde diese Technologie im Jahr 1990 angewendet, und zwar als Bestandteil des bereits erwähnten Virus Whale. Mit Hilfe dieser Technologie werden auf die eine oder andere Weise die Systemdienste von DOS abgefangen und dem Anwender bzw. dem Antivirus-Programm werden gefälschte Daten „untergeschoben“. So wird etwa der Inhalt eines geladenen Sektors als „sauber“ ausgegeben, obgleich er tatsächlich von einem Schadprogramm infiziert ist.

Was unter DOS als Stealth-Technologie bekannt wurde, erlebte 10 Jahre später auf neuem Niveau unter Windows mit der Bezeichnung Rootkit-Technologie eine Renaissance.Weitere Details zu Verbergungsmechanismen von Viren im System finden Sie deshalb im Abschnitt „Rootkits“.

Packer

Nach und nach wurden die klassischen Viren, d.h. Schadprogramme, die nur im Körper des „Opfers“ funktionieren und als eigenständige Dateien unwirksam sind, von Trojanern, also völlig eigenständigen schädlichen Programmen ersetzt. Dieser Ablösungsprozess begann zu der Zeit, als das Internet noch sehr langsam und begrenzt war und als Festplatten und Disketten sehr wenig Speicherplatz boten, weshalb auch die Größe des Programms von entscheidender Bedeutung war. Aus diesem Grunde wurden bereits zu DOS-Zeiten so genannte Packer eingesetzt, um die Größe von Trojaner-Dateien zu verringern. Packer sind Programme, die Dateien nach dem Prinzip von Archivatoren bearbeiten.

Ein Nebeneffekt des Einsatzes von Packern besteht darin, dass das Erkennen von schädlichen Programmen mittels Dateimethoden zusätzlich erschwert wird – ein hinsichtlich des Selbstschutzes von Schadprogrammen natürlich sehr willkommener Nebeneffekt.

Bei der Entwicklung einer neuen Modifikation eines Schadprogramms ändert der Autor für gewöhnlich nur einige Zeilen des Codes und lässt das Gerüst an sich unangetastet. In einer binären Datei werden dabei lediglich die Bytes aus einem einzelnen Segment verändert. Besteht die Signatur des Antivirus-Programms nun nicht ausgerechnet aus diesem Segment, so wird das schädliche Programm nach wie vor erkannt. Die Bearbeitung des Programms mit einem Packer löst dieses Problem, denn allein die Veränderung eines Bytes in der ursprünglichen ausführbaren Datei führt zu einer völlig neuen Zusammensetzung der Bytes in der Packer-Datei.


Abb. 4. Visueller Unterschied zwischen gepacktem und ungepacktem Code

Packerprogramme werden nach wie vor aktiv eingesetzt, ihre Auswahl wird immer vielseitiger und sie werden technisch immer ausgereifter. Viele moderne Packer sind nicht nur in der Lage eine Datei zu komprimieren, sondern statten diese obendrein mit zusätzlichen Selbstschutzfunktionen aus, die das Entpacken der Datei und deren Analyse mit Hilfe eines Debuggers erschweren sollen.

Rootkits

Anfang des neuen Jahrtausends versteckten sich erstmals schädliche Programme im Betriebssystem Windows, also etwa 10 Jahre nachdem Verbergungstechnologien von schädlichen Programmen in DOS umgesetzt worden waren. Anfang 2004 stießen die Experten von Kaspersky Lab auf ein bemerkenswertes Programm, das in der Prozess- und Datei-Liste von Windows nicht sichtbar war. Für viele Antivirus-Fachleute war dies die erste Bekanntschaft mit Technologien zum Verbergen in Windows, für die Antivirusindustrie insgesamt war es der Vorbote einer neuen, ernstzunehmenden Tendenz.

Der Begriff „Rootkit“ wurde ursprünglich im Zusammenhang mit Unix-Tools benutzt, die unsanktionierten Root-Zugriff im System ermöglichten. Heutzutage versteht man unter dem Terminus „Rootkit“ spezielle Tools zum Verbergen von Informationen im System und schädliche Programme mit Funktionen zur Verschleierung der Spuren ihrer Anwesenheit im System. Zu solchen Spuren zählen beliebige äußere Erscheinungsformen der Anwendung, wie etwa eine Zeile in der Prozessliste, eine Datei auf der Festplatte, Schlüssel in der Registry oder selbst Netz-Traffic.

Wie aber können Rootkits, die auf das Verbergen von Schadprogrammen im System ausgerichtet sind, verhindern, selbst von Schutz-Lösungen erkannt zu werden? Ein Antivirus-Tool verfolgt – ebenso wie der Anwender – nur äußerliche Anzeigen im System. Was der Anwender nicht sieht, bleibt also für gewöhnlich auch dem Antivirus-Programm verborgen. Glücklicherweise ist es möglich, die „Sehschärfe“ des letzteren technologisch weiterzuentwickeln, so dass Rootkits für Schutzprogramme auch dann sichtbar werden, wenn sie für den Anwender verborgen sind.


Abb. 5. Durch das Abfangen der Funktion ZwQueryDirectoryFile
wirdt die Treiberdatei in der Dateiliste verborgen

Der Rootkit-Technologie liegen dieselben Funktionsprinzipien zugrunde wie den Stealth-Viren unter DOS. Viele Rootkits funktionieren auf der Grundlage einer Modifikation der Kette der Systemaufrufe und werden daher als Execution Path Modification bezeichnet. Unter einem derartigen Rootkit ist eine Art Abfänger-Spion zu verstehen, der sich an irgendeiner Stelle des Pfades befindet, über den Befehle oder Informationen übermittelt werden und der diese Befehle oder Informationen zum Zwecke der Entstellung oder unbemerkten Weiterleitung an die Empfängerseite modifiziert. Theoretisch ist die Anzahl der Punkte, an denen sich ein solcher Abfänger festsetzen kann, unbegrenzt. In der Praxis werden derzeit verschiedene Abfang-Arten von API-Funktionen und von Systemfunktionen im Kernel eingesetzt. Dieser Rootkit-Typ wird in den hinlänglich bekannten Tools Vanquish und HackerDefender sowie in verschiedenen Schadprogrammen, unter anderem Backdoor.Win32.Haxdoor, E-Mail-Worm.Win32.Mailbot, und verschiedenen Versionen des E-Mail-Worm.Win32.Bagle eingesetzt.

Ein anderer weit verbreiteter Rootkit-Typ, der als Direct Kernel Object Modification (DKOM) bezeichnet wird, ist eine Art Insider-Spion, der Informationen oder Befehle direkt an ihrer Quelle modifiziert. Derartige Rootkits verändern Systemdaten. Ein typischer Vertreter ist das Tool FU; auch der Trojaner Gromozon (Trojan.Win32.Gromp) verfügt über entsprechende Funktionen.

Eine etwas neuere Technologie, die formal der hier präsentierten Definition von Rootkits entspricht, ist das Verbergen von Dateien in den Alternate Data Streams (ADS) des NTFS-Dateisystems. Erstmals kam diese Methode im Jahr 2000 in dem schädlichen Programm Stream (Virus.Win32.Stream) zum Einsatz, und im Jahr 2006 erlebte sie in Mailbot und Gromozon ein „Comeback“. Die Ausnutzung der ADS ist allerdings weniger eine Methode zum Systembetrug, als vielmehr die Verwendung ihrer wenig bekannten Funktion. Daher hat dieser Ansatz auch keine nennenswerte Perspektive.


Abb. 6. Ausnutzung des „Streams“ des Systemverzeichnisses
durch das Schadprogramm Mailbot (Rustock)

Recht selten in Erscheinung tritt eine andere, Technologie, die nur teilweise unter die Definition Rootkit fällt – allerdings entspricht sie noch weniger anderen in dieser Analyse vorgestellten Arten des Selbstschutzes. Diese Technologie verwendet Dateien ohne Körper, d.h. die Schadprogramme sind auf der Festplatte völlig körperlos. Zum gegenwärtigen Zeitpunkt sind nur zwei Vertreter dieser Technologie bekannt: zum einen Codered (Net-Worm.Win32.CodeRed), der 2001 für einiges Aufsehen sorgte und der gespenstergleich nur im Kontext MS IIS existierte; zum anderen ein erst vor kurzem entdeckter Konzept-Trojaner, der seinen Körper in der Registry verwahrt.

Die aktuelle Entwicklung von Rootkits geht in Richtung Virtualisierung und Ausnutzung von Gerätefunktionen, was unter dem Strich bedeutet: in Richtung eines immer tieferen Eindringens in das System.

Widerstand gegen Antivirus-Programme

Schadprogramme, die sich selbst hinreichend aktiv schützen, hat es immer gegeben. Ein derartiger Selbstschutz kann in unterschiedlicher Form auftreten:

  • eine zielgerichtete Suche im System nach Antivirusprogrammen, Firewalls oder anderen Schutz-Tools und eine Störung ihrer Funktion. So gibt es beispielsweise Schadprogramme, die nach dem Namen eines konkreten Antivirusprogramms in der Liste der laufenden Prozesse suchen und daraufhin versuchen, diesen zu beenden.
  • Blockierung von Dateien und deren Öffnen mit exklusivem Zugriff, um sich so den Datei-Antivirus-Programmen zu widersetzen.
  • Modifikation der Datei hosts, um den Zugriff auf Sites zu blockieren, von denen aus die Antivirus-Datenbanken aktualisiert werden können.
  • Aufspüren eines Dialogfensters des Sicherheitssystems (wie etwa des Firewall-Fensters „Gegebene Verbindung zulassen?“) und Imitation eines Klicks auf das Feld „zulassen“.

Faktisch handelt es sich bei zielgerichteten Angriffen auf Schutzsysteme eher um „Zwangsmaßnahmen“ eines mit dem Rücken zur Wand stehenden Gegenübers als um eine echte Offensive. Unter den aktuellen Umständen, da Antivirusprogramme nicht nur den Code schädlicher Programme, sondern auch deren Verhalten analysieren, sind letztere nahezu schutzlos, denn in dieser Situation ist weder durch Polymorphismus, noch durch Komprimierung und selbst durch den Einsatz von Technologien zum Verbergen der Anwesenheit im System ein vollwertiger Schutz gewährleistet. Den Schädlingen verbleibt also nur die Möglichkeit, Zielschüsse auf einzelne Ausformungen oder Funktionen des „Feindes“ abzufeuern. Gäbe es andere Alternativen, wäre diese Art des Selbstschutzes sicherlich nicht dermaßen weit verbreitet, da sie kaum in der Lage ist, umfassenden Schutz zu gewährleisten.

Zukunftsvision: Der reflektierende Virus?

Antivirus-Technologien entwickeln sich unaufhaltsam weg von der Datei-Analyse hin zur Verhaltensanalyse von Programmen. Im Gegensatz zu der Analyse von Dateien, deren Grundzüge im Abschnitt „Polymorphismus, Obfuskation….“ erläutert sind, basiert die Verhaltensanalyse nicht auf der Arbeit mit Dateien, sondern mit Ereignissen auf Systemebene, wie etwa „Auflisten der im System aktiven Prozesse“, „Erstellen einer Datei mit einem bestimmten Namen in einem bestimmten Verzeichnis“, „Öffnen eines bestimmten Ports zum Datenempfang“. Auf der Grundlage der Analyse dieser Ereignisketten berechnet das Antivirusprogramm die Wahrscheinlichkeit, dass diese Prozesse schädlich sein könnten und gibt gegebenenfalls eine Gefahrenwarnung aus.

An dieser Stelle sei darauf hingewiesen, dass die Terminologie auf dem Gebiet Verhaltensanalyse alles andere als einheitlich und daher auch recht verwirrend ist. So wird das Modul zur Verhaltensanalyse von unterschiedlichen Herstellern auch völlig unterschiedlich bezeichnet, wie etwa „HIPS“, „proaktiver Schutz“, „Heuristic“, „Sandbox“ und so weiter und so fort. Bei aller bestehenden Begriffsverwirrung ist allerdings eines klar: Gegenüber der Verhaltensanalyse sind schädliche Programme im Prinzip völlig schutzlos. Gerade diese prinzipielle Verwundbarkeit macht die Entwicklungsrichtung von Schadprogrammen vorhersehbar.

Mit anderen Worten: die Virenschreiber sind nun gezwungen, einen Weg zur Umgehung der Verhaltensanalyse aufzutun. Wie dieser aussehen wird, ist zurzeit noch völlig unklar. Sicher ist allerdings schon jetzt, dass der Einsatz von Obfuskation in diesem Bereich praktisch nutzlos sein wird. Daher ist in diesem Zusammenhang gerade die Entwicklung der Diagnosetechnologie zum Umgebungszustand überaus interessant, und zwar gerade deshalb, weil diese Technologien eine gesteigerte „Selbsterkenntnis“ von Viren voraussetzen, die diesen wiederum ermöglichen würde, zu bestimmen, wo genau sie sich befinden: in der „realen Welt“ (in der reinen Arbeitumgebung des Anwenders) oder in der „Matrix“ (unter Leitung eines Antivirus-Analysemoduls).

Die Diagnosetechnologien haben bereits Vorgänger, denn einige Schadprogramme liquidieren sich umgehend selbst, sobald sie in einer virtuellen Umgebung (VMWare, Virtual PC) aktiviert werden. Indem der Virenautor ein Schadprogramm mit einem derartigen Selbstzerstörungsmechanismus ausstattet, kann er dessen Analyse verhindern, die von den Virenanalytikern gegebenenfalls in einer solchen virtuellen Umgebung durchgeführt wird.

Tendenzen und Prognosen

Für die oben beschriebenen Selbstschutzarten lassen sich folgende Aussagen hinsichtlich ihrer Entwicklungstendenzen und des jeweiligen Entwicklungstempos treffen:

  1. Rootkits tendieren immer mehr zur Ausnutzung von Gerätefunktionen und zur Virtualisierung. Allerdings sind diese Technologien noch nicht ausgereift und werden in den nächsten Jahren kaum wesentliche Bedeutung erlangen (d.h. sie werden nicht im großen Maßstab einsetzbar sein).
  2. Die Technologie „körperloser“ Dateien auf der Festplatte lässt mit bisher zwei bekannten Vertretern in nächster Zukunft unbedingt eine weitere Entwicklung auf diesem Gebiet erwarten.
  3. Der Einsatz von Obfuskationstechnologien ist unbedeutend, jedoch nach wie vor aktuell.
  4. Der Einsatz von Technologien zum Aufspüren von Schutzlösungen und der Sabotage ihrer Funktionsweisen ist von großer Bedeutung und von unveränderter Aktualität.
  5. Der Einsatz von Packern ist bedeutend und wird stetig ausgebaut (sowohl quantitativ als auch qualitativ).
  6. Technologien zum Aufspüren von Debuggern, Emulatoren, virtuellen Maschinen sowie andere Technologien zur Umgebungsdiagnose werden sich aller Wahrscheinlichkeit nach weiterentwickeln, um so den Übergang der meisten Antiviruslösungen zur Verhaltensanalyse zu kompensieren.


    Abb.7. Ungefähre Verteilung der Selbstschutztechnologien
    von Schadprogrammen Anfang 2007

    Es liegt auf der Hand, dass sich die Selbstschutztechnologien von Schadprogrammen in Abhängigkeit von den Entwicklungstendenzen der schädlichen Programme selbst und der entsprechenden Schutztechnologien weiterentwickeln. Zu der Zeit, als die Mehrzahl der Schadprogramme Dateien infizierte und die Antivirusprogramme dementsprechend nur Signatur-basierte Erkennungsmethoden anwendeten, waren Polymorphismus und Methoden zum Schutz des Codes aktuell. Heutzutage sind schädliche Programme im Wesentlichen selbstständig und die Antiviruslösungen funktionieren zunehmend proaktiv. Ausgehend davon lassen sich Vorhersagen treffen, welche Richtungen des Selbstschutzes von Schadprogrammen sich intensiver entwickeln werden als andere:

    1. Rootkits. Die Unsichtbarkeit im System ist ein wesentlicher Vorteil, selbst wenn dadurch kein Schutz vor Entdeckung mehr gewährleistet ist. Die wahrscheinlichsten Neuerungen auf diesem Gebiet sind neue Typen körperloser Dateien sowie – etwas später – der Einsatz von Virtualisierungstechnologien.
    2. Obfuskation und Verschlüsselung. Das Erschweren der Codeanalyse bleibt aktuell.
    3. Widerstand gegen Schutzlösungen, die auf der Grundlage der Verhaltensanalyse funktionieren. In diesem Bereich ist mit dem Erscheinen neuer Technologien zu rechnen, da die derzeit angewendeten (zielgerichtete Angriffe auf Antivirusprogramme) nicht effektiv sind. Möglicherweise wird es sich hierbei um Methoden zum Erkennen virtueller Umgebungen oder das Verschlüsseln von Verhaltensmustern handeln.

Fazit

Was also ist das Fazit? Da es schädliche Programme gibt, gibt es auch Technologien zum Schutz vor diesen und aus diesem Grund wird es wiederum auch immer Schutzmechanismen der Schadprogramme geben, die vor den Lösungen zum Schutz vor Schadprogrammen schützen sollen. In diesem Zusammenhang folgen einige Gedanken zum Thema dieses endlosen Widerstreits, abgleitet von Beobachtungen aus der „freien Natur“.

In den letzten Jahren hat sich immer wieder die folgende Situation ergeben. Irgendjemand aus dem Milieu der Cyberkriminellen (oder so genannte „Forscher“, die sich unter dem White Hat verstecken) entwickelt einen Konzeptcode, der die modernen Sicherheitslösungen umgeht und veröffentlicht diesen – aus angeblicher Sorge, tatsächlich aber zum Zwecke der Eigenwerbung – als „unentdeckbar“. Hervorzuheben ist hierbei, dass es sich bei einem solchen Konzept keineswegs um ein prinzipiell unentdeckbares handelt, sondern es nur auf der Ebene einer ein- bis zweischrittigen Umgehung von bekannten Funktionen einer Schutzlösung unentdeckbar ist. Eine derartige einschrittige Umgehung zu entwickeln ist überaus einfach, wenn die Schutzmechanismen bekannt sind.

Derartige Veröffentlichungen führen zur Verunsicherung eines gewissen Prozentsatzes von Anwendern, die mit den Funktionsprinzipien von Schad- und Antivirusprogrammen nicht vertraut sind („Bietet mein Antivirusprogramm auch Schutz vor diesem neuen Bedrohungstyp?“). Die Antivirusanbieter sind zur Wiederherstellung ihrer Autorität nun gezwungen, einen Teil ihrer Ressourcen darauf zu verwenden, Technologien zur Umgehung des beschriebenen Konzeptes zu entwickeln, die für gewöhnlich – wie auch das Konzept selbst – einschrittig sind. Schließlich ist die Autorität wieder hergestellt, das System „Schadprogramm – Antiviruslösung – Anwender“ kehrt wieder in seinem Ausgangszustand zurück und der unendliche Teufelskreislauf wird fortgesetzt. Jede neue Integration erzeugt immer raffinierte Schadprogramme und immer gewichtigere Schutzlösungen.

Man darf dabei nicht vergessen, dass dieser Prozess überaus ressourcenintensiv, sinnlos und ohne absehbares Ende ist, wobei er in der letzten Zeit immer groteskere Züge annimmt. Alle drei beteiligten Seiten sollten sich daher über einige Dinge bewusst werden: Die Anwender darüber, dass kein einziges Antivirusprogramm vollkommen ist und der beste Schutz vor Gefahr daher in der Vorsorge liegt. Konzeptentwickler sollten ein weiteres Mal darüber nachdenken, wie rein ihre Beweggründe hinsichtlich der Veröffentlichung eines Konzeptes wirklich sind, bevor sie erneut Öl ins Feuer gießen. Den „Schützern“ schließlich sei ans Herz gelegt, sich dazu zu zwingen in tieferen Dimensionen zu denken, um dem „Feind“ nicht lediglich einen einzigen Schritt voraus zu sein. Obgleich von einem Ende des „Wettrüstens“ keine Rede sein kann, liegt es doch allein an den Beteiligten dieses Prozesses selbst, zumindest dessen Tempo zu drosseln.




* Polymorphismus. Unter Polymorphismus versteht man eine Klasse von Technologien, die es sich selbst vervielfältigenden Programmen ermöglicht ihr äußeres Erscheinungsbild und/oder die Struktur ihres Codes ganz oder teilweise im Vervielfältigungsprozess zu verändern.



* Obfuskation. Als Obfuskation wird die Gesamtheit der Verfahren zur Veränderung des Ausgangscodes von Programmen verstanden, die eingesetzt werden, um – bei vollständiger Aufrechterhaltung der Funktionsweise – das Lesen und die Analyse weitestgehend zu erschweren. Obfuskations-Technologien können auf der Ebene jeder Programmiersprache angewendet werden – auf solcher der oberen Ebene, Scripts und Assembler. Ein Beispiel für die simpelste Umsetzung von Obfuskation ist die Verdünnung des Codes durch neutrale (nicht über die Funktionalität eines Programms verfügenden) Operatoren.



* Verweis auf die in der IT-Sicherheitsbranche gebräuchlichen Termini Black Hat („schwarzer Hut“, Hacker, illegal) – White Hat („weißer Hut“, IT-Sicherheitsexperte).

Ähnliche Beiträge

Schreibe einen Kommentar

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