Gefahren durch Rootkits OPENSAAR 2007 – Fachkongress
Transcrição
Gefahren durch Rootkits OPENSAAR 2007 – Fachkongress
OPENSAAR 2007 – Fachkongress Gefahren durch Rootkits Hintergründe, Erkennung und Gegenmaßnahmen Dr. Christoph Wegener wecon.it-consulting Saarbrücken, 12. November 2007 Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 1 Zur Person: Christoph Wegener ● ● ● ● ● ● ● ● Mitarbeiter am Horst Görtz Institut für IT-Sicherheit (HGI) Gründer der wecon.it-consulting Gründungsmitglied der Arbeitsgruppe Identitätsschutz im Internet (a-i3) Auditor und Sachverständiger CObIT Basic Practitioner Fachautor/-lektor/-gutachter Verschiedene Lehrtätigkeiten E-Mail: [email protected] Web: www.wecon.net Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 2 Was werde ich heute vorstellen? ● Einführung – – – ● Verstecken und Entdecken – – ● Wie verbergen sich Rootkits? Wie kann man sie detektieren? Neuere Formen von Rootkits – – ● Was sind Rootkits überhaupt? Historie, Verbreitung Grundlagen der Funktion Virtual Machine Based Rootkits (VMBRs) Datenbank-Rootkits Fazit Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 3 Rootkits – einige Grundlagen ● ● ● Rootkits erlauben einem Eindringling, heimlichen und dauerhaften Zugriff auf einen Computer zu erhalten Rootkits sind aber keine Einbruchswerkzeuge! Rootkit = "Stealth Technologie" – – ● Funktionsweise – – – ● Geschichte beginnt Ende der 80er Jahre: Virus "Brain" (1986) Begriff "Rootkit" seit etwa 1994 benutzt Verstecken von Prozessen, Netzwerkverbindungen, Dateien, ... Remotesteuerung des Computers, Installation von Hintertüren "Sniffen" (Netzwerk, Tastatur, ...) Funktionalität wird auch von "gutartiger" Software genutzt (!!!) – – Microsoft Hot Patching AV Tools, Personal FW Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 4 Auszug aus der Rootkit Geschichte ● ● ● ● ● ● ● ● ● ● ● ● ● Ende der 80'er: Manipulation von Logdateien 1989: Phrack Magazine – Umgehen von Unix-Überwachung 1994: Erster CERT Hinweis auf Sammlung von Programmen 1996: Erste Linux Rootkits 1997: Phrack Magazine – LKM Rootkit vorgeschlagen 1997: Rootkit "Heroin" 1998: Non-LKM Kernel Patchung (Silvio Cesare) 1999: Rootkits "KNARK" und "Adore" 1999: Kernel Rootkits für Windows NT 2000: Rootkit "T0rnkit" 2001: Non-LKM Rootkits "KIS" und "SucKIT" 2006: Virtual Machine Based Rootkits (Joanna Rutkoswka) 2006: DB Rootkits (Alexander Kornbrust) Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 5 Relevanz und Beispiele ● ● ● Malware stärkster Wachstumsrate Technologie wird auch in andere Schadsoftware integriert Einige (bekannte) Beispiele – – – ● Neue Trends – – ● NTRootkit, LRK, T0rnkit, AFX, KIS, SucKIT Hackerdefender Sony BMG Rootkit ;) Rootkits nutzen AV-Technologie (Konkurrenten ausschalten!) Rootkits detektieren ihre Laufumgebung (VMs!) Umfangreiche Informationsquelle unter: – www.rootkit.com Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 6 Sony BMG Rootkit (17.11.2005) ● "Verbreitung" des Sony BMG Rootkits am 17.11.2005 gemessen durch Auswertung von DNS-Abfragen – ● ● Rootkit "telefoniert nach Hause" -> Auswerten der DNS-Caches "Gelbe Punkte" markieren zeitgleiche Anfragen nach "Sony's enhanced CD site" und nach "First4Internet" Quelle: Dan Kaminski (http://www.doxpara.com/?q=node/1131) Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 7 McAfee Rootkit Studie 2007 ● ● ● ● Rootkits verbreiten sich über Trojaner hinaus zu anderen Formen von Malware/Potentially Unwanted Programs (PUPs) Rootkits werden immer komplexer Rootkits konzentrieren sich immer mehr auf die Windows-Plattform Angriffsvektoren für Rootkits sind sowohl in seriöser als auch unseriöser Software enthalten ● Das Einbetten von Stealth Technologie wird einfacher ● Komplette Studie kostenlos bei McAfee erhältlich Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 8 McAfee – Rootkit Komplexität Quelle: www.mcafee.com/us/local_content/white_papers/threat_center/wp_akapoor_rootkits1_de.pdf Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 9 Einige Grundlagen zur Funktion ● Ausführung von Code durch eine CPU – – – – ● Die meisten Betriebssysteme kennen zwei Modi – ● Ausnahmen: IBM OS/2 / Virtualisierung Kernel Mode (Ring 0) – – ● Prinzip der vier Ringe Priorität: Ring 0 (hoch), ..., Ring 3 (niedrig) Prozesse werden den Ringen (durch die CPU) zugeordnet Keine direkte Kommunikation von niedriger zu hoher Priorität Privilegierte Prozesse (Kernel) Zugriff auf alle Ressourcen (gesamten Systemspeicher, ...) User Mode (Ring 3) – Unprivilegierte Prozesse ● ● Textverarbeitung Und: Programme, die mit Adminrechten laufen!!! Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 10 Die Ringe im Bild Kommunikations-Gate Ring 2: IBM OS/2 Hardware-Ebene Ring 0: Kernel-Ebene Ring 3: Anwendungsprogramme Ring 1: Virtualisierungsebene Quelle: www.wikipedia.de Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 11 Klassen von Rootkits ● User Mode Rootkits – – ● Laufen als separate Anwendung oder auch innerhalb von bereits existierenden Anwendungen Sind mit Malware-Scanner "einfach" zu entdecken Kernel Mode Rootkits – – – – Haben alle Rechte des Betriebssystems Haben Zugriff auf alle Ressourcen Unterwandern damit das gesamte System Entdeckung oft nur schwer möglich Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 12 Methoden User Mode Rootkits User Mode Rootkits nutzen... ● ● ● ● Datei-Manipulation Ersetzen Dateien, Programme oder Bibliotheken Beispiel: LRK5, T0rnkit Import Address Table (IAT) Hooking Verändern von Sprungzielen Beispiel: Personal FW, AV Tools Inline Function Hooking Überschreiben von Code der Anwendung Beispiel: Microsoft Hot Patching Thread Injection Einfügen eines Threads in einen bestehenden (Mutter-)Prozess Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 13 Methoden im Detail: Dateimanipulation durch T0rnkit ● ● ● ● ● ● ● ● ● Stoppen des syslogd Speichern eines Passworts in /etc/ttyhash Installation eines trojanisierten SSH-Daemon unter nscd Eintragung des SSH-Daemon in /etc/rc.d/rc.sysinit Ablage der Schlüssel des SSH-Daemon in /usr/info/.t0rn Anlegen des Arbeitsverzeichnisses /usr/src/.puta Austausch der Systembefehle: login, ifconfig, ps, du, ls, netstat, in.fingerd, find, top Abgleich der Zeitstempel (auf die Originalzeit) und der Größe der trojanisierten Programme (durch Anhängen von Nullbytes) Start des syslogd Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 14 Methoden im Detail: IAT / Inline Function Hooking Import Address Table Hooking Quelle: DuD – Datenschutz und Datensicherheit; Ausgabe 08/2006 Inline Function Hooking Quelle: DuD – Datenschutz und Datensicherheit; Ausgabe 08/2006 Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 15 Methoden Kernel Mode Rootkits Kernel Mode Rootkits nutzen... ● ● ● ● ● System Service Description Table (SSDT) Hooking Interrupt Description Table (IDT) Hooking Manipulation von Interrupts Beispiel: Abfangen von Hardware-Events Filtertreiber Beispiel: Sony BMG Rootkit Direkte Manipulation des Kernels (DKOM, LKM oder /dev/kmem ) Beispiel: Adore, KIS, SucKIT Ziel: Manipulation der (Kernel) Prozessliste Kontrolle des Virtuellen Speichers Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 16 Methoden im Detail: Kernel Intrusion System (KIS) ● ● ● ● ● ● Autor: optyx Bekannt seit der DefCon 2001 Bringt eigenen Modullader mit ("Kernel Memory Patching") Hat versteckte Hintertür ("Stealth backdoor"), die mittels Portknocking geöffnet werden kann Graphische Oberfläche Interface für Plugins (dadurch leicht erweiterbar) Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 17 Methoden im Detail: Filtertreiber Quelle: DuD – Datenschutz und Datensicherheit; Ausgabe 08/2006 Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 18 Rootkit-Scanner – eine Übersicht ● Eine Reihe von speziellen Rootkit-Detektoren sind verfügbar – – – – – – – – ● Rootkit Hunter ChkRootkit Rootkit Profiler LX (neu) Rootkit Revealer Blacklight IceSword MS Strider ... Zwei Klassen von Scannern sind zu unterscheiden – – Ein-Klick-Tools Experten Tools (detaillierte Infos und eigene Entscheidungen) Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 19 Spurensuche mit Methode ● Signatur-basierte Erkennung – – ● Heuristische Erkennung – – ● Sucht nach Abweichungen am System Aber: Was ist überhaupt normales Verhalten? Analyse durch Timing – ● Suchen (wie AV Programme) nach Fingerabdrücken Aber: Sind diese überhaupt bekannt? Rootkits brauchen (zusätzliche) CPU-Zeit Cross View Based Rootkit Detection (CVBRD) – Einmal von "oben" und einmal von "unten" schauen Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 20 chkrootkit ● ● ● ● ● ● Autor: Nelson Murilo Quelle: www.chkrootkit.org Aktuelle Version: 0.47 Läuft auf zahlreichen Linux- und Unix-Plattformen Erkennt aktuell 63 verschiedene Rootkits Sucht nach: – – – – ● ● ● Manipulierten Sytemdateien Netzwerkkarte(n) im promicious Modus Manipulierten log-Einträgen (lastlog, utmp, wtmp) Anzeichen für LKM Rootkits Lokal ausführbares Skript, nutzt lokal vorhandene Befehle Daher: Einsatz eines "sicheren" Mediums (CD-R) mit statisch gelinkten Befehlen ist dringend anzuraten! Dazu: chkrootkit -p /mnt/cdrom/bin Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 21 Rootkit Hunter ● ● ● ● ● ● ● ● Autor: Michael Boelen Quelle: www.rootkit.nl Aktuelle Version: 1.3.0 Läuft auf zahlreichen Linux- und Unix-Plattformen Benötigt "bash" Erkennt aktuell 61 Rootkits Vergleicht MD5 Hash-Werte Sucht nach: – – – – – ● Typischen Verzeichnissen, Dateien und Manipulationen Ungewöhnlichen Berechtigungen Verdächtigen Zeichenketten in LKMs "Versteckten" Dateien Offenen Ports Optionales Scannen in Text- und Binärdateien Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 22 Analyse mittels CVBRD im Detail Abfrage des Inhalts mittels Windows-APIs 1. 2. Abfrage des Inhalts direkt über Dateisystem 3. Ist das Ergebnis identisch?!? ● Vorgehensweise am Beispiel Windows: – Verzeichnis- und Registry-Inhalt abfragen ● ● – ● Mit High-Level-Zugriff per Windows-API Mit Low-Level-Zugriff an den APIs vorbei direkt am Dateisystem Analoges Vorgehen für Prozesse Vergleich der Ergebnisse – Unterschiede geben Hinweise auf mögliche Rootkits Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 23 Sysinternals' RootkitRevealer Quelle: DuD – Datenschutz und Datensicherheit; Ausgabe 08/2006 ● ● ● Erstes (und kostenloses) Produkt mit CVBRD (seit 02/2005) Liefert nur Hinweise auf Anomalien des Systems Nutzer muss selbst entscheiden, ob "Malware" die Ursache ist Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 24 F-Secure's Blacklight Quelle: DuD – Datenschutz und Datensicherheit; Ausgabe 08/2006 ● ● ● ● ● Zeigt "Objekte" und Prozesse Stabil gegenüber Änderungen in Prozessliste Unterstützt den Nutzer (durch Vorfilterung) Mit F-Secure's Internet Security 2006 integriert Kostenlose Beta-Version (aktuell 2.2.1067) erhältlich Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 25 XFocus Team's IceSword Quelle: DuD – Datenschutz und Datensicherheit; Ausgabe 08/2006 ● IceSword zeigt – hier amBeispiel des AFXRootkit2005 – auch versteckte Dateien und Ordner an Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 26 Virtual Machine Based Rootkits (VMBRs) Virtual Machine Based Rootkits... ● ● ● Nutzen Technologie der Virtualisierung, um sich zu verbergen Soft- und Hardware-Virtualisierung betroffen King et al: SubVirt – Implementing malware with virtual machines – – ● Rutkowska: BluePill – – ● Grundlage Software-seitige Virtualisierung Implementiert für Virtual-PC (Microsoft) und VMWare (Linux) Grundlage: Hardware-seitige Virtualisierung (AMD's SVM / Pacifica) Implementiert unter Windows Vista Beta x64 Zovi: Vitriol – – Grundlage: Hardware-seitige Virtualisierung (Intel's VT-x) Implementiert für Windows Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 27 Grundlagen der Virtualisierung ● ● "Virtualisierung bezeichnet Methoden, die es erlauben, Ressourcen eines Computers aufzuteilen." (Quelle: de.wikipedia.org) Es gibt mehrere Virtualisierungstechniken: – – – – ● Als Gründe für Virtualisierung werden oft genannt … – – – – ● ● Virtualisierung mittels "Virtual Machine Monitor (VMM)" Hardware-Virtualisierung ("Native/full Virtualisation") Hardware-Emulation/-Simulation Paravirtualisierung Einsparung / bessere Auslastung von Ressourcen Höhere Sicherheit Im Angriffsfall wird nur eine "virtuelle" Maschine übernommen Schnelle Wiederherstellung möglich Aber ist dies wirklich korrekt? Oder gibt es gar neue, bisher unbedachte Gefahren? Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 28 Virtualisierung – VMM und Hardware Quelle: www.wikipedia.de ● ● ● Beispiele für Virtualisierung mittels "Virtual Machine Monitor (VMM)" – VMware Workstation – Microsoft Virtual PC Beispiele für Hardware-Virtualisierung ("Native/full Virtualisation") – Intel VT-x – AMD Pacifica Beispiel für Hardware-Simulation – Bochs Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 29 Die Funktion von VMBRs im Detail Malware ● Anwendung Detektor Ziel-Betriebssystem Ziel-Betriebssystem Host-Betriebssystem Virtual Maschine Monitor (VMM) Host Hardware Host Hardware Funktionsweise – – – ● Detektor Malware Rootkit = Host-OS + VMM + Malware Verschieben des Ziel-OS in VMM-Instanz Host-OS und Malware laufen dann parallel zu VMM und Ziel-OS Wie kann / soll man nun die "Malware" erkennen? – – Virtualisierung erkennen (von innen heraus) "Scan" des Abbildes der gesamten VM von außen Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 30 Wie kann man Virtualisierung erkennen? ● RedPill (Joanna Rutkowska) – ● Timing-Verhalten – – ● Anwendungen unter einer VMM sollten "länger" brauchen Aber: Wie messe ich das in der Praxis? Steht wirklich der gesamte Platz zur Verfügung? – – ● Nutzung von speziellen CPU-Instruktionen (SxDT-Instruktionen) z.B. SIDT-Instruktion (Adresse der Interrupt Tabelle des Prozessors) Speicher, Festplattenplatz, ... Aber: Wie messe ich das in der Praxis? Dies ist alles richtig, aber... – – Die VMM kann eben (fast) alles kontrollieren / manipulieren Es ist nicht einfach festzustellen, ob man "virtualisiert" ist oder nicht Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 31 Eine mögliche Lösung: Sicheres Booten mit TC ● ● ● Sicheres Booten ist Voraussetzung für einen sicheren Betrieb Also: Boot-Prozess absichern :) Nutzung von Trusted Computing (TC) – – ● Mehrere Szenarien möglich – – ● BIOS vermisst relevante Teile der Plattform und trägt Werte in Register des Trusted Platform Module (TPM) ein Kontrolle wird nur an Boot-Loader übergeben, wenn die Messwerte mit Referenzwerten übereinstimmen "Trusted Boot": Reines Vermessen ohne Action-Line "Enforcing": Vermessen mit Action-Line Implementierung unter Linux: Trusted GRUB – Realisiert (bisher) "Trusted Boot" Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 32 ... und noch ein anderer Aspekt: DB-Rootkits ● Ein Blick zurück ... "Ein Rootkit ist eine Sammlung von Werkzeugen, die einem Angreifer nach einem erfolgreichen Einbruch einen dauerhaften und heimlichen Zugang zu einem (Betriebs)System erlauben." ● Datenbanken und Betriebssysteme – – Eine Datenbank ist auch eine Art "Betriebssystem" Auch eine Datenbank hat ... ● ● ● ● User Prozesse, Jobs ... Was sind also DB-Rootkits? – Erlauben nach Komprimittierung dauerhaften und heimlichen Zugang (zu einer Datenbank) Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 33 Funktion von DB-Rootkits ● ● Eine Möglichkeit: DB-Rootkit versteckt sich durch Manipulation der "Views" (Skript zur Anzeige der Inhalte einer DB) – Verbergen von DB-Usern, DB-Jobs, ... Ist das effektiv? – – – ● Weitere Möglichkeiten – – ● Alle relevanten "Views" müssen manipuliert werden Trotzdem relativ einfach zu entdecken Guter Schutz durch "Signatur" der "Views" möglich DB-Rootkits könnten auch direkt die Binärfiles der DB ändern und andere DB-Tabellen unterschieben Dies macht die Sache (für Angreifer und Auditor) schwieriger Mehr Infos im Paper von Alexander Kornbrust http://www.red-database-security.com/wp/defcon_oracle_rootkits_2.0.pdf Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 34 Rootkits – ein Fazit ● Rootkits sind eine reale Gefahr – – – ● Detektion von Rootkits ist schwierig – – ● Mehrere Scanner/Technologien benutzen Detektion von außen ratsam Boot-Prozess besonders sicherheitskritisch – – ● Unbedingt ernst nehmen, dies gilt insbesondere für VMBRs Daher: Neue Technologien (immer!) kritisch betrachten Und über den Tellerrand schauen! Muss entsprechend abgesichert werden Trusted Computing könnte hier (vorbeugend) helfen John Heasman zeigt, wie es weitergehen kann – "Implementing and Detecting an ACPI BIOS Rootkit" Mehr dazu unter: www.blackhat.com/presentations/ bh-federal-06/BH-Fed-06-Heasman.pdf Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 35 Literatur – eine Auswahl ● ● ● ● ● ● ● "Windows rootkits of 2005"; James Butler, Sherri Sparks; http://www.securityfocus.com/infocus/1850 "Rootkits – den Windows-Kernel unterwandern"; James Butler, Greg Hoglund; Addison-Wesley-Verlag 2005; ISBN 3-8273-2341-X "Windows Rootkits - eine aktuelle Bedrohung"; Wilhelm Dolle, Christoph Wegener; DuD - Datenschutz und Datensicherheit, Ausgabe 08/2006 "Windows Rootkits - und ihre Erkennung"; Wilhelm Dolle, Christoph Wegener; DuD - Datenschutz und Datensicherheit, Ausgabe 08/2006 "SubVirt: Implementing malware with virtual machines"; S.T. King, et. al; Proceedings of the 2006 IEEE Symposium on Security and Privacy, http://www.eecs.umich.edu/Rio/papers/king06.pdf "Introducing Blue Pill"; Joanna Rutkowska; http://theinvisiblethings.blogspot.com/2006/06/introducing-blue-pill.html "Hardware Virtualisation Rootkits"; Dino Dai Zovi; http://www.theta44.org/software/HVM_Rootkits_ddz_bh-usa-06.pdf Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 36 Danke für Ihre Aufmerksamkeit :) Haben Sie Fragen? ● Kontakt per E-Mail: [email protected] ● Mehr Infos im Web: www.wecon.net Dr. Christoph Wegener – wecon.it-consulting – >>we.secure-your.it<< 37