You are here: Home Security Viren, Würmer und co Viren
Search
Advanced Search…
E-Mail

Webmail: webmail.wyden.com

E-Mail Preferences: postfix.wyden.com/users

E-Mail Administration: postfix.wyden.com

Statistics
Total: 473
Total Pages: 286
Total Folders: 87
Total Files: 18
Total Links: 26
Last modification: 19.04.2012 15:21
 

Viren

by Wyden Silvan last modified 01.06.2010 20:02

1. Definition

„…ein Programm, das andere Programme infizieren kann, indem es sie so modifiziert, dass diese eine möglicherweise mutierte Kopie von dem Programm enthalten“

Unter dem Wort „infiziert“ versteht man, dass sich der Virus in die Befehlskette eines Wirtsprogramms (ein eigenständiges Programm) einschleust. Wenn dann das Wirtsprogramm vom User (Benutzer) geöffnet wird, kann dies zur Ausführung des Virus führen. Ein Virus kann nicht ohne ein Wirtsprogramm ausgeführt werden.
Um als Virus klassifiziert zu werden, muss ein Virus nicht unbedingt einen Schaden verursachen. Es ist nur wichtig, dass er sich selbst mit Hilfe eines infizierten Wirtsprogramms repliziert, d.h. dass sich der Virus im ganzen System verbreitet.

 

2. Struktur

Die Struktur eines Virus besteht grundsätzlich aus vier Teilen: dem Infektionsteil, dem Auslöser, dem Playload (Schadensfunktion) und der Tarnkappe.

viren_struktur.jpg

Wenn ein infiziertes Programm gestartet wird, muss das Programm meistens die Kontrolle an den Virus abgeben, weil dies so in der Befehlskette des Wirtsprogramms durch den Virus deklariert worden ist. Je nach Art der Programmierung versucht der Virus als erstes ein weiteres Programm zu finden, welches er infizieren kann. Sobald dieser Vorgang abgeschlossen ist, kommt der Auslöser zum Zuge, welcher dann bestimmt, ob das Playload, die so genannte Schadensfunktion, ausgeführt werden soll oder nicht. Zum Schluss versucht der Virus noch seine Spuren mit Hilfe der Tarnkappe zu verwischen, damit er nicht von einem Anti-Viren Programm gefunden wird. Wenn das alles abgeschlossen ist, gibt der Virus die Kontrolle meistens wieder an das Wirtsprogramm zurück oder bleibt noch im Hintergrund aktiv.

 

2.1 Aktivierung

Ein Virus muss meistens durch den Benutzer selbst aktiviert werden. Dies kann geschehen, indem der User die Virus-Datei öffnen will. Somit setzt er den Virus frei und dieser bindet sich dann in ein Wirtsprogramm ein um sich weiter zu vermehren und den ganzen Computer zu infizieren.
Es kann aber schon genügen, wenn der Benutzer eine Diskette in das Laufwerk schiebt. Wenn der Bootsektor des Speichermediums mit einem Virus infiziert ist, kann dieser sich auch im ganzen Computer einnisten.
Eine andere Möglichkeit ist auch das Öffnen eines Dokuments (Word, Excel usw.). Sobald eine solche Datei geöffnet wird, können sich so genannte Makroviren aktivieren, die dann die Kontrolle über das Programm erhalten.
Der Benutzer ist also immer auf irgendeiner Ebene an der Aktivierung des Virus beteiligt, auch wenn er nur den Computer einschaltet.

2.2 Infektionsmechanismus

Der wichtigste Teil in der Struktur eines Virus ist der Infektionsmechanismus. Es geht dabei um den Code, mit dessen Hilfe sich der Virus vermehren kann. Dieser Mechanismus besteht aus mehreren Teilen.

Als erstes muss der Virus Objekte suchen, welche er infizieren kann. Die Suche nach solchen Elementen kann aktiv oder passiv verlaufen. Bei einer aktiven Suche wird nach Programmen entsprechender Grösse und entsprechenden Formats gesucht. Bei der passiven Suche werden zum Beispiel alle Dateien beim Speichern infiziert (Makroviren).
Wenn ein geeignetes Objekt gefunden wurde, muss überprüft werden ob der Virus dieses Objekt schon einmal infiziert hat. Ist dies der Fall, wird keine zweite Infektion mehr vorgenommen, weil dies zum Absturz des Programms oder zu anderen Auffälligkeiten führen könnte. Somit würde sich der Virus selbst verraten und schneller von einem Anti-Virus Programm gefunden werden. Um zu überprüfen, ob ein Objekt schon infiziert ist oder nicht, kann der Virus mit einem einfachen Test herausfinden:

