REFERAT-MenüDeutschGeographieGeschichteChemieBiographienElektronik
 EnglischEpochenFranzösischBiologieInformatikItalienisch
 KunstLateinLiteraturMathematikMusikPhilosophie
 PhysikPolitikPsychologieRechtSonstigeSpanisch
 SportTechnikWirtschaftWirtschaftskunde  



Computerviren

Computerviren



Allgemeines zu Viren



Allgemeine Definition


Ein Computervirus ist ein Programm, daß in der Lage ist, Kopien von sich selbst herzustellen und in andere Programme einzupflanzen (infizieren). Der Virus kann eine genau definierte (meistens destruktive) Aufgabe ausfüllen. Programme die infiziert wurden sind ihrerseits wiederum Viren.


Ziele und Zweck eines Virus


Viren richten im allgemeinen nur Schaden an. Zu Forschungszwecken werden auch Viren eingesetzt die sich nur reproduzieren und keine Veränderungen an Programmen vornehmen.


Mögliche Schäden:


Harmlose aber störende Bildschirmanimationen



Daten- bzw. Dateizerstörung durch Löschen oder Überschreiben

Zerstörung von gesamten Disketten- bzw. Festplatteninhalten durch Formatieren

Manipulation von Daten durch z.B.:

Ersetzen bestimmter Zeichenketten

Verfälschung der Tastatureingaben

Blockierung von Speicherplatz durch z.B.:

das Schreiben riesiger Dateien mit sinnlosem Inhalt auf die Festplatte oder Diskette.

das Laden sinnloser Programme in den Arbeitsspeicher.

Beanspruchung der Prozessorleistung für sinnlose Berechnungen.

Blockierung von Programmen durch Aufforderung zur Eingabe eines Paßwortes ohne das ein Programm nicht gestartet werden kann

Keine

Schäden an der Hardware können von Viren nicht direkt verursacht werden


Viren werden meistens von Privatpersonen programmiert. Der "klassische" Computervirus hatte meistens das Ziel bestimmte Unternehmen und Firmen durch Datenmanipulation- oder Zerstörung zu schaden.


Häufigste Herkunftsländer:


1) USA

2) Rußland

3) Deutschland

4) Bulgarien

5) Polen


In Österreich, beispielsweise, verursachen Computerviren jährlich einen Schaden von ca. 100 Mio. Schilling.

Derzeit sind ca. 10000 Viren bekannt. Täglich kommen 2-3 neue dazu. Durch flächendeckenden Einsatz von Virenbekämpfungsmaßnahmen wurden aber schon viele Viren praktisch total unschädlich gemacht.


Rechtslage


In Österreich und Deutschland ist die Rechtslage bezüglich Computerviren sehr ungenau definiert. Das Programmieren von Computerviren ist demnach nicht ausdrücklich verboten, sehr wohl aber deren - auch nur versuchte - Anwendung und vor allem die daraus resultierende Veränderung von Daten. Strafbar ist die Anwendung jedes Virus, auch wenn er keinen Schaden anrichtet, da in jedem Fall durch das Kopieren des Virusprogramms eine Veränderung von Datenbeständen erfolgt. Es gibt aber keine wirklich genauen Verbote für die indirekte Verbreitung von Viren, etwa für das Einschleusen in Netzwerke anstatt durch direkte Infektion des zu manipulierenden Computers. In der Schweiz hingegen sind alle Schritte, vom Programmieren bis zur Verbreitung, sowie der Anstiftung dazu, mit einer Freiheitsstrafe von bis zu 5 Jahren belegt. Sowohl in der Schweiz als auch in Österreich und Deutschland ist allerdings mit weitreichenden Schadenersatzforderungen sowie einer Bestrafung für andere, durch den Vireneinsatz begangene Delikte, etwa Betrug durch einen Virus, der Bankguthaben verschiebt, zu rechnen.

Immer wieder wird der Einsatz von Viren als Schutz vor Raubkopien diskutiert, d.h. ein illegal benütztes Programm setzt einen Virus frei. Dies ist allerdings rechtlich nur so weit gedeckt, als nur das betroffene Programm - und kein Byte mehr - in Mitleidenschaft gezogen wird.


