La adquisición de la memoria RAM es una tarea importante en los casos de respuesta a incidentes. Por eso, es crucial realizar las acciones asociadas a la adquisición de la memoria RAM de forma correcta y precisa.
Como casi todo en esta área, y la adquisición de memoria RAM no iba a ser menos, hay que dividir el trabajo en tres bloques, uno por cada sistema operativo (hay más de tres sistemas operativos, pero nos centramos en los principales).
Como ya sabemos la RAM es una zona muy activa, donde prácticamente todo queda registrado, bueno, más que registrado diremos que está almacenado temporalmente. Pues esa es la función de la memoria RAM, proveer de almacenamiento rápido al procesador. Así que podemos encontrar información que está de un modo u otro activa en el ordenador. Esto significa que en el momento de la adquisición obtendremos una “foto” del estado actual de la memoria RAM, así como las acciones que hayamos tenido que tomar para poder realizar el volcado de la memoria RAM y que habrá que tener en cuenta cuando analicemos la adquisición.
Pasos previos al volcado de RAM
Antes de poder realizar el volcado o la adquisición de la memoria RAM debemos estar preparados. Esto significa que deberemos conocer el procedimiento, conocer las herramientas que usaremos y cómo usarlas, y conocer donde guardaremos la evidencia obtenida.
Como ya hemos comentado, partimos que hay tres sistemas operativos principales, estos son GNU/Linux, Mac OS y Microsoft Windows. El procedimiento será similar, pero no igual para los tres casos.
¿Qué herramientas podemos usar para cada sistema operativo? Aquí es donde viene un poco el lío. Herramientas de adquisición de memoria RAM hay varias, ¿Cuál es mejor? ¿En qué nos beneficia una y no otra? Etc.
Las más usadas son la siguientes:
Sistema Operativo | Herramienta de adquisición |
Microsoft Windows | Winpmem, DumpIt, win32dd/win64dd, Memoryze, FastDump, RamCapture |
Mac OS | Osxpmem, Memoryze |
GNU/Linux | Linpmem, LiME |
Cuando ya tenemos claro qué herramientas vamos a utilizar y nos sintamos cómodos con ellas, debemos pensar dónde guardaremos la evidencia. Hay que pensar que los equipos cada vez tienen más memoria RAM y por lo tanto hace falta tanto sitio de almacenamiento como memoria tenga el ordenador.
Por ejemplo, si realizamos en volcado de RAM de un portátil es posible que con 8 Gb tengamos suficiente, pero si realizamos el volcado a un servidor con 128 Gb de RAM con 8 Gb de almacenamiento no tendremos ni para empezar.
Adquisición
Ya tenemos claro el procedimiento, sabemos que herramientas vamos a utilizar y como debemos de utilizarlas para causar el menor impacto sobre el equipo de actuación y, tenemos claro las características de nuestro objetivo para no quedarnos cortos de espacio.
Con los preparativos listos estamos preparados para realizar un volcado de memoria RAM. Por simplicidad y por ser el caso más común, en entornos corporativos, vamos a explicar el uso de dos herramientas para Microsoft Windows.
Cuando nos enfrentamos a un caso de volcado de memoria surgen varias dudas. ¿Lo hacemos en local o en remoto? ¿Desconectamos el equipo de la red? Pues bien, el equipo debe estar lo más intacto posible, si queremos capturar la memoria tal cual está no debemos de desconectar de la red el equipo.
Entre realizar la captura local o remota, pues lo cierto es que depende de cada circunstancia. En equipos Microsoft Windows y entornos corporativos es muy sencillo utilizar herramientas como PSEXEC para realizar la adquisición remota, pero no siempre es el caso, por lo que las pruebas que vamos a enseñas a continuación las haremos en local. Esto significa que se conectará un dispositivo de almacenamiento externo con capacidad suficiente y que contendrá las herramientas que necesitemos.
DumpIt
DumpIt es una herramienta que parte del Moonsols Limited y que ahora está al cargo de Comae Technologies FZE. DumpIt es muy sencillo de utilizar. Se puede usar sin parámetros o con ellos, ver el menú de ayuda con la opción -h. Nosotros lo ejecutamos DumpIt sin parámetros.
Una vez finalizado tendremos junto al ejecutable el archivo .dmp o .raw con la información de la memoria RAM durante la captura de la misma.
Winpmem
Winpmem es una fantástica herramienta que surge del proyecto Rekall para analizar la memoria RAM. Winpmem permite obtener la memoria RAM principalmente con el formato AFF4, un formato que realmente es un contenedor zip, donde se puede almacenar más información a parte del volcado de la memoria RAM.
Además de poder usar el formato AAF4 y poder llevarse en un único fichero varias evidencias, también permite usar el formato RAW como con DumpIt u otras herramientas.
Por defecto Winpmem nos generará un contenedor AFF4 con el volcado de la memoria RAM. Los volcados en este formato ocupan bastante menos, por lo que no será necesario un tamaño de como mínimo, aunque sigue siendo recomendable llevar siempre espacio de sobra.
Tal como se ve en la imagen anterior, solo hay que indicar dónde se guardará el fichero de salida con la opción -o. Al finalizar el proceso tendremos lo que es la memoria RAM junto con los drivers del sistema. Información muy útil para analizar el volcado de memoria más tarde.
Por último, decir que a pesar de que el formato AFF4 es en realidad un archivo zip, la RAM no está en un único fichero, sino que está separada en ficheros e indexada. Por eso es necesario leer la RAM con un software que permita leer el formato AFF4 como, por ejemplo, Rekall. Comentar también que desde Rekall es posible extraer la imagen del volcado en formato RAW para analizarla con Volatility, por ejemplo.