Howard Fuhs
Howard Fuhs
Howard Fuhs
IT-Sicherheitsberater
IT-Sicherheitsberater
IT-Sicherheitsberater

Retroviren

Produktorientierte Viren,

ihre Möglichkeiten und Gefahren

Copyright (C) 08/1995 by Howard Fuhs


Inhalt:

    Einleitung

    Entdeckung von Computerviren

    Retroviren

    Angriff ist die beste Verteidigung

    Schwächen im Funktionsdesign

    Schwächen in der Programmierung

    Undokumentierte Funktionen

    Finger weg!

    Angriffsziele

    Gezielte Angriffsmethodenbauf Prüfsummen

    Angriffsmethoden auf ganze Programmpakete

    Textmeldungen, Errorlevel und Aufrufparameter

    Gepackte Dateien als Versteck

    Angriffe auf TSR-Schutzprogramme

    Geschwindigkeitseinbußen

    Heuristische Anti-Viren-Produkte

    Wiederherstellung des Systems

    Überlisten von Scannern

    Köderdateien

    Langsame Mutationen

    Netzwerke und Tools

    Produktdesign und integrierte Gegenmaßnahmen

    Schlußbemerkungen

    Copyright-Hinweise
 


Einleitung

Computerviren haben von ihrer Definition her die Aufgabe (wenn sie schon sonst keinem rationalen Zweck dienen), sich so weit wie möglich zu verbreiten, d.h. so viele Systeme und Dateien wie möglich zu infizieren, ohne dabei entdeckt zu werden. Um dieses Definitionsziel zu erreichen, bedienen sich moderne Computerviren unterschiedlicher Techniken, um ihre Effizienz und Resistenz erheblich zu steigern.

 


Entdeckung von Computerviren

Es gibt im Grunde genommen nur zwei Arten der Entdeckung für Computerviren. Durch ein auffälliges Verhalten des Virus im System oder durch eine gezielte Suche mit verschieden Formen von Anti-Viren-Produkten. Auffälliges Verhalten würde sich durch Systemabstürze zeigen, die auf inkompatible oder sehr oft auch schlechte Programmierung zurückzuführen sind, durch optische oder akustische Hinweise, durch den Virus selbst sowie Programmabstürze durch schlecht programmierte Infektionsroutinen und offensichtliche Systemveränderungen wie ungewöhnliches Dateidatum oder Zunahme der Dateigröße, usw. Um eine solche Entdeckung durch Auffälligkeiten zu verhindern, sind von den Virenprogrammierern verschiedene Techniken entwickelt worden. Hier seien nur die Stealth-Techniken der Tarnkappenviren genannt, bei denen es zu keinen offensichtlichen Systemveränderungen kommt.

Bei der Entdeckung durch Anti-Viren-Software mußten von den Virenprogrammieren andere Wege eingeschlagen werden, um eine erfolgreiche Entdeckung zu verhindern. Auch hier unterscheidet man zwischen zwei Techniken, der indirekten und der direkten Technik. Eine indirekte Technik wäre z.B. ein mutierender (polymorpher) Virus. Dabei handelt es sich um eine Technik, die wiederum von Anti-Viren-Software angewandte Techniken unwirksam macht. Im Falle eines polymorphen Virus wurde die Technik der String-Scanner weitestgehend unbrauchbar gemacht. Diese indirekte Technik bezieht sich immer nur auf andere Aufspürtechniken.

 


Retroviren

Die direkte Technik zur Verhinderung der Virenentdeckung ist der gezielte Angriff des Virus auf ein bestimmtes Anti-Viren-Produkt. Hierbei können nur dem Programmautor bekannte Backdoors in dem Anti-Viren-Produkt verwendet werden oder es werden ganz bestimmte Schwächen im Produktdesign ausgenutzt oder das Produkt wird zerstörerisch angegriffen, mit der Absicht, es zu löschen oder gezielt so zu verändern, daß es seine eigentliche Funktion nicht mehr erfüllen kann. Viren, die diese direkte Technik anwenden, werden Retroviren, oder auch seltener Anti-Anti-Viren genannt.

Retroviren verwenden Techniken, um gezielt spezielle Anti-Viren-Produkte zu umgehen, unbrauchbar zu machen oder auf andere Weise an ihrer Funktion zu hindern.

 


Angriff ist die beste Verteidigung

Nachdem Virenprogrammierer erkannt haben, daß der größte Feind ihres Virus ein gutes Anti-Viren-Programm ist, lag es auf der Hand, daß früher oder später gezielte Attacken gegen bestimmte, vor allen Dingen weit verbreitete Produkte unternommen werden.

Die meisten Retroviren greifen Produkte an, die über Shareware-Kanäle verteilt werden oder anderen Programmpaketen „beigelegt“ sind. Von den kommerziellen Produkten werden Microsoft Antivirus (liegt MS-DOS bei), Central Point Antivirus (liegt PC Tools bei), Dr. Solomon`s Anti Virus Toolkit und Norton Antivirus angegriffen. Bei den Shareware-Produkten sind vor allen Dingen Thunderbyte Antivirus, McAfee Scan, F-Prot, InVircible, Integrity Master und Antivirus Toolkit Pro zu nennen. Zwar erhebt diese Liste keinen Anspruch auf Vollständigkeit, aber bei den genannten Produkten handelt es sich um die am meisten angegriffenen Produkte.

Unter dem Gesichtspunkt, daß ein Virenprogrammierer keine großen finanziellen Investitionen tätigen wird, um in den Besitz von bestimmten kommerziellen Anti-Viren-Produkten zu kommen nur um dann das erworbene Programmpaket auf etwaige Schwächen jeder Art zu testen, ist die obige Produktaufzählung zu betrachten. Die hier genannten kommerziellen Produkte sind entweder als Raubkopien im Virenuntergrund verteilt worden oder finden eine weite Verbreitung über bekannte Tools und Betriebssysteme während die Shareware-Produkte aus Mailboxen und Datennetzen für den Virenprogrammierer kostenlos zu beziehen sind.

Um Angriffspunkte für einen Retrovirus zu finden, reicht es oftmals nicht aus, daß der Virenprogrammierer sich das entsprechende Produkt nur anschaut und testet. Wie man aus den einschlägigen Veröffentlichungen aus dem virenprogrammierenden Untergrund entnehmen kann, werden die Produkte mit Debuggern und Disassemblern genauestens unter die Lupe genommen. Hier sei beispielsweise nur auf eine ganze Reihe von Veröffentlichungen in den Untergrund-Magazinen von VLAD oder 40HEX hingewiesen. Da Virenautoren untereinander über Netzwerke wie das Internet Kontakt halten, sind entdeckte Produktschwächen relativ schnell einem größeren Personenkreis bekanntgemacht.

Auch die Angriffspunkte lassen sich in verschiedene Kategorien unterteilen. Die drei Kategorien sind Schwächen im Funktionsdesign, Schwächen in der Programmierung sowie undokumentierte Funktionen und Backdoors. Egal welche der Schwächen dann tatsächlich ausgenutzt wird, im Prinzip geht es dem Virus nur darum, ein Anti-Viren-Produkt an seiner Arbeit so zu behindern, daß er direkt davon profitiert.

 


Schwächen im Funktionsdesign

Zum Aufdecken von Schwächen im Funktionsdesign muß der Virenprogrammierer keine „Reverse Engineering“ Techniken anwenden. Es reicht vollkommen aus, das entsprechende Produkt auf Herz und Nieren (und etwas darüber hinaus) zu testen. Wer sich mit Aufmerksamkeit und Sachverstand einem bestimmten Produkt zuwendet, kann dabei ziemlich viel über die Stärken und die Schwächen eines Produktes erfahren. Schwächen im Funktionsdesign können z.B. darstellen:

Keine Selbstüberprüfung der ausführbaren Anti-Viren-Datei. Hier wäre es einem Virus möglich, die Datei zu verändern, ohne daß es dem Programm selbst auffällt.

Ausführung von Überprüfungsmaßnahmen mit unsicheren Methoden. Das beste Beispiel hierfür wäre das Ausführen eines Anti-Viren-Scanners ohne vorherige Überprüfung, ob der Speicher virenfrei ist.

Nicht zu behebende Schwächen in einer Überprüfungsmaßnahme. Diese Schwäche ist durch die angewendete Technik selbst bedingt und kann nicht behoben werden.

Mangelhafte oder fehlende Kontrollen von wichtigen Systemparametern.

Diese Aufzählung (wie auch alle weiteren) ist bei weitem nicht vollzählig und soll nur als Anhaltspunkt dienen. Schwächen im Funktionsdesign können mitunter sehr umfangreich sein und würden den Rahmen dieses Fachartikels sprengen.

 


Schwächen in der Programmierung

Um Schwächen in der Programmierung eines Produktes zu erkennen, muß das Produkt praktisch disassembliert und der Code dann genau überprüft und analysiert werden. Solche Schwächen wären z.B. die Möglichkeit durch Abänderung nur weniger Bytes, das Programm vollkommen unwirksam zu machen, Funktionen abzuschalten oder nur vorzutäuschen. Um die Effizienz des Virus zu steigern, suchen einige Virenprogrammierer vor allen Dingen nach Schwächen, die im Produkt nur sehr schwer behoben werden können, weil z.B. dazu eine umfangreiche Neuprogrammierung des Produkts erforderlich wäre.

 


Undokumentierte Funktionen

Auch undokumentierte Funktionen und Backdoors können nur mit Hilfe von Disassemblern und Debuggern entdeckt werden. Hierbei handelt es sich um Funktionen, die eigentlich nur dem Programmierer des Produkts zur Verfügung stehen sollen, wie z.B. bestimmte Aufrufparameter, die gewisse wichtige Funktionen abschalten oder deren Funktion verändern.

 


Finger weg!

Retroviren müssen sich nicht notwendigerweise aggressiv verhalten. Oftmals verhalten sie sich auch bewußt passiv, wenn sie auf Anti-Viren-Produkte treffen. Die dabei in den Virus implementierten Funktionen suchen dabei ....

nach Anti-Viren-Software, die als TSR im Hauptspeicher vorhanden ist. Sollte der Virus ein solches TSR entdecken, wird er erst gar nicht aktiv.

nach bestimmten Dateien die zu bestimmten Anti-Viren-Produkten gehören. Diese Dateien werden dann vom Virus nicht infiziert, um keinen Verdacht zu erregen.

Obwohl man darüber streiten kann, ob die genannten Funktionen mehr zu einem Stealth-Virus denn zu einem Retrovirus gehören, haben viele Retroviren diese produktspezifischen Funktionen implementiert. Die Grenzen zwischen Stealth-Eigenschaften und Retro-Programmstrukturen sind fließend und können entsprechend unterschiedlich definiert werden.

 


Angriffsziele

Im Rahmen der drei oben genannten Angriffspunkte, die ein Anti-Virus-Produkt bieten kann, werden dann die direkten Angriffsziele für jedes Produkt vom Virenprogrammierer ausgewählt und die entsprechenden Techniken in den Retrovirus implementiert. Der Retrovirus muß dann bei seinem Aufruf nur feststellen, mit welchen Anti-Viren-Produkten er konfrontiert ist, um die entsprechenden Gegenmaßnahmen zu treffen.

 


Gezielte Angriffsmethoden auf Prüfsummen

Entdeckt ein Retrovirus Checksummen-Dateien auf der Festplatte, kann er sich bei vielen Prüfsummenprogrammen eine Schwäche im Funktionsdesign zunutze machen und diese Dateien einfach löschen. Viele Prüfsummenprogramme nehmen nun einfach an, daß sie zum ersten Mal auf diesem Rechner gestartet wurden und erstellen bei diesem Aufruf dann neue Checksummen-Dateien ohne den Anwender darüber vorher in Kenntnis zu setzen. Hat sich nun der Virus bereits im System ausgebreitet, werden die infizierten Dateien einfach mit neuen Checksummen versehen. Weitere Aktivitäten des Virus fallen damit kaum noch oder gar nicht mehr auf. Infizierte Dateien werden mit dieser Maßnahme permanent validiert. Die einzige Abhilfe kann nur sein, daß solche Checksummen-Dateien auf einer Diskette abgespeichert werden, wo sie nicht dem Zugriff durch einen Virus unterliegen. Das Produkt muß bei seinem Aufruf dann diese spezielle Diskette verlangen.

Bei einigen Checksummen-Programmen wird vom Retrovirus die Konfigurationsdatei gelöscht. Damit werden die bereits erstellten Prüfsummen-Dateien wertlos, da beim Konfigurieren des Produkts zufällig eine Methode zum Erstellen der Prüfsummen aus mehreren Methoden ausgewählt wird. Muß das Produkt neu konfiguriert werden, wird automatisch wieder nach dem Zufallsprinzip ein Prüfsummenalgorithmus ausgewählt. Da die bereits bestehenden Pürfsummen-Dateien mit einem anderen Algorithmus berechnet wurden, kann auf diese Prüfsummen-Dateien nicht mehr zurückgegriffen werden. Alle Prüfsummen-Dateien müssen neu berechnet werden. Die einzige Abhilfe stellt das Speichern einer solchen Datei auf Diskette dar. Das Produkt muß bei seinem Aufruf dann diese spezielle Diskette verlangen.

Eine weitere Technik von Checksummen-Programmen ist die berechnete Prüfsumme direkt an das Ende der ausführbaren Datei anzuhängen und dort abzuspeichern anstatt die Prüfsumme in einer entsprechenden Datenbankdatei abzuspeichern. Diese Methode der Prüfsummenspeicherung sollte nicht verwendet werden, da es generell nicht ratsam ist, bestehende Dateien durch ein Programm zu verändern, auch wenn es sich nur um die Speicherung von Prüfsummen handelt. Diese Art der Prüfsummenspeicherung bietet auch Angriffspunkte für Retroviren. Da keine Datenbankdatei existiert, in der gespeichert ist, welche Datei vom Prüfsummenprogramm bereits untersucht wurde, braucht der Virus nur die in der Programmdatei gespeicherte Prüfsumme zu löschen und die Datei zu infizieren.

Beim nächsten Aufruf wird dieses Programm mit einer neuen Prüfsumme versehen und das Prüfsummenprogramm kann keinerlei Warnung an den Anwender geben, daß die Datei verändert wurde.

Einige Pürfsummen-Programme bieten eine Möglichkeit zum Wiederherstellen einer veränderten Datei an. Diese Wiederherstellung basiert auf den vorher abgespeicherten Informationen wie Dateilänge, erstes und letztes Byte sowie die Prüfsumme. Werden diese Werte von einem Virus verändert, ist eine Wiederherstellung einer infizierten Datei nicht nur nicht mehr möglich, sondern führt automatisch auch zur Zerstörung der Datei. Sollten die Werte unverändert im Originalzustand sein, ist trotzdem nicht immer eine Wiederherstellung möglich. Mit zunehmender Komplexität der Änderungen in einer Datei wird die Wahrscheinlichkeit einer einwandfreien Wiederherstellung immer geringer oder gar unmöglich. Gute Produkte sollten im Zweifelsfalle den Anwender über das Risiko informieren und eine Wiederherstellung erst gar nicht zulassen.

 


Angriffsmethoden auf ganze Programmpakete

Mancher Retrovirus löscht das eigentliche Anti-Viren-Programmpaket von der Festplatte. Diese Maßnahme ist allerdings für den Virenprogrammierer nicht unproblematisch, da dem Anwender beim nächsten Aufruf des Anti-Viren-Programms zwangsläufig auffallen wird, daß dieses nicht mehr vorhanden ist. Diese Methode stellt keine große Gefahr dar, da sie sehr schnell entdeckt wird.

Problematischer wird es, wenn der Virus das Anti-Viren-Programm verändert oder ersetzt. So kann ein Virus z.B. die Scan-Strings gezielt oder komplett löschen oder verändern. Der Scanner würde dann zwar nach wie vor seiner offensichtlichen Funktion nachkommen, wäre aber nicht in der Lage, einen Virus zu entdecken.

 


Textmeldungen, Errorlevel und Aufrufparameter

Auch eine Veränderung der Textmeldungen wäre denkbar. Findet der Scanner einen Virus wird statt einer Infektionsmeldung eine Meldung ausgegeben, die dem Anwender erklärt, das System sei virenfrei. Das gleiche wäre auch bei den entsprechenden Errorleveln für die Batch-Programmierung möglich, da in vielen alltäglichen Bereichen Anti-Viren-Programme über eine Batch-Datei aufgerufen werden. Hier würde immer nur das Errorlevel für ein virenfreies System an die Batch-Datei weitergegeben. Gerade die Veränderung der optischen Schnittstelle zum Anwender kann in aller Regel nur sehr schwer entdeckt werden, da das Produkt seine eigentliche Funktion nicht einbüßt, sondern nur veränderte Nachrichten oder Errorlevel ausgibt.

Handelt es sich bei dem Anti-Viren-Produkt um ein Kommandozeilen-Programm, ist es auch gut möglich, daß der Virus die Funktion des Produktes durch eine implementierte Simulation vortäuscht. Auch hier würde der Anwender nichts Verdächtiges bemerken.

Bei speicherresidenten Viren besteht die Möglichkeit, daß der Virus erst abwartet bis das Anti-Viren-Produkt seine Selbstüberprüfung abgeschlossen hat und dann die Datei dahingehend verändert, daß das Anti-Viren-Produkt unwirksam wird. Hat das Produkt seine Anti-Viren-Tests abgeschlossen, wird die Veränderung wieder rückgängig gemacht. Selbst Produkte mit einer Routine zu Eigenüberprüfung sind damit nicht notwendigerweise vor virenbedingten Veränderungen besonders geschützt.

Wird ein Anti-Viren-Produkt vom Virus ersetzt, so kann es sich dann um einen Dropper oder ein Trojanisches Pferd handeln. Beim Dropper würde mit jedem Aufruf der ausführbaren Datei ein Virus in das System entlassen. Problematisch ist hierbei, daß Anti-Viren-Programme und hier vor allen Dingen Scanner nicht in der Lage sind,den Virus in einer Dropper-Datei zu finden, weil diese Datei nicht unmittelbar vom Virus infiziert ist. Handelt es sich um ein Trojanisches Pferd, können mit dem Aufruf schädliche Routinen ausgelöst werden wie z.B. löschen, verschlüsseln oder formatieren der Festplatte.

Viele gute Anti-Viren-Programme speichern eine Kopie des Bootsektors in einer Sicherungsdatei ab. Damit kann gewährleistet werden, daß bei einer Infektion des Bootsektors dieser durch die Kopie wieder in den Originalzustand zurückversetzt werden kann. Problematisch wird es, wenn diese Datei auf der Festplatte gespeichert wird. Hier kann ein Virus diese Sicherungsdatei infizieren. Bei der nächsten Kontrolle des Bootsektors durch das Anti-Viren-Programm wird festgestellt, daß die Sicherungskopie nicht identisch ist mit dem tatsächlichen Bootsektor. Da davon ausgegangen wird, daß der Bootsektor verändert wurde, wird das Anti-Viren-Programm nun vorschlagen, den angeblich veränderten Bootsektor durch die Sicherungskopie zu ersetzen, wobei der Bootsektor dann tatsächlich infiziert wird und diese Infektion nicht durch das Anti-Viren-Programm entdeckt wird. Auch hier ist die einzige Abhilfe das Auslagern der Sicherungsdatei auf eine Diskette.

Auch die üblichen Kommandozeilen-Parameter können sehr hilfreich für einen Retrovirus sein. Wird ein bestimmtes Anti-Viren-Programm aufgerufen, braucht der Retrovirus nur entsprechende Parameter dem Aufruf hinzuzufügen, um z.B. die Speicherüberprüfung abzuschalten oder andere Überprüfungsroutinen zu unterdrücken oder abzuschwächen. Schlimmer noch kann es je nach Funktion mit undokumentierten Parametern sein, da hier der Anwender von der Existenz und der Wirkung solcher Parameter keine Kenntnis hat.

Ähnliche Wirkung kann ein Virus erzielen, wenn er die Konfigurationsdatei des Anti-Viren-Programms zu seinen Gunsten verändert. Es werden damit praktisch die gleichen Resultate erzielt wie mit der Vorgabe bestimmter Kommandozeilen-Parameter. Bei dieser Methode muß die Änderung nur einmal vorgenommen werden. Es sollte deshalb bei Anti-Viren-Produkten darauf geachtet werden, daß diese Konfigurationsdateien verschlüsselt abgespeichert werden und in die Selbstüberprüfung des Produkts mit einbezogen sind.

 


Gepackte Dateien als Versteck

Gepackte ausführbare Dateien können nicht nur für einen Retrovirus Vorteile bedeuten. Es gibt immer noch Anti-Viren-Scanner, die nicht in der Lage sind gepackte EXE-Dateien zu scannen. Da die Technik der gepackten EXE-Dateien immer mehr Verbreitung findet, ist es sinnvoll darauf zu achten, daß das verwendete Programm auch innerhalb gepackter Dateien nach Viren suchen kann.

Retroviren können sich auf unterschiedliche Art und Weise die Tatsache zu nutze machen, daß gewisse Produkte nicht in gepackten Dateien nach Viren suchen können. Die einfachste Art wäre bei der Datei-Infizierung ein Codefragment in die Datei einzubinden, die Scannern anzeigt, daß es sich hierbei um eine angeblich gepackte Datei handelt. Scanner, die gepackte Dateien nicht bearbeiten können, werden diese Datei als gepackt erkennen und nicht weiter untersuchen, obwohl es sich um eine normale ausführbare Datei handelt.

Aber auch Produkte, die in der Lage sind gepackte Dateien auszupacken und dann auf Viren hin zu untersuchen, können angegriffen werden. Zuerst muß das Anti-Viren-Programm erst ermitteln mit welcher Art von Packer die EXE-Datei gepackt wurde und anschließend einige Werte abrufen, um die Datei auch ordnungsgemäß und funktionsfähig auspacken zu können. Wird der Packertyp ermittelt, aber die abgefragten Werte sind irrational und ergeben keinen Sinn, kann es passieren, daß einige Produkte abstürzen. Ein Retrovirus muß also nur den richtigen Packertyp und falsche Werte angeben, um hier einen Erfolg zu erzielen.

Wenn der Virus schon gepackte Dateien infiziert, gibt es eine noch bessere Möglichkeit sich vor dem Zugriff zu verstecken. Zusammen mit der Infektion der ausführbaren Datei versteckt sich der Virus unter einem weiteren Packer-Layer. Hierbei ist die infizierte Datei unmittelbar nach der Infizierung zuerst vom Virus gepackt worden und wird nach Beendigung der Ausführung vom herstellerseitigen Packer wieder komprimiert. Der Effekt, der hier erzielt wird ist das Ausnutzen der Tatsache, daß viele Produkte, die eine gepackte EXE-Datei wieder auspacken können eben immer nur den ersten herstellerseitigen Packer-Layer auspacken und in dem darunter zum Vorschein kommenden Programmcode dann anfangen den Virus zu suchen. Es würde zwar in der Praxis wenig Sinn machen, aber so könnte sich theoretisch ein entsprechend programmierter Retrovirus auch im dritten oder vierten Packer-Layer verstecken.

 


Angriffe auf TSR-Schutzprogramme

Ein TSR-Schutzprogramm im Speicher eines DOS-Rechners anzugreifen ist für einen Virus kein großes Problem. Er nutzt dabei zwei Systemschwächen aus. Die Systemschwäche von DOS selbst, da DOS keinerlei Schutzvorrichtung für benutzte Speicherbereiche hat. Einem Programm ist es damit möglich, ein solches TSR im Speicher aufzuspüren und bereits durch TSR-Programme belegte Speicherbereiche zu manipulieren oder zu überschreiben. Damit erhält der Virus ungehinderten Zugriff auf das im Speicher befindliche TSR-Schutzprogramm.

Die zweite Schwäche ist eine Mischung aus Schwäche des Funktionsdesigns und Schwäche der Programmierung. Viele dieser TSR-Schutzprogramme können mit einem relativ einfachen Befehl oder durch das Verändern einer bestimmten Bytefolge entweder aus dem Speicher entfernt oder aber inaktiv geschaltet werden. Diese Methode ist für einige Produkte sehr einfach und äußert erfolgreich anzuwenden.

Gibt es keinen Befehl zur Inaktivierung des TSR-Schutzprogramms kann das Schutzprogramm durch eine kleine Änderung abgeschaltet werden. Bei einem auf dem Markt weit verbreiteten Produkt reicht es z.B. aus, an einer bestimmten Stelle im Programmcode eine 5 durch eine 0 zu ersetzen und das Produkt ist nicht mehr in der Lage seine Funktion auszuüben.

Ein Virus wäre ebenfalls in der Lage, die Warnmeldungen, die von dem Anti-Viren-TSR an den Anwender ausgegeben werden zu unterdrücken. Damit würde der Anwender trotz Infizierung davon ausgehen, daß sein System virenfrei ist.

 


Geschwindigkeitseinbußen

Ist ein Virus schon nicht in der Lage, ein Anti-Viren-Produkt anzugreifen oder zu umgehen, kann er immer noch versuchen, die Anwendung des Produkts derart zu verlangsamen, daß der Anwender freiwillig auf das Produkt verzichtet. Dies schützt zwar nicht unmittelbar vor Entdeckung, hat aber unmittelbare Auswirkungen auf den ökonomischen Betrieb von Anti-Viren-Schutzmaßnahmen. Geschwindigkeitseinbußen können generell mit Techniken erreicht werden, die für das Anti-Viren-Produkt ein Mehraufwand an Arbeit bedeuten. Man nehme hierfür spezielle Infektionstechniken oder aber sehr umfangreiche Verschlüsselungstechnologien.

Eine solche Art der speziellen Infektionstechnik verwendet der Virus Commander Bomber. Er fügt seinen Viruscode an sehr unterschiedlichen Positionen in das Wirtsprogramm ein, um dann im gesamten Wirtsprogramm ständig weiter verzweigende Befehlsfolgen ohne weitere sinnvolle Funktion zu implementieren. Das hat zur Folge, daß ein Scanner die gesamte Datei scannen muß, um den Virus zu finden und dabei noch von den verzweigenden Befehlsfolgen weiter abgebremst wird.

Wird ein Virus sehr umfangreich und kompliziert verschlüsselt, muß von Seiten des Anti-Viren-Programms mit entsprechend umfangreichen Algorithmen versucht werden, die Verschlüsselung aufzuheben, um dann den Virus zweifelsfrei identifizieren zu können. Auch hier ist mit zunehmender Kompliziertheit der Algorithmen eine starke Geschwindigkeitseinbuße zu erkennen.

 


Heuristische Anti-Viren-Produkte

Da viele gute Anti-Viren-Produkte auch über heuristische Suchroutinen verfügen, ist es nicht verwunderlich, daß versucht wird, diese Routinen gezielt zu umgehen. Dazu wurden in der Vergangenheit die heuristischen Routinen genau untersucht, auf welche Art von Code-Konstruktionen sie reagieren und Alarm auslösen. Es mußte anschließend nur nach neuen Code-Konstruktionen gesucht werden, welche die gleiche Funktion hatten und die alten ersetzen konnten. Anschließend wurden dann im Untergrund Tips veröffentlicht,wie ein Virus programmiert werden sollte, damit eine heuristische Routine keinen Verdacht schöpft und Alarm schlägt. Diese Anti-Heuristic-Programmierung kann überaus erfolgreich sein und ganze Produktpakete, die auf heuristischen Suchroutinen basieren außer Kraft setzen.

 


Wiederherstellung des Systems

Gerade Bootsektor-Viren und multipartite Viren mit Retro-Fähigkeiten können den Wiederherstellungsprozeß eines Systems sehr erschweren. Außerdem können Retroviren Desinfektionsprogramme so angreifen, daß das Desinfektionsprogramm die infizierten Programme zerstört und nicht reinigt oder virenfreie Programme versucht zu reinigen und dabei zerstört. Da für die Wiederherstellung ein virenfreies System benötigt wird, muß der Computer von Diskette gebootet werden. Für Retroviren gibt es hier zwei Ansatzpunkte.

Die Partition und der Bootsektor der Festplatte werden vom Virus verschlüsselt und die Partition in einen anderen Sektor kopiert. Versucht man von einer sauberen Startdiskette aus auf die Festplatte zuzugreifen, erhält man lediglich die Fehlermeldung ”Ungültiges Laufwerk C:”. Der Versuch den Virus mit FDISK/MBR zu entfernen, führt zum Datenverlust auf der Festplatte. Bevor irgendwelche Wiederherstellungsversuche unternommen werden, muß vor geprüft werden, ob man nach einem virenfreien Bootvorgang von Diskette noch Zugriff auf die Festplatte hat!!

Die andere Möglichkeit, eine Wiederherstellung zu verhindern ist eine Veränderung im BIOS des Computers. Wird im BIOS-Setup Laufwerk A: gelöscht, bootet der Computer immer von Laufwerk C:, auch wenn eine Diskette in Laufwerk A: eingelegt ist. Wird der Virus nun beim Bootvorgang von Laufwerk C: aktiviert, trägt er Laufwerk A: im BIOS wieder ein und überprüft gleich, ob eine Diskette eingelegt ist. Ist diese Überprüfung positiv, wird der Bootvorgang von Laufwerk A: weiter fortgesetzt, dem Virus kann nichts mehr passieren, er hat ja bereits die Kontrolle über das System erlangt. Da diese Manipulation des BIOS nicht direkt auffällt, ist sie in der Praxis sehr erfolgreich. Da auch keine unmittelbare Abweichung der Bootreihenfolge erkennbar ist, glaubt der Anwender er hätte nun ein virenfreies System vor sich.

 


Überlisten von Scannern

Um Zeit zu sparen werden mit der werksseitigen Einstellung von Scannern nur ausführbare Dateien auf Viren hin untersucht. Ist der Virus im Speicher present, ist er in der Lage, die Endungen aller ausführbarer Dateien so abzuändern, daß für den Scanner nicht ausführbare Dateien daraus werden. Ein Virus mit entsprechenden Stealth-Techniken kann die Abänderungen vor dem Anwender verbergen, indem er beim Zugriff auf eine ausführbare Datei die Dateiendungen wieder in den Originalzustand versetzt. Das System würde trotzdem einwandfrei weiter funktionieren.

 


Köderdateien

Einige Anti-Viren-Produkte verwenden Köderdateien, um einen Virus nachweisen zu können. Auch bei der Analyse von Computerviren werden Köderdateien verwendet. So werden bei polymorphen Viren oftmals mehr als 10 000 Köderdateien infiziert, um halbwegs testen zu können, ob ein Suchalgorithmus auch alle Mutationen entdeckt.

Mit einigen Tricks kann ein Retrovirus diese Techniken umgehen oder die Anwendung von Köderdateien erschweren. So kann ein Retrovirus so programmiert werden, daß er nur Dateien infiziert, die eine Mindestgröße aufweisen. Wird diese Mindestgröße auf 10kB oder größer gesetzt, wird es in der Praxis problematisch, 10 000 Dateien zu infizieren, da für Generierung von 10 000 Dateien erheblich mehr Zeit und auch Speicherplatz benötigt wird.

Eine weitere Möglichkeit für einen Retrovirus besteht in der Möglichkeit, keine Dateien zu infizieren, die das gleiche Systemdatum haben. Da eine Köderdatei immer das aktuelle Systemdatum trägt, wird sie vom Retrovirus nicht infiziert.

 


Langsame Mutationen

Normale polymorphe Generatoren erstellen mit jeder Kopie eine neue Mutation. Wird die Mutation aber von der Systemzeit oder dem Systemdatum abhängig gemacht, so werden neue Mutationen nur dann generiert, wenn die Systemparameter verändert werden. Dies kann dazu führen, daß bei einer ungenügenden und oberflächlichen Virenanalyse ab einem gewissen Zeitpunkt neue Mutationsstufen vom Anti-Viren-Produkt nicht mehr erkannt werden.

 


Netzwerke und Tools

Retroviren müssen nicht notwendigerweise Anti-Viren-Produkte angreifen. So wäre es z.B. denkbar, einen Retrovirus zu programmieren, der Netzwerksoftware angreift, patched oder Schwächen dieser Software ausnutzt, um das System und das gesamte Netzwerk zu infizieren. Ein solcher Angriffspunkt ist z.B. in der inkorrekten Vergabe von Datei- und Verzeichniszugriffsrechten zu suchen.

Das gleiche gilt für Tools wie z.B. Programme, die einem die Speicherbelegung oder Systeminformationen anzeigen. Hier kann der Virus derart eingreifen, daß trotz eines offensichtlich infizierten Systems von den Tools Werte an den Anwender gemeldet werden, die einem nicht infizierten System gleichen.

 


Produktdesign und integrierte Gegenmaßnahmen

Das Produktdesign ist ein entscheidendes Kriterium für die Sicherheit und die Unangreifbarkeit eines Anti-Viren-Produkts. Wie in diesem Artikel beschrieben, können Retroviren sich einer Vielzahl von Techniken bedienen, um die Funktionsfähigkeit eines Produkts einzuschränken.

Da ein Retrovirus zuerst wissen muß, mit welchen Anti-Viren-Produkten er es auf einem Computer zu tun hat, muß er Routinen zur Aufspürung von Anti-Viren-Produkten besitzen. Um ein Anti-Viren-Produkt in dieser Hinsicht sicherer gegen Retroviren zu machen, muß das Anti-Viren-Produkt Techniken verwenden, die eine Aufspürung durch den Virus erschweren oder unmöglich machen.

Legt ein Anti-Viren-Produkt wie z.B. ein Prüfsummen-Programm Datenbankdateien an, so sollten diese Dateien einen vom Anwender frei definierbaren Namen bekommen. Damit wird die gezielte Suche nach Dateinamen unterbunden. Um eine Veränderung dieser Datenbankdateien zu verhindern, sollten sie mindestens verschlüsselt sein, besser noch ist eine Speicherung auf einer Diskette.

Die ausführbaren Dateien des Anti-Viren-Produkts müssen eine Umbenennung durch den Anwender erlauben. Auch hier wird die gezielte Suche nach Dateinamen unterbunden. Leider ist dies bei vielen Produkten nicht möglich.

Die ausführbaren Dateien des Anti-Viren-Produkts sollten verschlüsselt sein und mit jedem Update sollten andere Schlüssel und/oder andere Verschlüsselungsroutinen verwendet werden. Ebenfalls denkbar wäre eine Produktverschlüsselung mit jeder neu angefertigten Kopie. Diese Technik weist direkte Parallelen mit mutierenden Viren auf. Diese Verschlüsselungsmaßnahmen müssen zwangsläufig auch von der Selbsttestroutine berücksichtigt werden. Mit diesen Maßnahmen soll die Produktidentifikation durch Retroviren erschwert werden, die nicht nach Dateinamen suchen, sondern den Dateiinhalt überprüfen.

Bei Scannern muß die Datenbank, welche die Scan-Strings enthält, verschlüsselt sein. Obwohl diese Schutzmaßnahme schon recht alt ist, gibt es immer noch Produkte, die dieses Schutzmaßnahme noch nicht implementiert haben.

Das Produkt muß über eine Selbstüberprüfungsroutine verfügen. Diese Selbstüberprüfungsroutine darf nicht nur die ausführbare Datei schützen, sondern auch alle anderen zur Funktion des Produkts unerläßlichen Dateien wie z.B. Konfigurationsdateien. Weiterhin darf die Selbstüberprüfungsroutine nicht ausschließlich nur nach virentypischen Veränderungen, die auf eine Infizierung des Produkts hinweisen, suchen. Vielmehr muß diese Routine jede Veränderung am Produkt melden. Das Produkt muß ja nicht infiziert sein. Es kann ja auch, wie bereits beschrieben, von einem Retrovirus gepatched worden sein, um Funktionen abzuschalten usw.

Residente Schutzprogramme sollten ihr Programmcode-Abbild im Hauptspeicher einer Checksummenüberprüfung unterziehen. Nur so kann wenigstens erkannt werden, daß ein Retrovirus den Programmcode im Speicher verändert hat.

Das Anti-Viren-Produkt sollte in seiner internen Programmierung Anti-Debugger-Code enthalten. Dies erschwert zwar das Reverse Engineering des Produkts und bietet in einigen Fällen ausreichend Schutz, kann aber den gezielten Versuch der Produktuntersuchung durch Debugger nicht verhindern.

Es gibt nichts, was ein Anti-Viren-Produkt gegen das Löschen der Produktdateien unternehmen kann, wenn der Virus zuerst im Speicher aktiv geworden ist. Hier gilt, wer zuerst im Speicher aktiv ist, hat die Kontrolle über das System und bestimmt die Regeln.

Viele TSR-Schutzmaßnahmen werden in der CONFIG.SYS eingetragen, damit beim Bootvorgang die TSR-Programme automatisch geladen werden. Mitunter ist diese TSR-Schutzmaßnahme der erste Eintrag in der CONFIG.SYS Datei. Hier ist Vorsicht geboten, wenn das mit MS-DOS mitgelieferte Programm MEMMAKER.EXE zur Optimierung des freien Hauptspeichers eingesetzt wird. Nachdem MEMMAKER seine Arbeit beendet hat, ist es sehr wahrscheinlich, daß die TSR-Schutzmaßnahme nicht mehr als erste Eintragung in der CONFIG.SYS steht und damit auch nicht als erstes geladen wird.

 


Schlußbemerkungen

Die hier vorgestellten Möglichkeiten für einen Retrovirus bestehende Produkte mitunter sehr namhafter Hersteller zu manipulieren und zu sabotieren, sind in einigen Viren bereits zur Realität geworden. Zwar gibt es noch keinen Virus, der alle aufgezählten Maßnahmen in sich vereint und ein solchen Virus wird es wohl auch nie geben, da er viel zu groß werden dürfte, aber auch nur die wirksamsten Maßnahmen in einen Virus implementiert, sind im Alltag bereits gefährlich genug.

Es muß auch bedacht werden, daß ein Anti-Viren-System, welches von einem Retrovirus ausgeschaltet wurde, dann Tür und Tor offen läßt für einfache Viren, die das Produkt auf alle Fälle erkannt hätte.

Es ist keine Frage, daß sich der virenprogrammierende Untergrund weiter mit dem Thema Retroviren befassen wird, ist es doch mit dieser Technik möglich, die Angreifbarkeit verschiedener Anti-Viren-Produkte vorzuführen und damit in einem gewissen Rahmen dem Hersteller und dem Produkt einen Imageverlust zuzufügen. In manchen Fällen hat sich aber leider auch gezeigt, daß dieser Imageverlust berechtigt war, denn obwohl diverse Systemschwächen und Programmierschwächen mehr als ein Jahr im Untergrund bekannt waren und es bereits Viren gab, welche diese Schwächen ausnutzten, wurde das Produkt vom Hersteller nicht abgeändert, um diese Sicherheitslücken zu schließen.

Es muß aber auch gesagt werden, daß es kein Produkt gibt, welches nicht über irgendwelche Schwächen, seien sie auch noch so klein, verfügt. Es sollte zwar vom Hersteller versucht werden, sein Produkt immer weiter zu perfektionieren, das perfekte Produkt jedoch wird es niemals geben.

 


Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Autors unzulässig und strafbar.

Copyright (C) 08/1995 by Howard Fuhs

 

Fuhs Security Consultants
 
Alle Rechte
vorbehalten!

 
 Realisation:
Frank Ziemann
Home Impressum


WebCam
24h WorldTimer PCI DSS Publikationen Digital Publishing EN English
Thema 00
Hier finden Sie Information über Dinge, von denen wir jetzt noch nichts verraten wollen.
Fallbeispiele
Fallbeispiele aus der alltäglichen Datenunsicherheitspraxis.
Neues
Aktuelle Neuigkeiten und Medieninformationen.
Service
Sichern Sie Ihr Unternehmen durch unsere Dienstleistungen und Serviceangebote ab.
Fallbeispiele
Die neue 24h WorldTimer Uhrenserie mit standardisierter astronomischer Zeitangabe nach ISO 8601 für 24-Stunden-Umgebungen
PCI DSS
Dienstleistungen und Serviceangebote rund um den Payment Card Industry Data Security Standard
Publikationen
Fachartikel und Buchmanuskripte von Howard Fuhs.
Digital Publishing
Publikationen von Howard Fuhs auf CD-ROM.
EN English pages
Please find here our English pages for international visitors.
      E-Mail
Sie erreichen uns
per E-Mail unter
  info@fuhs.de
    Realisation
EDV-Beratung
Frank Ziemann
www.fz-net.com
Themen  
Themen
Papers Satellite Hacking
Fachartikel deutsch
Präsentationen
Fachartikel englisch
Bücher von Howard Fuhs
Buchrezensionen
Medienberichte
Datensicherheitsinfos
Sicherheitsinfos
Computerviren und ihre Vermeidung
Information Security Bulletin
Bilder PCBRL
Bilder DCF77
Jokes
Fachartikel deutsch
Deutsche Fachartikel von Howard Fuhs.
Präsentationen
Präsentationen von Howard Fuhs.
Fachartikel englisch
Englische Fachartikel von Howard Fuhs.
Sicherheitsinformationen
Sicherheitsinformationen auch aus Quellen des Computeruntergrunds.
Computerviren und ihre ...
Buchmanuskript von Howard Fuhs über Computerviren, erstmals veröffentlicht 1993.
Jokes
Einfach nur Witze.
Bücher von Howard Fuhs
Buchveröffentlichungen von Howard Fuhs.
Howard Fuhs in den Medien
Medienbericherstattung über Howard Fuhs.
Datensicherheitsinformationen
Allgemeine Datensicherheitsinformationen von Howard Fuhs.
Bilder PCBRL
Technische Bilder von Howard Fuhs für das Printed Circuit Board Research Lab.
Information Security Bulletin
Deutsche Ausgaben des Information Security Bulletin von CHI-Publishing Ltd., UK.
Papers Satellite Hacking
Englische Texte zum Vortrag Satellite Monitoring, Satellite Hacking and Satellite Security
DCF77 Funkuhr
Vintage Gallery - Bilder einer DCF77 Funkuhr von 1972
Buchrezensionen
Howard Fuhs bespricht Fachbücher