Principios de las herramientas forenses de memoria

4

Actualmente estoy escribiendo una tesis sobre forense digital que incluye un capítulo sobre memoria forense. Además de las herramientas y los métodos de adquisición de diversos datos con ellos, Estoy un tanto desesperado por encontrar información sobre cómo estas herramientas (por ejemplo, Volatility ) realmente funcionan en teoría. Por ejemplo, cómo identifican las compensaciones, los procesos, las conexiones, las diferencias en la memoria según el sistema operativo al ver el volcado sin formato o cualquier otra forma.

¿Cómo funcionan las herramientas de análisis de memoria? ¿Qué método utilizan? Parece que no puedo encontrar mucha información sobre esto.

    
pregunta user3127632 27.07.2014 - 20:01
fuente

1 respuesta

4

Muchas herramientas de análisis buscan estructuras de datos conocidas (es decir, patrones) en la memoria que indican un tipo particular de información.

Por ejemplo, la memoria malloc'd tiene datos de encabezado (y, a veces, final) que apuntan hacia adelante y hacia atrás en la memoria hacia la memoria adyacente. Los punteros de memoria de Free'd pueden saltar en la memoria si no están consolidados / fusionados.

Las aplicaciones de Windows C ++ tienen la noción de clases y un puntero "this", que apunta a una clase. La estructura de las clases de C ++ es conocida, por lo que cuando se encuentra uno de estos indicadores, se puede derivar una gran cantidad de información sobre la clase. Si se trata de una clase / tipo de datos conocidos, puede analizarse con relativa facilidad.

Los archivos abiertos en la memoria pueden ser descubiertos por sus "firmas de archivos" (generalmente los primeros 3 o más bytes del archivo). Si se encuentran, se puede hacer un análisis rápido para determinar si en realidad es un archivo legítimo de ese tipo o si fue una suerte que se hayan producido esos bytes.

Entonces, en general, muchas herramientas de análisis de memoria buscan patrones conocidos en la memoria y / o se enganchan en estructuras de datos clave dentro del kernel y luego analizan la memoria desde allí. Una vez que encuentre áreas de código, puede "desensamblarlas" y buscar referencias (punteros) a otras regiones de la memoria. Y siguiendo esas puedes encontrar otras estructuras de datos.

Espero que ayude a algunos.

    
respondido por el Nick 27.07.2014 - 20:26
fuente

Lea otras preguntas en las etiquetas