domingo, 16 de octubre de 2011

Primer troyano para MAC que detecta la virtualización

Desde el blog de F-Secure alertan de la aparición del primer troyano para Mac que detecta si está siendo ejecutado en una máquina virtual, para así alterar su comportamiento y evitar ser analizado.

El hecho de que el malware compruebe si se está ejecutando en un entorno de virtualización no es nada nuevo. Es una técnica que viene siendo utilizada desde hace años por gran cantidad de malware. Esto tiene un claro objetivo: los que analizamos malware solemos ejecutarlo en un entorno virtual, que permite aislar los efectos y poder volver rápidamente a un entorno "limpio" restaurando a un estado anterior.

Existen infinitas técnicas para comprobar si se está en una máquina virtual, y se ha convertido casi en un arte: buscar procesos característicos, ficheros, drivers que suelen venir en los virtualizadores más populares... Los troyanos realizan una comprobación nada más ser ejecutados y, si los detectan, no continúan. Los analistas debemos entonces o bien pasar a un entorno físico, intentar conocer qué buscan e intentar engañarlos, o bien utilizar software de virtualización menos popular (evitar VirtualBox o VMWare).

También el malware utiliza la detección de máquinas virtuales para eludir los análisis automáticos que suelen realizar sandboxes públicas que se encuentran automatizadas.

Si bien es un método antiguo, sí es cierto que es la primera vez que se observa este tipo de comportamiento en malware destinado al sistema operativo de Apple. Como viene siendo habitual, los avances técnicos de los creadores de malware suelen estar enfocados hacia evitar a los analistas "manuales". De entre sus "enemigos", son los más "peligrosos" para ellos. Desde luego, el usuario final no le supone tanto problema por ahora. Con la ingeniería social le basta y no le hacen falta artificios técnicos. En el caso de Mac, su enemigo más fuerte tampoco son los antivirus ni necesita esforzarse demasiado por eludirlos.

La muestra analizada por F-Secure en concreto, se hacía pasar por una actualización de Adobe Flash Player, y en caso de detectar que está siendo ejecutando sobre una máquina virtual, detiene por completo su ejecución. Por el momento, la única máquina virtual que sobre la que se comprueba si está corriendo es VMWare.

Existen numerosos métodos para comprobar si se está en un entorno virtual. Se puede encontrar información en la propia página de VMWare, con sus pros y sus contras:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009458

En este caso en concreto no se utiliza ninguna de las técnicas descritas en la web de VMWare, muy posiblemente porque no funcionan en el 100% de los casos. Este troyano en cuestión recurre a un método descubierto por el investigador Ken Kato, que consiste en interactuar con un puerto de Entrada/Salida (puerto 'VX') que no debería existir en un entorno no virtualizado, puesto que es utilizado por la máquina huésped para comunicarse con la máquina virtual.


Sergio de los Santos
ssantos@hispasec.com
Twitter: @ssantosv

Javier Rascón
jrascon@hispasec.com


Más información:

Mac Trojan Flashback.B Checks for VM
http://www.f-secure.com/weblog/archives/00002251.html

1 comentario: