Vraag:
Controle van de bestandsintegriteit
Olli
2014-02-05 06:44:11 UTC
view on stackexchange narkive permalink

Ik heb een groot aantal bestanden die nooit mogen veranderen, inclusief RAW-foto's en videobestanden. Ik maak me zorgen over stille bitrot.

Ik heb back-ups om verloren / beschadigde bestanden te herstellen, maar het is niet praktisch om huidige bestanden te vergelijken met back-ups (videobestanden staan ​​bijvoorbeeld op digitale banden). Mijn back-upsoftware biedt hier ook geen functionaliteit voor.

Is er software die een lijst met mappen scant, betrouwbare checksums opslaat en die selectie kan valideren op toegevoegde / verwijderde / gewijzigde (beschadigde) bestanden?

Er zijn ongeveer 3 TB en 21 miljoen bestanden (een groot deel daarvan zijn natuurlijk hele kleine bestanden), dus geheugengebruik is belangrijk. Het zou op Linux moeten draaien, en bij voorkeur ook op OS X.

Opmerking : op Linux draai ik al ZFS, dat robuuste checksums heeft , en scrub voor het detecteren van bitflips. Het is echter niet mogelijk of praktisch om dat of btrfs te gebruiken op OS X / optische schijven / USB-schijven die draagbaar zouden moeten zijn (d.w.z. FAT). Ik geef sterk de voorkeur aan een bestandssysteem-agnostische oplossing.

Als er geen software is die dit automatisch doet, aangezien je OSX en Linux gebruikt, zou je vrij eenvoudig een bash-script en een cron-taak kunnen opzetten om dit te doen met `md5sum` om al je bestanden te controleren, een rapport maken , enzovoort.
Ik stel voor dat u het bestandssysteem van de volgende generatie ** btrfs ** in de gaten houdt: https://plus.google.com/+AaronSeigo/posts/ZAmXwESunL2
Op een andere uitlijning dan de vraag * zoals vermeld *: misschien ben je geïnteresseerd in het testen van [git-annex] (https://git-annex.branchable.com/ "git-annex"). De use case van de "archivaris" omvat zowel het opsporen van beschadigingen als het repareren van andere kopieën. Ja, u kunt hem vragen om semi-automatisch gegevens tussen opslaggebieden te kopiëren om ervoor te zorgen dat er voldoende kopieën beschikbaar zijn. De standaardinstelling is een beetje "invasief" aangezien alle bestanden worden vervangen door symbolische links naar speciale alleen-lezen mappen om onbedoelde schrijfbewerkingen te voorkomen (kan worden uitgeschakeld). In de eerste plaats een Linux-tool, het lijkt erop dat het beschikbaar is als app-bundel en homebrew.
Drie antwoorden:
#1
+19
Olli
2014-02-07 01:55:20 UTC
view on stackexchange narkive permalink

Ik begon AIDE te gebruiken:

AIDE (Advanced Intrusion Detection Environment) is een integriteitscontrole voor bestanden en mappen.

Het volgt gewijzigde, toegevoegde en gewijzigde bestanden en bestandskenmerken. Ondersteunt verschillende checksum-algoritmen, waaronder sha256 / sha512.

Op Ubuntu is het aide -pakket beschikbaar in de basisrepository ( apt-get install aide ). Op OS X mislukte het compileren met mysterieuze fouten, maar de installatie met macports is gelukt:

  sudo port install aide  

Voorbeeldconfiguratie bestand is beschikbaar op /opt/local/etc/aide.conf . Het uitvoeren is eenvoudig:

  aide --init # Initialiseert de database - berekent checksumsaide --check # Controleert bestanden met de databaseaide --update # Controleert bestanden met de database en werkt de database bij  

Alle gegevens worden opgeslagen in een leesbaar tekstbestand (dat duidelijk kwetsbaar is voor corruptie, maar het bewaren van een kopie is eenvoudig), dus het zou eenvoudig moeten zijn om de tool over te schakelen naar iets anders.


Positieve dingen:

  • Snel
  • Ondersteunt meerdere sterke checksum-algoritmen. Het gebruik van md5 wordt sterk afgeraden, omdat het in feite defect is.
  • Gemakkelijk te draaien op cron
  • Gebaseerd op korte tests, tot dusver geen problemen. Detecteerde alle wijzigingen (op inhoud en op geconfigureerde bestandskenmerken) correct, evenals toegevoegde en verwijderde bestanden.
  • Ondersteunt gecompliceerde bestandsuitsluitingen: het heeft bijvoorbeeld geen zin om tijdelijke bestanden te controleren, of een bestand dat zou moeten wijzigen.
  • Berekent meerdere checksums (configureerbaar). Dit biedt relatief goede garanties voor de toekomst - zelfs als een hash-algoritme wordt aangetast, is de integriteitsdatabase nog steeds nuttig, zelfs tegen opzettelijke wijzigingen (versus bitrot).
  • Checksums worden in platte tekst opgeslagen en kopteksten bevatten velddefinities. Dit is handig als het configuratiebestand verloren is gegaan of als het wordt geparseerd met een ander programma.
  • Eenvoudig configuratiebestand en checksum-database op elke schijf / cd / map (structuur) opslaan. Hiermee worden alle configuratie-opties automatisch opgeslagen en is het gemakkelijk om de integriteitscontrole opnieuw uit te voeren.

Negatieve punten:

  • Voor het configureren moet het configuratiebestand worden bewerkt op teksteditor, versus een mooie gebruikersinterface. Op dezelfde manier gaat het controleren van de uitvoer rechtstreeks naar de terminal.
  • De nieuwste release is uit 2010, maar aan de andere kant is deze functie compleet, dus er is geen behoefte aan constante updates.
  • Checksum-database-integriteit wordt niet automatisch gevalideerd. Gelukkig is het eenvoudig om dat afzonderlijk te doen ( sha1sum checksums.db > checksums.db.sha1sum )
Werkt goed op Windows?
`aide --init` (of iets anders dat ik probeerde te doen met` aide`) werkt niet op Ubuntu - de pakketbeheerders hebben het verbroken. U moet in plaats daarvan `aideinit` gebruiken.
MD5 heeft beveiligingsproblemen, maar waarom is dat van belang voor het doel van het OP? Hij wil gevoelige gegevens niet veilig hashen. In feite wordt MD5 heel vaak gebruikt als een bestandscontrolesom - [voorbeeld] (https://help.ubuntu.com/community/UbuntuHashes). Dat terzijde, +1 voor een goed antwoord.
Een ander punt - de configuratie van tekstbestanden en CLI-uitvoer zou voor veel mensen positief zijn in plaats van negatief.
#2
+11
palacsint
2014-02-07 03:59:10 UTC
view on stackexchange narkive permalink

Ik gebruik hiervoor al jaren cfv.

  • Het ondersteunt recursieve bewerkingen (u kunt één checksum-bestand per map maken, of één checksum-bestand voor een volledige substructuur).
  • Het kan hoofdletters en kleine letters negeren en padscheidingstekens corrigeren voor gebruik op meerdere platforms, wat erg handig is als u checksums wilt controleren / maken op verschillende bestandssystemen en / of besturingssystemen.
  • Het is een consoletoepassing maar het heeft een mooie voortgangsbalk (in tegenstelling tot gewone md5sum ).
  • Het kan toegevoegde bestanden detecteren ( -u optie).

Ik weet niet of het draait of Mac OS X of niet, maar het staat in MacPorts.

Hmm. `sha1sum *> bestanden.sha1sum; cfv` werkt prima. Volgens de mens is `-r -m -u` de juiste set opties om te controleren op bestanden zonder hashes. Dat lijkt prima te werken, MAAR als een bestand met checksum wordt gewijzigd, geeft het nog steeds OK weer. Als het bestand met checksum wordt verwijderd, wordt correct "1 niet gevonden, 1 niet geverifieerd" afgedrukt. Ik stond op het punt een bugticket te openen, maar nam niet de moeite om me te registreren bij sourceforge.
@Olli: Ik denk niet dat je de `-m` vlag nodig hebt. Volgens de handleiding, `-m` * vergelijkt geen checksums *. Probeer `cfv -T -uu -f test1.sha1` (als je een` sha1` bestand hebt voor een volledige mappenboom).
om de een of andere reden controleert dat alles twee keer (en ja, ik weet dat opmerkingen geen ondersteuningsforum zijn).
#3
+7
Journeyman Geek
2014-02-07 05:41:20 UTC
view on stackexchange narkive permalink

Geen school zoals oldschool. Toegegeven, ik heb hier een beetje een vooroordeel vanwege mijn forensische achtergrond, maar je zou md5-sommen kunnen maken en ze kunnen vergelijken.

Hoewel deze SO-thread een aantal interessante methoden heeft, ben ik nogal gesteld op hashdeep. Het geheugengebruik is laag, hoewel het door een aantal processorcycli heen kauwt, maar door de magie van de auditmodus doet het alles wat je er van vraagt ​​via de opdrachtregel automatisch - door een tekstbestand in te nemen en het te vergelijken met wat het vermeldt .

Hoewel de site binaire vensters heeft, hebben nogal wat distributies en mac-pakketbeheerders poorten - je kunt hier een volledige lijst vinden

hashdeep - inclusief tijdschattingen - klonk goed, maar ik hou niet echt van de interface: a) op de mac-terminal is de voortgangsbalk / schattingen ernstig onderbroken, b) voor mappen moet je `--recursive` opgeven. Anders doorloopt het in `--audit` het recursief en drukt het` Bekend bestand niet gebruikt` af voor elk bestand, c) als het bestand wordt gekopieerd, wordt het volgens hashdeep verplaatst (en het oude wordt gerapporteerd als "Geen overeenkomst"), in plaats van "toegevoegd", d) audit en update vereist twee passages.
"Hoewel deze SO-thread een aantal interessante methoden heeft […]": Zou er een link moeten zijn?
Ik denk dat hij deze _SR_-thread bedoelde.
Ik heb net * hashdeep * geprobeerd en ik verwachtte dat het de bestanden zou rapporteren die ik heb toegevoegd of verwijderd sinds het maken van de hashtabel. Het lijkt helemaal geen opties te hebben om ze te melden. Vreemd.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...