Introdução: O puzzle das páginas de transbordo
Imagine que compra um poster que é demasiado grande para as molduras que tem em casa. Para o exibir corretamente, teria de o cortar em secções para que coubesse nas molduras disponíveis. O mesmo princípio aplica-se às bases de dados SQLite quando lidam com registos grandes - dividem-nos em partes e armazenam-nos em várias páginas. É aqui que páginas de transbordo entrar.
As páginas de estouro armazenam dados que não cabem em uma única página de banco de dados SQLite (normalmente 4.096 bytes). Estas páginas são ligados entre siformando uma cadeia que os analistas forenses devem reconstruir para recuperar dados completos. Se os analistas não seguirem a estrutura de transbordo, arriscam-se a recuperar provas incompletas ou corrompidas.
Neste artigo, vamos explorar como funcionam as páginas de estouro, porque são importantes em investigações forenses e como extrair dados fragmentados passo a passo.
O que são páginas de estouro no SQLite?
As bases de dados SQLite atribuem um tamanho de página fixo (por exemplo, 4.096 bytes). No entanto, quando um registo - tal como uma imagem armazenada como um BLOB (Binary Large Object)-excede este tamanho, os dados em excesso transbordam para páginas de transbordo.
Principais conclusões:
✅ Páginas de transbordo evitar registos grandes de monopolizar uma única página.
Eles são ligados numa cadeia, a partir da página principal.
✅ Analistas forenses deve reconstruir estas cadeias para obter dados completos.
Compreender o funcionamento das páginas de transbordo é essencial para as investigações forenses.
Visão geral de alto nível: Como funcionam as páginas de estouro
Para ilustrar o conceito de páginas de transbordo, vejamos os seguintes exemplos:
1. Representação de imagens fragmentadas

Esta visualização representa como grandes BLOBs, como imagens, são armazenados no SQLite. A imagem está dividida em várias secções, tal como uma página de estouro armazena dados fragmentados.
2. Dados armazenados numa única página

Aqui, uma imagem cabe inteiramente numa página da base de dados, eliminando a necessidade de páginas de transbordo.
3. Dados divididos em várias páginas

Este exemplo ilustra como os dados são armazenados de forma não contígua, exigindo uma análise forense para os reconstruir corretamente.
4. Reconstrução de dados a partir de páginas de estouro

Seguir os ponteiros de página de estouro permite que os analistas forenses remontem os dados fragmentados.
Importância forense das páginas de estouro
Muitos aplicações de mensagens, aplicações móveis e bases de dados armazenam imagens de perfil de utilizador, registos de conversação e anexos em SQLite. Quando as imagens e os documentos abrangem várias páginas, os examinadores forenses têm de compreender as estruturas de transbordo para extrair os dados corretamente.
Desafios forenses:
- Dados fragmentados: Os BLOBs (como as imagens) são frequentemente divididos em várias páginas.
- Recuperação baseada em ponteiros: Os analistas devem seguir os ponteiros de página de estouro do SQLite para reconstruir a imagem ou ficheiro completo.
- Questões de escultura: A simples procura de um cabeçalho JPEG (FFD8FF) e rodapé (FFD9) pode falhar porque podem existir em páginas separadas.
Exemplo do mundo real: Extraindo uma foto de perfil de páginas de estouro
Agora, vamos analisar uma recuperação forense passo a passo de uma imagem armazenada numa base de dados SQLite.
Localizar o BLOB na base de dados

Utilizar Navegador DB para SQLiteSe os analistas forenses identificarem o registo que contém a fotografia de perfil no contactos
mesa.
Identificar o comprimento do BLOB em hexadecimais

Utilizar HxDCom um editor hexadecimal, localizam o cabeçalho do registo, que contém um VARINT que determina o comprimento do BLOB.
Confirmar o tamanho da imagem

O segundo VARINT no cabeçalho do registo especifica o tamanho da imagem. Neste caso, o tamanho total é 6.325 bytes, excedendo o limite de páginas.
Seguir o ponteiro de estouro

Na parte inferior da página principal, um ponteiro de quatro bytes conduz a página 4, que contém a parte seguinte da imagem.
Examinar a página de estouro

Os primeiros quatro bytes da página 4 indicam se se segue outra página de estouro. Uma vez que o valor é 0x00000000
, este é o última página de transbordo.
Extrair e reconstruir a imagem

Os analistas forenses extraem o 6.292 bytes da imagem de ambas as páginas e reconstruí-la manualmente.
📌Os ponteiros de quatro bytes NÃO fazem parte dos dados a incluir na imagem gravada
Verificar a imagem recuperada

A imagem extraída está agora totalmente restaurada e visualizável.
Considerações finais: A importância da análise de páginas de estouro
Nas investigações forenses, ignorar as páginas de excesso pode levar a perda crítica de provas. Compreender o mecanismo de armazenamento do SQLite é crucial para extração e reconstrução precisas de dados.
Principais informações forenses:
✔️ Sempre verificar se há páginas excedentáriasao analisar registos grandes.
✔️ Seguir as instruções do SQLite ponteiros de transbordocom cuidado.
✔️ Simples técnicas de escultura em lima pode não funcionar devido ao facto de o armazenamento não ser contíguo.
Quer se trate de analisar bases de dados de conversação, listas de contactos ou registos de aplicaçõesOs profissionais forenses devem ser competentes na recuperação de dados fragmentados.
💡 Encontrou dados fragmentados na análise forense de SQLite? Como é que aborda a análise de páginas de overflow? Partilhe as suas ideias abaixo!