Fragmentierung
Allgemein
Laut Duden versteht man unter Fragmentierung eine "ungeordnete Zergliederung eines Speichers in Bereiche, die von Programmen oder Daten belegt sind"1. Unter Speicher ist typischer Weise Arbeits- oder Datenspeicher zu verstehen, welcher zur einfacheren Handhabung in Bereiche (Blöcke) fester Länge eingeteilt ist. Fragmentierung beschreibt somit eine Folge des blockweisen Speicherzuordnungsprozesses eines datenverarbeitenden Systems.
Dieser kommt dadurch zu Stande, dass zwar zu Beginn der Speichervergabe die Daten problemlos nacheinander im Speicher abgebildet werden können, dies aber nach der Freigabe einzelner Speicherbereiche, u.a. durch beenden von Applikationen beim Arbeitsspeicher oder oder durch das Löschen von Dateien auf Datenspeichern, und nach dem anschließenden Schreiben neuer Daten nicht mehr sinnvoll fortführbar wäre.
Theoretisch wäre es zwar möglich nur am Ende der Datensätze weiterzuschreiben, dies würde aber zu untragbaren Ineffizienzen führen (z.B. geringerer Speicherplatz durch unbelegte Freiräume, siehe auch "Defragmentierung").2
Beispielhafte Blockzuweisung im Speicher
- Initiale Datensätze: Datensatz 1 "111"; Datensatz 2 "22"; Datensatz 3 "3333"; "0" beschreibt einen unzugeordneten Datenblock
- Initiales beschreiben: 111223333000000[...]
- Löschung Datensatz 2: 111003333000000[...]
- Hinzufügen Datensatz 4: 111443333444000[...]
Relevanz für die Forensik
Für die Forensik ist die Fragmentierung von großer Bedeutung, da die Analyse von Speicherbereichen den gleichen Problemen und Herausforderungen unterworfen ist, wie der gesamte Fragmentierungsprozess:
- wo beginnt und wo endet der Bereich der von mir gesuchten Daten? Welche Bereiche dazwischen sind irrelevant (z.B. relevant bei defekter Datenspeicher Partitionstabelle, siehe auch "File Carving")?
- nach Freigabe des Speicherbereichs: ist der Speicherbereich noch mit den vorigen Daten beschrieben oder bereits mit neuen Daten überschrieben (Problematik der Datenwiederherstellung)?
Größer wird diese Herausforderung noch durch die Virtualisierung von Hardware, welche im Endeffekt eine weitere Schicht Fragmentierung erzwingt. Daten im virtuellen Speicher liegen bereits fragmentiert vor, das Mapping auf den physischen Speicher unterliegt einer zweiten Fragmentierung. Umso stärker die Hardware geteilt wird (z.B. IaaS einer public Cloud), umso schwieriger bis unmöglich wird eine forensische Analyse und Bedarf erhöhtem Planungsaufwand.3
Quellen
Abrufdatum 14.07.2019: Duden1, Wikipedia2, BSI3