Disk-Forensik/ Beweismittelanalyse/ SleuthKit
Das SleuthKit ist eine Sammlung von Kommandozeilen-Tools für UNIX basierte Systeme. Mit Hilfe dieser Tools ist es möglich verschiedenste Informationen über ein System im Zuge einer manuellen Analyse zu erhalten. Obwohl eine automatisierte Analyse den Vorteil der Schnelligkeit bringt, so kann oftmals eine manuell durchgeführte Analyse oder Teilanalyse zusätzliche Informationen zu Tage fördern.
Der Vorteil dieser Toolsammlung liegt auch weiterhin darin, dass die einzelnen Tools in Skripte eingearbeitet werden können. Dies ermöglicht eine Anpassung der Verwendung für spezielle Zwecke. Das SleuthKit bietet weiterhin eine grafische Benutzeroberfläche um die Bedienung der Tools zu vereinfachen. Diese Benutzeroberfläche trägt den Namen „Autopsy Forensic Browser“. Das SleuthKit eignet sich hervorragend um Images, die mittels dd erstellt wurden zu analysieren.
Die Tools
[Bearbeiten]Im SleuthKit sind folgende Tools enthalten:
Dateisystem Ebene
[Bearbeiten]- fsstat: Dieses Tool zeigt Details zum untersuchten Dateisystem an. Dazu zählen Größenangaben, Layout und Bezeichnungen
Dateinamen Ebene
[Bearbeiten]- ffind: Dieses Tool untersucht die Dateistrukturen und findet allozierte und unallozierte Dateinamen, welche auf Metadatenstrukturen verweisen.
- fls: Dieses Tool listet allozierte und gelöschte Dateien innerhalb eines gegebenen Verzeichnisses auf.
Metadaten Ebene
[Bearbeiten]- icat: Mit diesem Tool lassen sich Dateneinheiten einer Datei anhand ihrer Metadatenadressen extrahieren.
- ifind: Dieses Tool findet zu einem gegebenen Dateinamen die entsprechenden Metadaten oder die Metadaten die zu einer bestimmten Dateneinheit verweisen.
- ils: Dieses Tool listet die Metadatenstrukturen und deren Inhalt auf.
- istat: Dieses Tool listet Statistiken und Details zu einer gegebenen Metadatenstruktur auf.
Dateneinheit Ebene
[Bearbeiten]- dcat: Dieses Tool extrahiert den Inhalt einer bestimmten Dateneinheit.
- dls: Dieses Tool kann Details zu Dateneinheiten auflisten und den unallozierten Speicherplatz eines Dateisystems extrahieren.
- dstat: Dieses Tool zeigt Statistiken zu einer gegebenen Dateneinheit an.
- dcalc: Dieses Tool berechnet den Ort an dem Daten am Originaldatenträger zu finden sind, die am Image im unallozierten Speicherbereich gefunden wurden.
Dateisystemjournal Ebene
[Bearbeiten]- jcat: Dieses Tool zeigt den Inhalt eines gegebenen Journal-Blocks an.
- jls: Dieses Tool listet die Einträge im Dateisystemjournal auf.
- mmls: Dieses Tool zeigt das Layout eines Dateisystems an. Es listet dabei auch unallokierte Speicherbereiche auf und macht Angaben über die Typen, Positionen und Größen der Partitionen.
Image Tools
[Bearbeiten]- img_stat: Dieses Tool zeigt Details über das Dateisystemimage an.
- img_cat: Dieses Tool zeigt die Rohdaten des Dateisystemimages an.
Festplatten Tools
[Bearbeiten]- disk_sreset: Dieses Tool entfernt kurzfristig die Host Protected Area (HPA) einer Festplatte.
- disk_stat: Dieses Tool zeigt an, ob eine Festplatte eine HPA besitzt.
Sonstige Tools
[Bearbeiten]- htime: Dieses Tool sucht Hashes in Hashdatenbanken.
- mactime: Dieses Tool erstellt eine Zeitlinie aus den ausgaben von ils und fls.
- sorter: Dieses Tool sortiert Dateien anhand ihrer Dateitypen und überprüft ihre Dateierweiterung und führt Hashdatenbankvergleiche durch.
- sigfind: Dieses Tool sucht Binärwerte bei einem gegebenen Offset in einer Dateistruktur.
Anwendung bei der Analyse
[Bearbeiten]Um den Ablauf verdächtiger Vorgänge auf einem kompromittierten System nachvollziehen zu können ist es hilfreich eine so genannte Timeline-Analyse durchzuführen. Hierbei werden anhand der Zeitstempel die im Dateisystem gespeichert sind die Abläufe nachvollzogen. So kann festgestellt werden, wann auf welche Dateien zugegriffen wurde, wann sie angelegt, modifiziert oder gar gelöscht wurden. Es ist darüber hinaus möglich gelöschte Daten wieder her zu stellen, wodurch verloren geglaubte Daten wieder gewonnen oder verwischte Spuren wieder hergestellt werden können. Hilfreiche Tools zur Durchführung dieser Analyse sind im „Sleuth Kit“ enthalten. Die Timeline-Analyse wird nun in drei Schritten durchgeführt:
- 1. Sammeln der nötigen Dateiinformationen
- 2. Sammeln der dazu gehörigen Metadaten
- 3. Auswertung der gefundenen Informationen
Sammeln der nötigen Datei-Informationen
[Bearbeiten]Das Tool fls aus dem Sleuth Kit listet Datei und Verzeichnisnamen am Image auf und kann die Namen kürzlich gelöschter Dateien innerhalb eines Verzeichnisses anzeigen. Ein Beispiel zur Anwendung dieses Tools wäre folgender Aufruf:
fls -f linux-ext2 -m / -r /mnt/images/hda2.dd > body.fls
Der Parameter -f gibt das Dateisystem des zu analysierenden Images an. In diesem Fall handelt es sich um ein ext2 Dateisystem, welches typischerweise für Linux verwendet wird. Der Parameter -m gibt den Mountpoint des Systemabbildes an und besagt gleichzeitig, dass die Zeitangaben in Maschinenzeit ausgegeben werden sollen. Dies bezieht sich lediglich auf die Ausgabe der von dem Tool generierten Informationen. Dies dient dazu, dass diese Daten mit der Ausgabe des Tools grave-robber zusammengeführt werden können, bevor das Tool mactime zur Auswertung der Informationen verwendet wird. In diesem Beispiel handelt es sich um das root Verzeichnis „/“. Der Parameter -r bedeutet, dass die Analyse rekursiv durchgeführt werden soll. Ausgehend vom Startpunkt werden also auch alle darunter liegenden Verzeichnisse durchsucht. Im angeführten Beispiel würde also in Kombination mit dem gewählten Parameter -m das gesamte Dateisystem durchsucht. Der Parameter /mnt/images/hda2.dd spezifiziert das zu analysierende Image. Das Ergebnis der Analyse wird in die Datei body.fls ausgegeben. Ein anderes Tool, welches ein ähnliches Ergebnis wie fls liefert, ist mac-robber. Es analysiert jedoch kein Image sondern ein als read-only gemountetes Dateisystem.
Sammeln der dazu gehörigen Metadaten
[Bearbeiten]Mit dem Tool ils werden nun aus den Inodes die Metadaten von gelöschten Dateien ausgelesen. Das Tool nutzt hierbei die Eigenschaft vieler Betriebssysteme den Zeitstempel einer Datei beim Löschen zu aktualisieren. Dies ermöglicht später das Wiederherstellen der gelöschten Dateien. Ein Beispiel zu Anwendung dieses Tools wäre folgender Aufruf:
ils -f linux-ext2 -m /mnt/images/hda2.dd >> body.fls
Der Parameter -f gibt das Dateisystem des Images an. In diesem Fall also wieder ext2. Der Parameter -m sorgt wieder für die Ausgabe der Zeit im Maschinenformat, damit das Tool mactime die Auswertung der gefundenen Informationen vornehmen kann. Der Parameter /mnt/images/hda2.dd spezifiziert das zu analysierende Image. Das Ergebnis der Analyse wird in die Datei body.fls ausgegeben.
Auswertung der gefundenen Informationen
[Bearbeiten]Die durch die Tools fls und ils gefundenen Informationen werden nun mit dem Tool mactime ausgewertet. Man erhält damit einen Überblick über die Aktivitäten an Dateien und Inodes innerhalb eines gewissen Zeitraums. Folgender Aufruf dient als Beispiel:
mactime -b body.fls 12/24/2005
Dieser Befehl zeigt die Auswertung der Timeline am 24. Dezember 2005 des zuvor mit den Tools fls und ils untersuchten Images an.
Wiederherstellung gelöschter Dateien
[Bearbeiten]Mit dem zuvor bereits erwähnten Tool fls kann man die Namen gelöschter Dateien in einem Verzeichnis auflisten lassen. Man erhält dabei Informationen über den Dateityp (Datei, Link, Verzeichnis) und den dazu gehörenden Inode des gelöschten Objekts. Die Chancen eine gelöschte Datei wieder herzustellen stehen gut, sofern auf dem System nach dem Löschen nicht all zu viel Aktivität zu verzeichnen war und die entsprechenden Blöcke im Dateisystem noch nicht durch andere Daten überschrieben wurden. Folgender Aufruf von fls gibt eine Liste gelöschter Dateien aus:
fls -rd /mnt/images/hda2.dd
Der Parameter -r bedeutet, dass die Analyse rekursiv durchgeführt werden soll. Ausgehend vom Startpunkt werden also auch alle darunter liegenden Verzeichnisse durchsucht. Im angeführten Beispiel würde also in Kombination mit dem gewählten Parameter -m das gesamte Dateisystem durchsucht. Der Parameter -d bewirkt, dass nur gelöschte Objekte angezeigt werden. Dieser Befehl liefert den Pfad und den Inode der gelöschten Objekte. Diese Information kann nun dazu benutzt werden, um mit dem Tool istat die Objektgröße und die zugehörigen Blöcke zu erhalten. Der Aufruf des Befehls sieht so aus:
istat /mnt/images/hda2.dd 25413
Dieser Aufruf würde die Größe und Blöcke der Datei zum Inode 25413 im gewählten Image anzeigen. Aus diesen Informationen kann nun mit dem Tool icat der Inhalt der jeweiligen Inodes wieder hergestellt werden. Angenommen der Inode 25413 gehört zu einer Datei namens ls.tgz, so könnte mit folgenden Befehlen diese Datei wieder hergestellt werden:
icat hda2.dd 25413 > /mnt/forensic-data/inode25413-ls.tgz# file /mnt/forensic-data/inode25413-ls.tgz
Eine andere Möglichkeit die offen steht wäre, den Inode einer String-Analyse zu unterziehen:
icat /mnt/images/hda2.dd 25413 | strings
Dies gibt in der Datei enthaltene Strings aus, wodurch ein Rückschluß auf den Inhalt und die Funktion der Datei gezogen werden kann.