Digitale Forensik: Beweiserfassung und Integrität

CompTIABeginner
Jetzt üben

Einführung

Willkommen in der Welt der digitalen Forensik. Ein kritischer Teil jeder Untersuchung ist die ordnungsgemäße Erfassung digitaler Beweismittel. Dieser Prozess beinhaltet die Erstellung einer exakten, Bit-für-Bit-Kopie eines Speichergeräts, ohne die Originaldaten zu verändern. Ebenso wichtig ist die Sicherstellung der Integrität dieser Kopie, um zu beweisen, dass sie seit ihrer Erstellung nicht manipuliert wurde.

In diesem Labor schlüpfen Sie in die Rolle eines Junior-Forensik-Analysten. Sie lernen, wie Sie gängige Linux-Befehlszeilenwerkzeuge verwenden, um zwei der grundlegendsten Aufgaben in der digitalen Forensik durchzuführen: die Beweismittelbeschaffung und die Integritätsprüfung. Wir werden den Befehl dd zur Erstellung eines Disk-Images und sha256sum zur Generierung eines kryptografischen Hashs verwenden, um sicherzustellen, dass unsere Beweismittel solide sind.

Erstellen eines simulierten Festplatten-Images mit dd

In diesem Schritt erstellen Sie ein forensisches Image aus einer simulierten Beweisdatei. In der digitalen Forensik ist ein "Image" eine Bit-für-Bit-Kopie eines Quelllaufwerks. Wir verwenden den Befehl dd, ein leistungsstarkes und vielseitiges Dienstprogramm zum Kopieren und Konvertieren von Daten. Es ist ein Standardwerkzeug in der Forensik, da es eine exakte Replik eines Speichergeräts erstellen kann, wobei alle Daten erhalten bleiben, einschließlich gelöschter Dateien und Slack Space.

Navigieren wir zunächst zu unserem Fallverzeichnis und sehen wir uns die vorbereitete Original-Beweisdatei an.

cd ~/project/forensics_case
ls -lh

Sie sollten eine Datei namens original_evidence.dd sehen.

-rw-rw-r-- 1 labex labex 11M Aug  5 15:28 original_evidence.dd

Nun verwenden wir dd, um ein Image dieser Datei zu erstellen. Wir werden unser Image evidence_image.img nennen.

  • if=original_evidence.dd: Gibt die input file (Eingabedatei) an.
  • of=evidence_image.img: Gibt die output file (Ausgabedatei) an.
  • bs=4096: Legt die block size (Blockgröße) auf 4096 Bytes fest. Dies ist eine gängige Blockgröße und kann die Leistung beeinflussen.

Führen Sie den folgenden Befehl aus:

dd if=original_evidence.dd of=evidence_image.img bs=4096

Der Befehl gibt die Anzahl der gelesenen und geschriebenen Datensätze sowie die insgesamt kopierten Bytes aus.

2560+1 records in
2560+1 records out
10485809 bytes (10 MB, 10 MiB) copied, 0.0130138 s, 806 MB/s

Listen Sie nun erneut die Dateien auf, um sowohl das Original als auch das neu erstellte Image zu sehen.

ls -lh

Sie werden feststellen, dass evidence_image.img exakt die gleiche Größe wie original_evidence.dd hat, was ein gutes erstes Zeichen dafür ist, dass unsere Kopie erfolgreich war.

-rw-rw-r-- 1 labex labex 11M Aug  5 15:43 evidence_image.img
-rw-rw-r-- 1 labex labex 11M Aug  5 15:28 original_evidence.dd

Hashes von Original- und Image-Dateien berechnen

In diesem Schritt überprüfen Sie die Integrität des gerade erstellten forensischen Images. Eine Kopie allein reicht nicht aus; wir müssen beweisen können, dass die Kopie eine exakte, unveränderte Replik des Originals ist. Dies erreichen wir, indem wir für die Originaldatei und das Image einen kryptografischen Hash berechnen.

