Actaeon, el "cazador" de hipervisores

Acteón, el cazador transformado en ciervo por Artemisa
... y devorado por sus propios perros.
Actaeon es una herramienta para realizar análisis forense de memoria en entornos de virtualización. A partir de un volcado de memoria física, Actaeon puede lograr tres objetivos importantes: 1) localizar cualquier hipervisor (monitor de máquina virtual) que utiliza tecnología Intel VT-x, 2) detección y análisis de virtualización anidada y mostrar las relaciones entre los diferentes hipervisores se ejecutan en el misma máquina, y 3) proporcionar un mecanismo transparente para reconocer y apoyar el espacio de direcciones de las máquinas virtuales.

Actaeon consta de tres componentes:

 - hyperls: un plugin de Volatility para listar los hipervisores en un volcado de memoria e imprimir varios datos sobre ellos.
 - Un parche de Volatility para permitir que otros plugins y comandos sean aplicados a cada sistema operativo invitado.
 - Un dumper VMCS, basado en el código HyperDBG

Actaeon adopta un enfoque independiente del hipervisor en base a la localización de la estructura de datos VMCS en la memoria. Por lo tanto, debe ser capaz de detectar cualquier hipervisor (benigno o malicioso) que utiliza esta tecnología. Hasta el momento, han probado con éxito con KVM (kernel 3.6.0), Xen (4.2.0), VMware Workstation (9.0.1), VirtualBox (4.2.6) y la última versión de HyperDBG - incluyendo diferentes combinaciones anidadas (por ejemplo, ,KVM bajo Xen, VMWare o VirtualBox). De momento las pruebas se limitan a sistemas operativos de 32 bits (las pruebas con 64 bits y Microsoft Hyper-V están de camino).

Actaeon necesita conocer los offsets de determinados campos dentro del VMCS. Por el momento, la distribución contiene dos microarquitecturas Intel (Sandy Bridge y Penryn) y una serie de VMCS personalizados utilizados para soportar hipervisores anidadas (Xen, KVM y VMware Workstation).


Descarga e instalación:

Para instalar Actaeon en un sistema Linux sigue estos sencillos pasos:

cd /tmp
git clone git://github.com/eurecom-s3/actaeon.git

[-- Dumper
cd "yourdir"
svn checkout http://hyperdbg.googlecode.com/svn/trunk/ hyperdbg-read-only
cd hyperdbg-read-only
cp /tmp/actaeon/dumper/hdbg.diff hyperdbg-read-only/
patch -p0 < hdbg.diff

[-- Volatility patch
cd "yourdir2"
wget http://volatility.googlecode.com/files/volatility-2.2.zip
unzip volatility-2.2.zip
cd volatility-2.2/
cp /tmp/actaeon/vol_patch/intel.diff .
cp /tmp/actaeon/vol_patch/windows.diff .
patch -p0 < intel.diff
patch -p0 < windows.diff


[-- Volatility Plugin
cp -R /tmp/actaeon/plugin/hypervisors/ "yourdir2"/volatility/plugins/
 
Ejemplos

Estos dos vídeos muestran cómo utilizar Actaeon (ajustar a resolución de 1080p para una mejor calidad):

Actaeon vs VMware Workstation 9.0


Actaeon vs KVM and nested Virtualization

Comentarios