Volatility es una colección de herramientas de análisis forense para extracción de pruebas digitales de muestras de RAM, implementado en Python bajo la Licencia Pública General GNU.
Las técnicas de extracción se realizan completamente independientes del sistema que se está investigando, pero ofrecen visibilidad del estado en tiempo de ejecución del sistema. Volatility tiene por objeto poder realizar técnicas asociadas con la extracción de pruebas digitales a partir de muestras de memoria volátil y proporcionar una plataforma de referencia para esta excitante área de investigación. Al estar escrita en Python es completamente multiplaforma.
Volatility no proporciona ninguna herramienta para la adquisición de muestras de memoria. Para dicha tarea, hay herramientas tanto de software libre como comerciales que hacen esta función. Soporta una variedad de formatos de archivo y la capacidad de convertir entre estos formatos:
- Raw linear sample (dd)
- Hibernation.
- Crash dump.
- VirtualBox ELF64.
- Archivos de estado y de snapshot de Vmware.
- Formato EWF(E01)
- LiME (Linux Memory Extractor).
- Mach-O.
- QEMU.
- Firewire .
- HPAK (FDPro).
Puede analizar las imágenes de memoria RAM de los siguientes sistemas operativos:
Windows:
- 32-bit Windows XP Service Pack 2 y 3.
- 32-bit Windows 2003 Server Service Pack 0, 1 y 2.
- 32-bit Windows Vista Service Pack 0, 1 y 2.
- 32-bit Windows 2008 Server Service Pack 1 y 2.
- 32-bit Windows 7 Service Pack 0 y 1.
- 32-bit Windows 8, 8.1, y 8.1 actualización 1.
- 32-bit Windows 10.
- 64-bit Windows XP Service Pack 1 y 2.
- 64-bit Windows 2003 Server Service Pack 1 y 2.
- 64-bit Windows Vista Service Pack 0, 1 y 2.
- 64-bit Windows 2008 Server Service Pack 1 y 2.
- 64-bit Windows 2008 R2 Server Service Pack 0 y 1.
- 64-bit Windows 7 Service Pack 0 y 1.
- 64-bit Windows 8, 8.1, y 8.1 actualización 1.
- 64-bit Windows Server 2012 y 2012 R2.
- 64-bit Windows 10.
Linux:
- 32-bit kernels Linux 2.6.11 hasta el 4.2.3.
- 64-bit kernels Linux 2.6.11 hasta el 4.2.3.
- Distribuciones: OpenSuSE, Ubuntu, Debian, CentOS, Fedora y Mandriva.
Mac OSX:
- 32-bit 10.5.x Leopard.
- 32-bit 10.6.x Snow Leopard.
- 64-bit 10.6.x Snow Leopard.
- 32-bit 10.7.x Lion.
- 64-bit 10.7.x Lion.
- 64-bit 10.8.x Mountain Lion.
- 64-bit 10.9.x Mavericks.
- 64-bit 10.10.x Yosemite.
- 64-bit 10.11.x El Capitan.
Posee una gran cantidad de plugins para realizar diferentes tareas de análisis forense, en diferentes sistemas operativos entre los que se encuentran:
Windows:
- Ver información AmCache del registro (amcache).
- Volcar archivos de registro en disco (dumpregistry).
- Detectar estructuras de registro de servicio ocultas (servicediff).
- Ver el tiempo de apagado desde el registro (shutdowntime).
- Agregar opciones a yarascan para analizar el proceso y la memoria del núcleo a la vez.
- Identifica los flujos de datos alternativos NTFS (Mftparser).
- Permite comprobar las políticas de auditoría (auditpol).
- Extraer archivos almacenados en caché (exe/pdf/doc/etc).
- Extraer claves privadas, claves públicas de SSL y certificados.
Mac OS X:
- Ver y extraer datos de intercambio comprimido (mac_compressed_swap).
- Detectar automáticamente los perfiles de Mac OS X (mac_get_profile).
- Reportar los alcances y oyentes de Kauth (mac_list_kauth_scopes | listeners)
- Identificar aplicaciones con sockets promiscuos (mac_list_raw).
- Encontrar subprocesos ocultos (mac_orphan_threads).
- Ver variables de entorno de proceso (mac_psenv).
Linux:
- Ver variables de entorno dinámico de Linux (linux_dynamic_env).
- Ver el directorio de trabajo actual de los procesos (linux_getcwd).
- Ver estructuras de conexión de red (linux_netscan).
- Manejo de las regiones de memoria Linux de mprotect ().
- Recupera el historial de bash (linux_bash).
- Muestra la lista los sockets abiertos (linux_netstat).
- Muestra los procesos junto con la línea de comandos completa y la hora de inicio (linux_psaux).
- Recopila procesos junto con sus variables de entorno estático (linux_psenv).
Más información y descarga de Volatility:
http://volatilityfoundation.org/