Eine Hash-Funktion nimmt eine Eingabe (in unserem Fall den Inhalt der Datei) und erzeugt eine Zeichenkette fester Länge, den sogenannten "Hash". Selbst eine winzige Änderung in der Eingabedatei führt zu einem völlig anderen Hash. Wenn der Hash der Originaldatei und der Hash der Image-Datei übereinstimmen, können wir sicher sein, dass die Kopie perfekt ist. Wir verwenden den Befehl sha256sum, der den SHA-256-Hashing-Algorithmus implementiert.

Berechnen Sie zunächst den SHA256-Hash der originalen Beweisdatei:

sha256sum original_evidence.dd

Die Ausgabe ist eine lange Zeichenkette (der Hash), gefolgt vom Dateinamen.

55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a  original_evidence.dd

Berechnen Sie als Nächstes den Hash für die von Ihnen erstellte Image-Datei:

sha256sum evidence_image.img
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a  evidence_image.img

Vergleichen Sie die beiden Hashes. Sie müssen identisch sein. Dies ist der mathematische Beweis dafür, dass Ihr evidence_image.img eine echte und genaue Kopie von original_evidence.dd ist.

Für eine ordnungsgemäße Dokumentation ist es bewährte Praxis, diese Hashes in einer Protokolldatei zu speichern. Tun wir das jetzt.

sha256sum original_evidence.dd evidence_image.img > hashes.txt

Zeigen Sie nun den Inhalt Ihrer Hash-Protokolldatei an.

cat hashes.txt
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a  original_evidence.dd
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a  evidence_image.img

Diese Datei hashes.txt ist ein entscheidendes Dokument für Ihren Fall.

Extrahieren grundlegender Datei-Metadaten wie Zeitstempel

In diesem Schritt untersuchen wir die Metadaten der Datei. Metadaten sind "Daten über Daten" und können in einer Untersuchung entscheidende Kontexte liefern. Für Dateien umfasst dies Informationen wie Erstellungszeit, letzte Änderungszeit und letzte Zugriffszeit. Diese werden oft als MAC-Zeiten (Modify, Access, Change) bezeichnet.

Wir verwenden den Befehl stat, um diese detaillierten Informationen anzuzeigen. Der Befehl stat zeigt den Status einer Datei oder eines Dateisystems an.

Betrachten wir zunächst die Metadaten der Datei original_evidence.dd.

stat original_evidence.dd

Die Ausgabe liefert eine Fülle von Informationen, aber konzentrieren wir uns auf die Zeitstempel.

  File: original_evidence.dd
  Size: 10485809        Blocks: 20488      IO Block: 4096   regular file
Device: 7eh/126d        Inode: 11210686    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 5000/   labex)   Gid: ( 5000/   labex)
Access: 2025-08-05 15:43:57.680473291 +0800
Modify: 2025-08-05 15:28:59.196596566 +0800
Change: 2025-08-05 15:28:59.196596566 +0800
 Birth: 2025-08-05 15:28:59.164595416 +0800

Nun tun wir dasselbe für unsere evidence_image.img.

stat evidence_image.img
  File: evidence_image.img
  Size: 10485809        Blocks: 20488      IO Block: 4096   regular file
Device: 7eh/126d        Inode: 11206338    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 5000/   labex)   Gid: ( 5000/   labex)
Access: 2025-08-05 15:44:14.001048192 +0800
Modify: 2025-08-05 15:43:57.692473714 +0800
Change: 2025-08-05 15:43:57.692473714 +0800
 Birth: 2025-08-05 15:43:57.680473291 +0800

Beachten Sie, dass die Metadaten nicht identisch sind, obwohl der Dateiinhalt identisch ist (wie durch den Hash bewiesen). Die Zeitstempel für evidence_image.img spiegeln wider, wann das Image erstellt wurde, nicht wann die Originaldatei erstellt oder geändert wurde. Dies ist ein erwartetes Verhalten und wichtig zu dokumentieren. Es zeigt, wann Sie, der Ermittler, die Erfassung durchgeführt haben.

Erstellen eines Chain of Custody-Protokolls für gesicherte Beweismittel

In diesem letzten Schritt erstellen Sie ein einfaches Chain of Custody-Protokoll. Die Chain of Custody ist eines der kritischsten Dokumente in der Forensik. Es handelt sich um eine chronologische Aufzeichnung, die die Beschlagnahme, Verwahrung, Kontrolle, Übertragung, Analyse und Entsorgung von Beweismitteln detailliert beschreibt. Eine gut gepflegte Chain of Custody beweist, dass die Beweismittel ordnungsgemäß behandelt wurden und nicht manipuliert wurden.