BEGIN
   IF (infected object found)
   AND (object not already infected)
   THEN (infect object)
END

Ein weiterer Teil des Infektionsmechanismus ist das Einfügen einer Kopie des Virencodes in das gefundene Objekt (d.h., das Objekt wird infiziert). Diese Aktion kann auf verschiedene Weise auftreten. Der Virus kann einen neuen Codeabschnitt in den Bootsektor schreiben, einen neuen Code in ein Programm einfügen, einen Makrocode in die Microsoft Word Datei „Normal.dot“ schreiben etc.

 

2.3 Auslöser (Trigger)

Ein ebenfalls wichtiger Teil des Virus ist der Auslöser (Trigger) des Playloads. Es hängt von der Virus-Programmierung ab, wann der Trigger den Playload starten soll. Der Trigger kann zum Beispiel eine bestimmte Anzahl von Infektionen, ein bestimmtes Datum oder eine bestimme Uhrzeit abwarten, bis er das Playload aktiviert. Ein solcher Code könnte folgendermassen aussehen:

BEGIN
   IF (date is Friday 13th)
   THEN (set trigger status to yes)
END

Bei diesem Code würde der Trigger den Playload immer nur am Freitag den 13. starten und an den anderen Tagen nicht.

 

2.4 Playload (Schadensfunktion)

Der Playload ist die eigentliche Schadensfunktion von einem Virus. Ein Playload- Mechanismus könnte wie folgt aussehen:

BEGIN
   IF (trigger status is yes)
   THEN (execute playload)
END

Diese Aktion kann von einer einfachen Meldung bis zur Formatierung der Festplatte alles beinhalten.
Je grösser ein Playload ist, umso wahrscheinlicher ist es, dass der Virus von einem Anti-Viren Programm gefunden wird. Somit sind auch meistens nur die Viren erfolgreich, die nicht so sehr auffallen und keine nennenswerte Auswirkung auf das Computersystem haben.

 

2.5 Tarnkappe

Wenn eine Datei infiziert ist, verändert das ihre Eigenschaften. Eine Eigenschaft ist zum Beispiel das Datum, das bei jedem schreibenden Zugriff auf eine Datei aktualisiert wird. Ein anderes wichtiges Merkmal ist die Dateilänge. Wenn sich ein Virus an die Befehlskette eines Programms anhängt, wird diese Datei grösser als die originale Datei und kann somit schneller auffallen.
Um solche Sachen zu umgehen, gibt es so genannte Stealth-Mechanismen. Mit Hilfe von diesen Mechanismen kann der Virus länger unerkannt bleiben und sich somit tarnen. Manche Viren lesen zum Beispiel vor der Infektion die Dateiattribute heraus, um sie nach der Infektion wieder so zu setzten, wie sie am Anfang waren. Somit fällt niemandem auf, dass etwas an der Datei geändert worden ist, weil ja noch alles so ist wie bei der ursprünglichen Datei, ausser das der Viruscode hineinkopiert worden ist.
Bei einem anderen Stealth-Mechanismus kopiert der Virus zuerst die Datei, die er infizieren will und bewahrt sie auf. Wenn dann das System Informationen über diese Datei anfordert, wird die Kopie und nicht die echte (infizierte) Datei angezeigt. Es muss aber nicht unbedingt eine vollständige Kopie der noch nicht infizierten Datei sein. Es reicht auch schon, wenn diese Kopie zum Beispiel nur die ursprüngliche Grösse der Datei vor der Infektion beinhaltet.

 

3. Möglichkeiten ein Wirtsprogramm zu befallen

Es gibt drei typische Möglichkeiten, wie ein Virus ein Wirtsprogramm befallen kann: als nicht-residenter Virus, als speicherresidenter Virus oder als Hybridvirus. Alle drei Typen werden beim Aufruf des infizierten Programms aktiv. Doch abhängig von der Art des Virus bleiben sie unterschiedlich lang aktiviert.

 

3.1 Nicht-residente Viren