Arten von Computerviren


Programmviren

Programmviren befallen Dateien die in ausführbarem Programmcode vorliegen. Zumeist sind diese .EXE, .COM und oft auch .SYS Dateien. Diese Programme bestehen aus 3 Teilen: Start - Eigentliches Programm - Ende


Programmviren gliedern sich wiederum in 2 Bereiche:


1. Nichtüberschreibende Viren:

Der Virus kopiert sich entweder

an das Programmende Dabei verschiebt er auch den Startteil des Wirtprogrammes an das Ende und fügt einen Verweis auf den Viruscode am Anfang der Datei ein. Beim Aufruf der Datei springt der DOS Loader (=Leseroutine) zum Virus und führt ihn aus. Die ursprüngliche Startanweisung zeigt auf den normalen Programmcode, der dann gestartet wird. Danach wird das Programm beendet. Der Anwender merkt davon nichts, da Viren meist nur winzig klein sind und in einem Bruchteil einer Sekunde ihre Arbeit erledigt haben. Die Länge des Ursprungsprogrammes wird erweitert obwohl es nach außenhin normal abläuft. So bleiben Infektionen oft lange unbemerkt


an den Programmanfang. Zunächst wird der 1. Teil des Wirtprogrammes in der Größe des Viruscodes herausgeschnitten, mit Hilfe einer Verschieberoutine markiert und am Ende der Datei eingefügt. Der Virus wird an den Dateianfang kopiert. Beim Start des infizierten Programmes wird der Virus ausgeführt und dann die VR gestartet, die den verschobenen ersten Programmteil in seine Ursprungsposition, über den Viruscode, rückt. Das Programm ist wiederhergestellt und kann normal gestartet und beendet werden. Da das Ausführen eines Programmes im Arbeitsspeicher erfolgt, bleibt die Datei auf der Festplatte unverändert und somit noch immer infiziert.


2. Überschreibende Viren

Bei der Fortpflanzung eines Virus dieses Typs, überschreibt dieser einfach den Anfang des Wirtprogrammes. Dieses wird aber dadurch fehlerhaft und funktionsunfähig.


Speicherresidente Viren

Diese Viren haben eine etwas effektivere Fortpflanzungsmethode als Programmviren. Wird nämlich ein infiziertes Programm aufgerufen, laden sich der speicherresidente Virus in den Arbeitsspeicher. So kann er auch wenn das eigentliche Programm beendet wird aktiv bleiben und seinen "Auftrag" ausführen.


Und das geht so:

Die Computerviren überwachen bestimmte DOS- oder BIOS- Interrupts in der Interrupt-Vektor-Tabelle. Benötigt ein Programm nun eine Systemfunktion (z.B. eine Tastatureingabe) so fordert sie diese über einen Interrupt an. Was bei dem Ausführen eines Interrupts geschieht, steht in der Interrupt-Vektor-Tabelle. Da diese Tabelle im Arbeitsspeicher liegt, kann der Virus hier verändernd eingreifen und der angeforderte Interrupt führt anstatt der ursprünglichen Interruptfunktion, die Virusfortpflanzungsroutine aus. Das aktive Programm wird infiziert.


Source-Code Viren

Hier liegt der Computervirus nicht als ausführbarer Programmcode vor, sondern als Quellcode einer Programmiersprache wie z.B.: Pascal, C, usw. Da ein plötzlich auftauchender fremder Code in einem Programm sehr verdächtig sein würde, infiziert der Virus bevorzugt Programmbibliotheken, die meist nicht kontrolliert werden. Compiliert und startet man nun das Programm, wird irgendwann auch die Programmbibliothek benötigt und der Virus kann somit aktiv werden. Er sucht dann wiederum nach anderen Bibliotheken und infiziert diese. Das funktioniert aber nur wenn noch der Quellcode des Virus in der uncompilierten Datei vorliegt.


Call Viren

