31 octubre 2012

Detección de entornos virtualizados con pafish

Desde hace bastante tiempo venimos escuchando y leyendo nuevos avances en cuanto a Malware se refiere. Uno de estos grandes avances, es a su vez una pesadilla para cualquier analista. Y es ver cómo un Malware que se intenta analizar en un entorno virtualizado, no realiza ningún tipo de acción.

A día de hoy ya es una realidad que muchas variantes de Malware realicen comprobaciones para conocer en dónde se están ejecutando y en función del entorno o arquitectura, realizar un tipo de acción o no.

Personalmente, mis conocimientos de detección de entornos virtualizados bajo la platorma Windows se circunscriben a comprobar por ejemplo los drivers nativos de los fabricantes y algunas claves de registro. Tengo en casa una cantidad ingente de información esperando a ser devorada y lo más importante, comprendida. 

Bajo esta premisa, me he encontrado con un proyecto de Alberto Ortega que personalmente me ha parecido brillante. Se trata de una herramienta muy sencilla que intenta detectar varias características y entornos virtualizados en base a una serie de peticiones. Estos entornos van desde una SandBox a entornos virtualizados, y a nivel de características si se encuentra algún módulo de depuración (Debugging) activo. 

Al probar la herramienta sobre un entorno virtualizado con VirtualBox, la herramienta detecta el entorno de manera exitosa y rápida, mostrando de manera clara y concisa por qué elementos ha preguntado.

Imagen 1.- Detección de entornos virtualizados con Pafish

Como soy un pirata, intenté hacer “sufrir” un poco a la herramienta de Alberto, probándola con algún tipo de aplicación que ocultase el entorno de virtualización. Por regla general, este tipo de aplicaciones enmascaran las peticiones que se realizan desde la capa de usuario, devolviendo en muchos casos respuestas erróneas o falseadas.

Una de estas aplicaciones se llama VMDetectguard. Esta aplicación entre otras funciones, intenta hacer creer a un Malware que se está ejecutando en otro entorno, mediante enmascaramiento de peticiones. 

Imagen 2.- VMDetectGuard. Soporte a diferentes sistemas

A la hora de ejecutar ambas herramientas, se puede comprobar cómo esta solución logra enmascarar ciertas peticiones, pero por el contrario no llega a engañar a esta gran herramienta.


Imagen 3.- Ejecución de Pafish en un entorno enmascarado

Como podréis comprobar, estamos ante una gran herramienta que a mi personalmente me está valiendo de fuente de información, pudiendo conocer de primera mano qué tipo de comprobaciones puede realizar un malware para la detección de entornos virtualizados y características varias.

Al ser open source, se puede ver todas las comprobaciones que la herramienta realiza. Sin duda algo muy práctico para el que quiera conocer con más detalle este tipo de labores, realizadas mayoritariamente por aplicaciones maliciosas.

El proyecto está alojado en GitHub, y os recomiendo que le echéis un vistazo.

Salu2!!

[+] https://github.com/a0rtega/pafish

------------------------------------------------------------
Contribución por Juan Garrido

5 comments :

McA dijo...

A raiz de lo leido, se me ocurre que como una medida mas de protección para un equipo de uso real, se podria simular que estas en un entorno virtual y asi tratar de engañar al malware para que no afecte al equipo.

De esta forma se podria engrosar la lista de herramientas de seguridad (firewall, ids, antivirus...).

masticover dijo...

Excelente artículo y muy bien explicado. Habrá que probar la herramienta. ¡Gracias!

Ignacio Agulló Sousa dijo...

Excelente. ¿Para cuándo una versión que detecte si lo que llamamos "mundo real" es una simulación?

cubiwan dijo...

Están trabajando en ello: http://www.technologyreview.com/view/429561/the-measurement-that-would-reveal-the-universe-as-a-computer-simulation/

Maravento dijo...

excelente post. felicitaciones. y lo que implica este tipo de soluciones (sobre todo en seguridad perimetral). Crear un entorno simulado para enmascarar el real. Una especie de honeypoot avanzado.