Pregunta:
Comprobador de integridad de archivos
Olli
2014-02-05 06:44:11 UTC
view on stackexchange narkive permalink

Tengo una gran cantidad de archivos que nunca deberían cambiar, incluidas fotografías RAW y archivos de video. Me preocupa la putrefacción de bits silenciosa.

Tengo copias de seguridad para restaurar archivos perdidos / dañados, pero comparar los archivos actuales con las copias de seguridad no es práctico (por ejemplo, los archivos de video están en cintas digitales). Además, mi software de respaldo no proporciona funcionalidad para esto.

¿Existe un software que escanee la lista de carpetas, almacene sumas de verificación confiables y pueda validar esa selección para archivos agregados / eliminados / modificados (dañados)?

Hay alrededor de 3 TB y 21 millones de archivos (una gran parte de ellos son archivos realmente pequeños, obviamente), por lo que el consumo de memoria es importante. Debería ejecutarse en Linux, y preferiblemente también en OS X.

Nota : en Linux, ya estoy ejecutando ZFS, que tiene sumas de comprobación sólidas y scrub para detectar bitflips. Sin embargo, no es posible ni práctico usar eso o btrfs en OS X / discos ópticos / discos USB que deberían ser portátiles (es decir, FAT). Prefiero una solución independiente del sistema de archivos.

