computerviren-info.de

- Was Sie über Computerviren wissen sollten -

Die Kapitel

Vorwort

Was ist ein Computervirus?

Eine kurze Geschichte der Viren

Vorbeugen ist besser

Was könnte auf einen Virenbefall hindeuten?

Der Virenscanner hat einen Virus gefunden - was ist zu tun?

Wie arbeitet ein Virenscanner?

Welcher Virenscanner ist der beste?

Wer schreibt oder verbreitet eigentlich Viren?

Wollten Sie schon immer mal einen Virus selber schreiben?

Links zu Viruslisten

Was sagt das Gesetz zum Thema Computerviren?

Andere Schadprogramme

Die Top Ten / Statistik

Virenscanner - und mehr

Allgemeine Tipps zum Thema Computersicherheit

Eine Aufstellung nützlicher Programme

Weiterführende Links

Glossar

Impressum und Haftungsausschluss



datenschutzzentrum.de


bsi


XHTML 1.0
CSS
WDG

Wie arbeitet ein Virenscanner?


Ein Virenscanner besteht aus zwei Hauptkomponenten, dem "On-Demand-Scanner" (der eigentlichen Virensuchmaschine) und dem "On-Access-Scanner" (dem Hintergrundwächter). Im Freeware-Bereich gibt es auch reine On-Demand-Scanner, die aber nur als Zweitscanner gedacht sind. Es gibt im wesentlichen zwei Suchmethoden: Die Suche nach virentypischem Code und das Aufspüren von virentypischen Aktionen. Doch gehen wir mehr ins Detail:

Bevor die ersten polymorphen Viren auftauchten, suchten Virenscanner nur nach Bytefolgen (Signaturen), die in bereits bekannten Viren enthalten waren oder die allgemein für Viren typisch sind (statische Suche).

Da polymorphe Viren ihren Code ständig verändern, und zudem heute kaum noch ein Virus unverschlüsselt auftaucht, reicht diese Suchmethode nicht mehr aus. "Moderne" Viren werden mit teilweise hochkomplexen Verschlüsselungsroutinen ausgestattet.

Nun kann der Scanner nicht jedes mal Alarm geben, wenn er auf eine verschlüsselte Datei trifft. Auch harmlose Dateien und Programme werden aus unterschiedlichen Gründen verschlüsselt. Um zu sehen, was sich in der Datei verbirgt, muss er die Verschlüsselung auflösen.

In nur wenigen Fällen kann der Scanner sowohl den verwendeten Verschlüsselungsalgorithmus als auch den Schlüssel selbst aus dem Quellcode herauslesen. Das Glück, auf einen so "schlampig" programmierten Virus zu treffen, ist selten. Was also tun?

Jetzt bleibt nichts weiter, als das verdächtige Programm zu starten. Sie haben richtig gelesen: Der Virenscanner aktiviert jetzt möglicherweise einen Virus!

Um keinen Schaden anzurichten, generiert der Scanner innerhalb eines streng abgeschotteten Bereiches eine Umgebung, unter der der potentielle Virus aktiv werden kann. Während der "Virus" seine Entschlüsselungsroutine startet, wird er vom Scanner wie in einem Laborglas "beobachtet". Sobald die Entschlüsselung abgeschlossen ist, kann der Scanner die bisher verborgene Signatur erkennen und wieder nach der Vergleichsmethode entscheiden, ob es sich tatsächlich um einen Virus handelt, oder um eine harmlose Datei.

Es ist klar, dass dies sehr rechenintensive Operationen sind. Allein das Emulieren der Umgebungskonstanten für den Virus ist enorm aufwendig (jetzt sollte auch verständlich werden, warum ein kompletter Scan eben seine Zeit braucht).

Vergleichbaren Aufwand muss der Scanner bei laufzeitkomprimierten Dateien und Programmen treiben. Es handelt sich dabei um Programme und Dateien, die in komprimiertem Zustand direkt ausführbar sind. Sie müssen vor der Analyse entpackt werden.

Spätestens hier trennt sich bei den Virenscannern die Spreu vom Weizen. Es gibt Scanner, die diese Arbeit besser als andere beherrschen. Virenscanner, die über keine oder nur eine marginale "unpacking Engine" verfügen, geben an dieser Stelle auf, und die Meldung aus (sinngemäß): "Datei XY konnte nicht geöffnet werden", oder verschweigen sogar, dass ein Teil der Daten gar nicht geprüft wurde.

Die Hersteller dieser Scanner (überwiegend - aber nicht nur - aus dem Freeware-Bereich), versuchen das Manko auszugleichen, indem die Signaturen von gepackten Schädlingen in die Vergleichsliste aufgenommen werden. Bei der Vielzahl der Varianten, der verschiedenen Packer und den unterschiedlichen Kompressionsstufen sowie der rasanten Verbreitungsgeschwindigkeit ist und bleibt das eine Hilfskonstruktion. Scanner mit einer guten "unpacking engine" kommen in entsprechenden Testberichten regelmäßig auf höhere Erkennungsraten.

Ein Wort noch zu den Signaturen: Bei über 100.000 bekannten Viren macht es wenig Sinn, die Signatur von jedem einzelnen Virus komplett in die "Vergleichsliste" aufzunehmen. Darum wird nur ein Teil, der typisch für eine "Virenfamilie" ist, und in jedem Ableger dieser Gruppe vorkommt, in die Liste aufgenommen. Das beschleunigt den Scannvorgang.

Wie aber geht es weiter, wenn ein neuer Virus auftaucht, dessen Signatur noch unbekannt ist? Auch dagegen ist der Scanner keinesfalls machtlos.

Durch Zuschalten der sog. "Heuristik" werden die Suchroutinen "verallgemeinert" und es wird nicht mehr ausschließlich nach Bytefolgen gesucht, sondern dem besonderen, virentypischen "Verhalten". Ein Virus hängt sich an ein Wirtsprogramm an, manipuliert den Bootsektor, verändert Makros u.a. Findet die Heuristik des Scanners Code-Fragmente, die diese Aktionen durchführen können, wird der Scanner Alarm geben - auch wenn keine Signaturübereinstimmung gefunden wurde. Das dabei der eine oder andere Fehlalarm produziert wird, ist das unvermeidliche Risiko jeder heuristischen Suche. Und so zeichnet sich ein wirklich guter Virenscanner u.a. eben auch durch extrem wenige Fehlalarme ("False Positives") aus.

"Ernsthafte" Virenprogrammierer kennen die Vorgehensweise der verschiedenen Scanner bis ins Detail. Sie versuchen immer wieder, ihren Virus so anzupassen, dass er nicht erkannt wird. Längst gibt es Viren, die gezielt Anti-Viren-Software angreifen, um sie entweder zu deaktivieren oder aber ihre Scanndateien zu manipulieren. Wie man seinen Virus modifizieren muss, um ihn für diesen oder jenen Scanner unsichtbar zu machen, wird hier natürlich nicht verraten :-)

Den Herstellern von Anti-Viren-Software wird die Arbeit also nicht so schnell ausgehen.



Aktualisiert am 07.09.2005