Dateiintegritätsprüfer

Ich habe eine große Menge an Dateien, die sich nie ändern sollten, einschließlich RAW-Fotos und Videodateien. Ich mache mir Sorgen um Silent Bit Fäulnis .

Ich habe Backups, um verlorene/beschädigte Dateien wiederherzustellen, aber der Vergleich aktueller Dateien mit Backups ist nicht praktikabel (z. B. befinden sich Videodateien auf digitalen Bändern). Auch meine Sicherungssoftware bietet hierfür keine Funktionalität.

Gibt es eine Software, die die Liste der Ordner scannt, zuverlässige Prüfsummen speichert und diese Auswahl auf hinzugefügte/entfernte/geänderte (beschädigte) Dateien validieren kann?

Es gibt ungefähr 3 TB und 21 Millionen Dateien (ein großer Teil davon sind natürlich sehr kleine Dateien), daher ist der Speicherverbrauch wichtig. Es sollte unter Linux und vorzugsweise auch unter OS X laufen.

Hinweis : Unter Linux führe ich bereits ZFS aus, das über robuste Prüfsummen verfügt und scrubBitflips erkennt. Es ist jedoch nicht möglich oder praktisch, entweder das oder btrfs auf OS X / optischen Laufwerken / USB-Laufwerken zu verwenden, die tragbar sein sollten (dh FAT). Ich bevorzuge eine dateisystemunabhängige Lösung.

Wenn es keine Software gibt, die dies automatisch tut, da Sie unter OSX und Linux arbeiten, können Sie ziemlich einfach ein Bash-Skript und einen Cron-Job einrichten, um dies zu tun md5sum, um alle Ihre Dateien zu überprüfen, einen Bericht zu erstellen usw.
Ich schlage vor, dass Sie das Dateisystem der nächsten Generation btrfs im Auge behalten : plus.google.com/+AaronSeigo/posts/ZAmXwESunL2
Bei einer anderen Ausrichtung als der angegebenen Frage : Sie könnten daran interessiert sein, git-annex zu testen . Der Anwendungsfall „Archivar“ umfasst sowohl die Erkennung von Beschädigungen als auch die Reparatur von anderen Kopien. Ja, Sie können es bitten, Daten halbautomatisch zwischen Speicherbereichen zu kopieren, um sicherzustellen, dass genügend Kopien verfügbar sind. Das Standard-Setup ist ein wenig "invasiv", da alle Dateien durch symbolische Links zu dedizierten schreibgeschützten Verzeichnissen ersetzt werden, um unbeabsichtigtes Schreiben zu verhindern (kann deaktiviert werden). In erster Linie ein Linux-Tool, scheint es als App-Bundle und Homebrew erhältlich zu sein.

Antworten (3)

Ich fing an, AIDE zu verwenden :

AIDE (Advanced Intrusion Detection Environment) ist ein Datei- und Verzeichnisintegritätsprüfer.

Es verfolgt geänderte, hinzugefügte und modifizierte Dateien und Dateiattribute. Unterstützt eine Vielzahl von Prüfsummenalgorithmen, einschließlich sha256/sha512.

Unter Ubuntu ist aidedas Paket im Basis-Repository ( apt-get install aide) verfügbar. Unter OS X schlug das Kompilieren mit mysteriösen Fehlern fehl, aber die Installation mit Macports war erfolgreich:

sudo port install aide

Eine Beispielkonfigurationsdatei ist unter verfügbar /opt/local/etc/aide.conf. Laufen ist einfach:

aide --init   # Initializes the database - calculates checksums
aide --check  # Checks files against the database
aide --update # Checks files against the database, and updates the database

Alle Daten werden in einer Klartextdatei gespeichert (die offensichtlich anfällig für Beschädigungen ist, aber das Aufbewahren einer Kopie ist einfach), sodass das Umschalten des Tools auf etwas anderes einfach sein sollte.


Positive Dinge:

  • Schnell
  • Unterstützt mehrere starke Prüfsummenalgorithmen. Von der Verwendung von md5 wird dringend abgeraten, da es im Grunde kaputt ist .
  • Einfach auf Cron auszuführen
  • Basierend auf kurzen Tests bisher keine Probleme. Alle Änderungen (am Inhalt und an konfigurierten Dateiattributen) sowie hinzugefügte und entfernte Dateien wurden ordnungsgemäß erkannt.
  • Unterstützt komplizierte Dateiausschlüsse: Zum Beispiel macht es keinen Sinn, temporäre Dateien oder Dateien, die sich ändern sollten, mit Prüfsummen zu versehen.
  • Berechnet mehrere Prüfsummen (konfigurierbar). Dies bietet relativ gute Garantien für die Zukunft – selbst wenn ein Hashing-Algorithmus kompromittiert ist, ist die Integritätsdatenbank immer noch nützlich, selbst gegen absichtliche Änderungen (im Vergleich zu Bitfäule).
  • Prüfsummen werden im Klartext gespeichert und Header enthalten Felddefinitionen. Dies ist nützlich, wenn die Konfigurationsdatei verloren geht oder mit einem anderen Programm geparst wird.
  • Einfach zu speichernde Konfigurationsdatei und Prüfsummendatenbank auf jedem Datenträger/CD/Ordner (Struktur). Damit werden alle Konfigurationsoptionen automatisch gespeichert und es ist einfach, die Integritätsprüfung erneut durchzuführen.

Negative Punkte:

  • Die Konfiguration erfordert die Bearbeitung der Konfigurationsdatei im Texteditor, im Gegensatz zu einer schönen Benutzeroberfläche. In ähnlicher Weise erfolgt die Überprüfung der Ausgabe direkt an das Terminal.
  • Die neueste Version stammt aus dem Jahr 2010, ist aber andererseits mit allen Funktionen ausgestattet, sodass keine ständigen Aktualisierungen erforderlich sind.
  • Die Integrität der Prüfsummendatenbank wird nicht automatisch validiert. Glücklicherweise ist es einfach, dies separat zu tun ( sha1sum checksums.db > checksums.db.sha1sum)
Funktioniert gut unter Windows?
aide --init(oder irgendetwas anderes, womit ich versucht habe aide) funktioniert unter Ubuntu nicht - die Paketbetreuer haben es kaputt gemacht. Sie müssen aideinitstattdessen verwenden.
MD5 hat Sicherheitsprobleme, aber warum ist das für den Zweck des OP von Bedeutung? Er versucht nicht, vertrauliche Daten sicher zu hashen. Tatsächlich wird MD5 sehr häufig als Datei-Prüfsummenbeispiel verwendet . Abgesehen davon +1 für eine gute Antwort.
Ein weiterer Punkt - Textdateikonfiguration und CLI-Ausgabe wären für viele Menschen eher positiv als negativ.

Ich benutze dafür seit Jahren cfv .

  • Es unterstützt rekursive Operationen (Sie können eine Prüfsummendatei pro Verzeichnis oder eine Prüfsummendatei für einen vollständigen Unterbaum erstellen).
  • Es könnte Optionen für Groß- und Kleinschreibung ignorieren und Pfadtrennzeichen für die plattformübergreifende Verwendung reparieren, was sehr nützlich ist, wenn Sie Prüfsummen auf verschiedenen Dateisystemen und/oder Betriebssystemen überprüfen/erstellen möchten.
  • Es ist eine Konsolenanwendung, aber sie hat einen netten Fortschrittsbalken (im Gegensatz zu plain md5sum).
  • Es kann hinzugefügte Dateien erkennen ( -uOption).

Ich weiß nicht, ob es unter Mac OS X läuft oder nicht, aber es ist in MacPorts .

Hmm. sha1sum * > files.sha1sum; cfvfunktioniert gut. Laut man gibt -r -m -ues die richtigen Optionen, um nach Dateien ohne Hashes zu suchen. Das scheint gut zu funktionieren, ABER wenn die Datei mit der Prüfsumme geändert wird, wird dafür immer noch OK ausgegeben. Wenn eine Datei mit Prüfsumme entfernt wird, wird korrekt "1 nicht gefunden, 1 nicht verifiziert" gedruckt. Ich wollte gerade ein Bug-Ticket öffnen, habe mich aber nicht darum gekümmert, mich bei Sourceforge zu registrieren.
@Olli: Ich glaube nicht, dass du die -mFlagge brauchst. Vergleichen Sie laut Handbuch -m keine Prüfsummen . Versuchen Sie cfv -T -uu -f test1.sha1es (wenn Sie eine sha1Datei für einen vollständigen Verzeichnisbaum haben).
aus irgendeinem Grund überprüft das alles zweimal (und ja, ich weiß, dass Kommentare kein Support-Forum sind).

Keine Schule wie Oldschool. Zugegebenermaßen bin ich hier aufgrund meines forensischen Hintergrunds etwas voreingenommen, aber Sie könnten md5-Summen ausführen und sie vergleichen.

Während dieser SO-Thread einige interessante Methoden hat, mag ich hashdeep ziemlich . Die Speicherauslastung ist gering, obwohl sie eine Reihe von Prozessorzyklen durchkaut, aber durch die Magie des Überwachungsmodus erledigt sie alles, was Sie von ihr über die Befehlszeile verlangen, automatisch - indem sie eine Textdatei aufnimmt und sie mit dem vergleicht, was sie auflistet .

Während die Site Windows-Binärdateien enthält, haben einige Distributionen und Mac-Paketmanager Ports - eine vollständige Liste finden Sie hier

hashdeep - einschließlich Zeitschätzungen - klang nett, aber ich mag die Benutzeroberfläche nicht wirklich: a) auf dem Mac-Terminal ist der Fortschrittsbalken/die Schätzungen ernsthaft kaputt, b) für Ordner müssen Sie --recursive. Andernfalls --auditdurchläuft es nur rekursiv und druckt Known file not usedfür jede Datei, c) wenn die Datei kopiert wird, wird sie laut hashdeep verschoben (und die alte wird als "keine Übereinstimmung" gemeldet), anstatt "hinzugefügt", d) Prüfung und Aktualisierung erfordern zwei geht vorbei.
„Während dieser SO-Thread einige interessante Methoden hat […]“: Sollte es einen Link geben?
Ich glaube, er meinte diesen SR -Thread.
Ich habe gerade hashdeep ausprobiert und erwartet, dass es die Dateien meldet, die ich hinzugefügt oder entfernt habe, seit ich die Hash-Tabelle erstellt habe. Es scheint überhaupt keine Möglichkeit zu geben, sie zu melden. Seltsam.