¿Puede extraer el contenido de la memoria de una máquina Windows hibernada?

14

En una discusión reciente sobre hacks de hardware, surgieron ataques relacionados con hibernación de Windows. No estoy completamente convencido de que sería viable eliminar las cosas de la memoria guardada en el disco.

Cuando Windows hiberna, coloca el contenido de la RAM en un archivo en el disco (y quizás otras cosas, no sé) y luego se apaga. Cuando se vuelva a encender, asumo que aparece el contenido de la RAM guardada en la RAM real.

Por lo tanto, un ataque hipotético sería robar el archivo de disco guardado, robando así los contenidos de la RAM, que pueden incluir datos confidenciales como contraseñas, o dañar la memoria cambiando los contenidos de la RAM, agregando / editando instrucciones de manera arbitraria. Se ejecuta el código.

Ahora, sé que un atacante que tiene acceso físico a una máquina puede hacer casi cualquier cosa, pero teniendo en cuenta estos ataques específicos, ¿es esto posible? Suponiendo que no haya encriptación en todo el disco, ¿Windows en realidad cifra la RAM guardada cuando hiberna?

Además, ¿alguien sabe dónde se almacenará este archivo? Entonces, ¿puedo intentar ver los contenidos del disco, tal vez usando un LiveCD?

    
pregunta sudhacker 08.11.2012 - 16:14
fuente

3 respuestas

15

Sí, lo almacena sin cifrar en el disco. Es un archivo oculto en C:\hiberfil.sys , que siempre se creará en cualquier sistema que tenga habilitada la hibernación. Los contenidos se comprimen usando el algoritmo Xpress, cuya documentación está disponible como Documento de Word de Microsoft . Matthieu Suiche hizo un análisis completo de la misma como una presentación de BlackHat en 2008, que puede obtener como un PDF . También hay una herramienta llamada MoonSols Windows Memory Toolkit que te permite volcar el contenido del archivo. Aunque no sé si te permite volver a convertir. Es posible que tengas que buscar la manera de hacerlo tú mismo.

Una vez que haya eliminado los datos, es posible extraer o modificar los datos, incluidas las instrucciones. En términos de mitigación, su mejor solución es utilizar el cifrado de disco completo como BitLocker o TrueCrypt.

    
respondido por el Polynomial 08.11.2012 - 16:30
fuente
5

Es posible acceder al contenido de una imagen de hibernación simplemente arrancando la computadora, que reanuda la imagen. Esto es después de todo el punto de hibernación. Si la reanudación no requiere ningún secreto, significa que la imagen de hibernación es independiente, no puede haber ninguna protección contra el acceso de un atacante, ya que no hay manera de distinguir a un atacante de un usuario legítimo.

La reanudación puede no proporcionar acceso a todo, por ejemplo. si vuelves a un indicador de desbloqueo de pantalla. Hacer una copia de la imagen de hibernación le permitirá iniciarla varias veces. Incluso puede intentar iniciarlo en una máquina virtual, aunque tendría que emular el hardware original para que la restauración tenga éxito.

Por supuesto, la mejor manera de acceder a los datos que se han escrito en la imagen de hibernación es leerlos sin ejecutarlos ( la respuesta de Polynomial tiene punteros a la documentación del formato).

En principio, es posible encriptar la imagen de hibernación, pero eso requiere un cambio de interfaz de usuario: alguien debe ingresar la clave de descifrado al reanudar (generalmente escribiendo una contraseña o, por ejemplo, insertando una tarjeta inteligente). Que yo sepa, Windows no admite el cifrado del archivo de hibernación, incluso con Bitlocker ( las preguntas frecuentes son ambiguas, este artículo reclama la ausencia de dicha característica). TrueCrypt admite la encriptación del archivo de hibernación, al igual que el mecanismo de hibernación y encriptación de disco de Linux.

Tenga en cuenta que una imagen en hibernación cifrada no sirve para un atacante que roba el disco, pero no se defiende contra un evil maid attack , donde alguien tiene acceso al sistema hibernado y puede plantar malware en la imagen de arranque, que se activará cuando un usuario legítimo vuelva a aparecer y ingrese la contraseña. La defensa contra tales ataques requiere verificar la integridad del gestor de arranque (incluido el servicio de reanudación), esto no es diferente de atacar el arranque en frío de un sistema.

    
respondido por el Gilles 08.11.2012 - 20:40
fuente
3

Tales ataques son posibles. El nombre del archivo es "hiberfil.sys", ubicado en la raíz de la partición de Windows. La ubicación puede ser cambiada. Windows no cifra el archivo de hibernación ni de intercambio (pagefile.sys). Para evitar este tipo de ataque sin conexión, se debe utilizar el cifrado completo del disco (de la unidad del sistema y la unidad que almacena hiberfil.sys y pagefile.sys si se han cambiado sus ubicaciones).

    
respondido por el Matrix 08.11.2012 - 16:24
fuente

Lea otras preguntas en las etiquetas