View
108
Download
3
Category
Preview:
Citation preview
Computerviren
Seminarvortrag von Anton Afanasjew
Klassifizierung, Aufbau und Schadenspotential
Themenbereich und Quellen• Einleitung
• Definition eines Computervirus• Allgemeines über Computerviren
• Historische Entwicklung• Verursachter Schaden• Virenprogrammierer
• Aufbau eines Virus• Klassifizierung von Viren• Aufbau von Viren
• Beispiel• Ausnutzung des sog. „Buffer-Overrun“ im Windows Quellcode für einen
Virusangriff
Quellen:www.bsi.de - Bundesamt für Sicherheit in der Informationstechnikwww.tu-berlin.de – Technische Universität BerlinMicrosoft Student Technology Conference 2005
Einleitung• Einleitung• Allgemeines über
Computerviren• Aufbau eines Virus• Beispiel
Definition eines Computervirus:
„Ein Computer-Virus ist eine nicht selbstständige Programmroutine, die sich selbst reproduziert und dadurch vom Anwender nicht kontrollierbare Manipulationen in Systembereichen, an anderen Programmen oder deren Umgebung vornimmt.
Eine nicht selbstständige Programmroutine bedeutet,
dass der Virus ein Wirtsprogramm benötigt. Diese Eigenschaft und seine Befähigung zur Reproduktion führte in Analogie zum biologischen Vorbild zu der Bezeichnung "Virus".“
Quelle: Bundesamt für Sicherheit in der Informationstechnik
Geschichte• Einleitung
• Allgemeines über Computerviren
• Aufbau eines Virus• Beispiel
1980: Jurgen Kraus von der Universität Dortmund
schreibt seine Diplomarbeit: "Selbstreproduktion bei Programmen"
Beschreibung der Konstruktion virenähnlicher Programme
Kein Aspekt der IT-Sicherheit Die Arbeit wird nicht veröffentlicht
Geschichte• Einleitung
• Allgemeines über Computerviren
• Aufbau eines Virus• Beispiel
1984: Amerikaner Fred Cohen veröffentlicht seine
Arbeit: "Computer Viruses - Theory and Experiments"
Geht auf die Gefahren der Computerviren ein und erregt internationales Aufsehen
Prägt den Begriff "Computer-Virus"
Geschichte• Einleitung
• Allgemeines über Computerviren
• Aufbau eines Virus• Beispiel
1986: Erste Viren für PCs erscheinen Sind sehr einfach gebaut und können von
Virenscannern leicht aufgrund fester Muster entdeckt werden
Als Folge erscheinen bald verschlüsselte Viren und Stealth-Viren
Geschichte• Einleitung
• Allgemeines über Computerviren
• Aufbau eines Virus• Beispiel
199x: Erste polymorphe Viren erscheinen Können nicht mehr aufgrund Zeichenfolgen
erkannt werden Virenscanner müssen algorithmische
Verfahren benutzen, um nach bestimmten Eigenschaften der Viren zu suchen
Geschichte• Einleitung
• Allgemeines über Computerviren
• Aufbau eines Virus• Beispiel
Bald erscheinen Viren-Entwicklungskits Generieren neue Viren anhand von
einfachen Parametern (z. B. Mutation Engine)
Die Zeitspanne zw. zwei Virenvarianten wird im Vergleich zur Reaktionszeit seitens Verenscanner-Hersteller immer kürzer
Schaden• Einleitung
• Allgemeines über Computerviren
• Aufbau eines Virus• Beispiel
Durch Computerviren entstandener Schaden
Allein in BRD mehrere 100 Mio. Euro Schaden jährlich mit steigender Tendenz
Rund 5 % der bekannten Viren sind absichtlich darauf ausgelegt, Schaden zu verursachen (Daten verfälschen) z.B. "Michelangelo ", der am 6. März jeden
Jahres die Festplatte überschreibt. Viele „Scherzviren", die eigentlich harmlos
sein sollten, bergen durch Programmierfehler Gefahren z.B. „Joshi“-Virus
Schaden• Einleitung
• Allgemeines über Computerviren
• Aufbau eines Virus• Beispiel
Durch Computerviren entstandener Schaden
Allein schon das Vorhandensein des Virus (auch ohne Schadensfunktion) ist durch Ressourcenverbrauch schädlich
Größter Schadensanteil ergibt sich aus der Suche und dem Entfernen eines Virus
Schutzmaßnahmen verursachen Kosten Schaden durch Verunsicherung
Programmierer von Viren• Einleitung
• Allgemeines über Computerviren
• Aufbau eines Virus• Beispiel
„Typische“ Virenprogrammierer
Schüler, die jemandem einen Streich spielen wollen und darauf ein Virus in die Welt setzen
Leute, die ihre Programmierkunst demonstrieren wollen
„Techno-Terroristen“
Klassifizierung von Viren• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Klassifizierungsarten
VERWENDETERALGORITHMUS
SCHADENPOTENTIAL
UMGEBUNG
Klassifizierung von Viren• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Klassifikation nach der Auftrittsumgebung:
Dateiviren Integrieren sich in die Dateien Erstellen modifizierte Kopien der Dateien (Companion-
Viren) Machen sich die Besonderheiten des Dateisystems zu
Nutze. (Linkviren) Bootviren
Laden sich in den Bootsektor der Festplatte oder verändern den Zeiger auf den Bootsektor
Makroviren Verstecken sich in Dateien für Programme, die über eine so
genannte Makrosprache verfügen. Diese Programmiersprache kann Prozesse innerhalb des
Programms automatisieren. Wird ausgenutzt, um ein Makroprogramm in jedes weitere
geöffnete Dokument zu kopieren.
Klassifizierung von Viren• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Klassifikation nach dem verwendeten Algorithmus:
Stealth-Viren Halten sich versteckt Fangen Systemroutinen ab Gaukeln unveränderte Dateigrößen vor
Verschlüsselte Viren Verschlüsseln einen Teil von sich selbst Der Schlüssel variiert von Infektion zu Infektion So werden Antiviren-Scanner daran gehindert,
Viren aufgrund bestimmter Zeichenmuster zu finden
Klassifizierung von Viren• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Klassifikation nach dem verwendeten Algorithmus:
Polymorphe Viren Verändern ihr Aussehen Benutzen meist die Verschlüsselung Ein Teil des Virus bleibt unverschlüsselt Entschlüsselungscode wird immer neu erstellt Der Algorithmus für die Erstellung des neuen
Entschlüsselungscodes liegt im verschlüsselten Teil des Virus
Metamorphe Viren Verändern ihren Code vollständig. Maschinencode wird in einen symbolischen Code
umgewandelt Rückübersetzung erfolgt variabel Ergebnis 19 kann man z.B. erreichen durch 9+10 oder
9+9+1 oder 1+9+0+9
Klassifizierung von Viren• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Klassifikation nach dem Schadenpotential:
Harmlose Viren Es tritt kein Schaden auf
Ungefährliche Viren Verursachen nur visuelle und akustische
Effekte auf dem infizierten Rechner Gefährliche Viren
Verursachen ernste Behinderung des Rechnerbetriebs
Sehr gefährliche Viren Löschen Daten und Programme
Klassifizierung von Viren• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Hoaxes – Viren, die keine sind
Falsche Virenwarnung über E-Mail Fordern den Benutzer auf, bestimmte E-
Mails sofort zu löschen oder andere „Schutzmaßnahmen“ zu treffen
Schlagen vor, die Nachricht weiter an alle Bekannten zu senden.
Eigentlicher Schaden ist die Verunsicherung der Betroffenen und unnötiger Datenverkehr wie bei Kettenbriefen
Aufbau eines Virus• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Teile des Virus:
Replikationseinheit Trigger
Payload
Tarnungsteil Erkennungsteil
Aufbau eines Virus• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Replikationseinheit
Dient der Verbreitung des Virus Hängt sich an ein Programm Der Virus wird kopiert, wenn das Programm
gestartet wird
Aufbau eines Virus• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Trigger (Auslöser)
Aktiviert das Virus aufgrund bestimmter Ereignisse
Manche Trigger schalten einzelne Funktionen von Viren zu bestimmten Zeitpunkten ein und aus.
Es kann z.B. sein, dass das Virus nach dem 42. Booten des Computers oder am Geburtstag des Autors aktiviert wird
Aufbau eines Virus• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Tarnungsteil
Ist nur bei neuen Viren vorhanden Erschwert die Entdeckung des Virus Benutzt verschiedene Methoden, um die
Entdeckung zu vermeiden, wie z. B. Verwirrung des Debuggers durch überflüssige
Assembler-Anweisungen Verfälschung von Systemstatusmeldungen und
Logs, um ein nicht infiziertes System vorzutäuschen
Verschlüsselung seiner Teile
Aufbau eines Virus• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Erkennungsteil
Erkennt ein bereits infiziertes Programm und infiziert es nicht neu
Das Virus kann so effizienter „arbeiten“ Tarnung bleibt länger erhalten
Aufbau eines Virus• Einleitung• Allgemeines über
Computerviren
• Aufbau eines Virus
• Beispiel
Payload (Schadfunktion)
Eine Funktion, die dem betroffenen Computer schadet
Ein Virus muss nicht unbedingt eine Schadroutine haben
Oft folgt der Schaden allein aus der Verbreitung des Virus
Beispiel• Einleitung• Allgemeines über
Computerviren• Aufbau eines Virus
• Beispiel
Buffer-Overrun
void main() { char myLongBuffer[256]; myFunction(myLongBuffer);}
void myFunction(char *myString) { char myShortBuffer[16]; strcpy(myShortBuffer, myString); }
Beispiel
BISHERIGER STACK-INHALT
MyLongBuffer (256)
RÜCKSPRUNGSADRESSE
SONSTIGE DATEN
MyShortBuffer (16)
Sta
ck
• Einleitung• Allgemeines über
Computerviren• Aufbau eines Virus
• Beispiel void main() { char myLongBuffer[256]; myFunction(myLongBuffer);}
void myFunction(char *myString) { char myShortBuffer[16]; strcpy(myShortBuffer, myString); }
Beispiel
• Einleitung• Allgemeines über
Computerviren• Aufbau eines Virus
• Beispiel void main() { char myLongBuffer[256]; myFunction(myLongBuffer);}
void myFunction(char *myString) { char myShortBuffer[16]; strcpy(myShortBuffer, myString); }
BISHERIGER STACK-INHALT
MyLongBuffer (256)
RÜCKSPRUNGSADRESSE
SONSTIGE DATEN
MyShortBuffer (16)
Sta
ck 25
6
Beispiel
• Einleitung• Allgemeines über
Computerviren• Aufbau eines Virus
• Beispiel void main() { char myLongBuffer[256]; myFunction(myLongBuffer);}
void myFunction(char *myString) { char myShortBuffer[16]; strcpy(myShortBuffer, myString); }
BISHERIGER STACK-INHALT
RÜCKSPRUNGSADRESSE=>
VIRUSADRESSE
VIRUSCODE
Sta
ck
Vielen Dank für die Aufmerksamkeit !
Recommended