Cómo congelarte el dedo (o cold boot attack)

Este domingo pasado se dieron dos factores interesantes: el primero, una tarde-noche tirando a bastante aburrida y el segundo, que tenía materiales que me habían llegado el sábado. Así que decidí probar algo que había leído. Una técnica de la que había oído hablar mucho pero que no había tenido la oportunidad de probar personalmente: un “cold boot attack”.

Para aquellos que no sepan de que va, se trata de una técnica en la cual se aprovecha que la información de la memoria RAM no se borra instantáneamente, sino que se degrada poco a poco durante un breve tiempo. Ese tiempo parece ser de unos segundos, pero si se reduce la temperatura de la memoria RAM, se puede conseguir que este tiempo se incremente sustancialmente.

Una vez introducida brevemente la teoría es hora de pasar a la práctica, que es lo interesante. En este caso vamos a hacer un montaje casero, en un escenario en el que no se cuenta con demasiados recursos: un ordenador con Windows 7 y 2 GB RAM DDR3 y otro con Windows 7 y 4 GB de RAM DDR3. El primero será el sistema atacado y en el segundo se montará el modulo de RAM, que además contará con memoria extra (los otros 4GB) con la esperanza de que al cargar el sistema operativo (otro Windows 7) no se sobrescriban los datos alojados en la RAM “congelada”.

Aunque esta forma no es la más óptima, el objetivo es realizar una prueba de concepto simple y fácil de montar, ya habrá tiempo más adelante de probar en detalle.

El proceso llevado a cabo consistió en arrancar el PC con el modulo de 2 GB de RAM con sistema operativo Windows 7, en el que se abren diversos procesos: navegador firefox, imagen descargada de Google, un cliente de VoIP y otros programas. Con esto se busca dejar trazas en la RAM que puedan ser identificadas en un posterior análisis forense: se busca un punto conocido por el que poder buscar después.

Una vez hecho, botonazo y a empezar el lío. Con el PC previamente abierto, sacamos el módulo de RAM y se mete en un recipiente especializado (también conocido como tupper viejo de la cocina), se empieza a rociar la RAM para enfriarla y cuando han pasado unos segundos (a decir verdad no probé la temperatura, pero había cristales de hielo) la coges con el dedo y consigues el primer objetivo del post: dedo congelado.

Acto seguido, se conecta el modulo de RAM “congelado” y se enciende el PC. Cuando ha terminado de arrancar se lanza DumpIt la utilidad de volcado de RAM, una herramienta que crea una imagen en RAW del contenido de la memoria, que es lo que posteriormente será analizado.

Una vez hecho esto ya se puede pasar al siguiente paso, al cual me ayudó mi compañero David García (que tuvo la genial idea de utilizar foremost): análisis de la RAM. Para ello utilizamos dos herramientas clásicas: volatility y foremost. Con el primero encontramos diferentes procesos abiertos y demás, pero nada que nos pareciera una prueba concluyente. Con el segundo, foremost, encontramos esto:

Aunque como puede apreciarse, la imagen no está completa, pero se recupera gran parte y se ve claramente que es la imagen que se tenía en memoria.

No esta mal para un primer intento, ¿verdad? En otro post analizaremos soluciones a este tipo de ataques y formas de enfocar el forense, pero como resumen ya sabéis que a) no estáis a salvo solo con apagar el PC y b) debéis llevar un spray congelante si trabajáis para la NSA.

(Nota: el autor no se hace responsable de módulos de RAM rotos ni dedos congelados ;-) )