In einem kürzlich erschienenen Artikel mit dem Titel „Content Aware Recovery and Data Carving Explained“ habe ich über einige der fortschrittlicheren Algorithmen geschrieben, die in zeitgenössischen Datenrettungstools verwendet werden. Obwohl diese Methoden oft als „File Carving“, „Signature Search“ oder „Content-Aware Recovery“ bezeichnet werden, ist das zugrunde liegende Prinzip ähnlich. Die Unterschiede zwischen den fortschrittlichen Datenrettungsalgorithmen sind gering, aber sie beeinflussen tatsächlich das Endergebnis. In diesem Beitrag werfen wir einen Blick in die Zukunft.
Inhalt
- Die Grenzen heutiger Datenwiederherstellungsalgorithmen
- Das Dateisystem
- Data Carving heute: Textdateien
Die Grenzen heutiger Datenwiederherstellungsalgorithmen
Wenn Sie diesem Blog folgen, wissen Sie vielleicht bereits, dass Fragmentierung Ihr schlimmster Feind ist, wenn es darum geht, Informationen wiederherzustellen. Tatsächlich können Sie normalerweise zusammenhängende Dateien mit einem der einfachsten inhaltsbewussten Algorithmen wiederherstellen, aber wenn der Inhalt dieser Datei auf der Festplatte verstreut ist, haben Sie Pech. Die heutigen inhaltsbewussten Algorithmen basieren auf der Signatursuche, was bedeutet, dass sie nur den Anfang einer Datei in einem von ihnen bekannten Format erkennen können. Ob der tatsächliche Inhalt zur Datei gehört oder nicht, bleibt außerhalb ihres Bereichs.
Lassen Sie uns zum Beispiel sehen, wie ein typischer signaturbasierte Algorithmus mit einer großen MKV-Datei umgeht. Zunächst stößt er auf den Header der Datei. Das Tool berechnet die Länge der MKV-Datei und speichert so viele Datenblöcke in einer neu erstellten Datei mit demselben Namen. Fall erledigt, gehen wir zur nächsten Datei über. Einige der intelligenteren Algorithmen lesen zuerst das Dateisystem und extrahieren nur Datenblöcke, die zu keiner anderen Datei gehören (und selbst dieser Aufwand ist selten unter den heutigen Datenrettungstools). Egal was sie tun, sie können sich nicht mit der Fragmentierung der Festplatte auseinandersetzen.
Eine völlig andere Methode mit viel mehr Kontextabhängigkeit wird benötigt, um diese Videodatei tatsächlich zu schnitzen. Wenn wir unbegrenzte Ressourcen hätten und uns nur um diese eine Datei kümmern würden, könnten wir diesen Algorithmus so einstellen, dass er den Header der Datei liest, dann den nächsten Datenblock anhängt und überprüft, ob die resultierende Datei immer noch ein gültiges Video mit allen richtigen Frames ist. Wenn ja, fügen Sie den nächsten Block hinzu und überprüfen Sie das Video. Wenn es ungültig wird UND wir die erforderliche Anzahl von Blöcken noch nicht erreicht haben, lesen Sie die gesamte Festplatte und versuchen Sie, jeden Datenblock an das Ende der Videodatei anzuhängen, wobei Sie das Video jedes Mal auf Gültigkeit überprüfen. Dies wäre schmerzhaft langsam und würde Stunden dauern, um nur eine einzige Datei wiederherzustellen, aber am Ende hätten wir die bestmögliche Rekonstruktion einer bestimmten Datei. Wir könnten das tun. Aber nur, wenn wir unbegrenzte Ressourcen und unbegrenzte Zeit hätten. Heutzutage werden solche umfassenden Schnitzmethoden nur in der Intelligenz und digitalen Forensik eingesetzt (und selbst dort nur in sehr, sehr wenigen Fällen).
Was ist Ihre „nächstbeste Option“ im Vergleich zur eigentlichen Datenwiederherstellung? Möglicherweise bieten viele der heutigen inhaltsbewussten Algorithmen eine ähnliche Leistung im realen Leben, indem sie einige andere Dinge berücksichtigen.
Das Dateisystem
Zunächst einmal sollten wir das Dateisystem nicht vergessen. Szenarien mit vollständig gelöschten oder leeren Dateisystemen sind relativ selten. Tatsächlich kann das Löschen des gesamten Dateisystems ein schwieriger und zeitaufwändiger Prozess sein. Wenn Sie beispielsweise die Festplatte neu partitionieren, wird das ursprüngliche Dateisystem NICHT geleert. Stattdessen bleibt es auf der Festplatte erhalten. Wenn Sie ein NTFS-Volume formatieren, wird das Dateisystem ($MFT-Datei) genauso gelöscht wie jede andere Datei. Es bleibt jedoch wiederherstellbar – genauso wie jede andere Datei! Daher ist die Wiederherstellung des ursprünglichen Dateisystems (durch Verwendung einer kontextsensitiven Suche oder Carving) der sehr empfehlenswerte erste Schritt, der in praktisch jedem hochwertigen Datenrettungstool auf dem Markt verfügbar ist. Und wenn das Dateisystem zur Verfügung steht, kann ein Datenrettungstool die meisten Dateien wiederherstellen, ohne die Signatursuche zu verwenden, selbst wenn das Dateisystem beschädigt oder korrupt ist.
Wenn Sie das Dateisystem zur Verfügung haben, wird die inhaltsbezogene Analyse so viel einfacher. Zunächst werden vorhandene Dateien und Ordner, die sich auf das Dateisystem beziehen, von leerem Speicherplatz getrennt. Zweitens behandelt der Signatursuchalgorithmus alle nicht referenzierten Datenblöcke als zusammenhängenden Speicherplatz und rekonstruiert gelöschte Dateien aus Blöcken, die von keiner anderen Datei verwendet werden. Während der obige Absatz natürlich eine Vereinfachung darstellt (lassen Sie uns beispielsweise nicht die sparse Dateien vergessen), trägt die Behandlung nicht zugewiesener Festplattensektoren als zusammenhängender Bereich anstelle einer Vermischung mit vorhandenen Dateien wesentlich zur Wiederherstellung Ihrer Daten bei.
Data Carving heute: Textdateien
Wussten Sie, dass Sie heute möglicherweise echtes Data Carving verwenden? Während es immer noch nicht für alle, außer den anspruchsvollsten Anwendungen und arbeitsintensivsten Jobs, machbar ist, den Kontext während des gesamten Datenwiederherstellungsprozesses aufrechtzuerhalten und nach einzelnen Fragmenten global zu suchen, ist echtes Data Carving bereits für mindestens einen Datentyp verfügbar: Text.
Textdateien haben keine Header. Tatsächlich unterscheidet sich die Struktur von Textdateien sehr wenig von der Struktur zufälliger Binärdaten, mit einer Ausnahme. Textdateien verwenden begrenzte Zeichensätze. Was bedeutet das im Kontext der Datenwiederherstellung? Das bedeutet, dass das Tool nach Festplattenclustern suchen kann, die nur Zeichen im Bereich von 0-9, A-Z, Leerzeichen und einer Handvoll Sonderzeichen enthalten. Wenn ein Cluster mit diesem begrenzten Zeichensatz erkannt wird, wird er als Beginn einer Textdatei behandelt. Nachfolgende Cluster werden analysiert und, wenn ihr Inhalt ebenfalls innerhalb des begrenzten Zeichenbereichs liegt, an die Textdatei angehängt. Der Prozess wird fortgesetzt, bis der Algorithmus auf einen Cluster stößt, der nicht mehr in die Kategorie „Text“ fällt, wonach die Textdatei gespeichert, der Kontext zurückgesetzt und das Tool nach anderen Datentypen sucht.
Wie Sie sehen können, ist dieser Ansatz in heutigen Tools so nah wie möglich am eigentlichen Data Carving. Es garantiert, dass alle Bits und Stücke von textbasierten Daten extrahiert und in einzelne Textdateien gespeichert werden. Selbst wenn Ihre Festplatte stark fragmentiert ist, erhalten Sie immer noch alle Bits und Stücke und können diese möglicherweise manuell in Ihre ursprünglichen Textdateien zusammenführen.
Natürlich sind die Dinge im wirklichen Leben nicht so rosig. Der saubere 0-9, A-Z-Bereich ist nur typisch für Englisch und einige andere Sprachen, während andere Sprachen Akzente und nicht-lateinische Zeichen verwenden, die dazu führen könnten, dass ein falsch geschriebenes Tool den Text in einer der Fremdsprachen ignoriert. Es gibt auch Zweibyte-Codierungen wie Unicode und variable Längencodierungen wie UTF-8, die einen völlig anderen Ansatz erfordern. Selbst in diesem einfachsten Fall verwenden die verschiedenen Datenwiederherstellungstools viele verschiedene Tricks und Workarounds wie die Erkennung der regionalen Einstellungen des Systems (die möglicherweise nicht mit denen der wiederhergestellten Festplatte übereinstimmen!), die Aufforderung an den Benutzer, den Zeichensatz (oder die Zeichensätze) manuell anzugeben, nach Codierungen zu suchen, die in einer bestimmten geografischen Region beliebt sind (z.B. lateinische, westeuropäische, osteuropäische und kyrillische Zeichensätze).
Einige fortschrittlichere Tools verwenden neuronale Netze, um die tatsächliche Codierung eines bestimmten Zeichensatzes zu erkennen. Haben Sie schon einmal Google Translate oder Bing Translators verwendet? Fügen Sie etwas fremden Text in ihr Übersetzungsfenster ein, und wenn Sie mehr als ein paar Wörter eingegeben haben, sehen Sie, dass das Tool die Eingangssprache automatisch erkennt. Während eine solche Spracherkennung für ein Datenwiederherstellungstool wahrscheinlich überflüssig ist, können tatsächliche Zeichensätze mit relativ einfachen Algorithmen ziemlich zuverlässig erkannt werden.
Eine ähnliche Technik kann verwendet werden, um XML- und HTML-Dateien sowie einige RTF-Dokumente zu entdecken.