auditor

auditorEs una herramienta forense para la auditoría rápida de integridad que utiliza funciones hash criptográficas .

Es similar a otras herramientas populares (fsum, hashdeep, sha256sum, etc.), pero con características que hacen que la auditoría de datos digitales sea más simple y rápida .

auditorTiene soporte para varios algoritmos hash. El valor predeterminado es sha256, que es el recomendado por NIST desde 2015 (consulte la Política de NIST sobre funciones hash ).

Por defecto, Logothash method Está habilitado, pero este modo se puede deshabilitar.

Cadena de integridad

El proceso de auditoría utilizado auditorse basa en el concepto de cadena de integridad , proporcionada por archivos de auditoría que almacenan información de integridad.

Los términos involucrados en este proceso son:
Audit_FullList: El archivo de auditoría contiene información de integridad de cada archivo de datos original procesado.

Stamp: La información de integridad actual del Audit_FullListarchivo. StampSe recalcula y se muestra siempre al realizar las acciones correspondientes.

Audit_Stamp: El archivo de auditoría almacena la Stampfecha Audit_FullListy hora de creación.

Cadena de integridad
Figura 1 - Archivos involucrados en el proceso

La cadena de integridad se produce en el siguiente orden (comportamiento predeterminado):

Los archivos de datos internos input_pathse procesan y generan información de integridad (hash, tamaño, ruta de archivo relativa, etc.) que se almacena en Audit_FullList.

Audit_FullListTambién se procesa, generando Stamp, que se imprime en la terminal y se almacena en Audit_Stamp.

La comprobación de la cadena de integridad se realiza en orden inverso al proceso anterior, reprocesando los archivos y verificando su integridad con respecto a los archivos de auditoría. StampTambién se recalcula, se imprime en la terminal y se compara con el valor almacenado Audit_Stamppara verificar si coincide.

Para proceder con la generación de los archivos de auditoría y garantizar que la verificación futura de la cadena de integridad se lleve a cabo de forma correcta y segura, siga los pasos que se indican a continuación:

  1. Organiza tus archivos de datos en una carpeta específica (denominada «input_path input_path»). Con Auditor instalado, abre una terminal de comandos y ejecuta el comando correspondiente auditor hash input_path. Por defecto, este comando creará los archivos de auditoría Audit_FullListen Audit_Stampla raíz de la carpeta «input_path». (Esto se puede modificar si es necesario).
  2. Guarde todos los datos, incluidos los archivos de auditoría, e imprima o firme digitalmente este archivo. Si omite este paso, cualquiera podría alterar los datos y generar nuevos archivos de auditoría, lo que comprometería la verificación de integridad. Si no tiene acceso a una impresora o a un certificado digital, puede usar una autoridad de sellado de tiempo gratuita para firmar el archivo en línea, como freetsa.org (mediante Firma en línea) . Audit_Stamp
  3. Opcionalmente, puede crear un paquete (como un archivo ZIP, TAR u otro contenedor) que incluya tanto sus archivos de datos como los archivos de auditoría. Realice varias copias de seguridad de este paquete en diferentes medios.
  4. Posteriormente, cuando alguien realiza una comprobación con auditor check, se ejecuta la cadena de integridad descrita anteriormente. Al finalizar el proceso, los datos de integridad de Audit_FullListse recalculan y se imprimen en la terminal , y DEBEN coincidir exactamente con el valor impreso o firmado digitalmente en el paso anterior. Si no coinciden, la comprobación de integridad no es válida .
  5. También puede verificar la integridad de los archivos de datos originales individuales utilizando los datos en Audit_FullList. Consulte los ejemplos en la sección de uso de auditor check.

Uso

Consulte aquí un breve manual.

Una vez auditorinstalado en su sistema, puede usarlo de la siguiente manera:

auditor subcommands: información
hash
lock
check
info
clone
chkcopy

hashEs el primer paso de la auditoría forense. Genera archivos de auditoría que permiten verificar la integridad de los archivos.

Uso básico del subcomando hash

auditor hash input_path