Call Viren versuchen Auffälligkeiten wie die Veränderung der Dateigröße oder Zerstörung des Wirtprogrammes zu vermeiden. Deshalb liegt der Virus als versteckte Datei irgendwo auf dem Datenträger vor. Nur ein Link, der ggf. so angebracht werden kann, daß das infizierte Programm nicht verlängert wird, ruft den Virus vom Wirtsprogramm aus auf.


Bootsektorviren

Der Bootsektor ist der Sektor einer Festplatte der beim Systemstart als erster gelesen wird und der dem Rechner mitteilt, was er nach dem Einschalten machen soll. Ein Bootsektorvirus überschreibt diesen Sektor mit dem eigenen Programmcode und verweist, nach der Erfüllung seiner Aufgabe, auf eine zuvor angelegte Kopie des originalen Bootsektors auf der Festplatte.





Bei den Bootsektorviren gibt es folgende Unterscheidungen:

Floppy Boot Record Viruses (FBR), bei Disketten

Master Boot Record Viruses (MBR), bei Festplatten

Operating System Boot Record Viruses (OBR), bei Bootsektoren des jeweiligen Betriebssystems


Partition Table Virus

Der Virus nistet sich im Partition Table (Sektor 0) der Festplatte ein und infiziert von dort aus den Bootsektor. Selbst beim Formatieren der Festplatte oder löschen des Bootsektors bleibt der Virus erhalten.


Companion Viren

Der Virus liegt in Form einer .COM Datei vor, die den selben Namen hat wie die infizierte .EXE Datei. Da DOS immer die .COM Dateien zuerst startet, kann hier der Virus aufgerufen werden, der nach dem Ausführen seines Programmes die ursprüngliche .EXE Datei startet.


Macro Viren

Ein Macro ist eine Zusammenfassung einer Abfolge von Befehlen. Sie werden zur Arbeitserleichterung in Programmen wie MS-Word eingesetzt. Macroviren sind die neueste Generation von Computerviren und sehr effektiv, da Makros an normale Dokumentdateien gebunden sind und somit leicht verbreitet werden. So ist es z.B.: möglich von Word aus unbemerkt die Festplatte zu formatieren.


Zusätzliche Eigenschaften

Die eben erklärten Virenarten können noch eine oder mehrere der folgenden Eigenschaften besitzen:


Cavity Viren

Cavity Viren versuchen die Größe der infizierten Datei nicht zu verändern um sog. Check- Summen Programmen zu entgehen. Sie suchen in der Zieldatei eine Stelle mit einer Reihe an identischen Zeichen die mindestens so groß wie der Virus selbst sein muß. Dieser komprimiert dann diese Zeichenkette und fügt sich in die entstandene Lücke ein.

Greift das Programm auf die vermeintliche Zeichenkette zu, wird der Virus ausgeführt, der nach Erfüllung seiner Aufgabe die Zeichenkette dekomprimiert und das Programm kann normal weiterlaufen.


Bsp. einer Infektion:

Programm vorher: AJF3JS20000000000000000000000000000DNFJAKSF289a

Programm nach Infektion: AJF3JS2=>VIRUSCODE+12*0<=00000000DNFJAKSF289a


Stealth Viren

Stealth Viren versuchen dem Benutzer vorzugaukeln, sie wären gar nicht im System. Sie tarnen sich dadurch, daß sie die Zugriffe auf die infizierten Dateien überwachen. Will z.B. der DOS-Befehl DIR die Größe einer infizierten Datei anzeigen, subtrahiert der Virus von diesem Wert seine Codegröße und täuscht somit eine "gesunde" Datei vor. Durchsucht ein Antivirusprogramm beispielsweise die Festplatte desinfizieren manche Stealthviren die infizierten Dateien und kopieren sich in den Arbeitsspeicher. Nach der Beendigung des Antivirenprogrammes werden die Dateien wieder infiziert.


Polymorphe Viren

Da ein Großteil der Antivirusprogramme nach fixen Viruszeichenketten sucht, bietet es sich als Virus an, eben solche nicht anzubieten. Polymorphe Viren beinhalten Zeichenketten, die sich ständig, mit Hilfe einer Mutations-Engine, verändern und eine gezielte Suche sehr erschweren.


