home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip Hitware 6
/
Chip_Hitware_Vol_06.iso
/
chiphit6
/
_virus
/
suspic
/
ssc.doc
< prev
next >
Wrap
Text File
|
1996-07-10
|
60KB
|
1,214 lines
┌───────────────────────────────────────────────────────────────────────────┐
│ │
│ - S S C - │
│ │
│ HEURISTISCHE VIRENERKENNUNG UND ANALYSE │
│ │
│ │
│ Teil des Antiviren-Programmpakets SUSPICIOUS │
│ │
│ (c) 1996 Stefan Kurtzhals │
│ │
└───────────────────────────────────────────────────────────────────────────┘
[ Systemvoraussetzungen ]────────────────────────────────────────────────────
■ 80286 oder 100% kompatibel
■ MS-DOS 5.0-7.0 oder 100% kompatibel
■ ca. 300K freier konventioneller DOS-Speicher
[ Einleitung ]───────────────────────────────────────────────────────────────
SSC oder SUSPICIOUS SCAN ist ein Programm, das im allgemeinen als Viren-
scanner bezeichnet wird. Im Gegensatz zu normalen Virenscannern ist SSC
jedoch rein heuristisch. Diese Art der Erkennungsmethode setzt sich als
Alternative oder Zusatz zum normalen Scanning immer mehr durch, da die
ständig steigende Zahl neuer Viren ein normales Scanning immer zeitauf-
wendiger macht und immense Ressourcen benötigt.
Viele Virenscanner bieten heutzutage eine mehr oder weniger weit ent-
wickelte Heuristik an, SSC arbeitet jedoch rein heuristisch und besitzt
eine weitaus ausgefeiltere Erkennung und Analyse als die herkömmlichen
Programme dieser Art.
Natürlich hat auch die heuristische Virenerkennung Nachteile. Zum ersten
ist sie natürlich nicht hundertprozentig (Scannen übrigens auch nicht).
Es ist möglich, daß Viren komplett übersehen (False Negative) oder
normale Programme fälschlicherweise als Virus erkannt werden (False
Positive). Andrerseits bietet Heuristik einige wesentliche Vorteile
gegenüber dem normalen Virenscanning. SSC ist in der Lage, bekannte wie
unbekannte Viren zu finden. Es ist völlig egal, ob der Virus 'steinalt',
nur eine Variante oder Mutation eines bekannten Virus oder gar brand-
aktuell ist. Viren benutzen immer ähnliche, oft sogar identische Struk-
turen, was abhängig von der Kreativität des Virenprogrammierers ist.
Daran kann SSC Viren letztendlich erkennen. Problematisch wird es, wenn
ein normales Programm eine große Anzahl von virentypischen Merkmalen
enthält. Das kann vorkommen, vor allem bei Programmen mit 'unsauberem'
Stil und SSC ist leider nicht immer in der Lage, alleine festzustellen,
was ein Falschalarm ist und was nicht.
SSC fordert also ein gewisses Maß an Systemerfahrung und kann nicht wie
ein x-beliebiger Virenscanner eingesetzt werden. Überhaupt ist SSC nicht
als kompletter Ersatz für herkömmliche Virenscanner gedacht, sondern mehr
zur Virenanalyse. Sie sollten SSC parallel zu einen normalen Virenscanner
einsetzen, der stets auf dem aktuellsten Stand gehalten werden sollte.
SSC ist in der Lage, eine sehr umfangreiche Virenanalyse zu liefern, oft
genauso detailreich, wie es ein Virenforscher mit Debugger selber nicht
besser machen könnte. Perfekt ist die Analyse natürlich auch nicht immer:
Wenn der Virus z.B. einige ungewöhnliche Tricks benutzt, kann SSC dies
möglicherweise nicht erkennen. Eine Garantie, daß der Virus genau das
macht, was SSC analysiert hat bzw. NUR dieses macht, kann nicht gegeben
werden. In der Regel sind Viren aber so primitiv programmiert, daß die
Analyse von SSC als Virenbeschreibung vollkommen ausreicht.
[ Wie gut / sicher ist die Erkennung von SSC? ]──────────────────────────────
Da SSC sich ausschließlich auf seine Heuristik verlassen muß, ist diese
entsprechend hoch entwickelt. SSC findet zum Teil weitaus mehr Viren,
als einige der gängigen Antivirenprogramme, hat aber auch Schwachstellen:
■ Es kann in den wenigsten Fällen komplex polymorphe Viren ent-
schlüsseln und deshalb auch nicht analysieren und erkennen.
SSC simuliert zwar eine große Anzahl von CPU-Befehlen, allerdings
reicht dies nicht aus, um komplexere Verschlüsselungen korrekt
zu simulieren. Die meisten verbreiteten Viren sind jedoch bei
weitem nicht so komplex und werden ohne Probleme erkannt.
Es sei nochmal darauf hingewiesen, daß ein Virus, der von SSC
nicht erkannt wird, in der Regel von SVS und bzw. oder SCRC ohne
Probleme gefunden bzw. blockiert werden kann. Da bis auf sehr
wenige Ausnahmen alle residenten verschlüsselten Viren im Speicher
nicht mehr kodiert sind, hat MEMCHK gegenüber SSC keine Schwierig-
keiten, diese Viren zu erkennen.
■ Viren, die in Hochsprachen wie C oder Pascal programmiert wurden
(HLL-Viren), enthalten keine typischen Codefolgen und können daher
absolut nicht mit einer Heuristik erkannt werden. Da ohne Assembler
einem Virus weitaus weniger Möglichkeiten zur Verfügung stehen, sind
solche Viren nicht weit verbreitet. Insbesondere SVS und SCRC haben
keine Probleme mit solchen Viren, da diese keinerlei Tarnmöglich-
keiten zur Verfügung haben.
■ SSC überprüft normale DOS-Programme, also Programme mit COM, EXE und
SYS-Struktur. Neuere EXE-Formate wie NE/PE/LE/LX-EXE (Win,Win32,OS/2)
werden nicht vollständig überprüft und "echte" Windows-Viren somit
nicht erkannt. Die bisher bekannten ca. 10 Windows-Viren sind aller-
dings entweder technisch sehr primitiv oder fehleranfällig und zudem
reine Laborviren. Die Bedeutung der Windows-Viren wird aber in
Zukunft stärker zunehmen, da den Virenprogrammierern seit dem Virus
VLAD.WinSurfer die notwendigen Techniken bekannt sind.
Ebenfalls werden von SSC keine Makro-Viren wie etwa <Concept>
erkannt, allerdings gibt es dafür ein weiteres Antiviren-Programm,
F/WIN, das per Heuristik bekannte und unbekannte Makro-Viren, NE-EXE
und PE-EXE Viren finden und entfernen kann.
■ Mit PKLITE, DIET und LZEXE sowie anderen Programmpackern komprimierte
Dateien können nur -extern- auf Virenbefall überprüft werden. Oft
werden aber Viren versteckt, indem die infizierte Datei nachträglich
gepackt wird. Es wird empfohlen, neue Programme in ein temporäres
Verzeichnis zu kopieren und dort mit Tools wie UNP vor dem Scannen
zu dekomprimieren. SVS blockiert Viren unabhängig davon, ob sie durch
diese Methode versteckt sind oder nicht.
Es sei nochmal darauf hingewiesen, daß SSC keinen herkömmlichen Viren-
scanner ersetzen kann! Neue Programme sollten immer mit mindestens
zwei verschiedenen Virenscannern überprüft werden.
[ Die Bedienung von SSC ]────────────────────────────────────────────────────
Prinzipiell benötigt SSC keine weiteren Parameter als die Suchpfad-
angabe. SSC startet dann die Dateiüberprüfung und hält erst an, wenn
ein verdächtiges Programm gefunden wurde.
!! ■ Im unteren Anzeigefenster erscheinen dann die Ergebnisse der Heuristik.
!! ■ Sie können mit den [Pfeiltasten], [Bild], [Bild], [Pos1] und [Ende]
!! ■ durch den Text blättern. Mit der [Leertaste] oder der [Eingabetaste]
!! ■ wird die Suche fortgesetzt.
SSC wird über die Kommandozeile aufgerufen und kann mit folgenden Para-
metern konfiguriert werden:
SSC Laufwerk:\Pfad {/Parameter}
Parameter:
~~~~~~~~~~
"/BATCH" - SSC arbeitet im Batchmodus und wartet bei verdächtigen
Programmen nicht mehr auf Benutzereingaben.
Es wird keine Aktion durchgeführt, also kein auto-
matisches Umbenennen oder Löschen, was mit einem rein
heuristischen Scanner auch nicht sinnvoll wäre.
"/DETAIL=n" - Reportlevel : 0=Kurz 1=Normal 2=Komplett 3=Analyse.
Mit diesem Parameter wird eingestellt, wieviele Infor-
mationen SSC in dem Logfile speichert. Stufe 0 erzeugt
eine sehr kurze Liste mit minimalen Angaben von Ergeb-
nissen der Heuristik. Stufe 2 beinhaltet absolut alle
Informationen und Erklärungen, die SSC feststellen
konnte. Stufe 3 ähnelt Stufe 2, nur ist das Ausgabe-
format etwas verändert.
"/FALSE" - Anzeige von wahrscheinlichen Falschalarmen.
Bei manchen Programmen kann SSC selber erkennen, daß es
sich bei der Meldung nur um einen Falschalarm handeln
kann. Wenn Sie dennoch über die Falschalarme informiert
werden möchten, können Sie mit diesem Parameter deren
Anzeige erzwingen.
"/FAST" - Schnellere, ungenaue Suche (ohne erweiterte Heuristik).
SSC erkennt in diesem Modus ca. 30% weniger Viren, ist
aber dafür wesentlich schneller als im Standard-Modus.
"/LEVEL=n" - Heuristiklevel: 0=Grob 1=Normal (Standard) 2=Hoch.
"/LISTALL" - Im Report werden alle durchsuchten Dateien aufgelistet,
auch diejenigen, die nicht verdächtig sind.
"/NOMEM" - Es wird keine heuristische Speichersuche durchgeführt.
"/NOSECTOR" - Kein Test von Partitionen oder Bootsektoren.
"/NOSUB" - Unterverzeichnisse werden nicht durchsucht.
"/PAUSE" - SSC hält den Suchlauf an, falls das Anzeigefenster voll
ist und gescrollt werden muß.
"/PROG" - Nur Dateien mit Programmerweiterungen durchsuchen.
Normalerweise überprüft SSC unabhängig von der Datei-
endung, ob es sich bei einer Datei um ein Programm oder
um reine Daten handelt. Wollen Sie den Suchlauf be-
schleunigen, können Sie mit "/PROG" SSC dazu veran-
lassen, nur noch Dateien mit Dateiendungen von Pro-
grammen wie etwa "COM" oder "EXE" zu durchsuchen.
"/REPORT{=..}" - Ein Report der Suche wird unter dem angegebenen Namen
erstellt (Nur in der Vollversion möglich).
"/SUMMARY" - SSC fügt eine Übersicht der Erkennungsmeldungen am Ende
des Reports ein.
"/WARN" - SSC gibt ein akustisches Signal bei jedem gefundenen
verdächtigen Programm aus.
(In der Shareware-Version nicht abschaltbar).
Errorlevel:
~~~~~~~~~~~
SSC gibt folgende Werte als Errorlevel zurück:
0 - Das Programm wurde normal beendet, es wurden keine Viren gefunden.
255 - Es wurden verdächtige oder infizierte Programme gefunden.
Alle anderen Errorlevel weisen auf ein Problem mit SSC selbst hin.
[ Die Anzeige von SSC ]──────────────────────────────────────────────────────
Der Bildschirmaufbau ist wie folgt eingeteilt:
┌──────────────────┐┌───┐
│ ││ │ [A] : Dateifenster
│ A ││ C │
│ ││ │ [B] : Analysefenster
└──────────────────┘└───┘
┌───────────────────────┐ [C] : Übersicht
│ B │
└───────────────────────┘
Im Dateifenster zeigt SSC die durchsuchten Programme und Kurz-
informationen der Heuristik an, im Analysefenster werden die kompletten
Ergebnisse angezeigt (Hinweis: Es wird stets nur ein Ausschnitt gezeigt!)
und die Übersicht gibt eine Zusammenfassung darüber, wieviele Dateien
durchsucht wurden, wieviel Zeit benötigt wurde usw.
Hat SSC ein verdächtiges Programm gefunden, hält es an und stellt die ge-
fundenen Informationen dar. Im Dateifenster sieht die Bildschirmausgabe
etwa so aus:
┌─Dateifenster:────────────────────────────────────────┐
│ │
│ PARTITION HD0-> ok │
│ BOOTSEKTOR C:-> ok │
│ │
│ C:\VIRUS\ : │
│ │
│ TEST .EXE -> ok (05%) Ao │
│ VIRUS .ASM -> -- │
│ VIRUS .OBJ -> -- │
│ VIRUS .COM -> OK (95%) Dmu Ras Puef Acd │
│ (1) (2) (3) (4) │
│ │
└──────────────────────────────────────────────────────┘
Legende:
~~~~~~~~
(1) - Dateiinformationen
~~~~~~~~~~~~~~~~~~
Hier werden Dateiname oder Partition, Bootsektor mit Angabe des
Laufwerks angezeigt.
(2) - Suchmodus
~~~~~~~~~
Hier wird der Text und die Farbe unterschieden:
"OK" - Grün
~~~~~~~~~~~
Die Datei ist oberflächlich gescannt worden, da das Programm mit
einem bekannten Compiler oder Packer erzeugt bzw. behandelt wurde.
Die Datei ist wahrscheinlich nicht infiziert, ein Virus könnte
aber unterhalb der Komprimierung versteckt sein.
Bei komprimierten Programmen erscheint die Meldung "A:k"
(Das "k" wird in hellgrün dargestellt).
"ok" - Türkis
~~~~~~~~~~~~~
Die Datei hat keine bekannten Strukturen, der Programmeinsprung
konnte ohne Probleme ermittelt werden. Dieser Aufbau ist eigentlich
bei den meisten Programmen zu erwarten.
">>" - Gelb
~~~~~~~~~~~
Der Programmeinsprung mußte erst ermittelt werden. Dieser Modus
tritt besonders häufig bei COM-Viren auf, die in der Regel einen
Sprungbefehl am Programmstart einfügen.
"//" - Braun
~~~~~~~~~~~~
Der Programmeinsprung konnte nicht sicher ermittelt werden, oder
es werden am Programmstart zu viele Sprungbefehle aufgeführt, die
von SSC nicht alle verfolgt werden können. Aus Sicherheitsgründen
wird die gesamte Datei durchsucht.
Solche Programme sind an sich wegen des seltsamen Aufbaus ver-
dächtig, was aber meistens nicht auf einen Virus hinweist.
"--" - Grau
~~~~~~~~~~~
Die Datei enthält kein ausführbares Programm und wurde von SSC
komplett übersprungen. Archive, Bilder, Daten usw. werden, wenn
der Datentyp erkannt wurde, direkt übersprungen, da Viren nur
Programme infizieren.
Weitere Modi und Farben:
~~~~~~~~~~~~~~~~~~~~~~~~
SSC setzt die Ergebnisse der Heuristik in Symbole um, die im
Dateifenster direkt neben dem Dateinamen angezeigt werden. Neben
den oben erwähnten Suchmodi unterscheidet SSC auch noch in ver-
schiedene Stufen der Heuristik:
"??"
~~~~
Das Programm ist verdächtig. Es wurde eine auffällige Anzahl von
Virenstrukturen gefunden.
"!!"
~~~~
Das Programm ist wahrscheinlich infiziert. Die Anzahl der ge-
fundenen Virenstrukturen läßt auf einen Virus schließen.
"[]" bzw. hellblaue Anzeige :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wird der Such/Heuristikmodus hellblau angezeigt, hat SSC eine
Programmverschlüsselung gefunden und anhand von Codeemulation
oder Linear Decryption entschlüsseln können. Der unter der Ver-
schlüsselung verborgene Virus konnte also erfolgreich unter-
sucht werden.
(3) - Wahrscheinlichkeit einer Infektion
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Findet SSC ein verdächtiges Programm, ermittelt es anhand der Art
und Menge der gefundenen Virenstrukturen eine Angabe, mit welcher
Wahrscheinlichkeit dieses Programm infiziert ist.
Die jeweiligen Prozentstufen sind farblich getrennt:
■ 0-24% : Dunkelgrau
■ 25-49% : Grau
■ 50-74% : Gelb
■ 75-99% : Hellrot
■ > 100% : Dunkelrot
■ > 120% : Blinkendes Rot
Ein Programm gilt ab 75% als verdächtig, ab 90% als infiziert.
Werden allerdings spezielle Kombinationen von Erkennungsmeldungen
gefunden, kann auch schon ein Programm mit weniger als 75% ver-
dächtig bzw. schon als infiziert gemeldet werden.
Die Angabe kann bei dem verwendeten Suchverfahren nicht sehr genau
sein; Sie sollten die Prozentangabe also nicht zu genau nehmen.
(4) - Erkannte Virenstrukturen
~~~~~~~~~~~~~~~~~~~~~~~~
Die Meldungen repräsentieren für Viren typische Programmstrukturen,
z.B. steht "D:M" für Dateimodifikationen, "R:S" für residenten Pro-
grammcode. Eine genaue Beschreibung der Meldungen wird im Analyse-
Fenster angezeigt.
Diese Meldungen sind nach Gruppen (-> Anfangsbuchstabe) sortiert:
■ "D" = Dateizugriff
■ "S" = Sektorzugriff
■ "R" = Residente Strukturen
■ "P" = Programmstrukturen
■ "A" = Aufbau der Datei
Im Analysefenster werden die Gruppen von ihren jeweiligen Einzel-
meldungen durch einen ":" im Dateifenster farblich getrennt. Eine
genaue Erklärung der Einzelmeldungen steht im Anhang 'ÜBERSICHT
DER MELDUNGEN' oder wird von SSC direkt bei der Suche im Analyse-
fenster angegeben. Im folgenden werden diese Erkennungsmeldungen
mit "EM" abgekürzt.
Für jede EM wird eine bestimmte Prozentzahl vergeben. Wird in einem
Programm eine bestimmte Anzahl von EMs gefunden und damit eine
gewisse Prozentzahl überschritten oder werden EMs in einer be-
stimmten Kombination gefunden, gilt die Datei als verdächtig oder
sogar als infiziert. Anhand der EMs kann man den gefundenen Virus
bereits grob klassifizieren. Man kann erkennen, ob ein Datei- oder
Sektorvirus vorliegt, ob der Virus speicherresident oder ver-
schlüsselt ist usw. Die Erkennung der EMs ist mit Absicht sehr
'pingelig' eingestellt worden, damit auch trickreich programmierte
Viren entdeckt werden. Deshalb können unter Umständen in sauberen
Programmen EMs angezeigt werden und unter Umständen Falschalarme
gemeldet werden. Einige der EMs treten ganz legal in sauberen Pro-
grammen auf, wie z.B. "P:R" (Relokator) in mit PKLITE oder ähn-
lichen gepackten Programmen oder "R:S" (Resident) in speicher-
residenten Programmen wie SMARTDRV oder KEYB. Falschalarme treten
vor allem in Antiviren-Programmen auf, da hier oft viele Strukturen
von Viren auftreten. Eventuell wird sogar einer der Familien-
Strings erkannt. Verschlüsselte Programme lassen normalerweise
keinen Rückschluß auf den eigentlichen Programmcode zu, deswegen
wird ein Programm, das verschlüsselt ist und noch zusätzlich
eine (!) weitere verdächtige EM (im Zusammenhang mit ver-
schlüsselten oder polymorphen Viren) enthält, bereits als
verdächtig gemeldet. Bei vielen einfach programmierten Ver-
schlüsselungen ist SSC in der Lage, diese korrekt zu entschlüsseln
und Aussagen über den eigentlichen Programmcode zu machen. Dabei
wird entweder die Codeanalyse oder ein sogenannter Linear Check
benutzt, um die notwendigen Parameter zu ermitteln. Auf keinen Fall
wird Programmcode aus dem Virus ausgeführt und eine mögliche
Aktivierung des Virus riskiert.
Im Analysefenster wird bei einer verdächtigen Datei oder bei
Angabe der Option "/REPORT" ein dem folgenden Text ähnlicher
Report angezeigt:
(Das hier untersuchte Programm ist mit dem Virus
<Jerusalem.1808.Standard> infiziert)
─────────────────────────────────────────────────────────────────────────
PARTITION HD0-> ok
PARTITION HD1-> ok
BOOTSEKTOR C:-> ok
C:\VIRUS\JERU :
(1)
JER_STD .COM -> !! (99%) D:KMU R:MKAS P:URX A:CT
=======================================================================
Auswertung :
"JER_STD.COM" 4800/12C0h 6.4.1990 23:37.26 ...A Modus: "ok"
(C:\VIRUS\JERU\)
(2)
───────────────────────── DATEIVIRUS GEFUNDEN ────────────────────────-
Dieses Programm ist wahrscheinlich mit einem Dateivirus infiziert.
(3)
■ D - MODIFIKATION / ZUGRIFF AUF DATEIEN
K - ZUGRIFF AUF KOMMANDOINTERPRETER (COMMAND.COM)
M - MODIFIZIERT BESTEHENDE DATEIEN
U - EXE/COM UNTERSCHEIDUNG
■ R - RESIDENTE PROGRAMME
M - SUCHT, BELEGT ODER VERÄNDERT MCBS OHNE DOS-ZUGRIFF
K - KOPIERROUTINE (RAM)
A - ABFANGEN VON PROGRAMMSTARTS ODER ÖFFNEN VON DATEIEN
S - SPEICHERRESIDENTES PROGRAMM (TSR)
■ P - PROGRAMMSTRUKTUREN
U - UNDOKUMENTIERTE INTERRUPTFUNKTION
R - RELOKATOR (VARIABLER SPRUNG)
X - BEKANNTER / TYPISCHER VIRUSCODE
■ A - AUFBAU / ATTRIBUTE DER DATEI
C - ANGEFÜGTER PROGRAMMCODE
T - VIRUSTEXT
(4)
■ Größe (Dateischreibzugriff) : 1808 Bytes
■ Virus infiziert .EXE Programme
■ Virus infiziert .COM Programme
■ Virus enthält den Text "COMMAND.COM"
■ Virus infiziert Programme beim Starten
■ Virus manipuliert den Dateianfang
■ Virus hängt sich an das Ende des Programmes
■ Virus fügt ein JMP NEAR am Programmstart ein
■ Virus setzt das CRC-Feld im .EXE-Header auf 1984h
■ Virus behält Dateidatum- und Uhrzeit beim Infizieren bei
■ Virus umgeht READ-ONLY, HIDDEN oder SYSTEM Dateiattribute
■ Virus unterdrückt Schreibschutz-Fehlermeldungen bei Disketten
■ Virus prüft auf ausreichend freien HDD/FDD-Speicherplatz
■ Virus ist speicherresident
■ Virus bleibt resident mittels DOS (1792 Bytes)
■ Virus benutzt INT 21h,24h
■ Virus benutzt undokumentierte Interruptfunktion (Selbsterkennung) :
21/AH:E0=AH:E0 21/DD
■ Virus verschiebt seinen Code im Speicher (1808 Bytes)
■ Virus löscht Dateien !
■ Virus überprüft das Systemdatum (Fr,13.??.1987)
■ Virus enthält den Text :
".......................ΘÆ.sUMsDos... .....½.┼...».┐.ô.3}..........."
■ Virus hat Ähnlichkeit mit :
- Jerusalem
(5)
■ Ergebnisse des Durchlaufes vom 06:48.36 26.05.1994
Dateien : 000001
Verzeichnisse : 000001
Programme : 000001
Prüfsummen : 000000
KB geprüft : 000023
Verdächtig : 000000
Infiziert : 000001
Zeit : 00:00:01
─────────────────────────────────────────────────────────────────────────
(1) - Dateiinformationen:
~~~~~~~~~~~~~~~~~~~
Hier findet man genauere Angaben zur durchsuchten Datei wie z.B.
die Dateigröße, Datum und Uhrzeit, Suchmodus usw. Interessant ist
u.a. die hexadezimale Angabe der Dateilänge (-> "PADDING") und die
genaue Anzeige des Dateidatums. Ein Dateidatum von 2080+ Jahren
oder ein Sekundenfeld von 60+ wird sichtbar gemacht.
(2) - Angabe des Virustyps:
~~~~~~~~~~~~~~~~~~~~~
Hier wird angegeben, um was für einen Virustyp es sich handelt.
SSC unterscheidet zwischen:
"----------------------- DATENTRÄGER VERDÄCHTIG ! ----------------------"
"Der untersuchte Sektor ist möglicherweise mit einem Virus infiziert !"
"------------------------ PROGRAMM VERDÄCHTIG ! ------------------------"
"Das untersuchte Programm ist möglicherweise mit einem Virus infiziert !"
"Es wurden Strukturen gefunden, die sonst nur in Viren auftreten."
"------------- TRÄGER EINES BOOT/PARTITIONSVIRUS GEFUNDEN ! ------------"
"Das untersuchte Programm startet einen Partitions- oder Bootvirus !"
"------------- ABBILD EINES BOOT/PARTITIONSVIRUS GEFUNDEN ! ------------"
"Die Datei enthält eine Kopie eines Partitions- oder Bootvirus."
"----------------- ÜBERSCHREIBENDER DATEIVIRUS GEFUNDEN ----------------"
"Dieses Programm enthält einen primitiven Virus, der den Programmstart"
"überschrieben und damit das Programm möglicherweise zerstört hat !"
"------------------------- DATEIVIRUS GEFUNDEN -------------------------"
"Dieses Programm ist wahrscheinlich mit einem Dateivirus infiziert."
"--------------- VERSCHLÜESSELTER DATEIVIRUS GEFUNDEN ------------------"
"Das Programm hat eine Entschluesselungroutine am Programmstart und hat"
"noch andere typische Merkmale, die auf einen Virenbefall hinweisen."
"----------------- POLYMORPHER DATEIVIRUS GEFUNDEN ---------------------"
"Das Programm hat eine Verschlüsselungsroutine am Programmstart, in die"
"sinnlose Befehle gemischt wurden. Der Virus ist wahrscheinlich in jeder"
"infizierten Datei anders verschlüsselt."
"---------------- BOOTSEKTOR/PARTITIONSVIRUS GEFUNDEN ------------------"
"Der geprüfte Sektor ist mit einem Boot- oder Partitionsvirus infiziert."
"---------------------- VERSCHLÜSSELTES PROGRAMM -----------------------"
"Die Datei ist verschlüsselt und kann nicht weiter untersucht werden !"
"------------------------ MÖGLICHER FALSCHALARM ------------------------"
"Der Aufbau des Programmes weist nicht auf einen Virusbefall hin."
"Entweder ist kein Datei/Sektorzugriff entdeckt worden oder das Programm"
"hat einen Programmstart, der eine Infektion ausschließt."
"------------------------ GESCHÜTZTES PROGRAMM -------------------------"
"Das Programm ist verschlüsselt, um eine Analyse mit einem Debugger zu"
"verhindern. Vielleicht ein kommerzielles (kopiergeschütztes) Programm ?"
"---------------------- TROJANISCHES PFERD/BOMBE -----------------------"
"Das Programm zerstört möglicherweise Daten auf den Datenträger !"
"--------------------- MULTIPARTITE-VIRUS GEFUNDEN ---------------------"
"Der Virus verbreitet sich über Programme und infiziert zusätzlich noch"
"den Partitions- oder Bootsektor von Festplatten/Disketten."
"----------------------- COMPANION-VIRUS GEFUNDEN ----------------------"
"Der Virus infiziert Programme, indem zu einer .EXE-Datei ein gleich-"
"namiges .COM-Programm erzeugt wird."
Die Angaben über den Virustyp können in Kombinationen auftreten. Wird
z.B. ein Falschalarm angegeben und das Programm wird als verdächtig, aber
nicht als wahrscheinlich infiziert erkannt, liegt sehr wahrscheinlich
kein Virus vor.
(3) - Übersicht der gefundenen Erkennungsmeldungen (EM):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Anhand dieser Merkmale wird ein Virus erkannt. Die grobe Struktur
des Virus läßt sich schon oft hieraus ableiten.
Die EMs sind in 5 Hauptgruppen unterteilt:
D - Dateizugriff
S - Sektorzugriff
R - Residente Strukturen
P - Programmstrukturen
A - Aufbau der Datei
(4) - Analysemeldungen (AM):
~~~~~~~~~~~~~~~~~~~~~~
Hier wird angegeben, was der gefundene Virus speziell macht und wie
er aufgebaut ist. Eine Angabe eines "(?)" hinter einer Meldung be-
deutet, daß diese Information nicht 100% nachgewiesen werden
konnte, aber wahrscheinlich oder wenigstens möglich ist. Wegen der
großen Variationsmöglichkeiten bei der Programmierung bestimmter
Techniken und Effekte ist es nicht immer möglich, diese vollständig
zu erkennen.
SSC kann die Viruslänge auf verschiedene Arten angeben, und
manchmal ist dieser Wert auch nicht eindeutig zu ermitteln.
In der Regel ist die Angabe "Größe (Dateischreibzugriff)" ein
guter Anhaltspunkt. Der Wert "Größe (Programmstart bis Dateiende)"
ist nur relevant, wenn der Virus seinen Startpunkt auch am Anfang
des Viruscodes hat. Das ist oft aber nicht der Fall. Hat der
Virus Stealtheigenschaften und kann SSC diese erkennen, ist die
Angabe "Virus benutzt Datei-Stealthfunktionen (Länge) (nnnn)" als
genaueste Angabe zur Viruslänge zu betrachten.
Die Angabe: "Undokumentierter Interrupt" bedeutet, daß sich der
Virus anhand dieser Funktion selber im Speicher erkennt. Der be-
nutzte Interrupt und Registerwert werden angezeigt. Das oben ge-
zeigte Beispiel vom <Jerusalem.1808.Standard> würde z.B. bedeuten:
MOV AH,E0h
INT 21h
CMP AH,E0h
JE Label_VirusAktiv
Oft wird auch kein direkter Wert zurückgegeben, sondern das
CARRY FLAG geprüft.
Unter "Virustext" versteht SSC die Pseudonyme bekannter Viren-
programmierer oder die Kennbytes bekannter Virengeneratoren. Viele
Viren sind mit solchen Signaturen "unterschrieben" und können daran
leicht erkannt werden. Besonders sollte auf Angaben wie "[MPC]",
"[VCL]" geachtet werden, die oft in Viren zu finden sind, die mit
Virus Construction Kits erzeugt wurden.
Gut zu erkennen ist am Beispiel des <Jerusalem.1808>-Virus auch
die Schadensroutine: Sie wird am Freitag dem 13. aktiv. Die Jahres-
angabe kann bedeuten, daß der Virus IN oder NACH diesem Jahr aktiv
wird. Der Virus löscht dann an diesem Datum Dateien. Zu erkennen
ist ebenfalls, daß der Virus .EXE und .COM Dateien infiziert, 1808
Bytes an Programme anfügt, sich mittels eines DOS-Interrupts
resident im Speicher installiert und dort 1792 Bytes belegt. Der
gefundene Text "sUMsDos" ist der Selbsterkennungstext von
<Jerusalem.1808> und wird in vielen Abarten weiterhin benutzt.
(5) - Zusammenfassung der Suche:
~~~~~~~~~~~~~~~~~~~~~~~~~~
Falls durch Parameter aktiviert, wird hier noch eine detaillierte
Übersicht über die EMs bzw. bei "/REPORT=0" eine Legende der Ab-
kürzungen eingefügt.
[ Hinweise und Tips zur Erkennung und Analyse ]──────────────────────────────
Die Länge eines Virus ist nicht immer unbedingt direkt ersichtlich. SSC
gibt hier unter Umständen ein Vielzahl von Werten an:
Dateizugriff:
~~~~~~~~~~~~~
Der Virus fügt xxx Bytes an eine Datei an. Dieser Wert entspricht
meistens genau der Viruslänge, manchmal ist dieser Wert allerdings
nicht festzustellen oder der Virus schreibt in mehreren Blöcken.
Ein Beispiel hierfür ist <Tai-Pan.438>. SSC gibt eine Größe beim Datei-
schreibzugriff von 428 Bytes an. Der Virus hängt aber nachträglich noch
10 weitere Bytes an und verlängert Programme somit um 438 Bytes.
Größe (Programmstart bis Programmende):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Die meisten Viren hängen sich an das Ende von Programmen und ändern den
Programmstart so ab, daß er auf den Viruscode zeigt. Dieser Wert ent-
spricht nicht immer der Viruslänge, da manchmal der Programmstart des
Virus nicht mit dem Anfang des eigentlichen Viruscodes am Dateiende über-
einstimmt.
Größe (Programmsegment bis Programmende):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dieser Wert wird nur bei .EXE-Programmen angegeben und entspricht in
etwa der Größe "Programmstart bis Ende". Der Wert kann bei einigen
EXE-Viren informativ sein.
Datei-Stealth (Länge):
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dieser Wert wird vom Virus bei DIR abgezogen, falls eine infizierte Datei
angezeigt werden soll. Entspricht immer der realen Virusgröße, allerdings
sind nicht alle Viren Stealth bzw. Semi-Stealth und eine so genaue Angabe
ist nicht immer vorhanden.
Speicherbelegung:
~~~~~~~~~~~~~~~~~
Wenn der Virus speicherresident ist, wird oft angegeben, wieviel Speicher
er belegt. Dieser Wert ist in der Regel höher als die eigentliche Virus-
länge, da im Speicher oft noch Tabellen und Zwischenspeicher angelegt
werden, die der Virus zum Infizieren benötigt.
Man kann sicher sein, die richtige Virusgröße ermittelt zu haben, wenn
mehrere der oben genannten Angaben übereinstimmen.
***
!! Mit Programmkomprimierern, wie z.B. "PKLITE", "LZEXE" oder "DIET" ge-
!! packte Programme werden erkannt, aber nicht entpackt. Es ist ein Ding
!! der Unmöglichkeit, mit der Entwicklung in diesem Sektor mitzuhalten.
!! Wollen Sie neue, unbekannte Programme untersuchen, empfehle ich Ihnen,
!! diese mit gängigen Tools wie z.B. "UNP" zu entpacken, bevor SSC aus-
!! geführt wird.
***
Dieser Hinweis ist nur für Virenforscher interessant:
Optimale und korrekte Analyseergebnisse erhält man, wenn ein infiziertes
"leeres" Köderprogramm untersucht wird. Es leuchtet ein, daß, falls ein
Virus FORMAT.COM infiziert hat, möglicherweise ein Multipartite-Virus ge-
meldet oder festgestellt wird, daß der Virus Sektoren formatiert oder be-
schreibt. Es ist vor allem bei COM-Programmen manchmal schwer, zwischen
dem Anfang des Viruscodes und dem ursprünglichen Programmcode zu unter-
scheiden. Bei EXE-Programmen ist dies in der Regel wesentlich einfacher
zu erkennen. SSC erkennt Viren am zuverlässigsten, wenn ein Programm oder
eine Diskette korrekt infiziert wurde. Dateien, die vom Virus zerstört
sind, Generation-1 Samples oder 1:1 Kopien von Bootsektoren werden unter
Umständen nicht erkannt. Vor allem in größeren Virensammlungen findet man
häufig "Müll"-Dateien, die gar keinen Virus enthalten.
***
!!! FALSCHALARME !!!
~~~~~~~~~~~~~~~~~~~~
Das verwendete Suchverfahren verursacht Falschmeldungen! Das liegt in
der Natur der heuristischen Suche und läßt sich nicht verhindern, da
mit Annahmen und logischen Folgerungen und nicht mit 'unfehlbaren'
Scanstrings gearbeitet wird. Um SSC voll nutzen zu können, sollten Sie
ein gewisses Maß an Systemerfahrung haben.
Es gibt zwei Arten von Falschalarmen bei SSC:
Erstens ist das betreffende Programm 'schlecht' programmiert und be-
inhaltet wirklich die angegebenen Strukturen. Besonders bei Antiviren-
Programmen und verschlüsselten Programmen treten oft Falschalarme auf.
Dagegen läßt sich nichts machen. Verschlüsselte Programme sind eigent-
lich immer verdächtig und sollten daher von SSC stets gemeldet werden.
Zum zweiten kann es vorkommen, daß SSC Strukturen findet, die überhaupt
nicht im durchsuchten Programm vorhanden sind. Die Heuristik von SSC ist
besonders genau eingestellt und soll auch mit speziell anti-heuristisch
programmierten Viren fertig werden. Durch einen unglücklich berechneten
Ansatz der Such/Analyseroutine kann es vorkommen, daß Code falsch inter-
pretiert wird. In der Regel tritt aber der erstgenannte Fall auf.
Wirkliche Falschalarme kann man unter Umständen daran erkennen, daß nur
wenige Analysemeldungen erkannt werden, oder daß diese nicht logisch zu-
sammenpassen. Das zu beurteilen ist leider nicht einfach. Bei Ver-
schlüsselungen ist eine geringe Anzahl von erkannten EMs allerdings
normal, da ja durch die Verschlüsselung das 'Programminnere' nicht mehr
zu erkennen ist (das ist schließlich der Sinn der Sache). SSC geht hier
etwas rigoros vor und meldet das Programm bereits als verdächtig, wenn
nur wenige weitere EMs neben dem "P:V" für Verschlüsselung gefunden
werden. Typisch für einen residenten Dateivirus sind folgende EMs:
"D:MU" + "R:AS" und evtl. zusätzlich noch "A:C", "P:U", "P:E" oder "P:R".
Bemerkt man einen Virus, ist dieser wahrscheinlich schon länger aktiv und
es ist sehr wahrscheinlich, daß nicht nur ein bis drei Dateien im ge-
samten System infiziert sind, sondern direkt eine größere Anzahl von Pro-
grammen. Findet SSC nur einige wenige verdächtige Programme und sind
diese auch noch über mehrere Verzeichnisse verstreut, kann man von
Falschalarmen ausgehen. Viren infizieren in der Regel alle Programme, die
gestartet oder geöffnet bzw. kopiert werden. Es sollten also fast alle
Programme infiziert sein, mit denen Sie in der letzten Zeit gearbeitet
haben. COMMAND.COM (über COMSPEC=...) ist ein häufiges Ziel von Viren und
sollte unbedingt überprüft werden. Allerdings gibt es einige Viren, die
COMMAND.COM gezielt vermeiden, um entweder nicht aufzufallen oder weil
eine infizierte COMMAND.COM abstürzen würde.
Natürlich kann ein solch massives Auftreten von Infektionen nicht bei
neuer Software, die vor dem ersten Aufruf auf Viren geprüft werden soll,
festgestellt werden. Hier sollte schon eine einzelne verdächtige Datei
ernst genommen werden! In diesem Fall könnten Sie versuchen, SVS zu in-
stallieren und auszuprobieren, ob das verdächtige Programm wirklich
einen Virus enthält. Ist dies der Fall, wird der Virus höchstwahrschein-
lich von SVS sofort blockiert. Tip: SVS hat eine Schreibschutzfunktion
für die Festplatte, aktivierbar mit <STRG-SHIFT_LINKS-W>. Wollen Sie
verständlicherweise eine mögliche Aktivierung des Virus nicht riskieren,
bleibt noch das Prüfen mit anderen Virenscannern oder das direkte Unter-
suchen per Debugger.
[ Grenzen bei der Erkennung ]────────────────────────────────────────────────
Hochsprache-Viren (HLL-Viren):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sämtliche HLL-Viren werden von SSC -nicht- erkannt! Das liegt daran, daß
die in einer Hochsprache programmierten Viren keinerlei typische Viren-
strukturen aufweisen und damit eine heuristische Erkennung so gut wie un-
möglich ist. Ein besonderes Problem stellen die HLL-Viren im Prinzip
nicht dar: Sie sind so gut wie kaum verbreitet, und fallen oft schon
durch ihre enorme Größe (meist über 5000 Bytes) in der Regel schnell auf.
Da HLL-Viren die Standardroutinen des jeweiligen Compilers zum Datei-
zugriff benutzen, kann SVS solche Viren ohne Probleme abfangen.
Verschlüsselte Viren:
~~~~~~~~~~~~~~~~~~~~~
SSC ist in der jetzigen Version nicht in der Lage, kompliziertere Ver-
schlüsselungen zu knacken. Es kann lediglich die Verschlüsselung selber
melden, den eigentlichen Virus aber leider nicht analysieren.
Gepackte Programme:
~~~~~~~~~~~~~~~~~~~
Wie bereits erwähnt, kann SSC keine mit PKLITE, DIET, LZEXE oder ähn-
lichen Tools gepackte Programme unterhalb der Komprimierung untersuchen.
Es werden nur extern infizierte Programme erkannt. Sie müssen kompri-
mierte Programme mit Tools wie etwa "UNP" vor der Suche entpacken, um
eine komplette Analyse zu ermöglichen.
[ Hinweise zu "A:M" ]────────────────────────────────────────────────────────
Dieser EM kommt eine besondere Bedeutung zu. Heutzutage sind die meisten
EXE-Programme mit speziellen Programmen komprimiert, wie etwa "PKLITE",
"DIET" oder dem neueren "WWPACK". Interessant für die Virenerkennung ist
der Punkt, daß solche komprimierten Programme leicht auf Veränderungen
überprüfbar sind. Die Komprimierer erzeugen immer bestimmte Programm-
köpfe und Einsprünge; Viren ändern aber nur einen Teil des Programmkopfes
ab. SSC ist in der Lage, infizierte komprimierte EXE-Programme zu erken-
nen und zeigt dazu die EM "A:M" (MODIFIZIERTES PROGRAMM) an. Die Erken-
nung funktioniert natürlich nur, wenn das Programm NACH dem Komprimieren
infiziert wurde, was aber normalerweise immer der Fall ist.
Programme, die auf diese Art verändert wurden, sind immer besonders ver-
dächtig! Wenn Sie ein neues Programm mit SSC kontrollieren und die "A:M"-
Warnung angezeigt kriegen, sollten Sie das entsprechende Programm auf gar
keinen Fall starten, ohne vorher SVS zu aktivieren!
SSC erkennt momentan Veränderungen an mit folgenden Packern komprimierten
Programmen: PKLITE (1.03-1.15), LZEXE (0.91), DIET (1.20-1.45), COMPACK
(4.5), TINYPROG (3.x) und WWPACK (3.01-3.02).
[ Übersicht der Meldungen von SSC ]──────────────────────────────────────────
Zusammenfassung der Erkennungsmeldungen (EM):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
■ D - MODIFIKATION / ZUGRIFF AUF DATEIEN
P - ZUGRIFF AUF PRÜFSUMMENDATEIEN VON ANTIVIRENPROGRAMMEN
Manche Viren manipulieren/löschen gezielt die Prüfsummendateien
von Antivirenprogrammen, um einer frühzeitigen Entdeckung durch
Meldung der Veränderung von Prüfsummen zu entgehen.
S - SUCHE NACH AUSFÜHRBAREN DATEIEN (EXE/COM)
Dieses Programm sucht nach EXE / COM Dateien. Viele Viren bein-
halten einen solchen Programmteil, da sie nach neuen Opfern su-
chen, aber auch normale Programme, wie z.B. Hochlader oder Pro-
grammpacker, enthalten manchmal diese Routine.
K - ZUGRIFF AUF KOMMANDOINTERPRETER (COMMAND.COM)
Dieses Programm greift auf den Kommandointerpreter von DOS zu.
Dieser ist ein Ziel für viele Viren, die das Programm gezielt
infizieren, um nach einen Neustart wieder aktiv zu werden.
Manche Viren verhindern gezielt das Infizieren von COMMAND.COM,
um Abstürze zu vermeiden oder um nicht sofort aufzufallen.
M - MODIFIZIERT BESTEHENDE DATEIEN
Es wurden Routinen zum Schreiben, Ändern der Dateizeit / Datum
oder des Dateiattributs gefunden, die darauf hinweisen, daß
existierende Dateien geändert werden sollen.
U - EXE/COM UNTERSCHEIDUNG
Das Programm überprüft eine Datei auf .EXE oder .COM-Strukturen.
Viren, die beide Arten von Programmen infizieren, müssen in der
Lage sein, diese Programmtypen zu unterscheiden. Viele Datei-
viren beinhalten diesen Programmteil, aber auch Programme wie
z.B. Hochlader oder Programmpacker können diese Meldung verur-
sachen, da auch sie eine Unterscheidung der verschiedenen Pro-
grammtypen benötigen.
D - DATEIDATUM ODER UHRZEIT ALS MARKIERUNG
Das Programm setzt die Sekunden eines Programmes auf 60+ oder
addiert 100 Jahre auf das Dateidatum. Viele Viren markieren
so die von ihnen infizierten Programme.
■ S - DIREKTER ZUGRIFF AUF SEKTOREN (DISKETTE / FESTPLATTE)
D - DIREKTER HDD/FDD-ZUGRIFF ÜBER INT 13h, INT 26h ODER INT 40h
Normalerweise sollten nur Disketten oder Festplatten-Tools auf
solche Methoden zurückgreifen (z.B. FORMAT, SPEEDISK, Caches).
I - ERMITTELN DES DOS-INTERNEN DISK-BIOS INTERRUPTVEKTORS
Das Programm ermittelt den DOS-internen Einsprung ins BIOS und
greift möglicherweise direkt auf die Festplatte zu. Manche Anti-
virenprogramme benutzen diese Funktion, meistens sind es jedoch
Viren, die Wächter- bzw. Schreibschutzprogramme umgehen wollen.
B - ZUGRIFF AUF DEN BOOT/PARTITIONSSEKTOR
Es wurde ein typischer Programmteil für MBR / Bootsektorenviren
gefunden, die die Spur 0, Kopf 0 oder 1 und Sektor 1 verändern.
Diese Meldung kann auch in FDISK, FORMAT oder ähnlichen Pro-
grammen auftreten, da auch hier diese Sektoren geändert werden.
! - VERDÄCHTIGER BOOT/PARTITIONSSEKTOR
Der Boot/Partitionssektor der Diskette/Festplatte enthält wahr-
scheinlich einen Virus oder entspricht nicht dem normalen DOS-
Partitions- oder Bootsektorformat.
V - UNGÜLTIGE VERZEICHNISEINTRÄGE
Viele Bootsektorviren kopieren sich ans Ende des Hauptverzeich-
nisses und überschreiben dabei evtl. vorhandene Dateieinträge.
Es wurde ein Programm oder Daten an dieser Position gefunden.
K - KOPIE DES BOOTSEKTORS ODER DER PARTITION
Bootsektor- oder Partitionsviren kopieren oft den originalen
Bootsektor oder MBR an eine andere Stelle, um später darauf zu-
greifen zu können.
■ R - RESIDENTE PROGRAMME
M - SUCHT, BELEGT ODER VERÄNDERT MCBS OHNE DOS-ZUGRIFF
Das Programm sucht bzw. belegt Speicher über direkten Zugriff
auf [40:13] oder über die MCB-Kette, ohne DOS zu benutzen. Sehr
viele speicherresidente Viren belegen Speicher auf diese
Methode. Hochlader, speicherresidente Programme oder Speicher-
anzeigeprogramme, wie z.B. MEM oder SYSINFO können auch diese
Meldung hervorrufen.
K - KOPIERROUTINE (RAM)
Teile des Programmes werden an eine andere Stelle im Speicher
kopiert. Das trifft auf den Installationsteil vieler speicher-
residenter Viren zu, die sich in von ihnen gerade reservierten
Speicher kopieren.
A - ABFANGEN VON PROGRAMMSTARTS ODER ÖFFNEN VON DATEIEN
Viele speicherresidente Viren überwachen die DOS-Funktionen zum
Starten oder Öffnen von Programmen, um diese dann zu infizieren.
S - SPEICHERRESIDENTES PROGRAMM (TSR)
Das Programm bleibt nach Beendigung im Speicher aktiv, da wich-
tige Interruptvektoren verändert, aber nicht wieder hergestellt
werden, was auf ein residentes Programm schließen läßt.
W - ERKENNUNG / AUSSCHALTEN VON WÄCHTERPROGRAMMEN
Manche Viren gehen gezielt auf weitverbreitete Wächterpro-
gramme ein, um keine Alarme auszulösen oder um sie zu unter-
laufen (z.B. VSAFE, FLUSHOT, DATAMON).
E - ERSATZVEKTOR FÜR INTERRUPT 13H ODER 21H
Viele Viren speichern den alten Wert von Interrupt 13h oder 21h
in einem ungenutzten Vektor ab, um später vereinfacht auf den
Interrupt zuzugreifen und um residente Virenblocker zu
täuschen, da diese nur die ursprünglichen Vektoren überprüfen.
■ P - PROGRAMMSTRUKTUREN
P - POLYMORPHE STRUKTUR
Das Programm enthält sinn- bzw. wirkungslose Befehle, die häufig
bei polymorphen Viren benutzt werden, um die Erkennung der Ent-
schlüsselungsroutine zu erschweren.
V - VERSCHLÜSSELUNG (AM PROGRAMMSTART)
Das Programm ist verschlüsselt und kann nicht weiter analysiert
werden ! Viele Viren sind verschlüsselt, aber auch kopierge-
schütze Software wie z.B. Spiele sind manchmal verschlüsselt.
v - VERSCHLÜSSELUNG (IM PROGRAMM)
Das Programm enthält eine Verschlüsselungsroutine, die aber erst
später im Programm auftritt.
U - UNDOKUMENTIERTE INTERRUPTFUNKTION
Das Programm benutzt unbekannte oder undokumentierte DOS Funkt-
ionen oder Interrupts. Speicherresidente Programme benutzen oft
diese Methode, um mit dem residenten Teil zu kommunizieren, aber
auch viele speicherresidente Viren.
! - ILLEGALER BEFEHL / VERZWEIGUNG
Das Programm enthält ungültige Prozessorbefehle oder Verzwei-
gungen, die den Programmteil verlassen und so zum Absturz der
CPU führen würden ! Manche Viren sind fehlerhaft programmiert
und schaffen es nicht immer, Programme korrekt zu infizieren.
E - ENDLOSSCHLEIFE (SPRUNG ZUM PROGRAMMSTART)
Der Programmstart wird erneut aufgerufen, was normalerweise zu
einer Endlosschleife führen würde! Das Programm muß sich selber
im Speicher modifizieren, um korrekt ausgeführt zu werden. Sehr
viele COM-Viren fügen einen Sprung am Programmstart ein, um den
Virus beim Programmstart auszuführen.
R - RELOKATOR (VARIABLER SPRUNG)
Das Programm springt zu einer variablen Adresse im Speicher.
Viren können erst bei der Ausführung bestimmen, wo genau der ur-
sprüngliche Programmstart liegt, und diesen nur über einen var-
riablen Sprung erreichen. Normale Programme besitzen eine Relo-
ziertabelle, nach der DOS diese Sprünge berechnet.
F - FLEXIBLER PROGRAMMEINSPRUNG
Das Programm stellt seine eigene Adresse innerhalb des Codeseg-
mentes fest. 'Saubere' Programme müssen das nicht feststellen !
Über die Hälfte aller Viren beinhaltet diese Routine, da Viren
meistens an verschiedenen Adressen innerhalb des Programmseg-
mentes angefügt werden.
S - SPRUNGKETTE
Mehrere Sprungbefehle wurden nahe des Programmeinsprunges ge-
funden. Das Programm ist verdächtig, da 'saubere' Programme
keinen Programmstil dieser Art aufweisen !
T - "TUNNELING" / EINZELSCHRITTMODUS
Das Programm benutzt den Einzelschrittmodus der CPU. Normaler-
weise benutzen nur Debugger diese Methode, aber auch Viren be-
nutzen sie, um die ursprünglichen Einsprünge der Interrupt-
vektoren zu ermitteln und somit eventuell aktive Wächter- oder
Schreibschutzprogramme zu unterlaufen ! Es könnte aber auch auf
ein gegen Debugging geschütztes Programm hinweisen.
2 - 80286 PROZESSORBEFEHLE
Das Programm enthält am Einsprung Prozessorbefehle, die nur auf
einer 286 oder höheren CPU lauffähig sind. Normalerweise werden
solche Befehle erst benutzt, wenn der CPU-Typ festgestellt wurde
und treten erst später im Programm auf.
X - BEKANNTER / TYPISCHER VIRUSCODE
Das Programm enthält Programmcode von bekannten Viren oder nur
für Viren typische Routinen, die normalerweise nie auftreten.
■ A - AUFBAU / ATTRIBUTE DER DATEI
D - VERDÄCHTIGES DATEIDATUM ODER UHRZEIT
Das Datum oder die Uhrzeit des Programmes ist ungültig. Entweder
stehen die Sekunden auf über 59 oder das Jahr auf über 2080.
Viele Viren benutzen dies als Markierung, um eine erneute Infi-
zierung zu vermeiden.
G - GERUNDETE DATEIGRÖßE ("PADDING")
Manche Viren runden die Dateilänge beim Infizieren auf ein
Vielfaches von 16, 32, 64, 128 oder 256, um eine bestimmte Prog-
grammeinsprungsadresse zu erhalten oder benutzen die Länge als
Infektionsmarkierung.
C - ANGEFÜGTER PROGRAMMCODE
Der Programmstart liegt kurz vor dem Ende der Datei. Das ist
typisch für viele Dateiviren, die sich meistens an das Ende
eines Programmes kopieren.
V - VERSTECKTE DATEI
Diese Datei hat das HIDDEN oder SYSTEM Dateiattribut gesetzt.
Das könnte auf einen Companion-Virus hinweisen, der zu einer
bestehenden .EXE Datei ein gleichnamiges .COM Programm erstellt
und diese Datei im Verzeichnis unsichtbar machen will.
o - INTERNE OVERLAYS / ZUSÄTZLICHE DATEN/PROGRAMMTEILE
Die im Header angegebene Dateigröße stimmt nicht mit der realen
Dateilänge überein. Es sind zusätzliche Daten oder Programm-
teile hinter dem eigentlichen Programm angefügt.
! - UNGÜLTIGER PROGRAMMKOPF
Das .EXE Programm entspricht nicht den Angaben im Dateiheader.
Manche Viren aktualisieren diese Werte nicht korrekt, nachdem
die Datei infiziert wurde. Als Folge davon kann z.B. der Pro-
grammeinsprung außerhalb des Programmbereiches liegen.
E - FALSCHE NAMENSERWEITERUNG
Das Programm hat COM als Erweiterung, enthält aber ein Programm
vom Typ EXE, oder ein EXE Programm enthält keine entsprechenden
Strukturen und ist somit ein COM Programm. Manche Viren können
keine EXE Programme infizieren und wandeln sie erst in ein Pro-
gramm mit dem Aufbau einer COM Datei um.
i - IMMUNISIERT
Das Programm ist gegen Virenbefall immunisiert.
S - SELTSAMER ODER UNGÜLTIGER PROGRAMM-STACK
Der Wert von SP im Header ist ungerade, oder das Stapelsegment
liegt außerhalb des vom Programm angeforderten Speichers. Viele
Viren sind schlecht programmiert und legen ungültige Werte beim
Infizieren der Datei an.
k - KOMPRIMIERUNG
Das Programm wurde mit PKLITE, LZEXE oder ähnlichen Programm-
komprimieren behandelt. Ist dies ein neues, unbekanntes Programm,
sollte es auf jeden Fall entpackt und noch einmal untersucht
werden, da sonst ein Virus unbemerkt ins System geraten könnte.
T - VIRUSTEXT
Das Programm enthält eine Referenz auf "VIRUS", "DARK AVENGER"
oder andere für Viren typische Texte.
w - WINDOWS ODER OS/2 PROGRAMM
Das Programm hat einen Windows - OS/2-Programmaufbau (NewEXE)
Bisher sind nur wenige Viren bekannt, die diesen Programmtyp
richtig infizieren können.
M - MODIFIZIERTES PROGRAMM
Das Programm wurde mit PKLITE, LZEXE oder einem anderen .EXE-
Komprimierer gepackt, hat jedoch unbekannten Programmcode ange-
fügt, der vor der Entpackroutine ausgeführt wird.
Zusammenfassung der Analysemeldungen (AM):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
■ Größe (Dateischreibzugriff) : xxxx
■ Größe (Programmstart bis Dateiende) : xxxx
■ Größe (Programmsegment bis Dateiende) : xxxx
■ Virus infiziert .EXE Programme
■ Virus infiziert .COM Programme
■ Virus enthält den Text "COMMAND.COM"
■ Virus enthält den Text "PATH"
■ Virus infiziert Bootsektoren und/oder Partitionen
■ Virus überschreibt beim Infizieren den Standard DOS-PSP
■ Virus erzeugt gleichnamige .COM-Programme ("Companion")
■ Virus infiziert Programme beim Öffnen ("Fast Infector")
■ Virus infiziert Programme beim Ausführen
■ Virus fängt das Öffnen von Programmen ab (Extended Open)
■ Virus fängt das Erstellen von Programmen ab
■ Virus fängt das Debuggen von Programmen ab
■ Virus infiziert bei DIR
■ Virus infiziert beim Setzen des Dateiattributes
■ Virus infiziert beim Umbenennen von Dateien
■ Virus infiziert Programme im aktuellen Verzeichnis
■ Virus durchsucht Festplatte nach Programmen
■ Virus infiziert nur eine Datei pro Aktivierung
■ Virus infiziert mehrere Dateien pro Aktivierung
■ Virus manipuliert den Dateianfang
■ Virus überschreibt den Dateianfang
■ Virus hängt sich an das Ende des Programmes
■ Virus konvertiert EXE Programme in COM Programme
■ Virus fügt ein JMP NEAR am Programmstart ein
■ Virus fügt ein JMP REG am Programmstart ein
■ Virus ist verschlüsselt
■ Virus benutzt einstufige Verschlüsselungsmethode
■ Virus ist polymorph
■ Virus benutzt Datei-Stealthfunktionen (Länge) (xxxx)
■ Virus benutzt Datei-Stealthfunktionen (Inhalt)
■ Virus benutzt Datei-Stealthfunktionen (Uhrzeit/Datum)
■ Virus benutzt Dateidatum als Markierung (Jahr=2080+)
■ Virus benutzt Dateiuhrzeit als Markierung (Sekunde=60+)
■ Virus benutzt Dateigröße als Markierung ("Padding")
■ Virus benutzt FCB-Funktionen, um auf Dateien zuzugreifen
■ Virus prüft auf .EXE-Programmheader ("MZ")
■ Virus prüft auf .EXE-Programmheader ("ZM")
■ Virus benutzt "MZ"-Kennung, um .EXE bei der Infektion auszuschließen
■ Virus setzt den Programmeinsprung im .EXE-Header auf xxxxh
■ Virus setzt den Programmstack im .EXE-Header auf xxxxh
■ Virus setzt das CRC-Feld im .EXE-Header auf xxxxh
■ Virus behält Dateidatum- und Uhrzeit beim Infizieren bei
■ Virus aktualisiert Dateidatum- und Uhrzeit beim Infizieren
■ Virus umgeht READ-ONLY, HIDDEN oder SYSTEM Dateiattribute
■ Virus kann READ-ONLY, HIDDEN oder SYSTEM Attribute nicht umgehen
■ Virus ändert den Zugriffsmodus einer geöffneten Datei
■ Virus unterdrückt Schreibschutz-Fehlermeldungen bei Disketten
■ Virus unterdrückt Infektionsabbruch durch <STRG-C>
■ Virus prüft auf ausreichend freien HDD/FDD-Speicherplatz
■ Virus ist speicherresident
■ Virus ist möglicherweise speicherresident
■ Virus bleibt resident mittels DOS (xxxx)
■ Virus durchsucht/verändert die MCB-Kette (xxxx)
■ Virus markiert MCB als SYSTEM-Bereich
■ Virus verringert DOS-Speicherobergrenze (xxxx)
■ Virus überschreibt Speicherbereiche ab xxxx:yyyy
■ Virus wird in der Interrupttabelle resident
■ Virus benutzt DOS UMBs
■ Virus benutzt XMS UMBs
■ Virus benutzt INT xx
■ Virus benutzt undokumentierte Interruptfunktion (Selbsterkennung) :
■ Virus benutzt INT 2Ah, um Dateizugriffe abzufangen
■ Virus ruft gespeicherten INT 21h direkt auf (CALL FAR)
■ Virus belegt Interrupts durch Manipulieren des DOS-Kernels
■ Virus ermittelt ursprünglichen Interruptvektor ("Tracer")
■ Virus ermittelt BIOS Disk-Interruptvektor
■ Virus benutzt INT xx als INT 21h-Ersatz
■ Virus verschiebt seinen Code im Speicher (xxxx)
■ Virus benutzt Anti-Debuggertechniken
■ Virus umgeht VSAFE/TSAFE
■ Virus umgeht FLUSHOT / VIREX
■ Virus umgeht DATAMON (PCTools)
■ Virus umgeht DISKMON (Norton)
■ Virus umgeht DATA GUARD
■ Virus umgeht NEMESIS
■ Virus umgeht TBSCANX
■ Virus funktioniert nur auf einer 8086 CPU
■ Virus funktioniert nur auf einer 80286+ CPU
■ Virus verändert das CMOS !
■ Virus erzeugt Dateien
■ Virus löscht Dateien !
■ Virus benennt Dateien um
■ Virus spricht den Lautsprecher an (Musik, Geräusche)
■ Virus verlangsamt den Rechner
■ Virus manipuliert die Tastatur oder fängt bestimmte Tasten ab
■ Virus fängt <STRG-ALT-ENTF> ab
■ Virus führt einen Neustart des Rechners aus
■ Virus manipuliert den Drucker
■ Virus gibt Texte aus oder verändert Grafikspeicher
■ Virus verändert BIOS Datenbereich (Tastatur, Graphik, Uhrzeit)
■ Virus greift Dateien von Antivirenprogrammen gezielt an
■ Virus überprüft die Systemuhrzeit
■ Virus überprüft das Systemdatum
■ Virus enthält den Text : xxxx
■ Virus überschreibt Sektoren der Festplatte oder Diskette !
■ Virus formatiert Sektoren der Festplatte oder Diskette !
■ Virus benutzt Extraspuren der Diskette
■ Virus benutzt Sektor(en) des Hauptverzeichnisses
■ Virus markiert Cluster als defekt
■ Virus benutzt Sektor(en) am Ende des Datenträgers
■ Virus hat Ähnlichkeit mit : xxxx