--
Scanner -- 
In diesem Abschnitt werden die wichtigsten Verfahren vorgestellt, mit denen
die Hersteller von AV bzw. AT Produkten versuchen, laufzeitkomprimierte oder
verschlüsselte Malware zu erkennen --> siehe "Verschiedene
Erkennungsmethoden".
Im Anschluss untersuchen wir eine Reihe von AV und AT Scannern, um herauszufinden, wie gut sie mit laufzeitkomprimierter bzw. gecrypteter Malware umgehen können --> siehe "Einzelne Scanner", und ziehen ein --> Fazit.
Verschiedene Erkennungsmethoden
In der Regel werden zur Erkennung von laufzeitkomprimierter oder verschlüsselter
Malware folgende (mehr oder weniger gut funktionierenden) Technologien bzw.
Behelfslösungen eingesetzt:
(a) Verwenden zusätzlicher Signaturen für speziell
behandelte Malware,
(b) Verwenden einer Unpacking Engine,
(c) heuristisches Scannen sowie
(d) Scannen im Arbeitsspeicher (RAM).
Die einzelnen Verfahren, die auch kumulativ eingesetzt werden können,
werden nachfolgend kursorisch erklärt. Für eine ausführlichere
Darstellung der Funktionsweise von AV Scannern siehe etwa Jay Munro (http://www.extremetech.com/...),
Markus Schmall (http://online.securityfocus.com/...),
Igor Muttik (http://www.nai.com/...)
oder Katherine Carr (http://www.sophos.com/...).
a) Verwenden zusätzlicher Signaturen für
speziell behandelte Malware
Hersteller von AV/AT Produkten, die über keine (brauchbare) Unpacking Engine verfügen, müssen behelfsweise einen anderen Weg beschreiten, um gepackte oder gecryptete Malware zu erkennen. Solche Hersteller fügen regelmässig die bereits gepackten bzw. gecrypteten Schadprogramme in ihre Signaturdatenbanken ein. Es werden also zusätzliche Signaturen für jede einzelne modifizierte Version eines an sich bereits bekannten Schädlings erstellt. So werden nicht nur die Originalmalware, sondern auch einige Varianten erkannt.
Angesichts der Vielzahl der derzeit verfügbaren Packer und Crypter (und der unterschiedlichen Kompressionsstufen und Einstellungsmöglichkeiten) bei solchen Programmen kann man sich allerdings leicht ausrechnen, dass es quasi unmöglich ist, jeden Schädling in jeder nur erdenklichen gepackten bzw. gecrypteten Form der Signaturdatenbank hinzuzufügen. Dies würde sich auch negativ auf die Geschwindigkeit eines AV/AT Scanners auswirken. Es muss deshalb regelmässig eine sehr begrenzte Auswahl getroffen werden. Dass bei einer solchen Vorgehensweise nur ein unzureichender Schutz zu erwarten ist, liegt auf der Hand, zumal die Verwender von Trojanern genau wissen, mit welchen Packern bzw. Cryptern sie welche AV-Programme austricksen können. Wenn ein AV/AT Scanner über eine spezielle Signatur für relativ viele gepackte bzw. gecryptete Trojaner verfügt, kann es auf den ersten Blick so aussehen, als sei eine funktionierende Unpacking Engine vorhanden. Deshalb ist es wichtig, einen Scanner mit mit mehreren Trojanern (auch mit solchen, die in der Praxis weniger verbreitet sind) zu testen, um der "Wahrheit" auf die Spur zu kommen. Anhand der Scanresultate der Trojan Defense Suite (TDS-3) lässt sich beispielsweise nicht sofort feststellen, ob das Produkt eine (fehlerhaft arbeitende) Unpacking Engine besitzt oder nur sehr viele spezielle Signaturen für laufzeitkomprimierte bzw. verschlüsselte Trojaner erstellt wurden. Letzteres ist der Fall.
Im allgemeinen fallen die Erkennungsraten der von uns getesteten Scanner ohne Unpacking Engine deutlich ab im Vergleich zu den Scanleistungen der Produkte mit Unpacking Engine (siehe sogleich).
b) Verwenden einer Unpacking Engine
Durch eine Unpacking Engine kann das Problem umgangen werden, separate Signaturen
für jede einzelne Variante eines verschlüsselten oder gepackten
Schadprogammes erstellen zu müssen. Da die Unpacking Engine ein verdächtiges
Programm zunächst entpackt bzw. entschlüsselt und erst anschliessend
der Signaturvergleich durchgeführt wird, bedarf es in der Regel nur einer
Signatur pro Malwareexemplar. (Mehrere Signaturen oder alternative Erkennungstechnologien
können u.U. für sich verändernde Malware erforderlich sein.
Insbesondere Viren und Würmer sind häufig polymorph. Es existieren
aber auch polymorphe Trojaner wie etwa MoSucker 3.0). Soweit eine Unpacking
Engine einzelne Packer oder Crypter nicht unterstützt, kann hilfsweise
auf die unter a) genannte Behelfslösung zurückgegriffen werden.
Eine Unpacking Engine kann so programmiert werden, dass sie Routinen zum Entpacken oder Entschlüsseln bestimmter Packer bzw. Crypter enthält. Schwierigkeiten kann es hierbei bereiten, den Typ des verwendeten Packers oder Crypters zu bestimmen. Eine mit UPX gepackte Datei enthält beispielsweise im Dateiheader Informationen über die Art des verwendeten Packers. Diese Informationen lassen sich aber mit einem Hexeditor leicht verfälschen. Ein Scanner mit einer "guten" Unpacking Engine kann eine auf diese Weise manipulierte Datei dennoch entpacken. Aus diesem Grund haben wir stichprobenweise auch mit gepackten Trojanern getestet, deren Dateiheader nachträglich "gefälscht" wurde.
Einige Unpacking Engines enthalten nicht nur spezielle Routinen zum Entpacken bestimmter Packer oder Crypter (passives Disassemblieren), sondern verwenden eine sog. aktive "Emulation". Die Emulation führt den Code einer verdächtigen Datei (einschliesslich der im Code enthaltenen Routinen zum Entpacken bzw. Entschlüsseln) innerhalb einer virtuellen Umgebung aus und analysiert ihn dabei. Das Verwenden einer Emulation ist recht effektiv, da auf diese Weise auch manche (aber nicht alle) "unbekannten" Packer oder Crypter entpackt werden können. Andererseits ist das Verwenden einer Emulation zeitaufwendig und technisch anspruchsvoll. Dies gilt insbesondere dann, wenn ein Scanner nach Signaturen im Wege des --> "single-point scanning" sucht.
Im Ergebnis konnte keines der von uns untersuchten Produkte, die eine Unpacking Engine enthalten, sämtliche Packer und Crypter "durchleuchten". Im Gegensatz zu denjenigen Scannern, die ohne Unpacking Engine auskommen müssen, konnten aber eine deutlich grössere Zahl von gepackten und gecrypteten Schädlingen beim Dateiscan erkannt werden. Daraus folgt unseres Erachtens, dass Produkte mit Unpacking Engine ein in der Praxis nicht zu unterschätzendes Plus an Sicherheit gewährleisten.
(Für weiterführende Informationen siehe auch "Sandbox
Technology Inside AV Scanners" von Kurt Natvig, Norman.)
Beim heuristischen Scannen einer Datei wird deren Code analysiert und nach bestimmten verdächtigen Merkmalen durchsucht. Viren neigen etwa typischerweise dazu, andere ausführbare Dateien zu öffnen, um sie zu infizieren. Führt eine Datei innerhalb kurzer Zeit eine Vielzahl solcher Dateioperationen durch (Öffnen von ausführbaren Dateien nebst anschliessenden Schreiboperationen), liegt der Verdacht nahe, dass es sich um Malware handelt. Moderne Heuristiken verfügen insoweit über eine Vielzahl von ausgefeilten Erkennungsmechanismen. Wenn eine Heuristik genügend Verdachtsmomente ermittelt hat, schlägt der Scanner an und gibt Alarm.
Der grosse Vorteil einer Heuristik besteht in der Theorie darin, dass Malware selbst dann als solche identifiziert werden kann, wenn es beim Signaturscan kein "Treffer" erzielt werden kann. Der grösste Nachteil einer Heuristik besteht in der Praxis darin, dass es relativ leicht zu Fehlalarmen kommen kann. Ausserdem kann Malware, die nur durch eine Heuristik erkannt (also nicht exakt identifiziert) wird, nicht automatisch und zielgenau durch den AT/AV Scanner entfernt werden. Der Anwender weiss dann zwar, dass er infiziert ist, muss die Desinfektion des Rechners aber (halb)manuell vornehmen. Unerfahrene Anwender werden hiermit regelmässig überfordert sein.
Heuristiken können nicht nur bei "On-Access-Scannern", d.h. im Rahmen einer permanenten Überwachung durch einen sog. speicherresidenten Viruswächter, sondern auch beim "On-Demand-Scanning" eingesetzt werden. Letzteres macht aber regelmässig nur dann Sinn, wenn der On-Demand-Scanner gleichzeitig über eine aktive Unpacking Engine (Emulation) verfügt.
In der Regel ist die heuristische Erkennung von Trojanern deutlich schwieriger als die heuristische Erkennung von Viren oder Würmen zu bewerkstelligen. Daher kommt der heuristischen Identifizierung von Trojanern in der Praxis noch keine sehr hohe Bedeutung zu.
Die Produkte TrojanHunter 3.5 sowie Trojan Defence Suite 3 verfügen insoweit über eine besonders fortschrittliche Heuristik. Bei unseren Tests gelang es diesen AT Scannern in Einzelfällen, gepackte Trojaner als "unbekannte" Malware zu identifizeren, obwohl die Trojaner beim normalen Signaturscan nicht erkannt wurden.
Im Ergebnis sind wir der Meinung, dass eine Heuristik eine Unpacking Engine nur sinnvoll ergänzen, nicht jedoch ersetzen kann.
(Für weiterführende Informationen siehe auch "Understanding Heuristics" von Symantec.)
Einige AT Scanner, die (bislang) über keine Unpacking Engine verfügen,
verfolgen einen alternativen Ansatz, um gepackte bzw. gecryptete Trojaner
zu erkennen. So scannen beispielsweise "TrojanHunter" von Mischel
Internet Security sowie die "Trojan Defence Suite" (TDS) von DiamondCS
auch im Arbeitsspeicher des Computers nach Trojanern. Dies hat den Vorteil,
dass (in der Regel) selbst gepackte bzw. gecryptete Trojaner erkannt werden,
die beim vorherigen Dateiscan unbemerkt geblieben sind.
Hintergrund: Gepackte und gecryptete Trojaner werden beim Ausführen
der Datei (normalerweise) in entpackter bzw. entschlüsselter Form in
den Arbeitsspeicher geladen und können aus diesem Grund im RAM einfacher
erkannt werden. Probleme beim RAM Scan können allerdings moderne
Trojaner bereiten, die auf dem Prinzip der sog. "dll Injektion" basieren.
Solche Trojaner werden nur erkannt, wenn im RAM nicht nur nach ausführbaren
Programmen, sondern auch nach Routinen in Form von dynamic link libraries
gescannt wird.
Der Nachteil der Technologie des Scannens im RAM besteht darin, dass ein
Trojaner erst dann im Arbeitsspeicher erkannt werden kann, wenn er bereits
ausgeführt
wurde. Dementsprechend kann eine Schadwirkung bereits eingetreten sein. Dies
beinhaltet
im Grundsatz
auch das Unbrauchbarmachen des AV/AT Scanners. Aus diesem Grund stellt das
Scannen im Arbeitsspeicher zwar eine sinnvolle Ergänzung dar, kann
eine gute Unpacking Engine aber nicht ersetzen.
Bei den beiden o.g. Scanner, die über keine Unpacking Engine verfügen
und stattdessen im RAM scannen, handelt es sich um spezielle AT Scanner. Sie
sind somit lediglich als Zweitscanner zu empfehlen.
(Für weiterführenden Informationen siehe auch "Memory
Scanning Under Windows NT" von Péter Ször, Symantec.)
Einzelne
Scanner
Update: Achtung -- Viele der nachfolgenden Untersuchungsergebnisse sind veraltet bzw. durch neuere Entwicklungen in der Malwareszene überholt. Aktuellere und aussagekräftigere Scan Logs befinden sich im Forum.
Nachfolgende AV/AT Scanner haben wir uns angesehen, um herauszufinden, ob
sie über eine brauchbare Unpacking Engine verfügen oder nicht. Wir
ausserdem versucht festzustellen, ob sich die theoretischen Vorteile einer
Unpacking Engine beim Erkennen von laufzeitkomprimierter bzw. verschlüsselter
Malware auch in der Praxis bewahrheiten. (Soweit sich darüberhinaus weitere
Auffälligkeiten in bezug auf einzelne AV/AT Produkte ergeben haben, lassen
wir diese nicht unerwähnt.) Sie können sich die Einzelergebnisse
im Detail anschauen, wenn Sie auf den zum jeweiligen Scanner zugehörigen
Link klicken.
Wir konnten eine brauchbare Unpacking Engine feststellen bei den Produkten:
AntiVirenKit 12 Professional
BitDefender
Dr. Web
Kaspersky Antivirus (KAV)
F-Secure Anti-Virus
McAfee VirusScan
RAV Antivirus
(Zur Kaspersky Scan Engine: Es gibt eine Reihe weiterer Scanner, die ebenfalls
die Kaspersky-Technologie einsetzen. So etwa "AntiVirus 2" von CDV
Software, "PowerAntiVirus XP" von G Data sowie "AntiVirus 5"
von Steganos. Wir haben uns die Produkte noch nicht angeschaut, erwarten aber,
dass ihre Scanleistungen in etwa mit denen von Kaspersky Antivirus und F-Secure
Anti-Virus vergleichbar sind.)
Bei anderen Produkten ist es uns dagegen nicht gelungen, eine brauchbare
Unpacking Engine festzustellen:
AntiVir PE
Anti-Trojan
Avast! Antivirus
AVG Anti-Virus
BOClean (Hinweis: Unterstützt stattdessen das Scannen im RAM.)
F-Prot
NOD32
Norman Virus Control
Norton AntiVirus 2003 (NAV)
Panda Antivirus
PC-cillin 2002
Pestpatrol 4
Sophos Anti-Virus
TrojanHunter (Hinweis: Unterstützt
stattdessen alternative Scantechniken sowie das Scannen im RAM)
Trojan Defence Suite/TDS-3 (Hinweis: Unterstützt
stattdessen alternative Scantechniken sowie das Scannen im RAM)
Trojan Remover
Vet Anti-Virus
Hinweis: Die Einzelergebnisse
müssen richtig interpretiert werden. Es wurden nicht mit jedem Packer
bzw. Crypter die gleiche Zahl von Schädlingen komprimiert bzw. verschlüsselt.
Es geht im Grundsatz nicht darum zu ermitteln, welcher Scanner die grössere
Zahl von Schädlingen erkennt. Vielmehr soll festgestellt werden,
ob ein Scanner verschiedene Packer und Crypter "durchleuchten" kann
und weiterhin, ob der Scanner sog. "harte" (sichere) oder "weiche" (unsichere)
Signaturen verwendet. Siehe zum Ganzen: "Wie
wurde getestet?".
Viele Hersteller von AV/AT Software haben es bislang nicht für notwendig
erachtet (oder waren nicht in der Lage), eine brauchbare Unpacking Engine
für ihr Produkt zu entwickeln. Die Sicherheit der zahlenden Kunden bleibt
in solchen Fällen auf der Strecke, zumindest im Bereich der Erkennung
von Trojanern. Einige wenige Hersteller bemühen sich dagegen ernsthaft,
eine funktionsfähige Unpacking Engine zu entwickeln oder haben dies bereits
getan. Besonderes zu loben sind insoweit - in alphabetischer Reihenfolge -
Dr. Web, Kaspersky, McAfee sowie RAV.
Bitte beachten Sie, dass es sich bei unserer Untersuchung nicht um einen AV/AT Test im eigentlichen Sinne handelt. Wenn ein AV/AT Scanner eine Unpacking Engine besitzt, muss es sich hierbei nicht zwangsläufig um ein insgesamt gutes Produkt handeln. Ein guter AV/AT Scanner zeichnet sich auch durch einen akzeptablen Resourcenverbrauch, eine umfangreiche Signaturdatenbank sowie häufige Signaturupdates, eine intuitive und benutzerfreundliche Bedienung, verlässliche Erkennungsraten (sowohl beim "On-Demand-Scanning" wie auch beim "On-Access-Scanning"), eine gute heuristische Erkennung von noch unbekannten Viren (soweit es sich um einen AV Scanner handelt), eine geringe Zahl von Fehlalarmen uvm. aus. Entsprechende Tests haben wir grundsätzlich nicht! durchgeführt.
Aus diesem Grund lässt sich aus unserer Untersuchung lediglich ein
Umkehrschluss ziehen: Ein AV/AT Produkt, welches nicht über eine Unpacking
Engine (und auch über keine vergleichbar wirkungsvolle Technologie)
verfügt,
lässt sich unseres Erachtens allenfalls als Virenscanner, nicht aber
als Trojanerscanner empfehlen. Dies hat folgenden Grund. Trojaner werden
nicht
nur ausnahmsweise, sondern regelmässig mit Packern oder Cryptern behandelt
und werden dann oft monatelang nicht entdeckt. Ein Scanner ohne Unpacking
Engine bietet daher grundsätzlich keinen ausreichenden Schutz. Sonstige
Malware (Viren und Würmer) kann zwar ebenfalls laufzeitkomprimiert
und/oder verschlüsselt werden. Da sich Viren und Würmer jedoch
per definitionem auf eine Vielzahl von Computern verbreiten, werden sie
relativ
schnell bemerkt (nachdem sie eine mehr oder weniger grosse Zahl von Personen
geschädigt haben). Es ist deshalb in der Regel möglich, halbwegs
zeitnah auf neue Viren oder Würmer (oder neue Varianten derselben)
mit einem Signaturupdate zu reagieren. Ausserdem lassen sich Viren und
Würmer
einfacher als Trojaner durch eine Scan-Heuristik erkennen.
