jueves, 2 de julio de 2026

Análisis forense del contenido de la RAM en GNU/Linux: foremost y scalpel

 

Tanto foremost como scalpel son herramientas clásicas y extremadamente potentes en el mundo del análisis forense digital y la recuperación de datos en Linux. Su especialidad es una técnica llamada File Carving (tallado de archivos).

Cuando haces un volcado de la memoria RAM (un archivo .raw, .dmp o .img que contiene gigabytes de datos puros en binario), no hay una estructura de carpetas ni un índice que te diga dónde empieza o termina un archivo. Todo es un "mar" continuo de unos y ceros.

Aquí te explico cómo funcionan y cómo se usan específicamente para buscar tesoros ocultos dentro de un volcado de RAM.

El secreto de su funcionamiento: Las firmas de archivos

Tanto foremost como scalpel no leen el contenido de la memoria como lo haría un humano; buscan números mágicos (magic numbers), que son firmas de bytes únicas que los sistemas operativos colocan al principio y al final de cada tipo de archivo.

  • Un archivo PDF siempre empieza por los bytes en hexadecimal 25 50 44 46 (%PDF).

  • Un archivo PNG siempre empieza por 89 50 4E 47 (.PNG).

Las herramientas escanean el archivo de la RAM de arriba a abajo. Cuando encuentran una firma de inicio, abren un grifo y empiezan a guardar datos en un archivo nuevo en tu disco duro hasta que encuentran la firma de cierre de ese formato (o hasta que alcanzan un límite de tamaño máximo configurado).

1. Foremost: El explorador automático y rápido

foremost es la herramienta ideal para empezar porque es muy sencilla de usar, automática y requiere muy poca configuración. Viene con una base de datos interna de formatos comunes ya preconfigurada.

Cómo usarlo para analizar un volcado de RAM:

Supongamos que ya has hecho un volcado de la RAM de tu navegador o de todo el sistema y lo has guardado en un archivo llamado memoria_ram.raw.

Para procesarlo con foremost, abre tu terminal de Linux y ejecuta:

Bash
foremost -t pdf,png,jpg -i memoria_ram.raw -o /home/diego/Escritorio/extraccion_ram

Desglose del comando:

  • -t: Especifica los tipos de archivos que quieres buscar (separados por comas). Si quieres buscar todo lo que reconozca, puedes poner -t all.

  • -i: El archivo de entrada (input), que es tu volcado de RAM.

  • -o: La carpeta de salida (output) donde foremost creará carpetas automáticas (/pdf, /png, etc.) con todo lo que logre rescatar de la RAM.

2. Scalpel: El bisturí de precisión quirúrgica

scalpel nació originalmente como una optimización de foremost. Es mucho más eficiente con el uso de la memoria de tu propia máquina y es el preferido cuando el archivo de la RAM es gigantesco (decenas de gigabytes), ya que realiza el escaneo en pasadas mucho más rápidas.

La principal diferencia es que scalpel te obliga a revisar su archivo de configuración antes de trabajar, porque por defecto viene con todos los formatos de archivo desactivados (comentados).

Paso 1: Configurar el bisturí

Antes de ejecutarlo, tienes que abrir su archivo de configuración (normalmente en /etc/scalpel/scalpel.conf) con tu editor de texto favorito:

Bash
sudo nano /etc/scalpel/scalpel.conf

Verás una lista enorme de líneas como esta:

Plaintext
# pdf   y   5000000   \x25\x50\x44\x46   \x25\x25\x45\x4F\x46

Para activar la búsqueda de PDFs, tienes que quitar el símbolo # (descomentar la línea). Esa línea le dice a scalpel: "Busca archivos PDF, que tienen un tamaño máximo de 5MB, empiezan por \x25\x50\x44\x46 y terminan en \x25\x25\x45\x4F\x46". Guarda el archivo (Ctrl+O y Ctrl+X).

Paso 2: Ejecutar el escaneo

Una vez configurado lo que buscas, ejecutas el comando:

Bash
scalpel -o /home/diego/Escritorio/extraccion_scalpel memoria_ram.raw

(Nota: A diferencia de foremost, en scalpel no hace falta poner -i, el archivo de la RAM se pone simplemente al final).

⚖️ ¿Cuál deberías usar para analizar la RAM?

CaracterísticaForemostScalpel
Facilidad⭐⭐⭐⭐⭐ (Listo para usar)⭐⭐⭐ (Requiere editar el .conf)
RendimientoPesado con archivos muy grandesMuy rápido y eficiente con la CPU/RAM
PersonalizaciónMás rígidoPermite definir tamaños máximos exactos

El gran problema del Carving en la RAM (La fragmentación)

Hay algo muy importante que debes tener en cuenta al usar estas herramientas con la RAM: la fragmentación. La memoria RAM guarda los datos en pequeños bloques dispersos (páginas de memoria). Si el archivo que buscas (por ejemplo, un vídeo de un blob:https:) era muy grande, es muy probable que sus datos no estuvieran seguidos en la RAM, sino repartidos en "islas" de memoria.

Tanto foremost como scalpel asumen que los archivos son contiguos (que todo el archivo está del tirón). Por eso, al analizar la RAM, es muy común que muchos archivos extraídos te salgan corruptos o cortados por la mitad. ¡Aun así, para rescatar imágenes, textos, fragmentos de código o PDFs indexados en memoria, son herramientas mágicas!

No hay comentarios:

Publicar un comentario