Computerforensik Wintersemester 2009/2010 Harald Baier Kapitel 2: Festplattenanalyse
Inhalt Festplattentechnologie Master Boot Record Partitionstabellen Tools zur Sicherung und Untersuchung Harald Baier Computerforensik h_da WS 2009/2010 2
Einführendes Warum sind Festplatten interessant für Forensik? Zwei gängige Typen: Hard disc drives (HDD): Rotierende Scheiben mit magnetisierbarer Oberfläche Großteil heutiger Festplatten Solid state drives (SSD): Halbleiter-basierte Speichermedien Flash-Speicher: persistent für Festplatten Daten können außerhalb von Dateisystemen versteckt werden: Zwischen Partitionen, in HPA, in DCO Diese Datenträgerbereiche müssen untersucht werden Harald Baier Computerforensik h_da WS 2009/2010 3
Logischer Aufbau einer magnetischen HDD Übereinander liegende Scheiben Eigene Lese-/Schreibköpfe: Heads Oft Ober- und Unterseite magnetisiert Low-Level-Formatierung: Konzentrische kreisförmige Spuren Unterteilt in Blöcke (typ. 512 Byte) Zylinder besteht aus Spuren gleicher Radien auf allen Scheiben Quelle: en.wikipedia.org Sektor besteht aus allen Blöcken zwischen festen Winkeln Harald Baier Computerforensik h_da WS 2009/2010 4
Adressierung von Daten Über Adressierung von Blöcken: Kleinste adressierbare Einheit einer Festplatte Typische Größe: 512 Byte Festplatte ist 3-dimensional 3 geometrische Angaben (vgl. Zylinderkoordinaten) Radius = Zylinder ( = C für cylinder) nummeriert ab 0 Höhe = Kopf ( = H für head) nummeriert ab 0 Winkel = Sektor ( = S für sector) nummeriert ab 1 Führt zur CHS-Adressierung: Block eindeutig adressiert Allerdings veraltet (siehe folgende Folie) Abgelöst durch LBA (Logical Block Address) Harald Baier Computerforensik h_da WS 2009/2010 5
CHS vs. LBA CHS-Adressierung ist veraltet: Typischerweise 3 Byte in Partitionstabelle zur Verfügung 10 Bit für Cylinder ==> 1024 Möglichkeiten 8 Bit für Head ==> 256 Möglichkeiten 6 Bit für Sector ==> 64 Möglichkeiten Insgesamt: Blöcke = Byte = GByte Für heutige Festplatten zu klein Weiterer Nachteil: Spez. für HDDs ausgelegt (3-D-Geometrie) LBA: Durchnummerierung der Blöcke von 0,..., MAX In Partitionstabelle stehen typ. 4 Byte (=32 Bit) zur Verfügung Maximale Festplattengröße? Harald Baier Computerforensik h_da WS 2009/2010 6
Umrechnung CHS --> LBA Anzahl der Sektoren = s, Anzahl der Köpfe = h Fortlaufende Nummerierung: (C, H, S) = (0, 0, 1) <=> LBA = 0 (C, H, S) = (0, 0, 2) <=> LBA = 1... (bis alle Blöcke der äußersten Spur für ersten Kopf adressiert sind, dann eine Spur 'nach oben') (C, H, S) = (0, 1, 1) <=> LBA = s... Allgemeine Formel: LBA( C, H, S ) = s ( h C + H ) + S - 1 Harald Baier Computerforensik h_da WS 2009/2010 7
Layout einer Festplatte Erster Block enthält den Master Boot Record (MBR) Enthält Boot Code zum Starten Informationen über Unterteilung des Datenträgers in Partitionen: Partitionstabelle Partitionstabelle enthält sehr wichtige Informationen für den Forensiker Typische Gründe für Partitionierung der Festplatte: Installation mehrerer Betriebssysteme 'nebeneinander' Beschränkung der Auswirkung eines defekten Blocks Maximalgröße eines Dateisystems ist kleiner als die physische Festplatte Harald Baier Computerforensik h_da WS 2009/2010 8
Aufbau des MBR Adresse (dez.) Beschreibung Erforderlich? 0 439 Boot Code (Boot Loader) Nein 440 443 Windows-Signatur Nein 444 445 Nullen Nein 446 461 Erster Eintrag Partitionstabelle Ja 462 477 Zweiter Eintrag Partitionstabelle Ja 478 493 Dritter Eintrag Partitionstabelle Ja 494 509 Vierter Eintrag Partitionstabelle Ja 510 511 'MBR'-Signatur (Magic Number) Nein 0x55AA Harald Baier Computerforensik h_da WS 2009/2010 9
Aufbau eines Eintrags der Partitionstabelle Jeder Eintrag besteht aus 16 Byte Adressbereich 0 bis 0: Bootable Flag 0x80: Bootfähig 0x00: Nicht bootfähig Adressbereich 1 bis 3: CHS-Eintrag des ersten Blocks 'Kompliziert kodiert' Adressbereich 4 bis 4: Partitionstyp 0x04: FAT16, weniger 32 MByte 0x05: Erweitert 0x82: Linux Swap 0x83: Linux native Harald Baier Computerforensik h_da WS 2009/2010 10
Aufbau eines Eintrags der Partitionstabelle (2) Adressbereich 5 bis 7: CHS-Eintrag des letzten Blocks 'Kompliziert kodiert' Adressbereich 8 bis 11: LBA des ersten Blocks Primäre Partition: Bezüglich Anfang der Festplatte Erweiterte Partition: Bezüglich aktueller Partitionstabelle Darstellung ist Little-Endian (Bytes von rechts nach links!) Adressbereich 12 bis 15: Anzahl der Blöcke Darstellung ist Little-Endian (Bytes von rechts nach links!) Harald Baier Computerforensik h_da WS 2009/2010 11
Untersuchung der Partitionstabelle mit fdisk Linux-Tool: fdisk <device> Ausgabe diverser Informationen über Datenträger device Harald Baier Computerforensik h_da WS 2009/2010 12
Untersuchung der Partitionstabelle mit fdisk (2) Untersuchtes Device: /dev/sdb 'Zweites' SCSI-Device 3 Partitionen Primäre Partition /dev/sdb1: Nicht boot-fähig Primäre Partition /dev/sdb2: Boot-fähig Erweiterte Partition /dev/sdb3 Wesentliche Beobachtung: Zwei nicht-allozierte Bereiche Zylinderbereich 513 bis 519 (entspricht ca. 28 MByte) Zylinderbereich 1001 bis 1016 (entspricht ca. 64 MByte) Dort kann man 'viele' Daten verstecken Harald Baier Computerforensik h_da WS 2009/2010 13
Untersuchung der Partitionstabelle mit mmls fdisk produziert 'umständliche' Angaben über Partitionen Angabe über Beginn u. Ende in Zylindern Nicht-allozierte Blöcke in einem Zylinder nicht erkennbar Angabe der Länge in Blöcken (1 kbyte Länge????) mmls ist ein Tool aus der Forensik- Toolsammlung The Sleuthkit (TSK) www.sleuthkit.org Open Source Tool Executables für Windows Autopsy Forensic Browser als Front-End Wesentlich initiiert u. gepflegt von Brian Carrier Harald Baier Computerforensik h_da WS 2009/2010 14
Untersuchung der Partitionstabelle mit mmls (2) Aufruf: mmls [-t mmtype] <device> Option -t mmtype: Partitionstyp (ohne: autodetect) Harald Baier Computerforensik h_da WS 2009/2010 15
Untersuchung der Partitionstabelle mit mmls (3) Ausgaben sind konform mit denen von fdisk, aber: Gegenüber fdisk fällt Blocksegment 0 (1) 61 als nichtallozierter Bereich auf Der nicht-allozierte Bereich am 'Ende' ist nicht unmittelbar erkennbar mmls scheint verwirrt im Hinblick auf nicht-allozierten Bereich vor erweiterter Partition (gibt diesen bis Ende der Festplatte an!!) --> erfordert genauere Untersuchung 2 Partitionstabellen: Primäre Partitionstabelle in Block 0 Erweiterte Partitionstabelle in Block 4.183.140 Harald Baier Computerforensik h_da WS 2009/2010 16
Direkte Ansicht der Partitionstabelle Mittels eines Hex-Editors Generelle Vorsicht: Manche Hex-Editoren stellen Byte-Paare vertauscht dar (Little-Endian) Führt schnell zu Verwirrung Wir verwenden das Tool xxd aus TSK Aufruf über xxd <input> less input kann ein Device, ein Image, eine Datei,... sein Drei Spalten: Adressbereich Bytes Interpretation Primäre Partitionstabelle beginnt bei Byte 446 = 0x??? Harald Baier Computerforensik h_da WS 2009/2010 17
Direkte Ansicht der Partitionstabelle mit xxd Aufruf xxd /dev/sdb less Harald Baier Computerforensik h_da WS 2009/2010 18
Direkte Ansicht der Partitionstabelle mit xxd (2) Vermutlich kein Boot Code, da nur 0-Bytes zu sehen Windows-Signatur: Bytes 440 443 (=0x??? 0x??? ) Darstellung (Little-Endian) konform mit fdisk - Angabe? Zwei-Nullbytes: Bytes 444 445 (=0x??? 0x??? ) Anschließend: Maximal 4 Einträge zu je 16 Bytes Harald Baier Computerforensik h_da WS 2009/2010 19
Erster Eintrag der primären Partitionstabelle Adressbereich 446: 0x00 ==> Nicht bootfähig Adressbereich 447 bis 449: 0x010100 (Erster CHS-Block) Adressbereich 450: 0x83 ==> Linux native Adressbereich 451 bis 453: 0x813eff (Letzter CHS-Block) Adressbereich 454 bis 457 (Starting LBA): 0x3e000000 Little-Endian: Startblock ist 0x0000003e = Adressbereich 458 bis 461 (Länge): 0xc27b1f00 (Länge) Little-Endian: Länge = 0x001f7bc2 = Harald Baier Computerforensik h_da WS 2009/2010 20
Sichern von Datenträgern mit dd (disc dump) Beispiel: dd if=/dev/hda of=image.dd bs=512 Kopiert Bits 1-zu-1 von Gerät /dev/hda (Master am ersten ATA-Kanal) in die Datei image.dd im aktuellen Verzeichnis if ist Eingabe (input file): Kann Datei oder Gerät sein Falls ausgelassen: Standardeingabe Analog of für Ausgabe (falls ausgelassen: Standardausgabe) Mit dem Flag bs wird Blockgröße (block size) gesteuert dd hat wichtige weitere Optionen: count=n: Kopiere n Eingabe-Blöcke skip=n: Lasse die Blöcke 0 bis n-1 der Eingabe aus seek=n: Lasse die Blöcke 0 bis n-1 der Ausgabe aus Harald Baier Computerforensik h_da WS 2009/2010 21
Beispielaufgaben Wir verwenden das Device /dev/sdb von oben Befehl für dd zum Herausschreiben des MBR? Befehl für dd zum Herausschreiben der ersten Partition? Befehl, um Datei file1.jpg (2 MByte) zwischen 2. und erweiterter Partition zu verstecken? Harald Baier Computerforensik h_da WS 2009/2010 22
Integritätssicherung 'Saubere' Tools verwenden: Dead Acquisition Dateisicherung ohne das Betriebssystem des betroffenen IT-Systems Hardware darf benutzt werden Typischerweise Nutzen eigener CD/DVD/USB-Stick Berechnung von kryptographischen Hashwerten vor Sicherung: Heute mindestens SHA-1 oder RIPEMD-160 verwenden Hashwerte in handgeschriebenes Logbuch (geringe Gefahr der Manipulation) Harald Baier Computerforensik h_da WS 2009/2010 23
Kryptographische Hashfunktionen Bilde Bitstring beliebiger Länge auf Bitstring fester Länge ab Mathematisch: H : {0,1}* {0,1} n (heute: n 160) Interpretation: Hashwert ist 'Fingerabdruck' (fingerprint) einer beliebig langen Datei Eigenschaften: Preimage Resistance: Praktisch unmöglich, zu gegebenem Hashwert h ein Dokument m vorzuweisen mit h = H(m) Collision Resistance: Praktisch unmöglich, zwei Dokumente m m' vorzuweisen mit H(m) = H(m') Second Preimage Resistance: Praktisch unmöglich, zu gegebenem Dokument m ein zweites Dokument m' vorzuweisen mit m m' und H(m) = H(m') Harald Baier Computerforensik h_da WS 2009/2010 24
Praktische Probleme beim Einsatz von Hashfunktionen Wurde Original-Datenträger als Ganzes mittels Hashfunktionen gegen Veränderung geschützt, genügt ein verändertes Bit, um Hashwert unbrauchbar zu machen Gefahr besteht bereits durch Alterungsprozesse des Datenträgers Es kann daher sinnvoll sein, Teil-Hashwerte des zu untersuchenden Systems zu verwenden: Chunks Hashwerte für geeignete Partitionen Hashwerte für übrige Datenträgerbereiche 'Umgefallene' Bits betreffen dann nur den jeweiligen Chunk Diesen dann gesondert betrachten Harald Baier Computerforensik h_da WS 2009/2010 25
Sichern, aber wohin und in welchem Format? Typischerweise Image: Kopie in Datei (und ggfls. über Netzwerk übertragen und remote speichern) Kopie auf CD-ROM Image über das Netzwerk: IT-System von 'sauberem' Medium booten Datenträger vertraulich, authentisch und integritätsgeschützt über das Netz kopieren Beispiele: dd + ssh Formate: Raw-Image (1-zu-1-Kopie) vs. Embedded-Image (inkl. Zeitstempel, Hashwerten,...) Harald Baier Computerforensik h_da WS 2009/2010 26
Host/Hidden Protected Area (HPA) HPA ist mit OS-Mitteln nicht erreichbar Mögliche (gewollte) Zwecke: PC-Hersteller nutzen HPA für Installation u. Recovery Tracking bei gestohlenen Laptops: Tracking-Software liegt in HPA Wie findet man HPA? Durch Boot-Nachrichten erkennbar (mittels dmesg) disk_stat aus TSK: root@baier-laptop:~# disk_stat /dev/sda Maximum Disk Sector: 156301487 Maximum User Sector: 156301487 Harald Baier Computerforensik h_da WS 2009/2010 27
Device Configuration Overlay (DCO) Wie HPA ist auch DCO mit OS-Mitteln nicht erreichbar Typischer Zweck: Festplatte sieht nach 'Außen' anders aus als sie tatsächlich ist Szenario: PC-Hersteller sollen PCs mit 80-GByte-Platten bestücken Im Einkauf erhält PC-Hersteller 80- und 100-GByte-Platten Er nutzt DCO, um 100-GByte-Platten wie 80-GByte-Platten aussehen zu lassen Liegt logisch noch hinter der HPA Harald Baier Computerforensik h_da WS 2009/2010 28