Introducción: El rompecabezas de las páginas de desbordamiento

Imagina que compras un póster demasiado grande para los marcos que tienes en casa. Para mostrarlo correctamente, tendrías que cortarlo en secciones para que quepa en los marcos disponibles. El mismo principio se aplica a las bases de datos SQLite cuando manejan registros grandes: los dividen en partes y los almacenan en varias páginas. En este caso páginas de desbordamiento entrar.

Las páginas de desbordamiento almacenan datos que no caben en una sola página de base de datos SQLite (normalmente 4.096 bytes). Estas páginas son vinculados entre síformando una cadena que los analistas forenses deben reconstruir para recuperar los datos completos. Si los analistas no siguen la estructura de desbordamiento, corren el riesgo de recuperar pruebas incompletas o corruptas.

En este artículo, exploraremos cómo funcionan las páginas de desbordamiento, por qué son importantes en las investigaciones forenses y cómo extraer datos fragmentados paso a paso.

¿Qué son las páginas de desbordamiento en SQLite?

Las bases de datos SQLite asignan un tamaño de página fijo (por ejemplo, 4.096 bytes). Sin embargo, cuando un registro -como una imagen almacenada como BLOB (objeto binario de gran tamaño)-supera este tamaño, el exceso de datos se derrama en páginas de desbordamiento.

Principales conclusiones:

✅ Páginas de desbordamiento evitar grandes registros de monopolizar una sola página.
✅ Son unidos en una cadenaa partir de la página principal.
Analistas forenses debe reconstruir estas cadenas para recuperar los datos completos.

Comprender cómo funcionan las páginas de desbordamiento es esencial para las investigaciones forenses.

Visión general de alto nivel: Cómo funcionan las páginas de desbordamiento

Para ilustrar el concepto de páginas de desbordamiento, veamos los siguientes ejemplos:

1. Representación fragmentada de imágenes

Ilustración del almacenamiento de datos fragmentados en SQLite: Una imagen grande se divide en varios marcos, lo que representa cómo las páginas de desbordamiento manejan BLOBs grandes.

Esta visualización representa cómo se almacenan los BLOB de gran tamaño, como las imágenes, en SQLite. La imagen está dividida en varias secciones, al igual que una página de desbordamiento almacena datos fragmentados.

2. Datos almacenados en una sola página

Una imagen de un avión F-16 totalmente almacenada en una sola página SQLite, lo que demuestra un caso ideal en el que no se necesitan páginas de desbordamiento.

Aquí, una imagen cabe por completo en una página de la base de datos, eliminando la necesidad de páginas de desbordamiento.

3. Datos divididos en varias páginas

Representación hexadecimal de una imagen almacenada de forma no contigua en las páginas 7, 3 y 5 de SQLite, que requiere reconstrucción forense.

Este ejemplo ilustra cómo los datos se almacenan de forma no contigua, lo que requiere un análisis forense para reconstruirlos correctamente.

4. Reconstrucción de datos de páginas desbordadas

Imagen reconstruida con éxito a partir de páginas SQLite fragmentadas, que ilustra el proceso forense de recuperación de páginas desbordadas.

El seguimiento de los punteros de página desbordados permite a los analistas forenses reensamblar los datos fragmentados.

Importancia forense de las páginas de desbordamiento

Muchos aplicaciones de mensajería, aplicaciones móviles y bases de datos almacenan imágenes de perfil de usuario, registros de chat y archivos adjuntos en SQLite. Cuando las imágenes y los documentos abarcan varias páginas, los examinadores forenses deben comprender las estructuras de desbordamiento para extraer los datos correctamente.

Desafíos forenses:

  • Datos fragmentados: Los BLOB (como las imágenes) suelen dividirse en varias páginas.
  • Recuperación basada en punteros: Los analistas deben seguir los punteros de página de desbordamiento de SQLite para reconstruir la imagen o el archivo completo.
  • Cuestiones de talla: La simple búsqueda de una cabecera JPEG (FFD8FF) y un pie de página (FFD9) puede fallar porque pueden existir en páginas separadas.

Ejemplo real: Extracción de una imagen de perfil de páginas de desbordamiento

Ahora, vamos a recorrer paso a paso la recuperación forense de una imagen almacenada en una base de datos SQLite.

Localizar el BLOB en la base de datos

DB Browser for SQLite muestra una tabla de contactos con fotos de perfil almacenadas como BLOB, un paso esencial en la extracción forense.

Utilizando Navegador DB para SQLitelos analistas forenses identifican el registro que contiene la foto de perfil en el contactos mesa.

Identificar la longitud del BLOB en hexadecimales

Varint 0xB135 se convierte en una longitud de celda de 6.325 bytes (sin incluir el propio varint ni el ID de fila)

Utilizando HxD, un editor hexadecimal, localizan la cabecera del registro, que contiene un VARINT que determina la longitud del BLOB.

Confirmar el tamaño de la imagen

VARINT resaltado en HxD mostrando el tamaño total de la imagen (6.325 bytes), confirmando que excede el tamaño de página estándar de SQLite.

El segundo VARINT de la cabecera del registro especifica el tamaño de la imagen. En este caso, el tamaño total es 6.325 bytessuperando el límite de páginas.

Seguir el puntero de desbordamiento

Puntero de desbordamiento SQLite en la parte inferior de la página, dirigiendo la continuación de datos a la página 4 para su posterior recuperación.

En la parte inferior de la página principal, un puntero de cuatro bytes conduce a página 4que contiene la siguiente porción de la imagen.

Examinar la página de desbordamiento

Vista hexagonal de una imagen fragmentada totalmente resaltada, lista para la extracción manual y la reconstrucción forense.

Los cuatro primeros bytes de la página 4 indican si le sigue otra página de desbordamiento. Dado que el valor es 0x00000000Este es el última página de desbordamiento.

Extraer y reconstruir la imagen

Vista hexagonal de una imagen fragmentada totalmente resaltada, lista para la extracción manual y la reconstrucción forense.

Los analistas forenses extraen el 6.292 bytes de la imagen de ambas páginas y reconstruirla manualmente.

📌Los punteros de cuatro bytes NO forman parte de los datos que se incluirán en la imagen grabada

Verificar la imagen recuperada

Imagen extraídaImagen de perfil recuperada de las páginas de desbordamiento SQLite, tallada con éxito y mostrada en Windows Photo Viewer.

La imagen extraída está ahora totalmente restaurada y visible.

Reflexiones finales: La importancia del análisis de páginas de desbordamiento

En las investigaciones forenses, pasar por alto las páginas de desbordamiento puede llevar a pérdida de pruebas críticas. Comprender el mecanismo de almacenamiento de SQLite es crucial para extracción y reconstrucción de datos precisos.

Claves forenses:

✔️ Siempre comprobar si hay páginas desbordadascuando se analizan registros de gran tamaño.

✔️ Siga las instrucciones de SQLite punteros de desbordamientocon cuidado.

✔️ Simple técnicas de tallado de limas puede no funcionar debido a un almacenamiento no contiguo.

Ya sea analizando bases de datos de chat, listas de contactos o registros de aplicacioneslos profesionales forenses deben ser competentes en la recuperación de datos fragmentados.

💡 ¿Ha encontrado datos fragmentados en el análisis forense de SQLite? ¿Cómo enfocas el análisis de páginas desbordadas? Comparte tus ideas a continuación.