Während ein echtes Chain of Custody-Formular komplexer ist, können wir ein einfaches Textprotokoll erstellen, um unsere Aktionen zu dokumentieren. Dieses Protokoll sollte wichtige Informationen über die Beweismittel und den Erfassungsprozess enthalten.

Wir verwenden den Befehl echo, um Informationen in eine Datei namens chain_of_custody.log zu schreiben. Wir müssen einige Informationen sammeln:

  • Fallnummer (Case Number): Eine eindeutige Kennung für die Untersuchung. Wir verwenden CASE-001.
  • Beschreibung des Objekts (Item Description): Was die Beweismittel sind.
  • Datum/Uhrzeit der Erfassung (Date/Time of Acquisition): Dies können wir mit dem Befehl date abrufen.
  • Erfasst von (Acquired by): Der Analyst, der die Erfassung durchgeführt hat. Wir verwenden die Ausgabe des Befehls whoami.
  • SHA256-Hash (SHA256 Hash): Der Hash unseres erfassten Images, den wir aus unserer Datei hashes.txt erhalten.

Erstellen wir das Protokoll. Wir verwenden echo mit dem Operator > zum Erstellen der Datei und Hinzufügen der ersten Zeile und dann >> zum Anhängen weiterer Zeilen. Zuerst holen wir uns den Hash unserer Image-Datei.

IMAGE_HASH=$(grep 'evidence_image.img' hashes.txt | cut -d ' ' -f 1)

Nun erstellen wir die Protokolldatei mit allen notwendigen Informationen.

echo "--- CHAIN OF CUSTODY ---" > chain_of_custody.log
echo "Case Number: CASE-001" >> chain_of_custody.log
echo "------------------------" >> chain_of_custody.log
echo "Item ID: 1" >> chain_of_custody.log
echo "Description: Forensic image of original_evidence.dd" >> chain_of_custody.log
echo "Acquired By: $(whoami)" >> chain_of_custody.log
echo "Acquisition Date: $(date)" >> chain_of_custody.log
echo "SHA256 Hash: $IMAGE_HASH" >> chain_of_custody.log
echo "--- END OF LOG ---" >> chain_of_custody.log

Zeigen Sie abschließend Ihr vollständiges Chain of Custody-Protokoll an.

cat chain_of_custody.log

Ihre Ausgabe sollte in etwa so aussehen:

--- CHAIN OF CUSTODY ---
Case Number: CASE-001
------------------------
Item ID: 1
Description: Forensic image of original_evidence.dd
Acquired By: labex
Acquisition Date: Tue Aug  5 15:44:43 CST 2025
SHA256 Hash: 55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a
--- END OF LOG ---

Sie haben nun ein grundlegendes, aber wesentliches Dokument erstellt, das Ihre Handlungen aufzeichnet und die Integrität der Beweismittel wahrt.

Zusammenfassung

In diesem Labor haben Sie die grundlegenden Schritte der digitalen forensischen Beweiserfassung und Integritätsprüfung erfolgreich durchgeführt.

Sie haben gelernt, wie Sie:

  • Den Befehl dd verwenden, um ein Bit-für-Bit-Forensik-Image einer Datenquelle zu erstellen.
  • Den Befehl sha256sum verwenden, um kryptografische Hashes zu berechnen und nachzuweisen, dass das forensische Image eine exakte Kopie der Originalbeweismittel ist.
  • Den Befehl stat verwenden, um Dateimetadaten wie Zeitstempel zu untersuchen, die für das Verständnis der Dateihistorie entscheidend sind.
  • Ein grundlegendes Chain of Custody-Protokoll erstellen, um die Handhabung von Beweismitteln zu dokumentieren, eine kritische Anforderung für Gerichtsverfahren.

Diese Fähigkeiten sind das Fundament einer soliden digitalen forensischen Praxis. Indem Sie sicherstellen, dass Beweismittel korrekt erfasst und ihre Integrität gewahrt wird, legen Sie den Grundstein für eine erfolgreiche Untersuchung.