Disk-Forensik/ Beweismittelquellen/ Grundlagen der Dateisysteme
FAT
[Bearbeiten]FAT (File Allocation Table) bezeichnet einerseits die Tabelle, die den Platz auf dem Datenträger verwaltet und freie, belegte und defekte Zuordnungseinheiten protokolliert und andererseits das Dateisystem selbst. Grundsätzlich unterscheidet man zwischen drei verschiedenen FAT Typen:
- FAT12
- FAT16
- FAT32
Die 2-stellige Zahl (12, 16 od. 32) zeigt die Anzahl der max. adressierbaren Cluster in Bit an. Dies bezeichnet also die maximale Anzahl an Dateien. Bei FAT16 Dateisystemen sind dies also beispielsweise 65.536 ().
Das FAT-Dateisystem wird grundsätzlich in vier verschiedene Bereiche unterteilt:
- Boot Sektor ( Sektor):
- In diesem Bereich befindet sich der Bios Parameter Block (BPB). Hier werden Parameter, wie Typ, Größe, etc., angegeben. Der standardmäßige Boot Sektor befindet sich im 0 Sektor und hat bei FAT32 512 Byte Sektoren. Ein Backup des Boot Sektors befindet sich bei FAT32 im Sektor 6 des Datenträgers.
- FAT
- Die FAT ist wie bereits zuvor erwähnt eine Tabelle fester Größe, die alle Einträge von freien und belegten Clustern enthält. Eine Datei belegt oft mehrere Cluster. Jeder dieser Cluster ist in der FAT eingetragen. Dieser Eintrag des Clusters kann entweder beinhalten, dass er frei oder beschädigt ist. Wenn der Cluster belegt ist, wird weiters angegeben, ob dies der letzte Cluster einer Datei ist. Ist dies nicht der Fall, enthält der Eintrag die Nummer des nächsten Clusters. Durch das Verlinken auf die nachfolgenden Cluster entsteht eine sogenannte Linked List (verkettete Liste), die eine Datei definiert.
- Die FAT hat bei den FAT-Dateisystemen in der Regel eine Kopie, um bei Datenverlust noch immer eine funktionsfähige FAT zu haben. Mit diversen Programmen ist eine Datenwiederherstellung in vielen Fällen möglich.
- Root Directory
- Bei FAT12/16 schließt das Root Directory direkt an die FAT an und besitzt eine definierte Größe. Bei FAT32 allerdings ist weder die Position noch die Größe fix definiert, sondern wird im BPB angegeben.
- Datei- und Verzeichnisstruktur
- Hier befinden sich die Dateien und Verzeichnisse, die in einem oder mehreren Clustern gespeichert werden.
Spezifikationen:
- max. Dateigröße: FAT16 2GB, FAT32 4GB
- max. Dateianzahl: FAT16 65.536, FAT32 ca. 4,2 Mrd.
- max. Volumegröße: FAT16 2GB, FAT32 8TB
NTFS
[Bearbeiten]NTFS steht für New Technology File System und bietet im Vergleich zu anderen Dateisystemen, wie z.B. FAT, sehr viele Features. So bietet NTFS einen gezielten Zugriffsschutz auf Dateiebene durch die Unterstützung von Access Control Lists. Bei NTFS ist aus Sicht des Dateisystems alles eine Datei. Die Hauptdatei ist die Master File Table (MFT). Sie beinhaltet alle Einträge, die definieren, welche Sektoren zu welcher Datei gehören. Weiters werden hier sämtliche Attribute und Zugriffsberechtigungen gespeichert. Um sich vor Datenverlust zu schützen, verwendet NTFS zu journalbasierten Dateisystemen ähnliche Logs, um im Fehlerfall alle nicht abgeschlossenen Transaktionen rückgängig machen zu können. Somit befindet sich das Dateisystem auch nach fehlgeschlagenen Vorgängen in einem konsistenten Zustand.
Versionen von NTFS:
- NTFS 1.X - Windows NT 3.51
- NTFS 2.X - Windows NT 4.0
- NTFS 3.0 - Windows 2000
- NTFS 3.1 - Windows XP
Spezifikationen:
- max. Dateigröße: aktuell 16TB (theoretisch 16EB)
- max. Dateianzahl: ca. 4 Mrd. ()
- max. Volumegröße: aktuell 256TB (theoretisch 16EB)
EXT
[Bearbeiten]Ext2 ist das bevorzugte Dateisystem von Linux seit 1993. Da ext2 keinerlei Journaling- Funktionalität besitzt wurde das abwärtskompatible ext3 entwickelt (seit 2001). Es gibt einen weiteren Nachfolger ext4, welcher bald in den Linux-Kernel integriert werden wird und in erster Linie Begrenzungen von ext3 erhöht (z.B. maximale Dateisystemgröße).
Spezifikationen:
- max. Dateigröße: zwischen 16GB und 2TB, je nach Blockgröße
- max. Dateianzahl: Dateien
- max. Volumegröße: von der Blockgröße abhängig, 2TB (1kb-Blöcke), 16TB (4kb-Blöcke)
Ext2/3-Dateisysteme führen das Konzept von Blöcken, Inodes und Verzeichnissen typischer UNIX-Dateisysteme weiter. Der Superblock, welcher 1024 Byte hinter dem Anfang der Gerätes liegt, enthält alle Informationen über das Dateisystem. Um vor Datenverlust zu schützen, werden mehrere Kopien des Superblocks auf dem Datenträger gespeichert. Im Fehlerfall kann dann der originale Superblock aus den Kopien wiederhergestellt werden. Der Superblock beinhaltet unter anderem die Anzahl der Blöcke, Inodes und reservierter Blöcke, die Anzahl freier Blöcke und Inodes, den ersten Datenblock, die Größe der Blockgruppen und Fragmente, die Anzahl belegter Blöcke, Fragmente und Inodes je Blockgruppe und die Zeit vom letzten Mounten.
Bei ext2/3-Dateisystemen wird jedes Objekt, sprich eine Datei oder ein Verzeichnis, über einen Inode identifiziert. Der Inode enthält sämtliche Informationen zu einem Objekt. Handelt es sich hierbei um eine Datei, so enthält er die Verweise auf die einzelnen Blöcke der Datei. Ein Inode enthält 12 direkte Verweise und je einen einfach, zweifach und dreifach indirekten Verweis. Der einfach indirekte Verweis zeigt auf einen Block der - je nach Blockgröße - 256 bis 1024 direkte Verweise enthält. Der zweifach indirekte Verweise zeigt auf einen Block, der einfach indirekte Verweise enthält, der dreifach indirekte Verweise zeigt auf einen Block, der zweifach indirekte Verweise enthält. Auf diese Weise entsteht für große Dateien ein Baum aus Verweisen und Verweis-Blöcken. Verzeichnisse werden wie andere Dateien verwaltet. In einem Verzeichnis befindet sich ein Eintrag pro verwalteter Datei. Der Eintrag enthält den Namen der Datei und die Inode-Nummer. Die weiteren Attribute der Datei sind im Inode gespeichert.
Als Dateityp sind im Inode folgende Typen möglich: Fifo, character device, directory, block device, regular file, symbolic link, socket
Ein Inode beinhaltet unter anderem folgende Informationen:
- Zugriffsrechte (Besitzer, Gruppe, Andere; lesen, schreiben, ausführen)
- Dateieigentümer
- Größe des Inhaltes in Bytes
- Anzahl der benutzten Blöcke
- Zugriffszeitpunkt (zuletzt gelesen oder geschrieben)
- Erstellungszeitpunkt
- Änderungszeitpunkt (zuletzt geschrieben)
- Löschzeitpunkt
- Gruppen ID
- Anzahl der Links (siehe Hardlinks)
- ...
HFS+
[Bearbeiten]Das Hierarchical File System (HFS) wurde von Apple für das MacOS entwickelt und ist auch unter dem Namen Mac OS Extended bekannt. HFS+ ist eine Weiterentwicklung von HFS und ist ein journalbasiertes Dateisystem. Im Gegensatz zu HFS unterstützt HFS + nicht nur 16-bit Blockadressen sondern auch solche mit 32-bit Länge.
Spezifikationen:
- max. Dateigröße: Bytes ( Bytes bei HFS)
- max. Dateianzahl: Dateien
- max. Volumegröße: Bytes ( Bytes bei HFS)
Bei HFS befinden sich im Sektor 0 und 1 HFS Boot Blocks. In diesen Bereichen befinden sich Informationen die für den Systemstart notwendig sind. Der Sektor 2 beinhaltet den Volume Header. Dieser enthält Daten über den Datenträger selbst. Hierzu zählen unter anderem die Anzahl der allokierten Blöcke, die Zeit zu dem der Datenträger erstellt wurde und die Anzahl der Dateien. Zur Sicherheit wird ein Backup vom Volume Header im drittletzten Sektor gespeichert.
Folgende Elemente werden verwendet um Dateien und Ordner zu speichern:
- Allocation File
- Im Allocation File wird gespeichert, ob ein Block frei oder belegt ist.
- Catalog File
- Der Catalog File beschreibt die Ordner- und Filesystem-Hierachie eines Datenträgers. Er beinhaltet unter anderem Informationen wie Header Node, Index Node oder auch Datei- und Verzeichnisnamen.
- Extents Overflow File
- Der Extents Overflow File ist ein Balanced Tree, welcher die Informationen beinhaltet, welche Blöcke zu einer Datei gehören.
- Attributes File
- Hierbei handelt es sich wiederum um einen Balanced Tree, welcher wie der Name schon besagt, weitere Attribute zu Dateien oder Ordnern speichert.
- Start-up File
- Der Start-up File wurde für andere Betriebssysteme außer MacOS entwickelt und enthält Informationen sowie Hilfestellungen beim Booten von einem HFS+ Dateisystem.