Si no hay ningún software que haga esto automáticamente, ya que está en OSX y Linux, podría configurar fácilmente un script bash y un trabajo cron para hacer esto con `md5sum` para verificar todos sus archivos, crear un informe etc.
Le sugiero que esté atento al sistema de archivos de próxima generación ** btrfs **: https://plus.google.com/+AaronSeigo/posts/ZAmXwESunL2
En una alineación diferente de la pregunta * como se indica *: podría estar interesado en probar [git-Annex] (https://git-annex.branchable.com/ "git-Annex"). Su caso de uso de "archivero" cubre tanto la detección de corrupciones como la reparación de otras copias. Sí, puede pedirle que copie datos semiautomáticamente entre áreas de almacenamiento para asegurarse de que haya suficientes copias disponibles. La configuración predeterminada es un poco "invasiva", ya que todos los archivos se reemplazan por enlaces simbólicos a directorios dedicados de solo lectura para evitar escrituras no deseadas (se puede desactivar). Principalmente una herramienta de Linux, parece que está disponible como paquete de aplicaciones y homebrew.
Tres respuestas:
#1
+19
Olli
2014-02-07 01:55:20 UTC
view on stackexchange narkive permalink

Empecé a usar AIDE:

AIDE (Entorno de detección de intrusiones avanzado) es un verificador de integridad de archivos y directorios.

Realiza un seguimiento de los archivos cambiados, agregados y modificados, y los atributos de los archivos. Admite una variedad de algoritmos de suma de comprobación, incluidos sha256 / sha512.

En Ubuntu, el paquete aide está disponible en el repositorio base ( apt-get install aide ). En OS X, la compilación falló con misteriosos errores, pero la instalación con macports se realizó correctamente:

  sudo port install aide  

Ejemplo de configuración El archivo está disponible en /opt/local/etc/aide.conf . Ejecutar es simple:

  aide --init # Inicializa la base de datos - calcula checksumsaide --check # Compara los archivos con la base de datos --update # Comprueba los archivos con la base de datos y actualiza la base de datos  código> 

Todos los datos se almacenan en un archivo de texto sin formato (que obviamente es vulnerable a la corrupción, pero mantener una copia es fácil), por lo que cambiar la herramienta a otra cosa debería ser sencillo.


Aspectos positivos:

  • Rápido
  • Admite múltiples algoritmos de suma de comprobación sólidos. Se desaconseja el uso de md5, ya que básicamente está roto.
  • Fácil de ejecutar en cron
  • Basado en pruebas breves, sin problemas hasta ahora. Detecta todos los cambios (en el contenido y en los atributos de archivo configurados) correctamente, así como archivos agregados y eliminados.
  • Admite exclusiones de archivos complicados: por ejemplo, no tiene sentido sumar archivos temporales o cualquier archivo que deba cambiar.
  • Calcula múltiples sumas de verificación (configurables). Esto proporciona garantías relativamente buenas para el futuro, incluso si un algoritmo hash está comprometido, la integridad de la base de datos sigue siendo útil, incluso contra modificaciones intencionales (frente a bit rot).
  • Las sumas de verificación se almacenan en texto plano y los encabezados incluyen definiciones de campo. Esto es útil si el archivo de configuración se pierde o si se analiza con otro programa.
  • Archivo de configuración y base de datos de suma de comprobación fáciles de almacenar en cada disco / CD / carpeta (estructura). Con eso, todas las opciones de configuración se almacenan automáticamente y es fácil volver a ejecutar la verificación de integridad.

Puntos negativos:

  • La configuración requiere editar el archivo de configuración en el editor de texto, en lugar de tener una interfaz de usuario agradable. De manera similar, la verificación de la salida se envía directamente a la terminal.
  • La última versión es de 2010, pero por otro lado tiene todas las funciones, por lo que no hay necesidad de actualizaciones constantes.
  • La integridad de la base de datos de suma de comprobación no se valida automáticamente. Afortunadamente, hacerlo por separado es fácil ( sha1sum checksums.db > checksums.db.sha1sum )
¿Funciona bien en Windows?
`aide --init` (o cualquier otra cosa que intenté hacer con` aide`) no funciona en Ubuntu - los mantenedores del paquete lo rompieron. Tienes que usar `aideinit` en su lugar.
MD5 tiene problemas de seguridad, pero ¿por qué es importante para el propósito del OP? No busca codificar datos sensibles de forma segura. De hecho, MD5 se usa con mucha frecuencia como suma de comprobación de archivos - [ejemplo] (https://help.ubuntu.com/community/UbuntuHashes). Aparte de eso, +1 por una buena respuesta.
Otro punto: la configuración del archivo de texto y la salida CLI sería positiva para muchas personas en lugar de negativa.
#2
+11
palacsint
2014-02-07 03:59:10 UTC
view on stackexchange narkive permalink

He estado usando cfv para esto durante años.

  • Admite operaciones recursivas (puede crear un archivo de suma de verificación por directorio, o un archivo de suma de verificación para un subárbol completo).
  • Podría ignorar mayúsculas y minúsculas y corregir opciones de separador de ruta para uso multiplataforma, lo cual es bastante útil si desea verificar / crear sumas de verificación en diferentes sistemas de archivos y / o sistemas operativos.
  • Es una aplicación de consola pero tiene una buena barra de progreso (a diferencia de simple md5sum ).
  • Puede detectar archivos agregados (opción -u ).

No sé si se ejecuta o Mac OS X o no, pero está en MacPorts.

Hmm. `sha1sum *> archivos.sha1sum; cfv` funciona bien. Según man, `-r -m -u` es un conjunto adecuado de opciones para buscar archivos sin hashes. Eso parece funcionar bien, PERO si se modifica el archivo con suma de comprobación, todavía se muestra OK para eso. Si se elimina el archivo con suma de comprobación, se imprime correctamente "1 no encontrado, 1 no verificado". Estaba a punto de abrir un ticket de error, pero no me molesté en registrarme en sourceforge.
@Olli: No creo que necesite la bandera `-m`. Según el manual, `-m` * no compara sumas de comprobación *. Pruebe `cfv -T -uu -f test1.sha1` (si tiene un archivo` sha1` para un árbol de directorios completo).
por alguna razón, eso revisa todo dos veces (y sí, sé que los comentarios no son un foro de soporte).
#3
+7
Journeyman Geek
2014-02-07 05:41:20 UTC
view on stackexchange narkive permalink

No hay escuela como la vieja escuela. Es cierto que tengo un poco de sesgo aquí por mi experiencia en forense, pero podría ejecutar sumas md5 y compararlas.

Si bien este hilo SO tiene algunos métodos interesantes, me gusta mucho hashdeep. El uso de memoria es bajo, aunque requiere varios ciclos de procesador, pero a través de la magia del modo de auditoría, hace todo lo que le pides a través de la línea de comandos automáticamente, tomando un archivo de texto y comparándolo con lo que enumera. .

Si bien el sitio tiene archivos binarios de Windows, algunas distribuciones y administradores de paquetes mac tienen puertos; puede encontrar una lista completa aquí

hashdeep, incluidas las estimaciones de tiempo, sonaba bien, pero realmente no me gusta la interfaz: a) en la terminal mac, la barra de progreso / estimaciones está seriamente rota, b) para las carpetas, debe ingresar `--recursive`. De lo contrario, en `--audit` simplemente recorre recursivamente e imprime` Archivo conocido no utilizado` para cada archivo, c) si el archivo se copia, de acuerdo con el hashdeep se mueve (y el anterior se informa como "No coincide"), en lugar de "agregado", d) la auditoría y la actualización requieren dos pasadas.
"Si bien este hilo SO tiene algunos métodos interesantes […]": ¿Se suponía que debía haber un enlace?
Creo que se refería a este hilo _SR_.
Intenté * hashdeep * y esperaba que informara los archivos que agregué o eliminé desde que creé la tabla hash. No parece tener opciones para informarlos en absoluto. Extraño.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...