auditor

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 Logothash method ist aktiviert, dieser Modus kann aber deaktiviert werden.

Integritätskette

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

Integritätskette
Abb. 1 – Am Prozess beteiligte Dateien

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:

  1. Organisieren Sie Ihre Datendateien in einem bestimmten Ordner (im Folgenden als „Auditor“ bezeichnet 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.)
  2. Speichern Sie alle Daten, einschließlich der Prüfdateien, und drucken Sie den Inhalt der Datei aus Audit_Stampoder signieren Sie sie digital .
    Wenn Sie diesen Schritt auslassen, kann jeder die Daten verändern und einfach neue Prüfdateien erstellen, wodurch die Integritätsprüfung gefährdet wird. Falls Sie momentan keinen Drucker oder kein digitales Zertifikat zur Verfügung haben, können Sie die Datei online über eine kostenlose Zertifizierungsstelle wie freetsa.org (mit Online-Signatur) signieren .
  3. Optional können Sie ein Paket (z. B. eine ZIP- oder TAR-Datei oder ein anderes Containerformat) erstellen, das sowohl Ihre Datendateien als auch die Prüfdateien enthält. Erstellen Sie mehrere Sicherungskopien dieses Pakets auf verschiedenen Speichermedien.
  4. Wenn später jemand eine Überprüfung durchführt 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 .
  5. Sie können die Integrität einzelner Originaldatendateien auch mithilfe der Daten in überprüfen Audit_FullList. Beispiele finden Sie im Abschnitt „Nutzung“ von auditor check.

Verwendung

Hier finden Sie eine Kurzanleitung.

Nach auditorder Installation auf Ihrem System können Sie es wie folgt verwenden:

auditor subcommands: Info
hash
lock
check
info
clone
chkcopy

hashist der erste Schritt der forensischen Prüfung. Dabei werden Prüfdateien generiert, die die Überprüfung der Dateiintegrität ermöglichen.

Grundlegende Verwendung des Unterbefehls-Hashs

auditor hash input_path

