lunes, 18 de mayo de 2020

File Integrity Monitor en Windows con Powershell. Controla los cambios.

Estimados amigos de Inseguros !!!

Hoy vamos a desarrollar ese concepto tan habitual en muchos compliance y normativas y tan poco extendido en los desarrollos de las empresas. La monitorización de integridad de ficheros o FIM.

Ya estuvimos hablando de esto hace años, relacionado con el mundo OSSIM y el cliente OSSEC.

Se trata de monitorizar el cambio de un fichero o ficheros mediante comprobaciones a su HASH.

Imagino que lo sabes, pero HASH es una función matemática que identifica inequívocamente a un elemento, dando la característica de que no puede haber distintos elementos con un mismo HASH ***salvo errores en la función matemática o colisiones*** .


El post de hoy es sencillo, pillas una carpeta con ficheros y carpetas, le haces el HASH, le pasas un hash y lo guardas en un fichero. Cada media hora, cada hora o cada 30 días le vuelves a pasar el procedimiento de cálculo de hashes, y ves las diferencias...

Pues vamos allá...

dir -Path C:\Datos -File -Recurse |
Get-FileHash -Algorithm MD5 |
Export-Csv -Path C:\Temp\Output.csv 


El resultado del fichero sería este:

MD5,"6948C3AC0509326A39798586E5E5561F","C:\Data\origen.txt"
MD5,"D41D8CD98F00B204E9800998ECF8427E","C:\Data\Output.csv"
MD5,"D41D8CD98F00B204E9800998ECF8427E","C:\Data\asdasdasd\dfgdsfgdsfg.txt"

Me da un CSV con el tipo de función hash, el hash, y el fichero...

Ahora voy a cambiar el contenido de dfgdsfgdsfg.txt y a volver a ejecutar la sentencia:

MD5,"4C5352D6D02EFBC3527A8376676E51FC","C:\Data\asdasdasd\dfgdsfgdsfg.txt"

El hash del fichero ha cambiado.

Ahora vamos a usar este maravilloso script del SANS de un curso muy bueno de Powershell del señor Jason Fossen que me va a comparar los dos ficheros...


Como puedes ver, me indica que el fichero tal ha cambiado...

Esto si lo parametrizamos en un "cron" y tiramos una alerta en caso de que aparezcan cambios, nos podría servir para crearnos un sistema FIM bastante decente.

Si quieres más detalles del proceso, puedes leer el artículo original que me ha servido de base para las pruebas aquí.

Espero que lo uses y gracias por leerme !!!