Bounty Hunter Viren

Diese Viren suchen nach Antivirussoftware und verändern diese oder machen sie unschädlich. Diese Viren sind äußerst selten, aber sehr effektiv, da sie nach dem Ausschalten der Antivirensoftware praktisch freie Bahn haben.


Hybrid Viren

Sie stellen eine Virusart dar, die möglichst viele Mechanismen vereint. Sie vereinen beispielsweise einen Programmvirus, einen speicherresidenten Virus und einen Bootsektorvirus zu einem äußerst gefährlichem Programm.


Aufbau eines Virus


Ein Virus besteht immer mindestens aus 2 Teilen


1. Der Fortpflanzungsmechanismus


Genau wie bei einem biologischen Virus ist eine der Aufgaben eines Computervirus die möglichst weite Verbreitung in alle Winkel eines Computersystems. Dazu wird ein oft ausgeklügelter Fortpflanzungsmechanismus geschrieben. Je nach Virenart werden Dateien, Bootsektoren, Arbeitsspeicher, BIOS-Speicher, Macros, MBRs infiziert.


Bei der Infektion einer Datei kopiert der Virus neben dem eigentlichen Programm einen speziellen Code in das File. Falls der Virus jetzt versucht eine schon infizierte Datei nochmals zu infizieren und dabei auf seinen eigenen Code stößt, weiß er, daß die Datei schon von ihm infiltriert ist und eine doppelte Infektion wird somit vermieden.


2. Der Auftrag


Nach dem Ziel, das der Programmierer verfolgt, gestaltet sich der Auftrag. Vom einfachen Nichtstun bis zur Löschung von Festplatten usw. ist alles möglich.


Um möglichst lange unentdeckt zu bleiben und um sich weit verbreiten zu können, tritt die Schadensfunktion meistens erst nach einiger Zeit in Kraft. Viren verwenden dazu sog. Trigger, d.h. der Virus wird erst nach dem Eintreten eines bestimmten Ereignisses aktiv.

Beispiele für Trigger:

Aktivierung  -) an einem bestimmten Datum ( Freitag der 13. ist sehr beliebt)

-) nach dem 100. Start des infizierten Programmes

-) nach dem 200. Start des Computers

-) nach Drücken einer bestimmten Tastenkombination

-) an einer bestimmten Uhrzeit

Virenschutz


Ein 100%iger Schutz vor Viren ist nicht möglich. Um doch möglich sein sollten die Daten regelmäßig mit der neuesten Antivirensoftware überprüft werden.


Spätestens bei folgenden Anzeichen sollte eine Überprüfung vorgenommen werden, da es sich um Anzeichen für einen Virus handeln kann:


Verlangsamter Zugriff auf Daten

plötzlich auftretender Speichermangel

Fehlermeldung, dass ein Laufwerk nicht korrekt angesprochen werden kann

der Computer ist nicht mehr startfähig

Probleme beim Abspeichern von Daten

Daten sind verschwunden

Programme sind nicht mehr ausführbar


Virenverbreitung

Viren können sich so ziemlich über jeden Zugriff auf einen infizierten Speicher fortpflanzen.

Bei einem Bootsektorvirus reicht das Vergessen einer infizierten Diskette im Laufwerk beim Bootvorgang. Wird auf die Diskette zugegriffen, offenbart sich dem Virus quasi eine neue Mahlzeit und er beginnt das System zu infizieren.

Das Internet stellt die beste Verbreitungsmöglichkeit für Viren dar. Tausende Programme werden täglich downgeloaded von denen jedes einen Virus beinhalten kann. Der Weg über die Telephonleitung ist der schnellste Weg für einen Virus sich auf der ganzen Welt zu zerstreuen. Entgegen vieler Befürchtungen können Viren nicht über E-Mails übertragen werden, außer natürlich, wenn die, über E-Mail übertragenen Programme oder Dateien, infiziert sind. Ist man sich bei einer Datei, die man per E-Mail bekommen hat, nicht über die Herkunft im klaren, sollte man die Datei nicht öffnen, da sich dann der Virus nicht verbreiten kann.


Antivirenprogramme

Antivirenprogramme sind die beliebteste und bequemste Methode sich vor Viren zu schützen. 100%igen Schutz können sie aber nicht bieten. Die einzige Möglichkeit allen Infektionen vorzubeugen ist, den Computer von fremden Daten total abzuriegeln. Keine Diskette, CD-ROM oder Internetverbindung wäre in diesem Fall erlaubt. Sogar Originaldisketten können Viren transportieren.

Weiters können AVs auch falschen Alarm geben (sog. False Positives), falls sich ein legitimes Programm dem Verhalten eines Virus zu sehr annähert.


Es gibt verschiedene Arten von Antivirenprogrammen:


Monitor-Programme

sind speicherresidente Programme. Sie warten im Hintergrund auf virentypische Aktivitäten wie z.B.: *) Veränderung von ausführbaren Dateien

*) Verbiegen von Interrupt Vektoren

*) Formatieren von Sektoren

*) usw.

Sie fragen dann den Benutzer ob diese Zugriffe legitim und erlaubt sind oder nicht. Wenn nicht, ist vermutlich ein Virus im Spiel.

Leider können die meisten Monitore von manchen Viren problemlos übergangen werden.


Man sollte nie mehr als ein Monitor-Programm auf seinem Rechner installiert haben, da sie sich untereinander garantiert nicht vertragen.


Scanner

sind die meistverwendeten AVs. Die älteren Programme dieser Art durchsuchen die Dateien nur nach virenspezifischen Zeichenketten oder nach sog. Jokerzeichen, die auf mehrere Virenvarianten passen und somit den Scanner flexibler machen.

Leider muß, um mit diesen Programmen einen Virus finden zu können, dieser schon bekannt und analysiert worden sein. Außerdem sind sie gegen polymorphe Viren so gut wie hilflos da in diesem Fall jede Virengeneration- oder Variation ihren eigenen Scan-String bräuchte.

Deswegen verwenden moderne Scanner Ansätze von künstlicher Intelligenz und heuristische Methoden um gegen unbekannte Viren besser gewappnet zu sein. In diesem Fall erhält der Benutzer aber keine Information über den Virus sondern muß auf Grund der erkannten Symptome und einer Wahrscheinlichkeitsaussage seitens des Scanners selbst entscheiden ob eine Infektion vorliegt oder nicht.


Um ein System wirkungsvoll zu schützen sollte man mindestens 2 verschiedene Scanner alle 2 Wochen benützen.


Integrity-Checker oder Checksummenprogramme

sind Programme, die von Datenabschnitten Checksummen erstellen. Datenabschnitte können Bootsektoren, Dateigrößen, Programme, Sourcecodes, usw. sein. Diese Checksummen werden mit einer, von Zeit zu Zeit neu erstellten, verglichen. Suspekte Anderungen der Datenabschnitte können auf einen Virus hinweisen.

Gute Integrity-Checker erkennen zudem auch Sicherheitslücken und spüren Companion-Viren (siehe 2)e)) auf.

Weiters weisen sie auf nicht durch Viren manipulierte Dateien hin und bemerken Datenverluste durch, beispielsweise, einer alten Festplatte.


Heuristische Scanner

arbeiten nach dem Prinzip der Fuzzy-Logic (Fuzzy Logic bedeutet  "verschwommene Logik" und ist ein Programmierverfahren, bei dem Entscheidungen nicht nur als WAHR/FALSCH getroffen werden können, sondern das auch Zwischenstufen erlaubt.). Sie analysieren Programme auf deren Funktion und Aufbau. Werden hier verdächtige Funktionen erkannt, schlägt der Scanner Alarm wenn die untersuchte Datei mehrere beinhaltet.


Verdächtige Funktionen sind z.B.: *) Schreiben in ausführbare Dateien

*) Modifizieren von Dateiattributen

*) Undokumentierte Interruptzugriffe

*) Suchen nach beliebigen ausführbaren Dateien




