Frage:
Dateiintegritätsprüfung
Olli
2014-02-05 06:44:11 UTC
view on stackexchange narkive permalink

Ich habe eine große Anzahl von Dateien, die sich niemals ändern sollten, einschließlich RAW-Fotos und Videodateien. Ich mache mir Sorgen um stilles Bit Rot.

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

Gibt es eine Software, die Ordnerlisten durchsucht, zuverlässige Prüfsummen speichert und diese Auswahl auf hinzugefügte / entfernte / geänderte (beschädigte) Dateien überprüfen kann?

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

Hinweis : Unter Linux wird bereits ZFS ausgeführt, das über robuste Prüfsummen verfügt und scrub zum Erkennen von Bitflips. Es ist jedoch nicht möglich oder praktisch, entweder dieses oder btrfs auf OS X / optischen Datenträgern / USB-Datenträgern zu verwenden, die portabel sein sollten (d. H. FAT). Ich bevorzuge eine dateisystemunabhängige Lösung.

Wenn es keine Software gibt, die dies automatisch ausführt, können Sie unter OSX und Linux ganz einfach ein Bash-Skript und einen Cron-Job einrichten, um dies mit `md5sum` zu tun und alle Ihre Dateien zu überprüfen und einen Bericht zu erstellen , etc.
Ich schlage vor, dass Sie das Dateisystem der nächsten Generation im Auge behalten ** btrfs **: https://plus.google.com/+AaronSeigo/posts/ZAmXwESunL2
Bei einer anderen Ausrichtung als bei der Frage * wie angegeben *: Möglicherweise möchten Sie [git-annex] testen (https://git-annex.branchable.com/ "git-annex"). Der Anwendungsfall "Archivar" umfasst sowohl die Erkennung von Beschädigungen als auch die Reparatur von anderen Kopien. Ja, Sie können ihn auffordern, Daten zwischen Speicherbereichen halbautomatisch zu kopieren, um sicherzustellen, dass genügend Kopien verfügbar sind. Die Standardeinstellung ist etwas "invasiv", da alle Dateien durch Symlinks zu dedizierten schreibgeschützten Verzeichnissen ersetzt werden, um unbeabsichtigte Schreibvorgänge zu verhindern (kann deaktiviert werden). Es handelt sich in erster Linie um ein Linux-Tool, das anscheinend als App-Bundle und Homebrew erhältlich ist.
Drei antworten:
#1
+19
Olli
2014-02-07 01:55:20 UTC
view on stackexchange narkive permalink

Ich habe mit der Verwendung von AIDE begonnen:

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

Es verfolgt geänderte, hinzugefügte und geänderte Dateien sowie Dateiattribute. Unterstützt verschiedene Prüfsummenalgorithmen, einschließlich sha256 / sha512.

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

  sudo port install aide  

Beispielkonfiguration Die Datei ist unter /opt/local/etc/aide.conf verfügbar. Das Ausführen ist einfach:

  aide --init # Initialisiert die Datenbank - berechnet Prüfsummenhilfe --check # Überprüft Dateien anhand der Datenbank --update # Überprüft Dateien anhand der Datenbank und aktualisiert die Datenbank  

Alle Daten werden in einer Klartextdatei gespeichert (die offensichtlich anfällig für Beschädigungen ist, aber das Speichern einer Kopie ist einfach). Daher sollte es einfach sein, das Tool auf etwas anderes umzustellen.


Positive Dinge:

  • Schnell
  • Unterstützt mehrere starke Prüfsummenalgorithmen. Von der Verwendung von md5 wird dringend abgeraten, da es im Grunde genommen kaputt ist.
  • Einfach auf cron auszuführen
  • Basierend auf kurzen Tests bisher keine Probleme. Alle Änderungen (am Inhalt und an den konfigurierten Dateiattributen) sowie die hinzugefügten und entfernten Dateien wurden ordnungsgemäß erkannt.
  • Unterstützt komplizierte Ausschlüsse von Dateien: Es macht beispielsweise keinen Sinn, temporäre Dateien zu überprüfen oder Dateien, die dies sollten change.
  • 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 auch gegen absichtliche Änderungen (im Vergleich zu Bit Rot) nützlich.
  • Prüfsummen werden im Klartext gespeichert, und Kopfzeilen enthalten Felddefinitionen. Dies ist nützlich, wenn die Konfigurationsdatei verloren geht oder wenn sie mit einem anderen Programm analysiert wird.
  • Einfach zu speichernde Konfigurationsdatei und Prüfsummen-Datenbank auf jeder Festplatte / CD / jedem Ordner (Struktur). Damit werden alle Konfigurationsoptionen automatisch gespeichert und die Integritätsprüfung kann problemlos erneut ausgeführt werden.

Negative Punkte:

  • Für die Konfiguration muss die Konfigurationsdatei bearbeitet werden im Texteditor im Vergleich 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 jedoch auf der anderen Seite vollständig, sodass keine ständigen Aktualisierungen erforderlich sind.
  • Die Integrität der Prüfsummen-Datenbank wird nicht automatisch überprüft. Glücklicherweise ist es einfach, dies separat zu tun ( sha1sum Prüfsummen.db > Prüfsummen.db.sha1sum )
Funktioniert gut unter Windows?
`aide --init` (oder irgendetwas anderes, was ich mit` aide` versucht habe) funktioniert unter Ubuntu nicht - die Paketbetreuer haben es kaputt gemacht. Sie müssen stattdessen "aideinit" verwenden.
MD5 hat Sicherheitsprobleme, aber warum ist das für den Zweck des OP wichtig? Er sucht nicht nach sicheren Hash-sensiblen Daten. Tatsächlich wird MD5 sehr häufig als Dateiprüfsumme verwendet - [Beispiel] (https://help.ubuntu.com/community/UbuntuHashes). Davon abgesehen +1 für eine gute Antwort.
Ein weiterer Punkt - die Konfiguration von Textdateien und die CLI-Ausgabe - wäre für viele Menschen eher positiv als negativ.
#2
+11
palacsint
2014-02-07 03:59:10 UTC
view on stackexchange narkive permalink

Ich benutze seit Jahren cfv dafür.

  • Es unterstützt rekursive Operationen (Sie können eine Prüfsummendatei pro Verzeichnis oder eine Prüfsummendatei für einen vollständigen Teilbaum erstellen).
  • Es kann Groß- und Kleinschreibung ignorieren und Pfadtrennzeichenoptionen korrigieren Für die plattformübergreifende Verwendung ist dies sehr nützlich, wenn Sie Prüfsummen auf verschiedenen Dateisystemen und / oder Betriebssystemen überprüfen / erstellen möchten.
  • Es handelt sich um eine Konsolenanwendung, die jedoch einen schönen Fortschrittsbalken aufweist (im Gegensatz zu einfachem ) md5sum ).
  • Es kann hinzugefügte Dateien erkennen (Option -u ).

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

Hmm. `sha1sum *> files.sha1sum; cfv` funktioniert gut. Laut man ist `-r -m -u` der richtige Satz von Optionen, um nach Dateien ohne Hashes zu suchen. Das scheint gut zu funktionieren, ABER wenn eine Datei mit Prüfsumme geändert wird, wird dafür immer noch OK ausgegeben. Wenn eine Datei mit Prüfsumme entfernt wird, wird "1 nicht gefunden, 1 nicht überprüft" ordnungsgemäß gedruckt. Ich wollte gerade ein Bug-Ticket öffnen, habe mich aber nicht bei sourceforge registriert.
@Olli: Ich glaube nicht, dass Sie die `-m` Flagge brauchen. Laut Handbuch vergleicht `-m` * keine Prüfsummen *. Versuchen Sie `cfv -T -uu -f test1.sha1` (wenn Sie eine` sha1`-Datei 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).
#3
+7
Journeyman Geek
2014-02-07 05:41:20 UTC
view on stackexchange narkive permalink

Keine Schule wie Oldschool. Zugegeben, ich habe hier eine gewisse Tendenz aufgrund meines forensischen Hintergrunds, aber Sie könnten MD5-Summen ausführen und sie vergleichen.

Während dieser SO-Thread einige interessante Methoden hat, mag ich Hashdeep ziemlich gern. Die Speichernutzung ist gering, obwohl sie durch eine Reihe von Prozessorzyklen gekaut wird. Durch die Magie des Überwachungsmodus wird jedoch alles, was Sie von ihm verlangen, automatisch über die Befehlszeile ausgeführt - indem eine Textdatei aufgenommen und mit der Liste verglichen wird .

Während die Site über Windows-Binärdateien verfügt, verfügen einige Distributionen und Mac-Paketmanager über Ports. Eine vollständige Liste finden Sie hier

Hashdeep - einschließlich Zeitschätzungen - klang gut, aber ich mag die Benutzeroberfläche nicht wirklich: a) Auf dem Mac-Terminal ist der Fortschrittsbalken / die Schätzungen ernsthaft defekt. b) Für Ordner müssen Sie "--recursive" angeben. Andernfalls wird in "--audit" nur rekursiv durchlaufen und "Bekannte Datei nicht verwendet" für jede Datei gedruckt. C) Wenn die Datei kopiert wird, wird sie entsprechend dem verschobenen Hashdeep verschoben (und die alte Datei wird als "Keine Übereinstimmung" gemeldet) "hinzugefügt", d) Prüfung und Aktualisierung erfordern zwei Durchgänge.
"Während dieser SO-Thread einige interessante Methoden hat […]": Sollte es einen Link geben?
Ich denke, er meinte diesen _SR_ Thread.
Ich habe gerade * hashdeep * ausprobiert und erwartet, dass es die Dateien meldet, die ich seit dem Erstellen der Hash-Tabelle hinzugefügt oder entfernt habe. Es scheint überhaupt keine Optionen zu geben, um sie zu melden. Seltsam.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...