Digital Forensics Slackspace
Slackspace Übersicht: Slack allgemein NTFS Slack FAT Slack mit Steganographie
Slack allgemein Slack Space: Bezeichnet den Speicherplatz zwischen Ende der Datei und Ende des allozierten Speicherbereiches. Kann interessante Daten beinhalten Zum einen: Festplatten müssen mind. 1 Sektor schreiben, 512 Byte bzw. 4096 bei neuen Festplatten Betriebssystem bestimmt Padding, normalerweise 0er (ganz früher bei DOS & frühem Windows: Daten aus dem RAM )
Slack allgemein Slack Space: Zum anderen: Kann Teile alter Dateien enthalten Auch nach wipen (wenn schlecht gemacht)! Analogie: Video (VHS) 60 min, dann 30 min Bsp: NTFS mit 2048 Cluster, 512 Byte Sektor Datei mit 612 Byte, 2 Sektoren mit 512 gefüllt -> Padding auf 1024, aber Sektoren 3&4 unbeachtet
Slack Übersicht Quelle: http://www.berghel.net/publications/data_hiding/data_hiding.php
Slack allgemein MBR Slack (bei DOS Partitionen): Partitionen starten bei Cylindergrenze (63 Sektoren für BIOS) Nach MBR 62 Sektoren frei bis zur ersten Partition Ähnlich auch bei erweiterten Partition möglich Benötigt CHS Adressschema, keine praktische Relevanz
Slack allgemein Volume Slack: Das Dateisystem ist kleiner als Partition/Festplatte Beliebige Größe Erkennen: Größe Volume Größe Dateisystem 0 Achtung: 1 Unterschied in NTFS kann Backup Bootsektor ($Boot, MFT Entry 7) sein, Vergleichen von Bootsektor & Backup Bootsektor nötig
Slack allgemein Dateisystem (Partition) Slack: Letzte(n) Cluster die nicht Teil des Dateisystems sind Relativ geringe Größe, aber abhängig von Clustergröße Bsp NTFS: Sektoren in $Boot & $Bitmap verringern Erkennen: Division vorhandene Cluster durch genutzte Cluster liefert Rest Bsp NTFS: 10001 Sektoren & 2500 Clustern: 1 Sektor Slack
NTFS Hidden Data Einfach, aber nicht effektiv: Allocation Bit in $BITMAP auf 1 setzen chkdsk erkennt es als Fehler Unallocated Cluster: können vom Dateisystem beliebig überschrieben werden, ausser bei read-only mount MFT Entry Slack: Restbereiche von MFT Entries nach dem 0xffffffff, werden bei zusätzlichen Attributen aber überschrieben
NTFS Hidden Data Übersicht Verschiedene Formen von versteckten Daten in NTFS möglich: Gefälschte Bad Cluster File Slack MFT Slack Zusätzliche Cluster $DATA Attribut für Directory Die meisten bzw. einige auch in ähnlicher Form in anderen Dateisysteme möglich
NTFS Hidden Data Gefälschte Bad Cluster (NTFS): Erkennen: $Bad Attribut in $BadClus (MFT 8) enthält bad clusters Werden aber meist vom Festplattencontroller zuerst entdeckt! Zusätzlich Festplatte nach bad clustern scannen (surface scan) Verstecken: Cluster zu $BadClus hinzufügen (Größen in MFT modifizieren wenn nötig) Allocation Status von Cluster auf 1 setzen & Daten einfügen
NTFS Hidden Data File Slack (NTFS) Letzter Sektor wird mit 0en aufgefüllt, Rest vom Cluster aber ignoriert Wenn Datei mitten in Sektor 3 endet: Sektor 3 wird mit 0en aufgefüllt, Sektor 4 kann verwendet werden für versteckte Daten Wenn Datei vergrößert oder verkleiner wird können gespeicherte Daten verloren gehen Bsp.: Metasploit slacker.exe
NTFS Hidden Data FragFS: Versteckt Daten in den MFT Entries bzw. MFT Slack Blackhat Federal 2006 MFT Einträge im Schnitt 450 Bytes (von 1024), mit oft > 100.000 MFT Einträgen 60% davon brauchbar Basiert auf der Idee das viele Dateien sich selten bzw. nie ändern: Treiber,.inf, Fonts, Directories, 100.000 x 60% x 600 byte = 36 MB
NTFS Hidden Data Viele MFT Einträge (NTFS) Einträge in der MFT werden sequentiell erstellt Möglichkeit: viele Einträge erstellen, dann alle löschen, dann Daten in den (hohen) MFT Einträgen verstecken Problem: Chkdsk überprüft MFT auf Konsistenz Wenn viele Dateien anlegt werden können die Daten in den hohen Einträgen überschrieben werden
NTFS Hidden Data Zusätzliche Cluster zu Datei (NTFS) Im MFT Eintrag zusätzliche Cluster der Datei zuschreiben Vorteil: Beliebige Größe möglich Nachteil: Wenn die Datei größer wird werden versteckte Daten überschrieben, gibt aber stabile Dateien
NTFS Hidden Data $DATA Attribut für Directory Daten in $DATA Attribut für Verzeichnisse verstecken Normalerweise keines nötig, aber chkdsk erkennt es auch nicht als Fehler (auch mehrere $DATA möglich)
Metasploit Tools Ein paar nützliche Tools von Metasploit: Counterforensics Projekt nicht mehr aktuell, aber Tools noch verfügbar Vorgestellt BH 2005, Vincent Liu Timestomp Manipuliert oder löscht MACE Zeitstempel (in $STANDARD_INFORMATION) Mit Trick aber auch $FILE_NAME manipulierbar (in anderen Ordner verschieben) Verwendung auffällig (Datei ohne Zeitstempel???)
Metasploit Tools Slacker Versteckt Dateien im NTFS Slackspace ganzes Directory bzw. Subdirectorys werden verwendet Speichert Informationen wo welche Teile sind auch im Slack Kann auch verschlüsseln (Metadaten) SAM Juicer Dump t SAM ohne Festplattenzugriff Transmogrify Verändert Dateiheader gegen EnCase, z.b..doc.jpg
FAT Slack Prinzipiell: FAT noch immer häufig verwendet ähnlich wie NTFS Designing a Cluster-based Covert Channel to Evade Disk Investigation and Forensics Khan et al., Elsevier Computer & Security 30, 2011
FAT Slack Durch Fragmentation der Dateien auf FAT32 System Plausable Deniability! Keine zusätzlichen Informationen nötig 2 Methoden Naiv: Defragmentierter Cluster = Änderung im Nachrichtenbit Advanced: Offset zwischen Cluster ist Nachricht 24 bit/cluster wenn Festplatte halb voll
FAT Slack Bsp: Nachricht 110011
FAT Slack Nachteile: Arbeiten mit Dateien wird langsam (HD) Probleme bei Kollisionen Dateisystemtreiber kann gefunden werden Leichte Gegenmaßnahme: defrag Deniability bei langen Nachrichten/Dateien?
FAT Slack