Nicht-residente Viren, auch One-Shot (direkte) Viren genannt, können sich nur vermehren, wenn ein infiziertes Programm ausgeführt wird. Der Virus sucht sich ein Objekt zum Infizieren und kopiert sich dort hinein. Sobald dies geschehen ist, gibt der Virus die Kontrolle wieder an das ursprüngliche Programm zurück und führt keine weiteren Aktionen mehr aus.

 

3.2 Speicherresidente Viren

Ein Virus der speicherresident ist, wird auch aktiv, wenn ein befallenes Programm ausgeführt wird. Aber im Gegensatz zu den nicht-residenten Viren bleibt er auch noch aktiv, wenn das infizierte Programm geschlossen wird. Erst nach einem Neustart des Computers ist der Virus nicht mehr aktiv.

 

3.3 Hybridviren

Ein Hybridvirus wird aktiviert, wenn ein infiziertes Programm gestartet wird. Nachdem er seine Aktionen durchgeführt hat, gibt er die Kontrolle nur teilweise an das Wirtsprogramm zurück. Er bleibt so lange im Hintergrund aktiv, bis das Programm geschlossen wird.

 

4. Verschiedene Typen von Viren und ihre Mechanismen

Die Struktur der meisten Viren ist sehr ähnlich aufgebaut. Doch es gibt unter ihnen sehr viele verschiedene Typen von Viren mit unterschiedlichem Aufbau, unterschiedlichen Eigenschaften und unterschiedlichen Mechanismen. Grundsätzlich kann man aber die verschiedenen Viren in folgende vier Kategorien einteilen: hardwarespezifische Viren, Datei-Infektoren, mehrteilige Viren und Interpreter-Viren.

 

4.1 Hardwarespezifische Viren

Hardwarespezifische Viren sind Bootsektor-Infektoren, d.h., sie sind nicht abhängig von einem Betriebssystem, sondern vom Bootsektor. Dieser Virus wird ausgeführt, wenn der Bootsektor gestartet wird. Also kann der Virus den Computer infizieren, bevor das Betriebssystem oder das DOS aufgestartet wird.
Eine der wesentlichen Stärken von Bootsektor-Infektoren ist die Existenz eines Bootsektors auf jeder Diskette und Festplatte. Somit haben sie eine grosse Chance sich auf jedem beliebigen Datenträger zu verbreiten. Der Bootsektor kann als eine Datei angesehen werden, die von einem Virus infiziert werden kann. Bootsektor-Viren können den vorhandenen Sektor entweder verschieben oder ersetzten. Normalerweise wird er an eine andere Stelle verschoben. Anschliessend versucht der Virus die Kontrolle über den Computer zu erobern. Dann verankert sich der Virus im Speicher und gibt die Kontrolle wieder an den ursprünglichen Bootsektor zurück.

Im Allgemeinen bootet der Computer wie folgt:
   1. Der Benutzer schaltet den Computer ein.
   2. Der Computer führt einen Selbsttest der Stromversorgung durch.
   3. Der ROM-BIOS-Code wird ausgeführt.
   4. Der ROM-BIOS führt einen Test der wichtigsten Hardware durch.
   5. Der Computer führt einen Grafiktest durch.
   6. Der Computer führt einen Speichertest durch.
   7. Der Computer sucht den Booteintrag der Partition im ersten Sektor des Bootlaufwerks.
   8. Der Computer startet die im Bootsektor angegebenen Betriebssystemdateien.

Da ein Bootsektor nicht schreibgeschützt ist, kann der Virus die Informationen des Datenträgers und das Laden der Betriebssystemdateien ändern.

 

4.2 Datei-Infektoren

Datei-Infektoren sind Viren, die Dateien infizieren. Sie werden manchmal auch parasitische Viren genannt. Es gibt drei bedeutende Möglichkeiten den infizierten Code an ein vorhandenes Programm (also an eine Datei) anzuhängen: überschreiben von vorhandenem Programmcode, Code am Anfang oder Code am Ende hinzufügen.

 

4.2.1 Überschreiben des vorhandenen Programmcodes

Mit dieser Methode wird der vorhandene Programmcode durch den Virus ersetzt. Meistens ändert der Virus auch den Anfang der Programmierung, um auf den Virus zu verweisen. Es kann aber auch vorkommen, dass sich der Infektor auf eine zufällige Computeroperation verlässt, die den Code ausführt.

