Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

A FreeBSD Kernel Rootkit

Ähnliche Präsentationen


Präsentation zum Thema: "A FreeBSD Kernel Rootkit"—  Präsentation transkript:

1 A FreeBSD Kernel Rootkit

2 Inhaltsverzeichnis Background / Inspiration Rheya Hidden Channels
Rootkits Hidden Channels Remote Exploiting Frameworks Forensik Rheya Komponenten Anti-Forensik Probleme bei der Implementation

3 ...nach einem erfolgreichen Einbruch
Attacker will Weiterhin Zugang zum System haben Auf dem System sein Zeugs machen und zwar so, dass es niemand merkt!

4 Rootkits: Anforderungskatalog
Ziel: root behalten! Backdoor Möglichkeit, als User Root zu werden Möglichkeit, ohne Shell Zugang auf das System zugreifen zu können Möglichkeit, Daten zu verstecken Möglichkeit, Aktivität/Aktivitäten zu verstecken Möglichkeit, änderung zu verstecken

5 ...was bedeutet das Aktivitäten des Angreifers sollen vom Admin oder von Software nicht (als bösartig) erkannt werden sonst verlust des System, evntl Forensische Analyse Lösung: Admin bekommt eine Virtuelle Sicht auf das System, die nicht mit der Realität übereinstimmt “alles sieht normal aus”

6 Rootkits: Funktionen Verstecken von Dateien
Verstecken von Netzwerk Verbindungen eine möglichkeit, um root zu werden eine möglichkeit, remote befehle abzusetzen

7 Background: Rootkits Rootkits der ersten Generation
im Userspace, Ring 3 ersetzen von Systemdateien mit gepatchten Versionen Daten verstecken: ls, rm, touch, mkdir, rmdir Aktivität verstecken: netstat, login, getty, sshd, who, lsof,... Zusätzliche Cloaking Tools / Log Cleaner lastlog, wtmp, /var/log/messages, apache log, ... entdeckbar mit Datei Checksums tripwire, AIDE, ... ... oder auch Integrity Checker (wtmp, lastlog) Techniq obsolete, wird aber noch angewendet

8 Background: Rootkits Rootkits der Zweiten Generation
im Kernelmode (Ring 0) (Kernel Modul) keine Modifikationen von Dateien nötig Kernel Datenstrukturen Manipulieren Prozess aus Prozess List löschen: Prozess nicht mehr sichtbar, bekommt aber noch CPU Zeit VFS Modifikationen Kernel Funktionen ersetzen Syscalls (mit Trampoline) mkdir, getdirents, read/write, ... interne Funktionen (z.B. für Firewall)

9 Background: Rootkits Rootkits der Zweiten Generation Kommunikation
Userspace Programme spezielle Packete (Hardcoded) Abwehr vom Userspace relativ schwer zu entdecken Entdeckung durch Daten Korrelation Verhindern: Kernel Module deaktivieren nützt nichts; /dev/kmem Windows Vista: nur signierte Treiber “nur”, “signiert” Exploit in einem Treiber

10 Background: Rootkits Hypervisor Rootkits
unklar, ob man Bösartige Hypervisor Rootkits entdecken kann Zukunft

11 Background: Hidden Channels
Motivation: Angreifer will nicht, dass er wegen der Kommunikation entdeckt wird Gefangenen Problem ein paar Netzwerk Hidden Channels als Payload in ICMP Echo Reply/Request als DNS Hostnames in DNS Requests SEQ Nummer bei Verbindungsaufbau Out-of-Order Byte bei TCP Timing von TCP Connects ... neu: Channel Hopping

12 Background: Forensik einfach zu bewerkstelligen
Motivation: Attacker will so wenig wie möglich von sich Preisgeben Forensische Untersuchung eines gehackten Systems = HD untersuchen Abwehr: nichts berührt die HD einfach zu bewerkstelligen Falls Reboot-Safety erwünscht: HD! backdooring init + file redirection virus Hidden Channels: Encrypted

13 Background: Remote Exploition Frameworks
Ziel: Framework zur Modularen Entwicklung von Exploits Metasploit Fehler in Software -> EIP First Stage Payload Als Shellcode/Eggcode lädt Second Stage Payload Second Stage Payload wird in einen bestehenden Prozess als DLL Injected stellt Mini-Server bereit (Meterpreter) CANVAS, ...

14 What's wrong with all the RK's?
keines für FreeBSD jedes Implementiert einen eigenen Kommunikationskanal viele Proof of Concepts

15 Rheya: Ziel Zugriff behalten Präsenz des Angreifers verstecken
Aktivitäten des Angreifers verstecken Aktivität des Angreifers verstecken Änderungen des Angreifers verstecken zusätzliche Daten verstecken änderung an Daten verstecken eigentliches Ziel: Angreifer bei seinen Aktivitäten schützen

16 Solyaris Rheya FreeBSD Kernel Rootkit / Backdoor Kelvin
Client for the Rheya/Sartorius Sartorius Userspace Implementation of the Backdoor Snaut Userspace Helper Program for Rheya/Sartorius

17 Features Data Hiding Dateien/Prozesse/Connections verstecken
File redirection Rootkit: Kommunikation bereitstellen Channels Encrypted and Authenticated Services Packet Forwarding Techniqs kmem injection for kbd dll injection for ubd init virii

18 Aufbau Solyaris

19 Feature: Covert Channels

20 Beschreibung Channels

21 Feature: File Redirection

22 Identifikation low-level und high-level Funktionen
Identifikation des Rootkits low-level und high-level Funktionen versteckte Dateien: /dev/hda + Kernel, Bios? versteckte Prozesse: /dev/kmem, scheduler vorher/nachher checksums Syscall Jump Table Syscall Code Timings anzahl instruktionen eines mkdir syscall aufrufs

23 Identifikation Identifikation des Rootkits
Signatur scanning in /dev/kmem Anomalien keine Inodes Packet Counter, Zombie Prozesse, .. ...

24 Identifikation NIDS ohne Durchblick HIDS pwnt
verschlüsselung, hidden channels, channel hopping sowieso Totgeburt HIDS pwnt entdeckung vom Kernel Modul möglich vergleich mit Korrektem Zustand anomalie Detektion SELinux, RBAC, .. ? Tools um Hidden Channels zu entdecken entropie anomalie detection


Herunterladen ppt "A FreeBSD Kernel Rootkit"

Ähnliche Präsentationen


Google-Anzeigen