Esto:

  1. Archivos hash input_pathcon algoritmo predeterminado ( sha256)
  2. Generar archivos de auditoría (Ruta predeterminada: dentro del directorio raíz de input_path):
    • Audit_FullListContiene los datos de integridad (hash, tamaño, nombre) de los archivos en input_path. Nombre predeterminado: _auditor_hashes.txt
    • Audit_Stamp: contiene únicamente los datos de integridad de Audit_FullList. Nombre predeterminado: _auditor_stamp.txt.Este es el archivo que debe imprimirse o firmarse digitalmente para garantizar la verificación de toda la cadena de integridad.
  3. Mostrar datos de integridad deAudit_FullList
  4. Después hash, puede ejecutar checkel comando para verificar la integridad. Para garantizar correctamente la verificación de integridad en el futuro, lea la sección Cadena de integridad y siga las recomendaciones que allí se ofrecen.

Otros ejemplos:

  1. Simplemente genera hashes, pero no crees ningún archivo (-l)

    auditor hash input_path -l
  2. Sobrescribir archivos de auditoría (-o), utilizando un disco rápido (-z) con el algoritmo predeterminado (útil con discos SSD, para mayor velocidad):

    auditor hash input_path -o -z 
  3. Igual que lo anterior, pero con el modo estricto activado, para garantizar que se aplique el hash a TODOS los archivos en input_path:

    auditor hash input_path -o -z --strict
  4. Sobrescribir archivos de auditoría (-o), sin utilizar el método thash (-d):

    auditor hash input_path -o -d 
  5. Sobrescribir archivos de auditoría (-o), incluir solo archivos txt (-i "**/*.txt") solo en la carpeta raíz (-u 1) (las banderas -i y -e usan patrones glob, consulte las Notas para obtener más detalles).

    auditor hash input_path -o -i "**/*.txt" -u 1
  6. Sobrescribir archivos de auditoría (-o), incluir todos los archivos, excepto los archivos txt (-e "**/*.txt")

    auditor hash input_path -o -e "**/*.txt" 
  7. Sobrescribir archivos de auditoría (-o), incluir solo archivos con nombre "file1.doc" (-i "**/*/file1.doc") y "file2.xls" (-i "**/*/file2.xls")

    auditor hash input_path -o -i "**/*/file1.doc"  -i "**/*/file2.xls" 
  8. Sobrescribir archivos de auditoría (-o), incluyendo TODOS los archivos, excepto los que se encuentran en las carpetas $RECYCLE.BIN y "System Volume Information". Nota: El carácter $ en $RECYCLE.BIN pertenece al nombre y debe ir precedido de una barra invertida (\) para que se analice correctamente.

    auditor hash input_path -o -e "**/\$RECYCLE.BIN/**" -e "**/System Volume Information/**" 
  9. Sobrescribir archivos de auditoría (-o), incluir todos los archivos txt (-i "**/*/*.txt"), excepto los que se encuentran dentro del directorio llamado folder1 (-e "**/*/folder1/*").

    auditor hash input_path -z -o -a blake3 -i "**/*/*.txt" -e "**/*/folder1/*" 
  10. Sobrescribir archivos de auditoría (-o), usar disco rápido (-z) y algoritmo 'blake3' (muy rápido):

    auditor hash input_path -o -z -a blake3
  11. Sobrescribir archivos de auditoría (-o), usar tamaño de bloque 10 MB y función hash 'whirlpool'

    auditor hash input_path -o -b 10MB -a whirlpool
)

lockResulta útil cuando es necesario conservar los archivos de auditoría existentes. Puede utilizarse después del comando hash y evitar la generación accidental de nuevos archivos de auditoría input_path.

Uso básico del subcomando lock

auditor lock input_path

Esto:

  1. Crea un archivo _auditor_lock.txtcon input_path marca de tiempo de creación.
  2. El subcomando Hash no se ejecutará sobre un input_pathbloque.

Para desbloquearlo input_path, debes eliminar manualmente el archivo._auditor_lock.txt


)

checkEs el segundo paso de la auditoría forense. Verifica la integridad de los datos utilizando la información de los archivos de auditoría y se puede usar después de que se haya realizado el hash.

Uso básico del subcomando Check

auditor check input_path

Esto:

  1. Obtener archivos de auditoría (Ruta predeterminada: dentro de la raíz de input_path):
  2. Utilice los datos de integridad que figuran en la lista Audit_Stampy compárelos con ellos Audit_FullList.
  3. Utilice los datos de integridad que se enumeran en Audit_FullListy compárelos con los archivos originales en input_path.
  4. Mostrar los datos de integridad recalculados de Audit_FullList.

Otros ejemplos:

  1. Comprueba en modo de disco rápido (-z), utilizando los archivos de auditoría predeterminados.

    auditor check input_path -z 
  2. Igual que lo anterior, pero con el modo estricto habilitado, para asegurar que se verifiquen TODOS los archivos en input_path.

    auditor check input_path -z --strict
  3. Comprobar solo archivos txt (-i "**/*.txt"), utilizando archivos de auditoría predeterminados (las banderas -i y -e utilizan patrones glob, consulte las Notas para obtener más detalles).

    auditor check input_path -i "**/*.txt"
  4. Comprobar en modo silencioso (-q) y detenerse en el primer error (-x), utilizando archivos de auditoría predeterminados.

    auditor check input_path -q -x
  5. Compruebe F:\data_path utilizando archivos de auditoría con nombres específicos. (-f para <Audit_FullList> y -s para <Audit_Stamp>)

    auditor check F:\data_path -f C:\other_path\personal_fullList.txt -s C:\other_path\personal_stamp.txt -q -x 
  6. Comprobar la integridad de un solo archivo en <input_path> comparándolo con algún archivo de auditoría.

    auditor check F:\data_path\file1.txt -f C:\other_path\some_audit.txt -q -x 

Nota: La comprobación del auditor es compatible con el formato fsum.

)

cloneSe utiliza para copiar datos internamente input_pathy dest_path, al mismo tiempo, verificar la integridad de los datos copiados.

Uso básico del subcomando clone

auditor clone input_path dest_path

Esto:

  1. Obtener archivos de input_path, generar datos de integridad (hash, tamaño, nombre);
  2. Copiar archivos a dest_path;
  3. Comprobar la integridad de los archivos dest_pathcomparándolos con los datos de integridad generados en input_path.
  4. Si los archivos de auditoría no existen, puede crearlos en ` input_path/usr/local/bin` o dest_pathcon la opción `-g`. Si los archivos de auditoría ya existen, no podrá crearlos.

En caso de error, volverá a intentarlo (por defecto son 3 veces, esto se puede cambiar).

Otros ejemplos:

  1. En modo de disco rápido (-z).

    auditor clone input_path dest_path -z 
  2. Igual que lo anterior, pero con el modo estricto activado, para asegurar que TODOS los archivos en input_path se clonen:

    auditor clone input_path dest_path --strict
  3. En modo silencioso (-q) y detenerse ante el primer error (-x).

    auditor clone input_path dest_path -q -x
  4. Clonación con generación de archivos de auditoría tanto en input_path como en dest_path (¡Ver notas!).

    auditor clone input_path dest_path -g both 
  5. Clonación con generación de archivos de auditoría solo en dest_path.

    auditor clone input_path dest_path -g dest 
  6. Clonación con generación de archivos de auditoría solo en input_path.

    auditor clone input_path dest_path -g input 
  7. Puede usar -i y/o -e para incluir o excluir archivos del proceso (No se puede usar con --strict).

    auditor clone input_path dest_path -q -x -i "**/*.txt" -e "**/dir1/**/*

Notas: Para generar archivos de auditoría, input_path¡no puede haber archivos de auditoría (Audit_FullList y Audit_Stamp)! Esto es para evitar confusiones con los archivos de auditoría existentes.

Consulte todas las opciones con auditor clone --help

)


chkcopyse utiliza para comprobar los datos internos input_pathcomparándolos con los archivos de auditoría y copiarlos a dest_path, y al mismo tiempo verificar la integridad de los datos copiados en dest_path.

Uso básico del subcomando chkcopy

auditor chkcopy input_path dest_path

Esto:

  1. Obtener archivos input_pathy verificar su integridad comparándolos con los datos de los archivos de auditoría;
  2. Copiar archivos a dest_path;
  3. Comprobar la integridad de los archivos dest_pathcomparándolos con los datos de integridad de los archivos de auditoría.
  4. Nota: ¡chkcopy no genera archivos de auditoría!

En caso de error, volverá a intentarlo (por defecto son 3 veces, esto se puede cambiar).

Otros ejemplos:

  1. En modo de disco rápido (-z) para discos rápidos como ssd, m.2, etc.

    auditor chkcopy input_path dest_path -z 
  2. Igual que lo anterior, pero con el modo estricto activado, para asegurar que TODOS los archivos en input_path sean revisados ​​y copiados:

    auditor chkcopy input_path dest_path --strict
  3. En modo silencioso (-q) y detenerse ante el primer error (-x).

    auditor chkcopy input_path dest_path -q -x
  4. Puede usar -i y/o -e para incluir o excluir archivos del proceso (No se puede usar con --strict).

    auditor clone input_path dest_path -q -x -i "**/*.txt" -e "**/dir1/**/*

