Incident Response, Security and Forensics"

.

miércoles, 27 de agosto de 2008

Parte I: Analisis forense en pantallazos azules (BSOD)

A todos nos ha pasado. ¿Quien no ha visto una famosa pantalla azul?. En la mayoria de los casos cuando se produce un fallo de estas caracteristicas achacamos el problema al maldito Windows.

Un pantallazo azul a lo contrario de la creencia popular es una parada ordenada que el sistema realiza ante un problema grave que sucede en modo kernel. Todos los sistemas operativos que se basan en kernels monolíticos, comparten el mismo espacio de memoria. (por ejemplo los dispositivos y aplicaciones básicas del sistema) y cuando se produce un fallo que puede alterar la memoria, el sistema manda una orden de parada al procesador, antes de que ocurra un fallo más grave.

Si en contra se produce un fallo en un proceso de usuario, al utilizar memoria compartida provoca el famoso 'casque' de la aplicación sin que se corrompa la memoria, tan solo se puede producir la perdida de datos de esa aplicación.

En el caso de que sea una pantalla azul y cuando se produce un error de estas caracteristicas normalmente se crea un fichero que se llama memory.dmp, el cual contiene información muy valiosa, desde que error lo ha provocado hasta los procesos y aplicaciones que estaban en uso.

Para que un sistema Windows, muestre información ante una parada del sistema hay que configurarlo previamente, en la pantalla sistema.

La información que podemos configurar son las siguientes:

  • Volcado de memoria completo: Vuelca todo el espacio de memoria sobre disco
  • Volcado de memoria del Kernel: Solo se vuelca el espacio de memoria del kernel. El fichero se almacena por defecto en %Systemroot%
  • Volcado pequeño de memoria: Solo almacena la información mínima indispensable Se almacenan en la carpeta %SystemRoot%\Minidump
Se puede utilizar esa información para detectar que ha ocurrido en el sistema o incluso para realizar un analisis forense, ya que del fichero MEMORY.DMP se puede extraer casi de todo, (en ocasiones me he encontrado con contraseñas y con el ejecutable de troyanos.)

EL ENTORNO DE PRUEBAS

Para analizar este fichero precisamos montar un entorno de prueba utilizando diversas herramientas, entre ellas el entorno de depuración de windows y su utilidad WINDBG

Vamos a comenzar primero con la instalación. Primero nos descargamos las librerias de simbolos

http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#d

A continuación las tools

http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a


Seguidamente configuramos 'MiPc' para obtener un volcado completo de la memoria tal y como muestra la imagen.
Por ultimo vamos a provocar un pantallazo azul utilizando la utilidad gratuita
'NotMyfault.exe' de Marck Russinovich (sysinternals). La ejecutamos y disponemos de una preciosa pantalla azul, cuando finalice el volcado de memoria (esta creando el memory.dmp) reiniciamos la máquina y ejecutamos el Windbg, Lo configuramos para que incluya los simbolos del sistema que estan (instalados anteriormente) en c:\Windows\symbols.

Abrimos el fichero desde 'Open crash dump' y ya tenemos en marcha el entorno de depuración.



En la siguiente entrega expondremos los comandos para la depuración.

chao!!!