home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip Hitware 6
/
Chip_Hitware_Vol_06.iso
/
chiphit6
/
_virus
/
suspic
/
memchk.doc
< prev
next >
Wrap
Text File
|
1996-07-10
|
11KB
|
199 lines
┌───────────────────────────────────────────────────────────────────────────┐
│ │
│ - M E M C H K - │
│ │
│ HEURISTISCHE SPEICHERKONTROLLE │
│ │
│ │
│ Teil des Antiviren-Programmpakets SUSPICIOUS │
│ │
│ (c) 1996 Stefan Kurtzhals │
│ │
└───────────────────────────────────────────────────────────────────────────┘
[ Systemvoraussetzungen ]────────────────────────────────────────────────────
■ 80286 oder 100% kompatibel
■ MS-DOS 5.0-7.0, Novell DOS 7.0 oder 100% kompatibel
[ Einleitung ]───────────────────────────────────────────────────────────────
Die meisten der aktuellen oder wirklich verbreiteten Viren sind speicher-
resident und übernehmen oft die Kontrolle über das gesamte System. Zum
ersten ermöglicht dies dem Virus eine wesentlich schnellere Verbreitung,
da Programme von Viren in der Regel beim Starten oder beim Öffnen bzw.
Schließen der Programmdateien infiziert werden. Vor allem letzteres führt
zu großen Epidemien, da Programme z.B. schon beim Kopieren oder Viren-
scannen (!) verseucht werden. Der für Viren zweite wichtige Punkt ist,
daß sie als TSR-Programm Stealthfunktionen ausführen können und somit
ihre Anwesenheit im System vor dem Benutzer vollständig verbergen können.
Diese Tarnkappenviren arbeiten zum Teil so effektiv, daß selbst spezielle
Prüfsummenprogramme keine Veränderung bemerken können, oder daß selbst
Antiviren-Programme mit eigenem Dateizugriff auf Sektorebene getäuscht
werden können.
Deswegen ist es für Antiviren-Programme sehr wichtig, daß kein Virus
aktiv im Speicher ist und den Prüfvorgang beeinflussen kann. MEMCHK prüft
den Speicher ähnlich wie SSC, d.h. mittels Heuristik, die in der Lage
ist, bekannte wie unbekannte Viren zu erkennen.
MEMCHK ist deswegen so erfolgreich bei der Erkennung, weil Viren zwar
meistens verschlüsselt sind, wenn sie sich an Programme hängen, zur
Ausführung im Speicher sich aber entschlüsseln müssen. MEMCHK braucht
deswegen nicht wie SSC die Viren umständlich zu dekodieren.
Es gibt zwar Viren, die sich während ihrer Ausführung im Speicher ver-
schlüsseln, aber diese sind äußerst selten und beeinflussen das Lauf-
zeitverhalten des Rechners extrem.
[ Installation und Benutzung ]───────────────────────────────────────────────
MEMCHK braucht keine speziellen Parameter. Ein einfacher Aufruf reicht
aus. In der Regel zeigt MEMCHK nur eine Reihe von "OK"s an, je nach
Speichermananger und BIOS-Setup auch ein paar "??"-Warnungen bezüglich
der Speicherobergrenze und des letzten MCBs.
Sie sollten MEMCHK regelmäßig aufrufen. Eine Aktivierung in einer häufig
benutzen Batchdatei oder z.B. in der AUTOEXEC.BAT ist empfehlenswert.
Besonders nach dem Testen neuer Programme sollten Sie unbedingt MEMCHK
aufrufen!
!! Es gilt: Solange MEMCHK nicht nach dem Prüfvorgang anhält und eine
!! explizite Warnung ausgibt, sind alle anderen gemeldeten Warnungen nur
!! Hinweise auf eine seltsame Speicherbelegung; nicht aber auf einen aktiven
!! Virus (genauer: diese Regionen wurden geprüft, aber kein verdächtiger
!! Programmcode gefunden).
!! Sie sollten MEMCHK wie einen Virenscanner regelmäßig benutzen, vor allem
!! dann, wenn Sie neue Programme getestet haben. Wurde vor dem Aufruf eines
!! Programms von MEMCHK kein verdächtiges Programm im Speicher gefunden,
!! aber dafür nach Beendigung des neuen Programms, sollte der Rechner sofort
!! ausgeschaltet werden und die Festplatte mit SCRC von einer sauberen Boot-
!! diskette aus überprüft werden; möglichst mit dem Parameter "/FULLCRC"!
Findet MEMCHK ein verdächtiges Programm, werden bestimmte Merkmale des
möglichen Virus angegeben. Diese 'Kurzanalyse' ist natürlich nicht so
ausführlich wie die von SSC, für eine Klassifizierung des Virus reicht
sie aber meistens aus. MEMCHK gibt folgende Kürzel an:
■ Disk - Der Virus infiziert Partitionen oder Bootsektoren
■ File - Der Virus infiziert Programme
■ EXE - Der Virus infiziert EXE-Programme
■ COM - Der Virus infiziert COM-Programme
■ TSR - Der Virus ist speicherresident
■ STEALTH - Der Virus hat Dateistealth-Funktionen
■ EXECINF - Der Virus infiziert beim Starten von Programmen
■ FASTINF - Der Virus infiziert beim Öffnen/Schließen von Programmen
Wird zusätzlich noch eine Zahl am Ende des Textes angezeigt, handelt es
sich dabei um die vermutliche Länge des Virus; entweder die Dateilänge
oder die Menge, die der Virus an Speicher belegt.
Wie bereits gesagt, ist die Analyse von MEMCHK im Vergleich zu SSC nur
minimal und nicht immer vollständig oder korrekt.
HINWEIS:
~~~~~~~~
Das Modul MEMCHK in den anderen SUSPICIOUS-Komponenten SSC, SVS und SCRC
kann mit dem Parameter "/NOMEM" ausgeschaltet werden. SCRC und SVS führen
übrigens innerhalb der CONFIG.SYS aufgrund von häufigen Falschalarmen
keine komplette Speicherüberprüfung durch.
MEMCHK gibt für den Batchbetrieb Errorlevels zurück:
Errorlevel 0 - Kein Virus gefunden
Errorlevel 1 - Ein Virus wurde im Speicher gefunden
Sonst - Fehler bei der Analyse des Systems
[ Test auf aktive Dateiviren ]───────────────────────────────────────────────
MEMCHK erzeugt hierfür Köderdateien und führt gewisse Dateioperationen
aus, um einen möglicherweise aktiven Virus dazu zu verleiten, diese
Köder zu infizieren. Nach der Generierung und Manipulation der Köder
werden diese über einen Antistealth-Dateizugriff von MEMCHK auf Ver-
änderungen überprüft. Diese Methode ist sehr effektiv, und nur Companion-
Viren, Viren mit INT 13h-Stealth oder Viren, die diese Art von Köder
nicht infizieren, werden nicht bemerkt. Generell kann aber gesagt werden,
daß über 75% aller Dateiviren mit dieser Testmethode gefunden werden.
Ein Falschalarm ist prinzipiell nicht möglich; nur wenn Sie einen Lauf-
zeitkomprimierer wie DIET im residenten Modus oder ähnliche Festplatten-
verdoppler auf Dateiebene(!) benutzen, könnte MEMCHK einen aktiven Virus
melden. Programme wie DBLSPACE oder Stacker erzeugen keine Falschalarme,
da sie auf Treiberebene mit Sektorzugriffen arbeiten.
MEMCHK gibt an, welcher der Köder, COM und bzw. oder EXE infiziert wurde.
Desweiteren erkennt MEMCHK, wenn der Virus versucht, sich durch eine
Tarnkappenfunktion unsichtbar zu machen.
Ein aktiver COM/EXE/STEALTH-Virus würde wie folgt von MEMCHK gemeldet
werden:
"Test auf aktiven Virus ...... !! Stealth COM EXE Virus aktiv!"
Hinweis:
~~~~~~~~
Nicht immer infiziert ein aktiver Virus die von MEMCHK angelegten Köder,
und nicht immer erkennt die Heuristik den aktiven Virus, obwohl dieser
vom Aktivitätstest gemeldet wurde.
[ Falschalarm oder Virus? ]──────────────────────────────────────────────────
MEMCHK erzeugt wie alle Programme, die auf heuristischer Virenerkennung
basieren, Falschalarme! Wie kann man nun erkennen, ob der von MEMCHK ge-
meldete 'Virus' wirklich ein 'echter' Virus ist? Ist SCRC korrekt in-
stalliert, kann man von einer sauberen Bootdiskette aus überprüfen, ob
Programme im System verändert wurden. Eine andere Möglichkeit wäre, SVS
zu starten (falls noch nicht geschehen) und ein paar Programme zu
starten, die mit aktivem SVS von einer garantiert sauberen und schreib-
geschützten Diskette auf die Festplatte kopiert wurden. Meldet sich SVS
dabei mit Warnungen wie
■ "Ein Programm hat SVS umgangen"
■ "Dateizugriff mit deaktiviertem Critical Error Handler INT 24h"
■ "Interrupts wurden von einem freien Speicherbereich aus aufgerufen"
■ "Ein Programm soll verändert werden"
■ "Schreibzugriff während eines Programmstarts"
ist wirklich ein Dateivirus aktiv. Bootsektorviren kann man natürlich
auf diese Art nicht erkennen, da diese Programme nicht infizieren.
Die einfachste Methode ist es, sich die Position des gemeldeten 'Virus'
zu merken (MCB xxxx:0 usw.) und mit "MEM /D |more", "MSD" oder anderen
Speicheranzeigeprogrammen die Speicherbelegung zu kontrollieren. Be-
findet sich an der von MEMCHK gemeldeten Adresse ein von ihnen instal-
liertes TSR-Programm wie MOUSE, DOSKEY, SMARTDRV usw. handelt es sich
wahrscheinlich um einen Falschalarm.
Eine letzte, sichere Möglichkeit ist es, alle (!) Treiber außer Speicher-
managern wie HIMEM.SYS, EMM386.EXE, QEMM386, 386MAX usw. aus der
CONFIG.SYS und AUTOEXEC.BAT zu entfernen (z.B. einfach mit <F8> beim
Booten), den Rechner neu zu starten und dann erneut MEMCHK zu starten.
Wird dann immer noch ein Virus gemeldet, ist es wahrscheinlich, daß es
sich dabei um einen echten Virus handelt.
Hinweis: Sie sollten nicht einfach mit <F5> alle Programme in der
CONFIG.SYS und AUTOEXEC.BAT umgehen. Möglicherweise wird damit der Virus
ebenfalls deaktiviert und MEMCHK kann nichts Verdächtiges finden.
Es hat sich gezeigt, daß MEMCHK Probleme mit einigen PCI/VESA LOCAL BUS-
Festplattentreibern hat. Vor allem, wenn Sie eine EIDE-Festplatte (mit
über 524 MB) haben und für den DOS-Betrieb den speziellen Treiber in der
Partition installiert haben, findet MEMCHK gelegentlich "Disk"-Viren.
Diese Treiber sind übrigens wirklich zu fast 90% wie ein Virus program-
miert! Sie belegen Speicher mit der gleichen Methode, belegen INT 13h
(für den Disk-Zugriff) und haben meistens sogar Stealthfunktionen für
die Partition (um den Zugriff auf den Treiber zu verhindern).
Standard-TSR-Programme wie SMARTDRV, KEYB, DOSKEY, MOUSE, MSCDEX usw.
sollten keine Falschalarme verursachen.
Sollten Sie denoch Falschalarme mit normalen TSR-Programmen erhalten,
bitte ich Sie, mir das mitzuteilen, damit MEMCHK verbessert werden kann.
MEMCHK speichert eine Datei mit dem Namen "SUSP_MEM.00?" im Stammver-
zeichnis der Festplatte ab. Diese Datei enthält den verdächtigen
Speicherbereich, ist aber nicht ausführbar. Falls möglich, senden Sie
bitte diese Datei dem Autor zu!