SubVirt
Transcrição
SubVirt
Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur SubVirt Stefan Kempf Lehrstuhl für Informatik 3 Friedrich-Alexander-Universität Erlangen-Nürnberg 18. Juli 2007 Stefan Kempf (FAU) SubVirt 18. Juli 2007 1 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Inhalt 1 Einführung und Motivation 2 Installation eines VMBR 3 Anwendungen 4 Kontrolle behalten 5 Ressourcenverbrauch 6 VMBRs erkennen 7 Literatur Stefan Kempf (FAU) SubVirt 18. Juli 2007 2 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Einbruch in ein System Beispielszenario Angreifer bricht in System ein und will unentdeckt bleiben Programme wie ps, who usw. werden ausgetauscht Manipulation wird durch Intrusion-Detection-Systeme erkannt Rootkits nisten sich im Kernel ein und umgehen so Intrustion-Detection Fazit Das System kontrolliert, wer eine tiefer liegende Schicht kontrolliert Stefan Kempf (FAU) SubVirt 18. Juli 2007 3 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Virtual machine based rootkits (VMBRs) Idee eines VMBR Ausführung des Betriebssystems in einer virtuellen Maschine Parallel zum VMM läuft ein Angriffsystem (z.B. Linux), das beliebige Malware ausführt. Bei perfekter Virtualisierung wird das Gastsystem die Aktivitäten des Angreifers nicht erkennen Zu klären Wie bekommt man das Betriebssystem in die virtuelle Maschine? Stefan Kempf (FAU) SubVirt 18. Juli 2007 4 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Schaubild Anwendung Anwendung Malware Malware Gastsystem Angriffssystem VMM Hardware Stefan Kempf (FAU) SubVirt 18. Juli 2007 5 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur SubVirt Wozu? VMBRs könnten in Zukunft eine neue Bedrohung darstellen Frühzeitige Entwicklung von Verteidigungstrategien Zwei Referenzimplementierungen eines VMBR Begonnen von Forschern der Uni Michigan und Microsoft Research VMWare und ein modifizierter Linux Kernel Virtual PC und minimales Windows XP (beide angepasst) Stefan Kempf (FAU) SubVirt 18. Juli 2007 6 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Vorgehensweise von SubVirt Zugriff auf Rechner verschaffen Installation Linux: Swapping deaktivieren, Installation in Swappartition Windows: Installation am Anfang der Partition, dort liegende Daten vorher umkopieren System herunterfahren Kurz vor Shutdown: Bootsequenz manipulieren Nach erneutem Hochfahren wird VMBR geladen Stefan Kempf (FAU) SubVirt 18. Juli 2007 7 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Kategorien und Beispiele Interaktionslos Spam Relay, Webserver für Phishing, Bots für DDoS-Attacken Observierend Keylogger, Paketsniffer Manipulierend Nachrichten fälschen oder löschen, Programmausführung beeinflussen Stefan Kempf (FAU) SubVirt 18. Juli 2007 8 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Phishing Webserver Webserver thttpd läuft innerhalb des Angriffssystems VMM leitet fast den gesamten Netzverkehr an das Gastsystem weiter Nur Pakete für TCP-Port 8080 gehen an thttpd Kein eigener Code nötig, Zurückgreifen auf bereits vorhandene Software möglich Stefan Kempf (FAU) SubVirt 18. Juli 2007 9 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Keylogger Emulation des Keyboardcontrollers von Virtual PC wird modifiziert Alle Tastendrücke gehen nun an ein Programm im Angriffssystem, dann ins Gastsystem Anwendung im Angriffs-BS extrahiert Passwörter Modifikation von Virtual PC umfasst 60 Zeilen Code Codeumfang des Keyloggers beträgt 254 Zeilen Stefan Kempf (FAU) SubVirt 18. Juli 2007 10 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Virtual-machine introspection (VMI) Techniken, um Programmabläufe in einer VM nachzuvollziehen Abfragen oder Ändern von Registerwerten (häufig zu lowlevel) Anhand von Symboltabellen/Debuginformationen interessante Stellen im Code finden Diese manipulieren oder mittels Breakpoint auf Ausführung warten VMM kann Code des Gastsystems nutzen (damit z.B. Dateisystemzugriff nicht selbst programmiert werden muss) Stefan Kempf (FAU) SubVirt 18. Juli 2007 11 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Stehlen sensitiver Dateien Suche im Gastsystem nach interessanten Dateien (z.B. /etc/shadow) Dateisystemzugriff erfolgt mittels VMI 24 Zeilen in Perlcode innerhalb des Angriffsystems Stefan Kempf (FAU) SubVirt 18. Juli 2007 12 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Programmausführung manipulieren I Problem: x86 nicht voll virtualisierbar redpill [3] erkennt Virtualisierung durch sidt-Instruktion sidt liefert Adresse der Interruptdeskriptortabelle des VMM und nicht des BS falls virtualisiert Stefan Kempf (FAU) SubVirt 18. Juli 2007 13 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Programmausführung manipulieren II Lösung: VMI Prüfe bei bei jedem exec(), ob redpill ausgeführt werden soll Falls ja, setze in redpill Breakpoint auf sidt-Befehl Emuliere sidt, wenn Breakpoint erreicht wird 104 zusätzliche Zeilen Code in Virtual PC Funktioniert nicht bei Programmen, die dynamisch Code erzeugen Stefan Kempf (FAU) SubVirt 18. Juli 2007 14 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Kontrolle behalten In der Zeit zwischen Hochfahren des Rechners und Start des VMM kann Rootkit entdeckt werden Anzahl der Reboots und Shutdowns ist zu minimieren Neustart wird durch Reset der virtuellen Hardware simuliert Herunterfahren des Systems versetzt Rechner nur in Energiesparmodus Unaufmerksame/Unerfahrene Nutzer merken nicht, dass System noch läuft VMBR kann somit kompletten Bootvorgang vortäuschen Stefan Kempf (FAU) SubVirt 18. Juli 2007 15 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Setup System 1 Pentium 4 2.8 GHz 1 GB RAM RedHat Enterprise Linux 4 System 2 Pentium 4 1 GHz 256 MB RAM Windows XP Stefan Kempf (FAU) SubVirt 18. Juli 2007 16 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Benötigter Festplattenspeicher VMware VMBR Virtual PC VMBR Stefan Kempf (FAU) komprimiert 95 MB 106 MB SubVirt unkomprimiert 228 MB 251 MB 18. Juli 2007 17 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Zeiten Installation Hochfahren ohne VMBR Neustart im VMBR Hochfahren im VMBR Start des Hosts Start von Host und Gast Stefan Kempf (FAU) VMware VMBR 24s 53s 74s 96s 52s 145s SubVirt Virtual PC VMBR 262s 23s 54s nicht implementiert 45s 101s 18. Juli 2007 18 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Erkennungsmöglichkeiten Durch Software unterhalb des VMBR Erkennung relativ leicht möglich, da Schicht unter VMBR alle darüber liegenden kontrollieren kann Durch Software oberhalb des VMBR Ansatz: VMBR selbst verbraucht Betriebsmittel Stefan Kempf (FAU) SubVirt 18. Juli 2007 19 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Erkennung durch Software unterhalb des VMBR Beispiele Booten von anderem Medium und auf Platte nach VMBR suchen (vorher Netzstecker ziehen, sicherer Bootvorgang vorausgesetzt) Betriebssystem bereits in VM laufen lassen: VMBR nistet sich oberhalb der VM ein und kann von ihr erkannt werden Stefan Kempf (FAU) SubVirt 18. Juli 2007 20 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Erkennung durch Software oberhalb des VMBR I CPU VMBR und Malware verbrauchen CPU-Zeit Rechenintensives Programm starten, Ausführungszeit messen und mit Laufzeiten eines identischen, nicht infizierten Systems vergleichen Gegenmaßnahmen des VMBR Zur Tarnung Systemuhr langsamer laufen lassen Daher Zeiten z.B. mit Stopuhr messen Stefan Kempf (FAU) SubVirt 18. Juli 2007 21 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Erkennung durch Software oberhalb des VMBR II I/O SubVirt lässt Gast Treiber für spezielle, virtuelle Hardware verwenden Spiele laufen langsamer mit virtueller 3D-Karte VMM müsste Hardware perfekt virtualisieren Virtuelle Hardware muss sich bei Randbedingungen in Spezifikation verhalten wie die echte Praktisch unmöglich bei der Vielzahl an Hardware Stefan Kempf (FAU) SubVirt 18. Juli 2007 22 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Erkennung durch Software oberhalb des VMBR III Gegenmaßnahmen des VMBR Nur nötigste Hardware virtualisieren (z.B. Tastatur wenn Keylogger eingesetzt wird) Direktzugriff auf restliche Geräte erlauben DMA könnte aber Zugriff auf Speicher des VMBR erlauben In Zukunft IOMMU nutzen, um Speicher des VMBR vor DMA zu schützen Stefan Kempf (FAU) SubVirt 18. Juli 2007 23 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Erkennung durch Software oberhalb des VMBR IV Speicher VMBR belegt RAM und Plattenplatz Programm schreiben, das auf identischem, uninfiziertem System den kompletten Speicher alloziert Speicheranforderung wird nur in VM fehlschlagen Stefan Kempf (FAU) SubVirt 18. Juli 2007 24 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Erkennung durch Software oberhalb des VMBR V Gegenmaßnahmen des VMBR Paging verwenden, um Mangel an RAM auszugleichen Programm läuft dann langsamer, aber Unterschiede kaum messbar, wenn VMBR wenig Speicher verbraucht (bei SubVirt: 3% des RAM) Von VMBR belegte Plattenblöcke komprimieren und/oder für Gastsystem als beschädigt vortäuschen Stefan Kempf (FAU) SubVirt 18. Juli 2007 25 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Literatur I Tal Garfinkel and Mendel Rosenblum. A Virtual Machine Introspection Based Architecture for Intrusion Dectection. 10th ISOC Symposium on Network and Distributed Systems Security (SNDSS), Februar 2003. Samuel T. King, Peter M. Chen, Yi-Min Wang, Chad Varbowski, Helen J. Wang, and Jacob R. Lorch. SubVirt: Implementing malware with virtual machines. 2006. Stefan Kempf (FAU) SubVirt 18. Juli 2007 26 / 27 Einführung und Motivation Installation eines VMBR Anwendungen Kontrolle behalten Ressourcenverbrauch VMBRs erkennen Literatur Literatur II Joanna Rutkowska. Red Pill... or how to detect VMM using (almost) one CPU instruction. http://invisiblethings.org/papers/redpill.html, 2004. Stefan Kempf (FAU) SubVirt 18. Juli 2007 27 / 27