Die heuristische Methode geht von der Tatsache aus, daß der Virus immer eine gewisse Programmstruktur beinhalten muß, egal wie sehr er verschlüsselt oder verändert wurde. Diese Tatsache trifft vor allen Dingen auf die Entschlüsselungsroutine zu, die den Virus bei jedem Aufruf auf das Neue entschlüsseln muß, bevor sein Code funktionsfähig ausführbar ist. Bei der heuristischen Suche wird nun in einer ausführbaren Datei gezielt nach solchen, für einen mutierenden Virus typischen Programmstrukturen gesucht. Es ist mit dieser Methode möglich, die Wahrscheinlichkeit, mit der eine Datei infiziert ist zu bestimmen. Ab einer gewissen Wahrscheinlichkeit wird dann die Datei von dem Antiviren-Programm als verdächtig oder infiziert gemeldet. Da die heuristische Technik in einem gewissen Maße nur auf der Annahme von Wahrscheinlichkeiten beruht, ist hier die Wahrscheinlichkeit eines falschen Virenalarmes auch relativ hoch. Die Wahrscheinlichkeit eines falschen Alarms steigt mit den Mutationsmöglichkeiten für die ein polymorpher Generator programmiert wurde. Je höher die Anzahl der möglichen Mutationen desto allgemeiner muß der Ver- /Entschlüsselungscode gehalten sein und desto höher ist die Wahrscheinlichkeit den gleichen Programmcode in einer nicht infizierten Datei zu finden.


Durch Einsatz der Fuzzy Logic in der Virenerkennung ist es möglich, alle - oder zumindest sehr viele - Abarten eines polymorphen Virus zu erkennen, da weitere, unbekannte Abarten fast immer einen ähnlichen Code aufweisen wie bekannte. Bei gänzlich neuen Viren ist die Erfolgsquote wesentlich niedriger, wenngleich Viren, die einem schon bekannten Virus ähnlich sind, erkannt werden können.


Viren Cleaner

Die meisten Antivirenprogramme enthalten auch Viren-Entfernungsfunktionen, die versuchen, Dateien wieder in ihre ursprüngliche Form - nicht infiziert - zu versetzen. Diese können aber nur vernünftig funktionieren, wenn eine exakte Beschreibung des Virus vorliegt und dieser außerdem richtig erkannt wurde. Da aber oft sehr viele Variationen eines Virus im Umlauf sind, wird die wiederherzustellende Datei meistens, durch einen nicht genau genug passenden Entfernungsvorgang, beschädigt und somit unbrauchbar. Somit ist es immer günstig ein Backup aller wichtigen Daten auf der Festplatte bei der Hand zu haben.



Moderne Virenscanner sind Kombinationen aus allen vorher beschriebenen Arten und sind meistens sehr effektiv, Viren aufzuspüren (siehe Grafik).











Erkennungsquote verschiedener Anti-Virus Programme.

Angaben in % einer Virenauswahl (1998)






Um sich also gegen Viren möglichst gut zu schützen ist es notwendig:


den Computer regelmäßig zu überprüfen (nur mit neuestem Scanner)

neue Software sofort auf Virenbefall zu überprüfen

alle Daten nach dem herunterladen aus dem Internet zu prüfen

alle Disketten vor Benutzung zu scannen

bei Disketten den Schreibschutz zu aktivieren

regelmäßig Backups von allen wichtigen Daten zu machen

nur autorisierten Personen Zugriff zum Computer und/oder Netzwerk gewähren

nur Originalsoftware zu verwenden

eine Bootdiskette für den Notfall zu erstellen


Wie schützt sich der Virus vor der Entdeckung

Polymorphe Verschlüsselungsroutine


Polymorphe Verschlüsselungsroutinen verschlüsseln den Viruscode unter Anwendung von einem oder mehreren Verschlüsselungsalgorithmen. Ziel dabei ist es nicht nur den Virus vor Entdeckung zu schützen, sondern auch mit so wenig wie möglich Programmcode soviel wie möglich an verschiedenen Verschlüsselungen erzeugen zu können. Für die Generierung unterschiedlicher Verschlüsselungen werden bestimmte Variablen benötigt. Als Variablen für die Generierung einer Mutation können Datum, Uhrzeit, Dateigröße oder auch andere Werte dienen. Dies kann aber auch zur Folge haben, daß sich ein Virus unter bestimmten Umständen nicht weiter verbreiten kann, da die zur Verfügung gestellten Werte nicht in der Verschlüsselungsroutine verwendet werden können.


