Howard Fuhs
Howard Fuhs
Howard Fuhs
IT-Sicherheitsberater
IT-Sicherheitsberater
IT-Sicherheitsberater

Methoden zur Entdeckung

von Computerviren

Copyright (C) 05/1995 by Howard Fuhs


Inhalt:

    Einleitung

    Heuristisches Scannen

    Integritätskontrolle

    Speicherüberwachung durch Monitor-Programme

    Hardwareschutz

    Hardware-Monitor

    Hardware-Schreibschutz

    Schlußbemerkung

    Copyright-Hinweis
 


Einleitung

Ein Computervirus stellt nicht nur eine Bedrohung für die Datenbestände auf einem Computer dar, sondern ist auch ein Problem für die Vertrauenswürdigkeit der automatischen Datenverarbeitung. Es wurde deshalb viel Forschung betrieben um Methoden zur Virendetektion zu entwickeln. Die am weitesten verbreitete Methode dürfte wohl das Scannen nach Viren darstellen. Dabei werden ausführbare Dateien mit einer Virensignatur-Datenbank verglichen. Wird in einer der ausführbaren Dateien eine solche Signatur gefunden ist die Wahrscheinlichkeit sehr hoch, daß diese Datei mit einem Virus infiziert ist. Durch technische Neuerungen auf dem Gebiet der Computervirenprogrammierung ist der Signatur-Scanner eine inadequate Lösung für das Problem der Computerviren. Hier seien nur die polymorphen Viren erwähnt, die mit dieser Methode nicht mehr zu entdecken sind, sowie Kapazitätsprobleme durch die ständig stark ansteigende Zahl von neuen Computerviren. Es mußten also im Laufe der Zeit neue Methoden der Virendetektion entwickelt werden die den zeitgemäßen Problemen mehr entsprachen. Wenn man von dem Signatur-Scanner absieht, bleiben noch der heuristische Scanner, der Integrity Checker (Püfsummenprogramm), das Monitor-Programm und der Hardwareschutz. Obwohl in jede dieser Techniken ein erheblicher Forschungsaufwand investiert wurde hat jede dieser Techniken ihr Vorteile aber auch ihre Nachteile. So kann das Problem der Computerviren nicht mit einer einzigen Technik gelöst werden. Es sind immer mehrere Techniken die, in bestimmten Schutzlayern angewendet, den bestmöglichsten Schutz versprechen und die einzelnen Nachteile gegenseitig kompensieren.


Heuristisches Scannen

Anstatt zu versuchen den Virus durch eine Bytesignatur zu finden und zu identifizieren kann ein Scanner auch nach bestimmten Programmoperationen suchen die für einen Virus typisch sind. Ein heuristischer Scanner enthält einen Set von Regeln die solche virentypischen Operationen beschreiben. Ein Beispiel für solche Regeln wären:

Ein Programm ist verdächtig wenn .......
 

Zur Zeit ist diese Methode nicht ausreichend Zuverlässig genug. Das Hauptproblem sind immer noch falsche Virenmeldungen oder unentdeckte Viren. Eine falsche Virenmeldung passiert wenn der heuristische Scanner virenverdächtigen Programmcode entdeckt und meldet, der aber tatsächlich nicht zu einem Virus gehört. Produziert ein Scanner zu viele falsche Virenmeldungen neigt der Anwender dazu, dem Scanner nicht mehr zu glauben. Im Fall eines unentdeckten Virus meldet der heuristische Scanner eine Datei als nicht infiziert obwohl sie von einem Virus infiziert ist. Die heuristische Scanmethode ist heute noch nicht in der Lage die gleiche Zuverlässigkeit zu bieten als die besten Signatur-Scanner. Auch wenn der heuristische Scanner eine tatsächliche Infektion entdeckt, wird die Nachricht an den Anwender nicht so präzise sein wie bei einem Signatur-Scanner. Während der Signatur Scanner die klare Aussage macht „Maltese Amoeba has been detected“ wird der heuristische Scanner nur sehr vage Aussagen machen können „This program modifies itself in a highly suspicious way“. Da der heuristische Scanner nicht in der Lage ist den Virus zu identifizieren ist es auch nicht möglich den Virus zu entfernen. Zum Identifizieren des Virus wird nun wieder ein Signatur-Scanner benötigt. Der Programmierer eines heuristischen Scanners muß weiterhin eine Datenbank mit Programmen anlegen und in den heuristischen Scanner einbauen, die falsche Alarme hervorrufen können. Ein weiteres Problem für den heuristischen Scanner stellen HLL-Viren (HLL = High Level Language) dar. Diese in einer Hochsprache programmierten Viren enthalten durch das Kompilieren keinerlei virentypischen Code den ein heuristischer Scanner analysieren könnte. Zwar sind diese Viren relativ selten da sie sehr groß und plump sind, trotzdem stellen sie eine gewisse Gefahr dar.

Der Hauptvorteil bei der heuristischen Methode ist die Möglichkeit Viren zu entdecken die durch Signatur-Scanner nicht entdeckt werden können. Speziell bei Viren die sich Mutation Engines bedienen ist der heuristische Scanner durch seine Codeanalyse klar im Vorteil. Außerdem kann er im Rahmen seiner Such- und Analyseregeln auch unbekannte Viren entdecken. Die Entdeckungsrate bei heuristischen Scannern dürfte heute zwischen 80% und 90% liegen, die Rate der falschen Alarme ist um die 5% bis 10% angesiedelt.


Integritätskontrolle

Ein Integrity Checker berechnet bei seinem ersten Aufruf für jede Datei eine einmalige Checksumme. Diese Checksumme wird auf dem System oder einer Diskette für spätere Vergleiche abgespeichert. Wird das Checksummenprogramm wieder gestartet berechnet es wieder für jede Datei die Checksumme und vergleicht sie mit dem zuvor gespeicherten Wert. Sind beide Checksummen nicht identisch, wurde die Datei in der Zwischenzeit verändert. Hierbei reicht es aus nur ein Bit in der Datei zu ändern um die Checksummen voneinander abweichen zu lassen.

Eine Checksumme wird in aller Regel nach der CRC-Methode (Cyclic Redundancy Check) berechnet. Diese Methode stellt eine ausreichend sichere Überprüfung einer Datei auf Veränderungen dar. Wird ein 32bit CRC-Wert berechnet steht die Wahrscheinlichkeit über 1:4 Milliarden das eine Dateiveränderung unbemerkt bleibt, d.h. daß der CRC-Wert vor und nach der Veränderung der gleiche bleibt.

Eine andere Art der Checksummenberechnung kann durch einen kryptografischen Checksummer geschehen. Dabei wird der Checksummenwert von einem komplexen Algorithmus errechnet der als Eingangswerte eine Geheimzahl und die zu sichernde Datei verwendet.

Da sich ein Virus in eine Datei kopieren muß um ausgeführt zu werden, verändert er auch automatisch die Wirtsdatei was eine Entdeckung durch einen Checksummer bedeutet. Es gibt in der Zwischenzeit aber auch Viren die versuchen der Entdeckung durch Checksummer zu entgehen. Hier sind zuerst die Stealth-Viren zu nennen. Ist ein Stealth-Virus im Speicher aktiv entfernt er sich aus jeder Datei auf die zugegriffen wird. Wird die Datei wieder geschlossen, kopiert sich der Stealth-Virus wieder in die Datei hinein. Um zu verhindern, das einem Checksummer auf diese Art und Weise angeblich saubere Dateien vorgesetzt werden ist es immer ratsam vor einem Test den betreffenden Computer von einer nicht infizierten, schreibgeschützten Bootdiskette aus zu starten. Diese Maßnahme sollte immer beachtet werden, unabhängig davon ob man einen Integritätstest durchführt oder nach Viren scannt.

Ist der Algorithmus bekannt nach dem eine Checksumme berechnet wird, so kann ein Virus auch eine Datei infizieren und danach für diese Datei eine neue Checksumme berechnen und in der Checksummendatenbank ablegen. Dies kann umgangen werden indem die Datenbank mit den Checksummen nicht auf der Festplatte bei den Dateien abgespeichert wird sondern extern auf einer Diskette. Sollte dies aus technischen Gründen nicht möglich sein, so sollte das Checksummenprogramm wenigstens die Möglichkeit bieten den Checksummendateien die auf der Festplatte gespeichert werden vom Anwender frei wählbare Name zuzuordnen.

Einige Checksummenprogramme speichern den CRC-Wert indem sie ihn direkt in der getesteten Datei abspeichern. Diese Methode ist wenig empfehlenswert da jede Datei für die eine Checksumme berechnet wird automatisch auch vom Checksummenprogramm verändert wird. Im Rahmen der Vertraulichkeit von Daten ist eine solche Maßnahme nicht akzeptabel. Außerdem ist diese Methode durch Computerviren mitunter besonders angreifbar. Ist dem Computervirus die Arbeitsweise des Checksummenprogramms bekannt, kann er anhand der abgespeicherten CRC-Summe in der Datei erkennen das die Datei eben durch diese CRC-Summe geschützt ist. Infiziert der Virus nun diese Datei muß er nur eine neue CRC-Summe berechnen und an der entsprechenden Stelle der Datei ablegen. Die Veränderung der Datei kann dann nicht mehr von dem Checksummenprogramm festgestellt werden.

Um die Gefahr zu vermindern, das ein Virusprogrammierer den Berechnungsalgorithmus für eine Checksumme in seinen Virus implementiert und damit einen bestimmten Integrity-Checker angreift und unwirksam macht, verwenden gute Prüfsummenprogramme mehrere Berechnungsalgorithmen aus denen dann beim ersten Aufruf des Prüfsummenprogramms ein Algorithmus durch einen Zufallsgenerator ausgewählt wird. Dadurch wird sichergestellt, daß das selbe Programm auf mehrere Rechner verteilt immer mit einem anderen Algorithmus die Prüfsumme berechnet.


Speicherüberwachung durch Monitor-Programme

Ein Monitor-Programm wird beim Start des Rechners geladen und bleibt dann resident im Hauptspeicher des Computers. Ein solches Monitor-Programm überwacht Interrupts die von Viren vorzugsweise benutzt werden. Sollte ein solcher Interrupt aufgerufen werden so unterbricht das Monitor-Programm den Vorgang und fragt den Anwender ob dieser Aufruf durchgeführt werden soll. Der Anwender muß praktisch entscheiden ob es sich hierbei um einen Virus handelt oder nicht. Diese Technik hat in der Praxis mehrere Nachteile.

Ein solches Monitor-Programm wird in der Regel durch einen Eintrag in der CONFIG.SYS Datei gestartet. Selbst wenn es an erster Stelle in dieser Datei steht kann es nicht verhindern, daß beim Bootvorgang des Computers ein Bootsektorvirus in den Arbeitsspeicher geladen wird und dort aktiv wird. Ein weiteres Problem kann das Programm Memmaker von MS-DOS darstellen. Memmaker berechnet für alle Einträge in der CONFIG.SYS und AUTOEXEC.BAT die ideale Reihenfolge um dem Anwender soviel wie möglich freien Speicherplatz bis zur 640kB Grenze zur Verfügung zu stellen. Hier kann es ganz leicht passieren, daß nach dem Aufruf von Memmaker das Monitor-Programm plötzlich an vierter oder fünfter Stelle in der CONFIG.SYS Datei steht. Vor dem Monitor-Programm werden also noch andere Dateien geladen. Sollte eine dieser Dateien infiziert sein kann auch hier ein Virus sich im Arbeitsspeicher plazieren und seine Präsenz vor dem Monitor-Programm verbergen.

Da das Monitor-Programm entscheiden muß welche Aktion als virenverdächtiges Verhalten gewertet wird und welches nicht, läßt die gleichen Probleme entstehen wie bei der heuristischen Scanmethode. Es wird immer einen gewissen Prozentsatz an Falschmeldungen geben. Ein solches Monitor-Programm muß also auch eine Datenbank darüber beinhalten, welche normalen Anwenderprogramme eine Falschmeldung auslösen um diese Falschmeldung dann zu unterdrücken.

Wird vom Monitor-Programm ein virenverdächtiges Verhalten zur Anzeige gebracht bietet es dem Anwender die Auswahl diese Aktion zuzulassen oder die Aktion abzubrechen (was in der Regel durch einen Warmstart erfolgt. Durch die sehr technische Natur der Vorgänge kann man hier nur von einem technisch sehr gut ausgebildeten Anwender auch eine vernünftige Entscheidung erwarten ob diese Aktion zuzulassen ist oder nicht.

Es gibt verschiedene Viren die bei ihrem Start den Hauptspeicher des Computers auf die Präsenz verschiedener Monitor-Programm hin untersuchen. Sollte ein solches Monitor-Programm vom Virus entdeckt werden gibt es verschiedene Möglichkeiten für den Virus sich einer Entdeckung zu entziehen. Er kann entweder Sicherheitslöcher im Monitor-Programm ausnutzen und es im Speicher ausschalten oder er verwendet nur Techniken die vom Monitor-Programm nicht erkannt werden können. Einige im Handel angebotene Monitor-Programme können von einem Virus auf die einfachste Art und Weise ausgeschaltet werden. Da es unter MS-DOS keinen hardwareunterstützten Speicherschutz gibt muß der Virus z.B. nur an einer bestimmten Speicherstelle zwei Byte verändern um das Programm inaktiv werden zu lassen. Gerade solche Programmiertricks verbreiten sich im Untergrund sehr schnell und entsprechende Viren die sich solcher Techniken bedienen sind dann auch schnell im Untergrund erhältlich. Um eine Technik zu verwenden die von einem solchen Monitor-Programm nicht entdeckt wird braucht der Virus nur ROM BIOS Calls anzuwenden.

Von den hier beschriebenen Methoden ist der Speichermonitor die schwächste und auch zugleich die verwundbarste Methode der Virenerkennung.


Hardwareschutz

Ein Hardwareschutz vor Computerviren ist eine Steckkarte die in einen freien Erweiterungsslot montiert wird. Das Antiviren-Programm ist in einem ROM auf der Steckkarte gespeichert und wird noch vor dem Bootvorgang des Computers aktiviert. Der klare Vorteil eines solchen Hardwareschutzes ist die Tatsache das die Karte noch vor dem Bootsektor oder aller anderen Software aktiviert wird. So können die Resultate der Hardware von keinem Virus manipuliert oder verfälscht werden. Ein weiterer Vorteil liegt in der Tatsache das die Steckkarte bei jedem Einschalten des Computers aktiviert wird und das die Software durch nichts manipulierbar in einem ROM (Read Only Memory) abgespeichert ist. Auch das regelmäßige Updaten der Antiviren-Software entfällt bei Hardwarelösungen. Eine einmal installierte und konfigurierte Karte bedarf in der Praxis keinen weiteren Wartungsaufwand. Der Nachteil einer Hardwarelösung liegt im Anschaffungspreis und im Installationsaufwand. Im Gegensatz zu einer Software-Sitelicense kann der Preis einer Hardwarelösung nicht beliebig gesenkt werden da ja höhere Materialkosten als bei einer Software entstehen. Während bei einer Softwarelösung die Installation und die weiteren Updates zentral über einen Server eingespielt und verteilt werden können, muß die Softwarelösung manuell in jeden Computer eingebaut werden. In einem größeren Unternehmen könnte dann die Installation der Steckkarten mehrere Monate dauern.

Empfehlenswert sind solche Hardwarelösungen vor allem in Bereichen, wo Computer ständig wechselndem Publikumsverkehr ausgesetzt sind. Dies ist vor allem in Schulungseinrichtungen und Universitäten der Fall. In diesen Bereichen ist die Anzahl der zugänglichen Computer überschaubar, auf wenige Räume beschränkt und jeder Computer ist in aller Regel mit dem gleichen Softwarestandard ausgerüstet, was eine vorkonfigurierte Installation des Hardwareschutzes ermöglicht. Hier konnten Hardwarelösungen bisher preiswert und mit großem Erfolg wirkungsvollen Schutz versprechen.

Es wurde bisher versucht jede Art von Softwareschutz vor Computerviren auch auf Hardwareebene zu implantieren. Für all diese Hardwareschutzmethoden gelten auch viele Nachteile die bereits bei den Softwareschutzmethoden erwähnt wurden.


Hardware-Monitor

Ein Monitor-Programm welches in eine Steckkarte implantiert wurde funktioniert genauso wie sein Softwarependant. Zwar kann es von einem Virus nicht mehr angegriffen werden, der Nachteil dieser Methode liegt nach wie vor in der Tatsache, daß der Anwender die Entscheidung zu treffen hat ob es sich nun um eine Virenaktion handelt oder um eine legitime Aktion eines Anwenderprogramms.


Hardware-Schreibschutz

Mit dieser Schutzmethode können Dateien oder Festplattensektoren als schreibgeschützt markiert werden. Die Steckkarte überwacht die Schreibzugriffe auf die Festplatte und sollte ein Schreibzugriff auf eine geschützte Datei oder Sektor unternommen werden unterbindet die Karte den Schreibzugriff und gibt gleichzeitig eine Warnung an den Anwender. Diese Methode ist sehr sicher, da ein Virus (Software) keinen Hardwareschreibschutz umgehen kann. Da der Karte nach der Installation in einem Teach-In Verfahren erst mitgeteilt werden muß welche Dateien oder Sektoren zu schützen sind ist die Konfiguration einer solchen Karte je nach System recht aufwendig.


Schlußbemerkung

Wenn man sich ansieht welche Anstrengungen bisher unternommen wurden um Viren zu entdecken, dann fällt einem auf, daß es nur wenige präventive Maßnahmen gibt, daß alle Methoden mit großen Nachteilen behaftet sind und daß alle Softwaremethoden auf das Betriebssystem aufgesetzt werden. Dem gegenüber können Computerviren durch die Verwendung von entsprechenden Techniken bereits vor dem Betriebssystem geladen werden oder das Betriebssystem umgehen. Es wäre also an der Zeit die führenden Betriebssystemhersteller würden entsprechende grundlegende Schutzmaßnahmen in ihre Betriebssystem integrieren. Leider ist dies bei OS/2 nicht geschehen und die bisherigen Beta-Versionen von Microsoft Windows 95 lassen auch nicht darauf schließen das dieses Betriebssystem in den Grundzügen sicherer gestaltet werden soll. Das Dilemma der Anwender liegt in einigen Bereichen an der Untätigkeit der Betriebssystemhersteller. Und in Hinblick auf zukünftige Betriebssystem ist nicht mit einer Besserung der Situation zu rechnen.


Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Autors unzulässig und strafbar.

Copyright (C) 05/1995 by Howard Fuhs

 

Fuhs Security Consultants
 
Alle Rechte
vorbehalten!

 
 Realisation:
Frank Ziemann
Home Impressum


WebCam
24h WorldTimer PCI DSS Publikationen Digital Publishing EN English
Thema 00
Hier finden Sie Information über Dinge, von denen wir jetzt noch nichts verraten wollen.
Fallbeispiele
Fallbeispiele aus der alltäglichen Datenunsicherheitspraxis.
Neues
Aktuelle Neuigkeiten und Medieninformationen.
Service
Sichern Sie Ihr Unternehmen durch unsere Dienstleistungen und Serviceangebote ab.
Fallbeispiele
Die neue 24h WorldTimer Uhrenserie mit standardisierter astronomischer Zeitangabe nach ISO 8601 für 24-Stunden-Umgebungen
PCI DSS
Dienstleistungen und Serviceangebote rund um den Payment Card Industry Data Security Standard
Publikationen
Fachartikel und Buchmanuskripte von Howard Fuhs.
Digital Publishing
Publikationen von Howard Fuhs auf CD-ROM.
EN English pages
Please find here our English pages for international visitors.
      E-Mail
Sie erreichen uns
per E-Mail unter
  info@fuhs.de
    Realisation
EDV-Beratung
Frank Ziemann
www.fz-net.com
Themen  
Themen
Papers Satellite Hacking
Fachartikel deutsch
Präsentationen
Fachartikel englisch
Bücher von Howard Fuhs
Buchrezensionen
Medienberichte
Datensicherheitsinfos
Sicherheitsinfos
Computerviren und ihre Vermeidung
Information Security Bulletin
Bilder PCBRL
Bilder DCF77
Jokes
Fachartikel deutsch
Deutsche Fachartikel von Howard Fuhs.
Präsentationen
Präsentationen von Howard Fuhs.
Fachartikel englisch
Englische Fachartikel von Howard Fuhs.
Sicherheitsinformationen
Sicherheitsinformationen auch aus Quellen des Computeruntergrunds.
Computerviren und ihre ...
Buchmanuskript von Howard Fuhs über Computerviren, erstmals veröffentlicht 1993.
Jokes
Einfach nur Witze.
Bücher von Howard Fuhs
Buchveröffentlichungen von Howard Fuhs.
Howard Fuhs in den Medien
Medienbericherstattung über Howard Fuhs.
Datensicherheitsinformationen
Allgemeine Datensicherheitsinformationen von Howard Fuhs.
Bilder PCBRL
Technische Bilder von Howard Fuhs für das Printed Circuit Board Research Lab.
Information Security Bulletin
Deutsche Ausgaben des Information Security Bulletin von CHI-Publishing Ltd., UK.
Papers Satellite Hacking
Englische Texte zum Vortrag Satellite Monitoring, Satellite Hacking and Satellite Security
DCF77 Funkuhr
Vintage Gallery - Bilder einer DCF77 Funkuhr von 1972
Buchrezensionen
Howard Fuhs bespricht Fachbücher