Comprueba la integridad y los cambios de los ficheros con la herramienta binsnitch

Escrito por Sergio De Luz

En muchas ocasiones queremos comprobar que la integridad de uno o varios ficheros no ha cambiado, es decir, que esos ficheros siguen siendo exactamente los mismos que antes, comprobándolo con algoritmos de hashing como MD5, SHA-1, SHA256 y muchos otros. binsnitch es una herramienta gratuita escrita en Python que nos permite comprobar la integridad de los ficheros, y si ha habido algún cambio en ellos.

Principales Características de binsnitch

Esta herramienta binsnitch puede ser utilizada para alertar del cambio en la integridad de los ficheros de nuestro sistema, ya sean documentos, fotos, vídeos e incluso ejecutables del propio sistema operativo. Esta herramienta escaneará un directorio que nosotros le proporcionemos de manera recursiva, es decir, escaneará la carpeta raíz y también todas las subcarpetas con todos los archivos que tengan. binsnitch realizará un seguimiento a todas estas carpetas y archivos, y cuando detecte cualquier tipo de cambio, nos avisará. binsnitch también permite la opción de hacer un seguimiento únicamente a los archivos ejecutables, o a todos los archivos independientemente de su extensión.

El algoritmo de hashing utilizado para comprobar la integridad de todos los ficheros es SHA256, un algoritmo hash que hoy en día se considera seguro ya que no se han descubierto colisiones.

Funcionamiento de binsnitch

Cuando ejecutemos binsnitch, tendremos que pasarle un argumento con la ruta donde queremos que examine la integridad de los archivos. La herramienta lo hará de forma recursiva, y creará un hash SHA256 por cada archivo que encuentre.

La primera vez que lo ejecutamos la herramienta no “conocerá” ningún archivo, una vez que vaya escaneando guardará toda la información en una pequeña base de datos .json con el nombre del archivo, tipo de archivo y su hash. Si ya se conoce el archivo, pero el hash ha cambiado, registrará una alerta en la ruta /data/alert.log, avisándonos de que la integridad del fichero se ha visto comprometida. Por último, si escanea nuevamente el directorio y el hash no han cambiado, no registrará ningún tipo de alerta.

Requisitos e instalación de binsnitch

Esta herramienta está basada en Python, el único requisito es tener instalado en nuestro sistema Python 3.0 o superior. Una vez que nos hayamos descargado o clonado del GitHub esta herramienta:

sudo git clone https://github.com/NVISO-BE/binsnitch

Procedemos a ejecutarlo con la siguiente orden (v = verbose) para monitorizar todos los archivos ejecutables del sistema:

python binsnitch.py -v / 

Otra opción es la de monitorizar todos los archivos en el directorio actual:

python binsnitch.py -v -a . 

Un aspecto que debemos tener muy en cuenta es que esta herramienta consume muchos recursos del sistema, esto es porque realiza un hash SHA256 de todos y cada uno de los archivos (ejecutables o no) del sistema, lo que conlleva mucho tiempo. Sería recomendable utilizar esta herramienta en horario de mínima actividad del sistema.

Os recomendamos visitar el proyecto oficial de binsnitch en GitHub, aquí encontraréis el código fuente y también la descarga del ejecutable .py. Otra herramienta muy conocida para comprobar la integridad de ficheros y carpetas es Tripwire, una herramienta de código abierto para sistemas Linux.