Español | English
rss facebook linkedin Twitter

Forense: Fiabilidad de las MAC times

A la hora de realizar un análisis forense de un sistema UNIX comprometido las fuentes de información más útiles suelen ser:
• Logs y registros de acceso
• Timestamps del sistema de archivos (MAC times)
• Contenido de los ficheros
• Espacio de disco no asignado

El problema es que esta información puede haber sido manipulada por el intruso, de forma que podemos obtener datos engañosos.

Existen mecanismos que nos permiten contrastar algunas de estas fuentes y depurar posibles datos manipulados, como por ejemplo:
• Podemos guardar los logs en un equipo externo y securizado para evitar que puedan ser alterados. Esto debería ser un punto obligatorio en cualquier política de seguridad, aunque no es tan común como desearíamos.
• Podemos realizar backups externos periódicos de los binarios del equipo y de los ficheros de configuración para poder compararlos con los actuales y verificar si han sido manipulados.
• También podemos calcular firmas (MD5/SHA) de todos los ficheros del equipo para poder saber que ficheros han cambiado.

Sin embargo poco podemos hacer para garantizar que los Timestamps del sistema de archivos no han sido manipulados.

Es habitual que un atacante experto modifique las fechas de los ficheros que crea o modifica. Para ello se suele utilizar la herramienta de sistema: touch.

La sintaxis de esta herramienta es: touch –t TIMESTAMP fichero

Si no especificamos más, se modificaran los campos mtime y atime.

Mtime = Fecha de última modificación
Atime = Fecha de ultimo acceso

Si queremos modificar algún campo en concreto:

touch -a … -> atime
touch -m … -> mtime

Algunos se preguntarán, ¿Y qué pasa con el ctime?

El ctime recoge la fecha del último cambio (a nivel de inodo). Por ejemplo puede contener la fecha en la que el fichero se creó, la fecha del último cambio de los permisos, del último cambio de propietario o cuando se ha cambiado su timestamp.

Por eso si usamos el comando touch del sistema el campo ctime se actualiza con la fecha actual.

Pero este campo ctime está almacenado en el propio sistema de archivos y nada impide que pueda ser modificado por cualquier usuario con privilegios suficientes (p.e. root).

Para ello existen herramientas como touch2 que permiten también modificar el ctime a gusto y ocultar completamente la fecha modificada.

Como anécdota contare que antiguamente se utilizaba un “truco” bastante bestia para modificar el ctime sin herramientas que consistía en cambiar la fecha del reloj del sistema cuando se modificaba un fichero. De esta forma la fecha que quedaba registrada era la que deseaba el intruso. De cualquier forma, un cambio de hora suele quedar reflejado en varios sitios y aunque servía para ocultar el fichero, podía hacer bastante ruido.

Otro punto a tener en cuenta cuando analizamos MAC times es que en algunos sistemas UNIX modernos (p.e. Linux) el registro del atime suele estar deshabilitado por temas de privacidad (tiene su lógica en sistemas de escritorio pero no en servidores). Esto sucede cuando la partición se monta con la opción “noatime” (mount -o noatime).

Por último, para repasar, si queréis jugar un poco con los MAC times de vuestro equipo algunos comandos útiles:

ls -l fichero -> muestra el mtime
ls -l -c fichero -> muestra el ctime
ls -l -u fichero -> muestra el atime
stat fichero -> muestra el estado del fichero (incluidas las MAC times)


Ramón Pinuaga
Dpto. Auditoría S21SEC

(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login