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