viren_ueberschreibend.jpg

Ein Vorteil der überschreibenden Methode ist, dass sich die Grösse der Datei nicht verändert, weil ja nur etwas Vorhandenes ausgetauscht wird. Somit fällt der Virus nicht so schnell auf. Ein Problem kann aber sein, dass der Virus einen wichtigen Teil des Programms löscht, was zu Fehlermeldungen und Systemabstürzen führen kann. So wird die Datei unbrauchbar und ist meistens auch nicht mehr reparierbar. Obwohl überschreibende Viren das Problem der Dateigrösse lösen und bis heute viele programmiert worden sind, war keiner von ihnen übermässig erfolgreich.

 

4.2.2 Code am Anfang hinzufügen

Wenn der Code am Anfang des ursprünglichen Programmcodes beigefügt werden will, muss zuerst die vorhandene Programmierung verschoben werden, um Platz für den Virus zu schaffen. Dieser schreibt sich dann in diesen freien Speicher hinein.

viren_vorhaengend.jpg

Wenn der Benutzer die Datei öffnet, wird jetzt immer zuerst der Virus ausgeführt. Dieser führt dann zuerst seine Operationen aus, bevor er die Kontrolle wieder an das Wirtsprogramm zurückgibt. Ein grosser Nachteil von einem vorhängenden Virus ist, dass die Dateigrösse zunimmt und somit die Infektion schneller auffällt. Doch im Gegensatz zu überschreibenden Viren löscht dieser Virus keinen Programmcode und stellt somit in den meisten Fällen die normale Ausführung des Programms sicher.

 

4.2.3 Code am Ende anhängen

Diese Methode unterscheidet sich vom vorhängenden Virus nur darin, dass sich der Virus an das Ende des Programms schreibt. Dabei wird aber meistens am Anfang ein Sprungbefehl hinzugefügt, der auf den Virus am Ende des Codes hinweist. Ansonsten hat dieser Virus die gleichen Eigenschaften wie der vorhängende Virus.

viren_anhaengend.jpg

4.3 Mehrteilige Viren

Mehrteilige Viren sind Infektoren, die sowohl Dateien als auch Bootsektoren befallen können. Somit haben sie eine viel grössere Angriffsfläche und können sich besser und schneller verbreiten. Doch trotz dieser Funktion haben sich diese Viren in der Geschichte nicht so ganz durchsetzen können.

 

4.4 Interpreter-Viren

Interpreter-Viren kann man im Allgemeinen in die zwei Kategorien, nämlich in Makro- und Skriptviren, unterteilen.
Makroviren treten meistens im Zusammenhang mit Microsoft-Office-Anwendungen auf. Viele dieser Viren wurden für Microsoft Word und Excel geschrieben. Doch es gibt auch noch ein paar einzelne andere Makroviren, die bei anderen Programmen wie Visual Basic oder auch Nicht-Microsoft Produkten auftreten können.
Makros sollten eigentlich dem Benutzer zur Automatisierung von Routineaufgaben dienen. Ein Makro nimmt also eine Reihe von Aktionen (Tastaturanschläge oder Mausbewegungen) auf, die zu einem späteren Zeitpunkt jederzeit wieder abgespielt werden können.
Wenn sich ein Makrovirus in die Vorlage Normal.dot speichert, wird der Virus bei jedem Start von Microsoft Word auch geladen. Wenn zum Beispiel ein Virus „DateiSpeichernUnter“ heisst und der Benutzer auf den Menüpunkt „Speichern unter“ klickt, wird anstelle der gewünschten Funktion der Virus ausgeführt. Somit kann man die Funktionen von einem Programm durch einen sehr einfach zu programmierenden Virus beeinflussen.
Skriptviren sind den Makroviren sehr ähnlich. Sie unterscheiden sich nur darin, dass sie es mit E-Mail Anhängen (mit der Erweiterung .vbs) zu tun haben und nicht wie die Makroviren mit Word- und Exceldateien.

 

5. Grösse des Virus

Die Grösse eines Virus ist sehr entscheidend, denn je grösser ein Virus ist, desto schneller fällt er auf und wird entdeckt. Der kleinste Virus ist nur ca. 45 Byte gross. Dieses Problem kann die Programmierer von Viren vor grosse Herausforderungen stellen, weil sie den gesamten Code so klein und so kurz wie möglich schreiben müssen.