home *** CD-ROM | disk | FTP | other *** search
-
- ┌───────────────────────────────────────────────────────────────────────────┐
- │ │
- │ - 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!
-
-
-