• Keine Ergebnisse gefunden

6.4 Abstraktionsebenen der IT-Forensik und Tools

6.4.1 Datentr¨ agerebene

Dieser Abschnitt befasst sich mit analysef¨ahigen Datenstrukturen auf Datentr¨agerebene. Typische Beispiele f¨ur Datentr¨ager sind magnetische Festplatten (Hard Disc Drives, HDDs), Halbleiterlauf-werke (Solid State Discs, SSDs) oder Flashspeicher in USB Sticks oder SD Karten.

Auf Datentr¨agerebene bezeichnet ein Sektor die kleinste adressierbare Einheit des Daten-tr¨agers. Eine heute verbreitete Gr¨oße eines Sektors ist 512 Byte, bei moderneren Datentr¨agern findet man auch oft schon 4096 Byte. Da auf Datentr¨agerebene immer ein ganzzahliges Vielfaches der Sektorgr¨oße zum Speichern von Dateien alloziert wird, bleibt im ’letzten’ Sektor ein Teil des Speichers ungenutzt. Diesen ungenutzten Bereich nennt manSlack Space. Wenn beispielsweise der

7www.sleuthkit.org

8www.kali.org

Nutzer eine kleine Textdatei von 20 Byte anlegt, so alloziert der Datentr¨ager einen Sektor f¨ur diese Textdatei, so dass ein Großteil der Speicherkapazit¨at des Sektors nicht genutzt wird.

Zum Kopieren und Extrahieren von Datentr¨agern verwendet man in der IT-Forensik typischer-weise das Linux-Tooldd. Das Tool hat eine Reihe von Kommandooptionen, die wir in Beispiel 24 beschreiben.

Beispiel 24 (Das Tool dd). Wir nehmen an, wir sollen die Sektoren mit den Sektoradressen 2048bis10000(jeweils einschließlich) von der internen Festplatte mittelsddkopieren. Die interne Festplatte ist ¨uber die Ger¨atedatei/dev/sdaeingeh¨angt. Die Gr¨oße eines Sektors betr¨agt512Byte.

Der Befehl lautet dann:

# dd if=/dev/sda of=copy.dd bs=512 skip=2048 count=7953 Die Bedeutung der Kommandooptionen ist wie folgt:

• if bezeichnet die Eingabedatei (input file), hier das Ger¨at /dev/sda. Das ist die interne Festplatte.

• oflegt entsprechend die Ausgabedatei (output file) fest.

• Das Flagbsbeschreibt die Blockgr¨oße (block size), die als Maßeinheit der Zahlen der anderen Optionen genutzt wird. Die Blockgr¨oße ist hier gleich der Sektorgr¨oße 512 Byte.

• skip gibt die Anzahl der Bl¨ocke an, die von Beginn der Eingabedatei ¨ubersprungen werden.

• count legt die Anzahl der herauszuschreibenden Bl¨ocke fest. Als kleine ¨Ubung versuchen Sie bitte nachzuvollziehen, warum wir hier7953 Bl¨ocke herausschreiben.

Wichtige Prinzipien der Forensik sind Wiederholbarkeit, Integrit¨at sowie Authentizit¨at. Insbe-sondere Beweismittel sind gegen Ver¨anderungen zu sch¨utzen. Wir nehmen daher an, dass das zu sichernde IT-System mittels eines geeigneten Schreibschutzes (z.B. Hardware Write Blocker) gegen Ver¨anderung gesch¨utzt ist. Des weiteren wird mit dem Original so selten wie m¨oglich gearbeitet – wir legen uns daher Kopien an.

Damit wir die ¨Ubereinstimmung von originalem Beweismittel mit unseren Kopien nachweisen k¨onnen, berechnen wir zun¨achst den SHA-256-Wert des Datentr¨agers. Danach sichern wir mittels des Linux Befehlsdd den Datentr¨ager zu unserer Masterkopie und pr¨ufen deren Integrit¨at (d.h.

Ubereinstimmung mit dem originalen Datentr¨¨ ager) mittels der SHA-256-Hashwerte von Master-kopie und Original. Um im Falle einer Manipulation unserer Kopie nicht erneut den originalen Datentr¨ager zu nutzen, legen wir uns mittels dd unsere Arbeitskopie an, auf der wir arbeiten.

Auch deren Integrit¨at wird mittels SHA-256 gepr¨uft. Falls wir diese ver¨andern, k¨onnen wir auf die Masterkopie zur¨uckgreifen, um uns eine neue Arbeitskopie zuzulegen. Die Datentr¨agersicherung gehen wir in Beispiel 25 durch.

