auditorist ein forensisches Werkzeug
zur schnellen Integritätsprüfung, das
kryptografische Hash-Funktionen
verwendet .
Es ähnelt anderen gängigen Tools (fsum, hashdeep, sha256sum usw.), bietet aber Funktionen, die die Prüfung digitaler Daten vereinfachen und beschleunigen .
auditorUnterstützt mehrere
Hash-Algorithmen. Standardmäßig
sha256wird der von NIST seit 2015
empfohlene Hash-Algorithmus verwendet (siehe
NIST-Richtlinie zu Hash-Funktionen
).
Standardmäßig
thash
method
ist aktiviert, dieser Modus kann aber deaktiviert werden.
Der von uns angewandte Prüfprozess
auditorbasiert auf dem Konzept einer
Integritätskette , die durch Prüfdateien bereitgestellt wird, in
denen Integritätsinformationen gespeichert sind.
Die in diesem Prozess verwendeten Begriffe sind: Audit_FullList: Die Prüfdatei, die Integritätsinformationen jeder verarbeiteten
Originaldatei enthält.
Stamp: Die tatsächlichen
Integritätsinformationen der
Audit_FullListDatei.
StampDiese werden bei jeder relevanten
Aktion neu berechnet und angezeigt.
Audit_Stamp: Die Prüfdatei , die
den Zeitpunkt der Erstellung
Stampspeichert .Audit_FullList
Die Integritätskette wird in folgender Reihenfolge erzeugt (Standardverhalten):
Die darin enthaltenen Datendateien
input_pathwerden verarbeitet und
generieren Integritätsinformationen (Hash, Größe, relativer Dateipfad
usw.), die in gespeichert werden
Audit_FullList.
Audit_FullListwird ebenfalls verarbeitet,
erzeugt Stamp, das im Terminal ausgegeben
und in gespeichert wird Audit_Stamp.
Die Überprüfung der Integritätskette erfolgt in
umgekehrter Reihenfolge des oben beschriebenen Prozesses, wobei
die Dateien erneut verarbeitet und die Integrität anhand der Prüfdateien
überprüft wird. Stampwird außerdem neu
berechnet, im Terminal ausgegeben und mit dem in gespeicherten Wert
verglichen Audit_Stamp, um die
Übereinstimmung zu überprüfen.
Um mit der Erstellung der Prüfdateien fortzufahren und sicherzustellen, dass die zukünftige Überprüfung der Integritätskette korrekt und sicher durchgeführt wird, befolgen Sie die nachstehenden Schritte:
input_path). Öffnen Sie nach der
Installation von Auditor ein Terminal und führen Sie den Befehl aus
auditor hash input_path.
Standardmäßig erstellt dieser Befehl die Audit-Dateien
Audit_FullListim
Audit_StampStammverzeichnis des Ordners
„input_path“. (Dies kann bei Bedarf geändert werden.)
Audit_Stampoder
signieren Sie sie digital .
auditor check, wird die oben
beschriebene Integritätskette ausgeführt. Am Ende des Prozesses werden
die Integritätsdaten Audit_FullListneu
berechnet und im Terminal ausgegeben.
Sie MÜSSEN exakt mit dem im vorherigen Schritt ausgegebenen oder
digital signierten Wert übereinstimmen.
Stimmen sie nicht überein, ist die Integritätsprüfung
ungültig .
Audit_FullList. Beispiele finden Sie im
Abschnitt „Nutzung“ von
auditor check.
Hier finden Sie eine Kurzanleitung.
Nach auditorder Installation auf Ihrem
System können Sie es wie folgt verwenden:
auditor subcommands:
hashist der erste Schritt der forensischen Prüfung. Dabei werden
Prüfdateien generiert, die die Überprüfung der Dateiintegrität
ermöglichen.
auditor hash input_path
Dies wird:
input_pathmit
Standardalgorithmus ( sha256)
input_path):
Audit_FullListEnthält die
Integritätsdaten (Hash, Größe, Name) der Dateien in
input_path. Standardname:
_auditor_hashes.txt
Audit_StampEnthält
ausschließlich die Integritätsdaten von
Audit_FullList. Standardname:
_auditor_stamp.txt. Dies ist
die Datei, die ausgedruckt oder digital signiert werden muss,
um die Überprüfung der gesamten Integritätskette
sicherzustellen.
Audit_FullList
Anschließend hashkönnen Sie
checkeinen Befehl zur
Integritätsprüfung ausführen. Um zukünftig eine korrekte
Integritätsprüfung zu gewährleisten, lesen Sie den Abschnitt „
Integritätskette“ und befolgen Sie die
dortigen Hinweise.
Es sollen lediglich Hashwerte generiert, aber keine Dateien erstellt werden (-l).
auditor hash input_path -l
Auditdateien überschreiben (-o), dabei eine schnelle Festplatte (-z) mit dem Standardalgorithmus verwenden (nützlich bei SSD-Festplatten, um eine hohe Geschwindigkeit zu erzielen):
auditor hash input_path -o -z
Gleiches gilt wie oben, jedoch mit aktiviertem strikten Modus, um sicherzustellen, dass ALLE Dateien im Eingabepfad gehasht werden:
auditor hash input_path -o -z --strict
Überschreiben von Auditdateien (-o), ohne die Thash-Methode zu verwenden (-d):
auditor hash input_path -o -d
Auditdateien überschreiben (-o), nur txt-Dateien einbeziehen (-i "**/*.txt") nur im Stammverzeichnis (-u 1) (die Flags -i und -e verwenden ein Glob-Muster, siehe Hinweise für Details).
auditor hash input_path -o -i "**/*.txt" -u 1
Prüfdateien überschreiben (-o), alle Dateien außer Textdateien einschließen (-e "**/*.txt")
auditor hash input_path -o -e "**/*.txt"
Prüfdateien überschreiben (-o), nur Dateien mit dem Namen "file1.doc" (-i "**/*/file1.doc") und "file2.xls" (-i "**/*/file2.xls") einschließen
auditor hash input_path -o -i "**/*/file1.doc" -i "**/*/file2.xls"
Überschreibt die Prüfdateien (-o) und schließt ALLE Dateien ein, außer denen in den Ordnern $RECYCLE.BIN und „System Volume Information“. Hinweis: Das Dollarzeichen ($) in $RECYCLE.BIN gehört zum Dateinamen und muss vorab mit einem Backslash (\) maskiert werden, damit es korrekt interpretiert werden kann!
auditor hash input_path -o -e "**/\$RECYCLE.BIN/**" -e "**/System Volume Information/**"
Überschreibe die Audit-Dateien (-o), schließe alle Textdateien ein (-i "**/*/*.txt"), außer denen im Verzeichnis folder1 (-e "**/*/folder1/*")
auditor hash input_path -z -o -a blake3 -i "**/*/*.txt" -e "**/*/folder1/*"
Auditdateien überschreiben (-o), Schnellfestplatte verwenden (-z) und Algorithmus 'blake3' (sehr schnell):
auditor hash input_path -o -z -a blake3
Überschreibe die Audit-Dateien (-o), verwende eine Blockgröße von 10 MB und die Hash-Funktion „whirlpool“.
auditor hash input_path -o -b 10MB -a whirlpool
lockist nützlich, wenn die vorhandenen Audit-Dateien erhalten bleiben
müssen. Es kann nach
dem Hash
-Befehl verwendet werden und verhindert die versehentliche
Erstellung neuer Audit-Dateien
input_path.
auditor lock input_path
Dies wird:
_auditor_lock.txtmit
input_path
Erstellungszeitstempel.
input_path.
Zum Entsperren input_pathmüssen Sie
die Datei manuell löschen._auditor_lock.txt
checkist der zweite Schritt der forensischen Prüfung. Er überprüft die
Datenintegrität anhand der Informationen in den Prüfdateien und kann
nach der Hash-Berechnung verwendet werden.
auditor check input_path
Dies wird:
input_path):
Audit_Stampund überprüfen Sie diese
Audit_FullList.
Audit_FullListund überprüfen Sie
diese anhand der Originaldateien in der Liste
input_path.
Audit_FullList.
Überprüfen Sie im Schnelldisk-Modus (-z) unter Verwendung der Standard-Auditdateien.
auditor check input_path -z
Gleiches gilt wie oben, jedoch mit aktiviertem strikten Modus, um sicherzustellen, dass ALLE Dateien im Eingabepfad überprüft werden.
auditor check input_path -z --strict
Prüfen Sie nur txt-Dateien (-i "**/*.txt"), wobei standardmäßige Prüfdateien verwendet werden (die Optionen -i und -e verwenden ein Glob-Muster, siehe Hinweise für Details).
auditor check input_path -i "**/*.txt"
Überprüfen Sie im stillen Modus (-q) und stoppen Sie beim ersten Fehler (-x) unter Verwendung der Standard-Auditdateien.
auditor check input_path -q -x
Prüfen Sie F:\data_path mithilfe von Auditdateien mit bestimmten Namen. (-f für <Audit_FullList> und -s für <Audit_Stamp>)
auditor check F:\data_path -f C:\other_path\personal_fullList.txt -s C:\other_path\personal_stamp.txt -q -x
Überprüfen Sie die Integrität einer einzelnen Datei im Verzeichnis <input_path> anhand einer Prüfdatei.
auditor check F:\data_path\file1.txt -f C:\other_path\some_audit.txt -q -x
Hinweis: Die Auditor-Prüfung ist mit dem fsum-Format kompatibel.
)
clonewird verwendet, um Daten in das Zielsystem zu kopieren
input_pathund
dest_pathgleichzeitig die Integrität
der kopierten Daten zu überprüfen.
auditor clone input_path dest_path
Dies wird:
input_path,
Integritätsdaten generieren (Hash, Größe, Name);
dest_path;
dest_pathanhand der in generierten
Integritätsdaten input_path.
input_pathin den
dest_pathentsprechenden
Verzeichnissen erstellen. Falls bereits Audit-Dateien vorhanden
sind, können Sie diese nicht erstellen.
Im Fehlerfall wird der Vorgang wiederholt (standardmäßig 3 Mal, dies kann geändert werden).
Im Schnellplattenmodus (-z).
auditor clone input_path dest_path -z
Dasselbe wie oben, jedoch mit aktiviertem strikten Modus, um sicherzustellen, dass ALLE Dateien im Eingabepfad geklont werden:
auditor clone input_path dest_path --strict
Im Ruhemodus (-q) und beim ersten Fehler stoppen (-x).
auditor clone input_path dest_path -q -x
Klonen mit Generierung von Audit-Dateien sowohl im input_path als auch im dest_path (Siehe Hinweise!).
auditor clone input_path dest_path -g both
Klonen mit Generierung von Audit-Dateien nur im Zielpfad.
auditor clone input_path dest_path -g dest
Klonen mit Generierung von Audit-Dateien nur im Eingabepfad.
auditor clone input_path dest_path -g input
Sie können -i und/oder -e verwenden, um Dateien in den Prozess ein- oder auszuschließen (Kann nicht mit --strict verwendet werden).
auditor clone input_path dest_path -q -x -i "**/*.txt" -e "**/dir1/**/*
Hinweis: Zur Generierung von Auditdateien
input_pathdürfen keine Auditdateien
(Audit_FullList und Audit_Stamp) vorhanden sein! Dies dient der
Vermeidung von Verwechslungen mit bereits vorhandenen Auditdateien.
Alle Optionen mit auditor clone --help anzeigen
)
chkcopywird verwendet, um Daten im Inneren
input_pathmit Prüfdateien
abzugleichen und nach zu kopieren
dest_path, und gleichzeitig die
Integrität der kopierten Daten in zu überprüfen
dest_path.
auditor chkcopy input_path dest_path
Dies wird:
input_pathund
anhand der Integritätsdaten aus den Prüfdateien überprüfen;
dest_path;
dest_pathder Integritätsdaten aus
den Prüfdateien.
Im Fehlerfall wird der Vorgang wiederholt (standardmäßig 3 Mal, dies kann geändert werden).
Im Schnellplattenmodus (-z) für schnelle Festplatten wie SSDs, M.2 usw.
auditor chkcopy input_path dest_path -z
Dasselbe wie oben, jedoch mit aktiviertem strikten Modus, um sicherzustellen, dass ALLE Dateien im Eingabepfad überprüft und kopiert werden:
auditor chkcopy input_path dest_path --strict
Im Ruhemodus (-q) und beim ersten Fehler stoppen (-x).
auditor chkcopy input_path dest_path -q -x
Sie können -i und/oder -e verwenden, um Dateien in den Prozess ein- oder auszuschließen (Kann nicht mit --strict verwendet werden).
auditor clone input_path dest_path -q -x -i "**/*.txt" -e "**/dir1/**/*
Hinweis:
input_path Es müssen Audit-Dateien
(Audit_FullList / Audit_Stamp) vorhanden sein!
infoFührt keine Hash-Integritätsprüfung durch. Es prüft lediglich die
Audit-Dateien und deren Inhalt
input_pathund zeigt nützliche
Informationen an. Kann nach der Hash-Berechnung verwendet werden.
auditor info input_path
Dies wird:
input_path):
Audit_Stampsind
Audit_FullList.
Audit_Stampund
Audit_FullListdie angegebene Größe
mit der in übereinstimmt
input_path.
input_pathListe aufgeführt sind
Audit_FullList.
Audit_FullList und mit der
Prüfdatei vergleichenAudit_Stamp
\. Verwenden Sie stattdessen
einen doppelten Backslash am Ende
\\. Der einfache Backslash
maskiert nämlich die abschließenden Anführungszeichen, wodurch das
Terminal den Pfad nicht korrekt interpretieren kann.
Dies funktioniert:
"C:\My Data Path" oder"C:\My Data Path\\"
Das schlägt fehl:
"C:\My Data Path\"
Download- und Integritätsdaten der Binärdateien (im ZIP-Archiv):
Haftungsausschluss: Diese Version
auditorwird als Software im
Entwicklungsstadium ohne
jegliche Gewährleistung oder Support bereitgestellt und
ist
ausschließlich für den nichtkommerziellen Gebrauch
kostenlos . Die Nutzung erfolgt auf eigene Gefahr.
Lizenz: Diese Version ist
nur für den nichtkommerziellen Gebrauchauditor lizenziert . Bitte lesen Sie
die
vollständigen Lizenzbedingungen
für weitere Details.
Das Format der Prüfdateien ist einfach. Jede Zeile enthält:
hash_value ?ALGORITHM[<THASH-BlockSize>]|file_size[:hex]*relative_filepath
wobei [ ] optional sind:
hash_value: Wert des Hashwerts.
ALGORITHM[<THASH-BlockSize>]Der verwendete Hash-Algorithmus wird in Großbuchstaben gespeichert, um
die Kompatibilität mit anderen Tools zu gewährleisten. Der Parameter
<THASH-BlockSize> ist optional und gibt an, welche Hash-Methode
und Blockgröße verwendet wurden. Die Blockgröße muss in KB, MB, GB oder
TB angegeben werden. Beispiel: 10 MB.
file_sizeDie Dateigröße der
Originaldatei zum Zeitpunkt der Hash-Berechnung. Nützlich zur
Überprüfung und Geschwindigkeitsverbesserung, wenn die Dateigröße nicht
übereinstimmt. Warum sollte eine große Datei gehasht werden, wenn
bereits bekannt ist, dass ihre Größe nicht mit der Originaldatei
übereinstimmt?
[:hex]Optionale Option zur
Angabe, dass Dateipfade im Hexadezimalformat vorliegen. Dies ist
notwendig, da Zeichen wie '\n', '\r' oder '\0' in einigen
Betriebssystemen zulässig sind und die Hexadezimaldarstellung
Formatierungsprobleme vermeidet.
relative_filepathDer relative
Dateipfad der gehashten Datei.
Beispiel 1: Verwendung der Methode thashmit dem Algorithmus sha256 und einer Blockgröße von 50 MB:
281d5d93464f1165ea7c403ca99d63ff4bf9a360864f8df4bd0e8e6c03774e98 ?SHA256<THASH-50MB>|500000*file_hashed.bin
Beispiel 2: Verwendung der normalen Methode, nur mit dem Algorithmus blake3, mit Dateipfad im Hexadezimalformat.
7357b67824d086dc53f5e1ded565f500456bea1812783f1fbcddc08fddc3944c ?BLAKE3|2233:hex*1aCb344356e4e2b2b6
Andere Formate können zukünftig implementiert werden.
Mithilfe von
Hyperfine
werden Tests zwischen
auditorDie Berechnungen fsum, rhash und hashdeep64 wurden durchgeführt, die
Ergebnisse sind unten aufgeführt.
Machine configs:
S.O.: Windows 11 Home 64bits
Processor: AMD Ryzen 7 (7800X3D 4.20 GHz)
RAM: 64 GB of RAM (Corsair Vengeance DDR5 64GB - 5200MHz)
Disk: SSD M.2 2TB (Corsair MP600 Pro NVMe)
Data Source 1:
Benchmarks using Data Source 1:
Data Source 2
Benchmarks using Data Source 2: