Betriebssysteme I: Klassische UNIX Exploits

Transcrição

Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Betriebssysteme I: Klassische UNIX Exploits
Proseminar Secure Computing
Markus Sieber
6. Dez 2006
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Agenda
1
Sicherheitskonzepte von UNIX Kernel
Usermode/Kernelmode
Mehrbenutzersystem
Zugriffskontrolle im Kernel
Entstehen von Lücken
2
Root Exploits
Root Exploits gegen Anwendungen im Userspace
Exploits gegen den Kernel
3
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Usermode/Kernelmode
Mehrbenutzersystem
Zugriffskontrolle im Kernel
Entstehen von Lücken
CPU Modi
Heutige Prozessoren unterstützen mindestens 2 Betriebsmodi:
Kernelmode: Vollständiger Zugriff aus Systemressourcen
erlaubt
Usermode: Zugriff stark limitiert
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Usermode/Kernelmode
Mehrbenutzersystem
Zugriffskontrolle im Kernel
Entstehen von Lücken
Mehrbenutzersystem
Alle Prozesse laufen in dem Kontext eines Benutzers
Jeder Benutzer besitzt einge eindeutige ID: die UID
Dem Benutzer root - UID 0 - wird vom Kernel voller Zugriff
auf Alles gewährt.
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Usermode/Kernelmode
Mehrbenutzersystem
Zugriffskontrolle im Kernel
Entstehen von Lücken
Zugriffskontrolle im Kernel
Zu jedem Prozess wird die UID des Anwenders gespeichert.
Für jede Zugriffskontrolle wird diese gespeicherte ID benutzt
um die Rechte zu bestimmen:
Für UID = 0: alles erlaubt
Für alle anderen: eingeschränkte Rechte
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Usermode/Kernelmode
Mehrbenutzersystem
Zugriffskontrolle im Kernel
Entstehen von Lücken
Entstehen von Lücken
Bufferoverflows
Mangelnde Überprüfung in priviligierten Programmen
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Root Exploits gegen Anwendungen im Userspace
Exploits gegen den Kernel
Was sind Root Exploits
Exploits sind Programme, die Fehler in Software ausnutzen,
um die eigenen Rechte zu erweitern
Root Exploits sind Programme, die die Nutzerrechte auf die
Administratorrechte ausweiten
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Root Exploits gegen Anwendungen im Userspace
Exploits gegen den Kernel
Root Exploits gegen Anwendungen im Userspace
Welche Anwendungen sind betroffen?
alle, die durch Usereingaben gesteuert werden können
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Root Exploits gegen Anwendungen im Userspace
Exploits gegen den Kernel
Exploits gegen den Kernel
Kernel Exploits nutzen Fehlimplementierungen im Kernel um die
eigenen Rechte zu erweitern.
Beispiel: Ptrace.
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Was sind Rootkits
Rootkits
sind Programme, die bösartige Hacker auf einem
eingebrochenen System installieren
beinhalten eine Backdoor, durch die der Cracker wieder
Zugriff auf das System erlangen kann
tarnen sich selbst, damit sie unentdeckt bleiben können
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Userland Rootkits
Stellen eine Backdoor bereit, über die der Angreifer jederzeit
wieder vollen Zugriff auf das System bekommt
Ändern vorhandene Programme, wie ls, netstat usw. so ab,
dass der Prozess für die Backdoor versteckt wird
Zum Teil implementieren sie auch Funktionen, um die Spuren
aus den Logs zu entfernen
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Kernel Rootkits
Stellen eine Backdoor bereit, über die der Angreifer jederzeit
wieder vollen Zugriff auf das System bekommt
Ändern (zB durch ein nachgeladenes Modul) den Kernel
dahingehend, dass er keine Informationen zu dem
Backdoorprozess herausgibt
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Beispiel: Adore-NG
Adore-NG Features
Leichte Installation über ein ladbares Modul
Dateien, Verzeichnisse, Prozesse und Sockets sind
versteckbar“
”
Logs werden automatisch gefiltert
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Beispiel: Adore-NG
Adore-NG Userinterface
Bei Installation wird ADORE KEY festgelegt
Nachdem eine Shell mit Hilfe des ADORE KEYs
authentifiziert ist: Admin Funktionalität des Rootkits aktiviert
Clientprogramm ava ist mit dem Schlüssel kompiliert worden.
Dieses Programm übernimmt die Authentifizierung.
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Grunsätzliches zum Erkennen von Rootkits
Userland Rootkits:
Die Tarnung von Userland Rootkits lässt sich durch
Benutzung sicherer Software“ umgehen
”
IDS guter Schutz gegen Userland Rootkits, Änderungen an
Binaries fallen gleich auf
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Grunsätzliches zum Erkennen von Rootkits
Userland Rootkits:
Die Tarnung von Userland Rootkits lässt sich durch
Benutzung sicherer Software“ umgehen
”
IDS guter Schutz gegen Userland Rootkits, Änderungen an
Binaries fallen gleich auf
Kernel Rootkits:
Perfekte Tarnung theoretisch möglich
In der Praxis sind gewisse Techniken benutzbar, da alle
Rootkits manche Informationslecks übersehen“
”
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Mögliche Techniken im laufenden Betrieb
Keine Software ist perfekt und damit vergessen auch Rootkits oft
bestimme Spuren zu verwischen:
Existenz von Prozessen über mehrere Schnittstellen“ prüfen:
”
Signal an alle Prozesse von 1-10000 schicken und dann
überprüfen, ob dazu auch ein /proc Eintrag existiert
Eine Partition mit einem Userland Filesystem Programm
anschauen und nach Unterschieden zum vom Kernel
gemounteten suchen
Kernelspeicher nach bekannten Rootkitsignaturen durchsuchen
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Userland Rootkits
Kernel Rootkits
Erkennmöglichkeiten
Rescue System
Im Rescue System kann das Rootkit sich nicht verstecken. Durch
Überprüfung aller Dateien mit der Sicherheitskopie lassen sich
schnell geänderte Dateien finden, die zum Laden des Rootkits
fungieren.
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Vielen Dank für die Aufmerksamkeit!
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits
Agenda
Sicherheitskonzepte von UNIX Kernel
Root Exploits
Rootkits
Discuss!
Hältst du dein System aktuell, um gegen Viren, die aktuelle
Sicherheitslücken benutzen immun zu sein?
Denkst du, du würdest ein Rootkit auf deinem Rechner
bemerken?
Proseminar Secure Computing Markus Sieber
Betriebssysteme I: Klassische UNIX Exploits