Herramienta de análisis diferencial de malware en memoria RAM.
|
DAMM es un herramienta de análisis diferencial de malware en memoria RAM, de código abierto construida sobre la herramienta Volatility. Esta desarrollado como marco de pruebas para poner, a disposición de la comunidad, nuevas técnicas de análisis de malware. Estas técnicas son un intento de acelerar el proceso de investigación a través de la reducción de datos y la codificación de algunos conocimientos de expertos en el comportamiento de malware.
Principales características de DAMM:
- Posee 30 plugins de Volatility, combinados con 20 plugins DAMM (por ejemplo, pslist, psxview y otros elementos se combinan en un plugin de procesos).
- Puede ejecutar varios complementos en una sola ejecución.
- Permite almacenar resultados de plugins en las bases de datos SQLite para la preservación o para el análisis «en caché».
- Un sistema de filtrado que permite filtrar fácilmente atributos como “pid” para ver toda la información relacionada con algún proceso y la concordancia exacta o parcial de cadenas, etc.
- Capacidad de mostrar las diferencias entre dos bases de datos de resultados para las mismas máquinas o similares.
- Capacidad de advertir sobre ciertos tipos de comportamiento sospechosos de malware.
- Salida para terminal, tsv o filtrable por grep.
Realizar filtrado con todos los plugins ejecutados en una pequeña muestra de memoria, tenemos casi 14.000 objetos de memoria: procesos, dlls, módulos, etc. Grep puede ser problemático, especialmente cuando se buscan pids, por lo que DAMM incluye un sistema de filtrado, para filtrar en objetos que tienen un atributo pid de un valor determinado.
Con el fin de determinar qué procesos existen en capturas de memoria, se utilizan ciertos atributos de procesos, para crear un identificador único para cada uno. Por ejemplo, por defecto DAMM usa: el pid, ppid, nombre y hora de inicio, como el identificador único de un proceso. Esto tiene sentido, ya que es poco probable que estas cosas cambien a lo largo de la vida del proceso, en oposición a atributos como el número de hilos y identificadores, que cambian constantemente. Este conjunto predeterminado funciona bien para comparaciones de objetos de imágenes de memoria desde el mismo arranque de la misma máquina (por ejemplo, con instantáneas de VM). Pero, ¿Qué pasa con la comparación a través de las imágenes de memoria tomadas de diferentes máquinas? El pid, y ppid probablemente no será el mismo pero: el nombre, la ruta de la imagen y la línea de comandos debe ser la misma. Debido a esto, DAMM permite al usuario especificar qué atributos de un objeto se pueden utilizar para crear un identificador único. Si le decimos a DAMM que sólo utilice: el nombre del proceso, «image_path_name» y «command_line», obtendremos resultados mucho más razonables.
Permite estudiar el comportamiento de infecciónes de malware comparando dos imágenes de memoria, una antes de la infección y otra de después de la infección. Usando el motor de diferenciación, creando previamente dos bases de datos a partir de dos imágenes de memoria distintas, una de antes y otra después de ejecutar el malware, utilizando la opción “–diff”.
En un intento de facilitar aún más el proceso de criba, DAMM tiene un sistema de alerta experimental integrado para detectar signos de actividad maliciosa, incluyendo:
Para ciertos procesos de Windows:
- Relaciones incorrectas padre/hijo.
- Procesos ocultos.
- Ruta binaria incorrecta.
- Prioridad predeterminada incorrecta.
- Sesión incorrecta.
- Para todos los procesos y DLLs cargados:
- Procesos y DLL cargados desde el directorio temporal.
Para DLL:
- Extensiones falsas.
- DLLs ocultas.
Y algunas otras:
- Inyecciones en cabeceras de PE.
- SID que dan acceso al dominio.
- Privilegios de depuración …
Más información y descarga de DAMM:
https://github.com/504ensicsLabs/DAMM
Conjunto de herramientas de análisis forense avanzado de memoria RAM:
http://www.gurudelainformatica.es/2016/11/conjunto-de-herramientas-de-analisis.html