Dies wird:

  1. Hashdateien input_pathmit Standardalgorithmus ( sha256)
  2. Auditdateien generieren (Standardpfad: innerhalb des Stammverzeichnisses 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.
  3. Integritätsdaten anzeigenAudit_FullList
  4. 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.

Weitere Beispiele:

  1. Es sollen lediglich Hashwerte generiert, aber keine Dateien erstellt werden (-l).

    auditor hash input_path -l
  2. 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 
  3. 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
  4. Überschreiben von Auditdateien (-o), ohne die Thash-Methode zu verwenden (-d):

    auditor hash input_path -o -d 
  5. 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
  6. Prüfdateien überschreiben (-o), alle Dateien außer Textdateien einschließen (-e "**/*.txt")

    auditor hash input_path -o -e "**/*.txt" 
  7. 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" 
  8. Ü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/**" 
  9. Ü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/*" 
  10. Auditdateien überschreiben (-o), Schnellfestplatte verwenden (-z) und Algorithmus 'blake3' (sehr schnell):

    auditor hash input_path -o -z -a blake3
  11. Ü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.

Grundlegende Verwendung des Unterbefehls Lock

auditor lock input_path

Dies wird:

  1. Erstelle eine Datei _auditor_lock.txtmit input_path Erstellungszeitstempel.
  2. Der Hash-Unterbefehl wird nicht über einem gesperrten Objekt ausgeführt 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.

Grundlegende Verwendung des Unterbefehls Check

auditor check input_path

Dies wird:

  1. Auditdateien abrufen (Standardpfad: im Stammverzeichnis input_path):
  2. Verwenden Sie die in der Liste aufgeführten Integritätsdaten Audit_Stampund überprüfen Sie diese Audit_FullList.
  3. Verwenden Sie die in der Liste aufgeführten Integritätsdaten Audit_FullListund überprüfen Sie diese anhand der Originaldateien in der Liste input_path.
  4. Zeigen Sie die neu berechneten Integritätsdaten von Audit_FullList.

Weitere Beispiele:

  1. Überprüfen Sie im Schnelldisk-Modus (-z) unter Verwendung der Standard-Auditdateien.

    auditor check input_path -z 
  2. 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
  3. 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"
  4. Ü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
  5. 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 
  6. Ü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.

Grundlegende Verwendung des Unterbefehls clone

auditor clone input_path dest_path

Dies wird:

  1. Dateien abrufen input_path, Integritätsdaten generieren (Hash, Größe, Name);
  2. Dateien kopieren nach dest_path;
  3. Überprüfen Sie die Integrität der Dateien dest_pathanhand der in generierten Integritätsdaten input_path.
  4. Falls keine Audit-Dateien vorhanden sind, können Sie diese mit der Option -g 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).

Weitere Beispiele:

  1. Im Schnellplattenmodus (-z).

    auditor clone input_path dest_path -z 
  2. Dasselbe wie oben, jedoch mit aktiviertem strikten Modus, um sicherzustellen, dass ALLE Dateien im Eingabepfad geklont werden:

    auditor clone input_path dest_path --strict
  3. Im Ruhemodus (-q) und beim ersten Fehler stoppen (-x).

    auditor clone input_path dest_path -q -x
  4. 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 
  5. Klonen mit Generierung von Audit-Dateien nur im Zielpfad.

    auditor clone input_path dest_path -g dest 
  6. Klonen mit Generierung von Audit-Dateien nur im Eingabepfad.

    auditor clone input_path dest_path -g input 
  7. 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.

Grundlegende Verwendung des Unterbefehls chkcopy

auditor chkcopy input_path dest_path

Dies wird:

  1. Dateien abrufen input_pathund anhand der Integritätsdaten aus den Prüfdateien überprüfen;
  2. Dateien kopieren nach dest_path;
  3. Überprüfen Sie die Integrität der Dateien anhand dest_pathder Integritätsdaten aus den Prüfdateien.
  4. Hinweis: chkcopy erzeugt keine Audit-Dateien!

Im Fehlerfall wird der Vorgang wiederholt (standardmäßig 3 Mal, dies kann geändert werden).

Weitere Beispiele:

  1. Im Schnellplattenmodus (-z) für schnelle Festplatten wie SSDs, M.2 usw.

    auditor chkcopy input_path dest_path -z 
  2. 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
  3. Im Ruhemodus (-q) und beim ersten Fehler stoppen (-x).

    auditor chkcopy input_path dest_path -q -x
  4. 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.

Beispiel für forensische Informationen

auditor info input_path

Dies wird:

  1. Auditdateien abrufen (Standardpfad: im Stammverzeichnis input_path):
  2. Prüfen Sie, ob Prüfdateien vorhanden Audit_Stampsind Audit_FullList.
  3. Überprüfen Sie, ob die in aufgeführten Dateien existieren Audit_Stampund Audit_FullListdie angegebene Größe mit der in übereinstimmt input_path.
  4. Überprüfen Sie, ob alle Dateien in der input_pathListe aufgeführt sind Audit_FullList.
  5. Integritätsdaten neu berechnen Audit_FullList und mit der Prüfdatei vergleichenAudit_Stamp
  6. Erstellen Sie einen Bericht über die Größe der Dateien und aller input_paths.
)

Anmerkungen

1: In Windows PowerShell müssen Pfade mit Leerzeichen im Namen in Anführungszeichen gesetzt werden, ohne das abschließende einfache \ \. 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\"

2: Die Optionen -i und -e (Einschluss- und Ausschlussmuster) verwenden die Glob-Syntax. Eine Kurzanleitung finden Sie hier!

Herunterladen

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.

Extras

Format der Prüfdateien

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.



Benchmarks

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
Benchmarks using Data Source 1: Benchmarks
Data Source 2
Benchmarks
Benchmarks using Data Source 2: Benchmarks
Haben Sie Anregungen oder einen Fehler gefunden? Kontaktieren Sie uns unter: [email protected]