30 mar 2010

Análisis forense de la cache de DNS en equipos Windows

Según la metodología de SANS para la recolección de información forense en vivo (una de las más prestigiosas). El orden de volatilidad de las evidencias digitales es la siguiente:

1) CPU, cache y contenido de los registros
2) Tabla de enrutado, tabla ARP, tabla de procesos, estadísticas del kernel
3) Memoria
4) Ficheros temporales, espacio de intercambio
5) Información en discos duros
6) Información registrada remotamente
7) Datos guardados en dispositivos de almacenamiento

Cuanto más volátil es una evidencia, antes debe ser recuperada para evitar su alteración.

En entornos Windows existe un tipo de evidencia que suele ser olvidada por la literatura clásica: la cache de DNS. Que podríamos situar en el punto 2 de la anterior lista, por su alta volatilidad.

Para recuperar esta cache podemos utilizar el comando ipconfig de la siguiente forma:

ipconfig /displaydns

El formato de la salida es el siguiente:
ejemplo.net
----------------------------------------
Nombre de registro . : ejemplo.net
Tipo de registro . . : 1
Período de vida . . . : 84627
Longitud de datos . . : 4
Sección . . . . . . . : respuesta
Un registro (host). . : 10.0.0.150
A simple vista podemos ver la gran utilidad de esta información. Nos permite determinar que nombres DNS se han resuelto últimamente y cuando se han introducido en la cache. Es decir, podemos deducir con bastante precisión a que sitios se ha conectado desde el equipo en las últimas horas o minutos (dependiendo del tiempo de caducidad de cada registro).

Esta información puede ser muy interesante si no ha transcurrido mucho tiempo desde el suceso a investigar, pero recordemos que esta información es altamente volátil y desaparece rápidamente.

Para calcular el momento en el que se creó la entrada en la cache tenemos que hacer un sencillo cálculo: Obtener el tiempo de caducidad del registro y restar el tiempo de vida que queda. La diferencia será el tiempo que ha pasado desde que el registro se introdujo en la cache.

En este ejemplo:
C:\> nslookup -type=A -debug ejemplo.net | findstr ttl
Respuesta no autoritativa:
ttl = 27338 (7 hours 35 mins 38 secs)
ttl = 86400 (1 day) - Caducidad del registro
Obtenemos el siguiente cálculo:

86400 - 84627 = 1773 - Hace unos 30 minutos que se creó la entrada en la cache.

Se puede automatizar este proceso para realizar un resumen de todas las entradas que existan en la cache y poder obtener un cronograma aproximado de la actividad DNS reciente en el equipo (y a partir de ella deducir la actividad de red). Muy útil.

Autor: Ramón Pinuaga Cascales - Dept. Auditoria S21sec
Fuente: Blog S21sec

Suscríbete a nuestro Boletín

2 comentarios:

  1. Bueno si aplicamos el comando -Ipconfig /flushdns- la cache de DNS se vaciara en el momento ademas de como bien dice el articulo es muy volátil.

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!