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.
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.
✅ 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.
Para ilustrar el concepto de páginas de desbordamiento, veamos los siguientes ejemplos:
1. Representación fragmentada de imágenes
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
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
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
El seguimiento de los punteros de página desbordados permite a los analistas forenses reensamblar los datos fragmentados.
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.
Ahora, vamos a recorrer paso a paso la recuperación forense de una imagen almacenada en una base de datos SQLite.
Utilizando Navegador DB para SQLitelos analistas forenses identifican el registro que contiene la foto de perfil en el contactos
mesa.
Utilizando HxD, un editor hexadecimal, localizan la cabecera del registro, que contiene un VARINT que determina la longitud del BLOB.
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.
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.
Los cuatro primeros bytes de la página 4 indican si le sigue otra página de desbordamiento. Dado que el valor es 0x00000000
Este es el última página de desbordamiento.
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
La imagen extraída está ahora totalmente restaurada y visible.
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.
✔️ 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.