Beispiel 25 (Datentr¨agersicherung einer externen Festplatte). Im Rahmen einer Ermittlung soll eine externe Festplatte IT-forensisch untersucht werden. Diese wird ¨uber die USB-Schnittstelle und einen Schreibschutz (einen Hardware-Write-Blocker) an die forensische Workstation angeschlos-sen, auf der Kali Linux l¨auft. Die externe Festplatte wird als Ger¨at/dev/sdbeingeh¨angt. Zun¨achst berechnen wir die SHA-256-Hashsumme ¨uber die originale externe Festplatte, dann erstellen wir mittelsddzun¨achst die Masterkopie und anschließend die eigentliche Arbeitskopie und berechnen danach die Hashsumme ¨uber beide Kopien. Wenn die Kopiervorg¨ange funktioniert haben, stim-men die Hashwerte der Kopien mit dem Hashwert der externen Festplatte ¨uberein. Die folgenden Befehle zeigen den Ablauf (wir m¨ussen root sein, um auf die Ger¨atedatei /dev/usb zugreifen zu k¨onnen).

6.4. ABSTRAKTIONSEBENEN DER IT-FORENSIK UND TOOLS 105 Von zentraler Bedeutung bei einer IT-forensischen Analyse eines Datentr¨agers ist dessen Par-titionierung, d.h. die Unterteilung des Datentr¨agers in kleinere Bereiche. Gr¨unde f¨ur eine Partitio-nierung sind vielseitig. Manche Anwender nutzen mehrere Betriebssysteme auf einer Arbeitssta-tion, andere m¨ochten ihre Dateien auf unterschiedlichen Partitionen verwalten (z.B. Partition 1:

Betriebssystem, Partition 2: pers¨onliche Daten). Die Partitionierung ist vom Betriebssystem und den unterschiedlichen Hardwareplattformen abh¨angig. Im Privatbereich finden wir noch meist das DOS-Partitionsschema vor, durch Einf¨uhrung von (U)EFI statt BIOS wird aber nach und nach auf das modernereGPT-Partitionsschema umgestiegen.

Die Basis einer Partitionierung bildet die Partitionstabelle, die das Layout des Datentr¨agers beschreibt – ¨ahnlich dem Inhaltsverzeichnis eines Buches. Typische Eintr¨age sind der Start und das Ende einer Partition (oft auch durch Beginn und Gr¨oße der Partition beschrieben) sowie das Dateisystem, mit dem die Partition formatiert ist. Allerdings muss das in der Partitionstabelle behauptete Dateisystem mit dem tats¨achlichen nicht ¨ubereinstimmen – hier ist also Vorsicht f¨ur den IT-Forensiker geboten, er muss dies durch Betrachten der jeweiligen Partition validieren bzw.

widerlegen.

Sehen wir uns nun das verbreitete DOS-Partitionsschema etwas n¨aher an. Die prim¨are Parti-tionstabelle und damit die zentrale Datenstruktur des DOS-Partitionsschematas liegt im ersten Sektor des Datentr¨agers (d.h. Sektor 0), dem Master Boot Record (MBR). Ihre Lage in Sektor 0 sowie ihr Aufbau sind fest vorgegeben, sie beginnt ab Offset 446 = 0x1be des MBR und belegt statisch vier Eintr¨age zu je 16 Byte. Durch ein DOS-Partitionsschema k¨onnen also h¨ochstens vier Partitionen durch die Partitionstabelle des MBR beschrieben werden. Sofern man mehr Partitio-nen allozieren m¨ochte, muss man erweiterte Partitionen anlegen, die eigene Partitionstabellen in ihrem ersten Sektor speichern (sogenannte sekund¨are Partitionstabellen).

Zur Analyse der Partitionierung gibt es zwei verbreitete Tools: das allgemeine Linux-Tool fdisk sowie mmls aus dem Sleuthkit (der Bezeichner soll an den klassischen List-Befehl lsvon Linux erinnern). W¨ahrendfdiskauch zur Partitionierung eingesetzt werden kann, ist mmls spe-ziell f¨ur IT-forensische Analysezwecke entwickelt worden. Daher gehen wir im Folgenden aufmmls ein. Eingabe f¨urmmls ist ein Datentr¨ager oder dessen Abbild, Ausgabe ist die Angabe des Parti-tionsschemas, die Sektorgr¨oße sowie das Layout des Datentr¨agers. Wir stellen die Interpretation der Ausgaben vonmmlsin Beispiel 26 im Detail vor.

Beispiel 26 (DOS-Partitionsschema und mmls). In diesem Beispiel analysieren wir das Parti-tionsschema der externen Festplatte aus Beispiel 25. Wir arbeiten auf der Arbeitskopie, die uns als Imageworkingcopy.ddvorliegt. Die Anwendung vonmmlsliefert folgende Informationen (wir arbeiten wieder im nicht-privilegierten Modus, weil kein Ger¨atezugriff n¨otig ist):

$ mmls workingcopy.dd DOS Partition Table Offset Sector: 0

Units are in 512-byte sectors

Slot Start End Length Description

00: Meta 0000000000 0000000000 0000000001 Primary Table (#0) 01: --- 0000000000 0000002047 0000002048 Unallocated 02: 00:00 0000002048 0960237567 0960235520 Win95 FAT32 (0x0C) 03: --- 0960237568 0960239615 0000002048 Unallocated

04: Meta 0960239614 0976771071 0016531458 DOS Extended (0x05) 05: Meta 0960239614 0960239614 0000000001 Extended Table (#1) 06: 01:00 0960239616 0976771071 0016531456 Linux Swap (0x82) 07: --- 0976771072 0976773167 0000002096 Unallocated

Wir sehen, dass es sich um eine DOS-Partitionierung handelt (DOS Partition Table), dass die Z¨ahlung am Beginn des Datentr¨agers startet (Offset sector: 0) und dass die Zahlen in der Maßeinheit Sektoren zu je 512Byte angegeben werden.

Die Aufteilung des Datentr¨agers wird dann in den SpaltenStart,EndundLength angegeben, die jeweils den ersten bzw. letzten Sektor sowie die Gr¨oße des jeweiligen Bereichs in Sektoren ange-ben. Die SpalteDescriptiongibt Details zum Zeileneintrag an, w¨ahrendSloteine Nummerierung

der Bereiche erm¨oglicht. Ein Eintrag Meta bedeutet, dass als Metadaten eine Partitionstabelle in dem jeweiligen Bereich vorhanden ist, die Z¨ahlung xx:yy gibt zun¨achst die Nummer der Parti-tionstabelle xx und danach die Nummer des Eintrags yy in dieser Partitionstabelle an. 00:00 bedeutet also, dass diese Partition im ersten Eintrag der prim¨aren Partitionstabelle beschrieben wird, w¨ahrend die Partition01:00 als erster Eintrag der erweiterten Partitionstabelle aus Sektor 960239614 beschrieben wird.

Wir sehen insgesamt zwei Partitionstabellen: die prim¨are Tabelle steht im MBR (Primary Table (#0) im Eintrag 00), die zweite Partitionstabelle findet sich im ersten Sektor der erweiterten Partition als Eintrag 05. Wir finden drei nicht-allozierte Bereiche (Eintr¨age 01, 03 und 07) sowie zwei Dateisystempartitionen vor (Eintr¨age 02 und 06). In der ersten Datei-systempartition vermuten wir ein FAT32-Dateisystem, das in der DOS-Partitionierung als Typ 0x0C kodiert wird. Weiterhin ist der Eintrag06vom Typ0x82vermutlich eine Swap-Partition.

Zur Untersuchung einzelner Partitionen bzw. der nicht-allozierten Bereiche empfiehlt es sich, jeden Bereich zu extrahieren und einer separaten Analyse zu unterziehen. Nachdem wir die Be-reiche einzeln gesichert haben, k¨onnen wir Dateisystempartitionen durch eine Dateisystemanalyse weiter untersuchen.

Kontrollaufgabe 29(Herausschreiben einer Partition). Wie lautet der Befehl zum Herausschrei-ben der FAT32 Partition in Beispiel 26?

Kontrollaufgabe 30 (Vierter Eintrag in einer DOS-Partitionstabelle). Geben Sie die Bytes an, die vom vierten Eintrag der prim¨aren Partitionstabelle belegt werden.

Kontrollaufgabe 31 (Anzahl der Eintr¨age in einer DOS-Partitionstabelle). Gegeben ist Ihnen folgender Ausschnitt des MBR:

# xxd /dev/sdb [REMOVED]

00001b0: 0000 0000 0000 0000 94f1 7dcd 0000 0021 ...}....!

00001c0: 0300 8316 2c50 0008 0000 0060 0900 0000 ....,P...‘....

00001d0: 0000 0000 0000 0000 0000 0000 0000 001c ...

00001e0: 1950 833e 3485 6069 0900 0040 0600 0000 .P.>4.‘i...@....

00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa ...U.

Wie viele Partitionen sind allokiert?