Mutation Engine


Um einen Computervirus optimal vor Entdeckung zu schützen, muß eine polymorphe Routine mehrere Funktionen beinhalten.

Der eigentliche Computerviruscode muß verschlüsselt werden.

Die Verschlüsselung muß mit verschiedenen Schlüsseln oder gar Algorithmen erfolgen, damit keine verschlüsselte Kopie der anderen gleicht.

Die Entschlüsselungsroutine muß mit jeder Kopie so verändert werden, daß sie ihre Funktion beibehält und trotzdem nicht der vorherigen Kopie gleicht.

Werden die Bedingungen unter Punkt 2 und 3 nicht eingehalten, wäre es technisch möglich den Virus mit einem String-Scanner (suche nach Zeichenketten) zu finden.


Der am Anfang der Datei stehende Jump-Befehl verzweigt sofort zur Entschlüsselungsroutine, die ausgeführt wird und den Computervirus mitsamt der polymorphen Routine entschlüsselt. Nach der Entschlüsselung kann der Viruscode abgearbeitet werden. Nachdem der Viruscode abgearbeitet wurde, erfolgt ein zweiter Jump-Befehl zum eigentlichen Dateianfang der infizierten Wirtsdatei und führt diese aus.

Eine ähnliche Vorgehensweise wird bei der Infizierung einer Datei angewendet. Der Virus schreibt an den Anfang der zu infizierenden Wirtsdatei einen Jump-Befehl zum Dateiende. Als nächstes wird die polymorphe Routine beauftragt, eine Verschlüsselungsroutine mit Schlüssel zu generieren. Dann wird eine Kopie des Virus mitsamt der polymorphen Routine angefertigt und mit der bereits generierten Verschlüsselungsroutine verschlüsselt. Jetzt wird eine passende Entschlüsselungsroutine generiert und an das Ende der zu infizierenden Wirtsdatei angehängt. An diese Entschlüsselungsroutine wird wiederum der verschlüsselte Virencode mitsamt einem Jump-Befehl auf den Dateianfang der Wirtsdatei angehängt.


Der Virus verschlüsselt den Programmcode immer mehr und mutiert dadurch auch.


Junk Code Generator


Die Verschlüsselung des Virencodes reicht nicht aus, um einen Computervirus für String-Scanner unsichtbar zu machen. Das schwächste Glied in der Funktionskette eines polymorphen Virus ist die Entschlüsselungsroutine. Während der verschlüsselte Viruscode nicht ausführbar ist, muß der Programmcode dieser Routine ausführbar sein und kann damit nicht ebenfalls verschlüsselt werden. Bleibt aber eine Entschlüsselungsroutine immer gleich, so kann ein String-Scanner mit einer bestimmten Bytefolge sehr zuverlässig nach diesem Code suchen und damit den Computervirus ebenfalls entdecken. Um diese Routine zu tarnen, wird sie mit Befehlen versehen, die keine Wirkung haben, wie z.B. NOP oder MOV BX:BX, aber das Erscheinungsbild dieses Programmabschnitts bei jeder Kopie so nachhaltig verändern, daß sie mit einfachen String-Scannern nicht mehr entdeckt werden kann. Damit diese Befehle immer an unterschiedlicher Stelle der Entschlüsselungsroutine stehen, ist in einer guten polymorphen Routine ebenfalls ein sogenannter Junk Code Generator eingebaut, um ausführbaren Code von Kopie zu Kopie nachhaltig zu verändern, ohne die Funktion der Routine zu beeinträchtigen. Ein solcher Junk Code Generator ist ein Zufallsgenerator, der eine bestimmte Menge an Befehlen an zufälligen Stellen innerhalb der Entschlüsselungsroutine placiert. Außer dem Junk Code Generator gibt es noch andere Möglichkeiten, die Verschlüsselungsroutine vor Entdeckung zu schützen.








Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen