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

Documentos relacionados