Nota: input_path ¡Debe tener archivos de auditoría (Audit_FullList / Audit_Stamp)!

)

infoNo realiza comprobación de integridad del hash. Solo analiza los archivos de auditoría y su contenido, input_pathy muestra información útil. Puede utilizarse después de haber realizado el hash.

Ejemplo de información forense

auditor info input_path

Esto:

  1. Obtener archivos de auditoría (Ruta predeterminada: dentro de la raíz de input_path):
  2. Verifique si existen los archivos de Audit_Stampauditoría Audit_FullList.
  3. Verifique si los archivos listados en Audit_Stampexisten Audit_FullListy si el tamaño listado es el mismo que en input_path.
  4. Verifique si todos los archivos en input_pathestán listados en Audit_FullList.
  5. Recalcular los datos de integridad Audit_FullList y compararlos con el archivo de auditoría.Audit_Stamp
  6. Proporcione un informe del tamaño de los archivos y de todas las rutas de entrada.
)

Notas

1: En Windows PowerShell, las rutas con nombres que contienen espacios deben ir entre comillas simples, sin la barra invertida final \. Si lo desea, puede usar una doble barra invertida al final \\. Esto se debe a que la barra invertida simple escapa las comillas finales, y la terminal no puede interpretar la ruta correctamente.

Esto funciona: "C:\My Data Path" o"C:\My Data Path\\"

Esto falla: "C:\My Data Path\"

2: Las opciones -i y -e (Incluir y excluir patrones) utilizan la sintaxis glob. ¡Consulta un breve manual aquí!

Descargar

Descarga y datos de integridad de los binarios (dentro del archivo zip):

Aviso legal: Esta versión auditorse proporciona como software en fase de desarrollo, SIN garantía ni soporte de ningún tipo , y es gratuita únicamente para uso no comercial . Úsela bajo su propia responsabilidad.

Licencia: Esta versión auditortiene licencia únicamente para uso no comercial . Consulte los términos completos de la licencia para obtener más información.

Extras

Formato de los archivos de auditoría

El formato de los archivos de auditoría es sencillo. Cada línea contiene:

hash_value ?ALGORITHM[<THASH-BlockSize>]|file_size[:hex]*relative_filepath
donde [ ] son ​​opcionales:

hash_value: valor del hash.

ALGORITHM[<THASH-BlockSize>]Algoritmo utilizado para calcular el hash, almacenado en mayúsculas para mantener la compatibilidad con otras herramientas. El parámetro <THASH-BlockSize> es opcional e indica si se utilizó el método de hash y el tamaño del bloque. El tamaño del bloque debe estar en KB, MB, GB o TB. Ej.: 10MB.

file_sizeTamaño del archivo original tras aplicarle el hash. Útil para comprobaciones y para mejorar la velocidad cuando el tamaño no coincide. ¿Por qué aplicar el hash a un archivo grande si ya se sabe que su tamaño no coincide con el del original?

[:hex]Indicador opcional para indicar que las rutas de archivo están en formato hexadecimal. Esto es necesario porque algunos sistemas operativos permiten caracteres como '\n', '\r' o '\0', y el formato hexadecimal evita problemas al formatear los resultados.

relative_filepath: La ruta de acceso relativa del archivo cifrado.

Ejemplo 1: uso del método thashcon el algoritmo sha256 y un tamaño de bloque de 50 MB:

281d5d93464f1165ea7c403ca99d63ff4bf9a360864f8df4bd0e8e6c03774e98 ?SHA256<THASH-50MB>|500000*file_hashed.bin

Ejemplo 2: utilizando el método normal, solo que con el algoritmo blake3, con la ruta del archivo en formato hexadecimal.

7357b67824d086dc53f5e1ded565f500456bea1812783f1fbcddc08fddc3944c ?BLAKE3|2233:hex*1aCb344356e4e2b2b6

En el futuro se podrán implementar otros formatos.



Puntos de referencia

Utilizando hiperfino , pruebas entre auditorSe realizaron fsum, rhash y hashdeep64 y los resultados se muestran a continuación.

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
¿Tienes alguna sugerencia o has encontrado algún error? Contáctanos en: [email protected]