Recientemente me vi en la necesidad de implementar un mecanismo que me permitiera determinar la integridad de archivos en un servidor Web.
Pero, ¿Que es la integridad de archivos?
En terminos de seguridad de la información, la integridad es la propiedad que busca mantener los datos libres de modificaciones no autorizadas. La violación de integridad se presenta cuando un empleado, programa o proceso (por accidente o con mala intención) modifica o borra los datos importantes que son parte de la información.*
Con lo anterior como referencia genere una solución simple basada en batch que me permite identificar si algún archivo ha sido modificado (ya sea por hacking o por error) y en caso de ser así, reportarlo vía correo electrónico.
Dicho batch requiere las herramientas hashdeep para la generación de hashes y de bmail el cual hace la función de envio de mail; siendo las dos gratuitas.
Lo primero fue generar un archivo de referencia que contiene los hashes de los archivos que son confiables.
Para la generación del archivo base (o de referencia) ejecute la herramienta de manera recursiva sobre el directorio donde estan todos los archivos y páginas del sitio Web.
Posteriormente y por medio de la utileria AT de Windows calendarice la ejecución recurrente en busqueda de cambios en los archivos, de no existir cambios no se reportará nada, de lo contrario se enviará por correo a la cuenta que se indique los archivos modificados.
Cabe mencionar que se debe adaptar la parte del MAIL-SERVER por la dirección del servidor de correo electronico que nos permitirá el relay, así como las direcciones correspondientes al remitente y al destinatario.
Si bien es cierto que existen herramientas de pago mucho más completas que permiten esto y aun más, tambien es notable comentar que con las pequeñas lineas de código arriba mostradas se logra el objetivo propuesto y sin costo alguno.
Esperando que esto pueda ser de utilidad en algún momento.
Pero, ¿Que es la integridad de archivos?
En terminos de seguridad de la información, la integridad es la propiedad que busca mantener los datos libres de modificaciones no autorizadas. La violación de integridad se presenta cuando un empleado, programa o proceso (por accidente o con mala intención) modifica o borra los datos importantes que son parte de la información.*
Con lo anterior como referencia genere una solución simple basada en batch que me permite identificar si algún archivo ha sido modificado (ya sea por hacking o por error) y en caso de ser así, reportarlo vía correo electrónico.
Dicho batch requiere las herramientas hashdeep para la generación de hashes y de bmail el cual hace la función de envio de mail; siendo las dos gratuitas.
Lo primero fue generar un archivo de referencia que contiene los hashes de los archivos que son confiables.
Para la generación del archivo base (o de referencia) ejecute la herramienta de manera recursiva sobre el directorio donde estan todos los archivos y páginas del sitio Web.
hashdeep -r C:\wwwroot\*.* > C:\BASELINE.MD5
Posteriormente y por medio de la utileria AT de Windows calendarice la ejecución recurrente en busqueda de cambios en los archivos, de no existir cambios no se reportará nada, de lo contrario se enviará por correo a la cuenta que se indique los archivos modificados.
hashdeep.exe -r -vvv -a -k C:\BASELINE.MD5 C:\wwwroot\*.* > C:\XMATCH.TXT
find "passed" XMATCH.TXT > NUL
IF NOT ERRORLEVEL 1 goto :SIN-CAMBIOS
IF ERRORLEVEL 1 goto :ALTERACION-IDENTIFICADA
:SIN-CAMBIOS
exit
:ALTERACION-IDENTIFICADA
bmail -s MAIL-SERVER -t destinatario@dominio.com -f remitente@dominio.com -h -a "ALERTA: ALTERACION A CONTENIDO DE SITIO WEB" -m XMATCH.TXT -c
GOTO :SALIR
:SALIR
exit
Cabe mencionar que se debe adaptar la parte del MAIL-SERVER por la dirección del servidor de correo electronico que nos permitirá el relay, así como las direcciones correspondientes al remitente y al destinatario.
Si bien es cierto que existen herramientas de pago mucho más completas que permiten esto y aun más, tambien es notable comentar que con las pequeñas lineas de código arriba mostradas se logra el objetivo propuesto y sin costo alguno.
Esperando que esto pueda ser de utilidad en algún momento.
*Wikipedia