Pagine di overflow SQLite: Come la scienza forense digitale recupera i dati nascosti

Introduzione: L'enigma delle pagine di overflow

Immaginate di acquistare un poster troppo grande per le cornici che avete a casa. Per esporlo correttamente, è necessario tagliarlo in sezioni in modo da farlo rientrare nelle cornici disponibili. Lo stesso principio si applica ai database SQLite quando gestiscono record di grandi dimensioni: li dividono in parti e li memorizzano su più pagine. Questo è il punto in cui pagine di overflow entrare.

Le pagine di overflow memorizzano i dati che non possono essere inseriti in una singola pagina del database SQLite (tipicamente 4.096 byte). Queste pagine sono collegati tra loroformando una catena che gli analisti forensi devono ricostruire per recuperare i dati completi. Se gli analisti non riescono a seguire la struttura dell'overflow, rischiano di recuperare prove incomplete o corrotte.

In questo articolo esploreremo come funzionano le pagine di overflow, perché sono importanti nelle indagini forensi e come estrarre i dati frammentati passo dopo passo.

Cosa sono le pagine di overflow in SQLite?

I database SQLite assegnano una dimensione di pagina fissa (ad es, 4.096 byte). Tuttavia, quando un record, come ad esempio un'immagine memorizzata come file BLOB (oggetto binario di grandi dimensioni)-supera questa dimensione, i dati in eccesso si riversano nelle pagine di overflow.

Punti di forza:

✅ Pagine di overflow prevenire i record di grandi dimensioni di monopolizzare una singola pagina.
Sono collegati in una catena, a partire dalla pagina principale.
Analisti forensi deve ricostruire queste catene per recuperare i dati completi.

Capire come funzionano le pagine di overflow è essenziale per le indagini forensi.

Panoramica di alto livello: Come funzionano le pagine di overflow

Per illustrare il concetto di pagine di overflow, vediamo i seguenti esempi:

1. Rappresentazione dell'immagine frammentata

Illustrazione della memorizzazione frammentata dei dati in SQLite: Un'immagine di grandi dimensioni viene suddivisa in più riquadri, rappresentando il modo in cui le pagine di overflow gestiscono i BLOB di grandi dimensioni.

Questa visualizzazione rappresenta il modo in cui i BLOB di grandi dimensioni, come le immagini, vengono memorizzati in SQLite. L'immagine è suddivisa in più sezioni, proprio come una pagina di overflow memorizza dati frammentati.

2. Dati memorizzati in una singola pagina

L'immagine di un jet F-16 è completamente memorizzata in una singola pagina SQLite, dimostrando un caso ideale in cui le pagine di overflow non sono necessarie.

In questo caso, un'immagine si inserisce interamente in una pagina del database, eliminando la necessità di pagine di overflow.

3. Dati suddivisi su più pagine

Rappresentazione esadecimale di un'immagine memorizzata in modo non contiguo nelle pagine 7, 3 e 5 di SQLite, che richiede una ricostruzione forense.

Questo esempio illustra come i dati siano archiviati in modo non contiguo, richiedendo un'analisi forense per ricostruirli correttamente.

4. Ricostruzione dei dati dalle pagine di overflow

Un'immagine ricostruita con successo da pagine SQLite frammentate, che illustra il processo forense di recupero delle pagine di overflow.

Seguire i puntatori di pagina in overflow consente agli analisti forensi di riassemblare i dati frammentati.

Importanza forense delle pagine di overflow

Molti app di messaggistica, applicazioni mobili e database memorizzare immagini del profilo dell'utente, registri di chat e allegati in SQLite. Quando le immagini e i documenti si estendono su più pagine, gli esaminatori forensi devono comprendere le strutture di overflow per estrarre correttamente i dati.

Sfide forensi:

  • Dati frammentati: I BLOB (come le immagini) sono spesso suddivisi su più pagine.
  • Recupero basato su puntatori: Gli analisti devono seguire i puntatori alle pagine di overflow di SQLite per ricostruire l'immagine o il file completo.
  • Problemi di intaglio: La semplice ricerca dell'intestazione (FFD8FF) e del piè di pagina (FFD9) di un JPEG può fallire perché potrebbero essere presenti in pagine separate.

Esempio del mondo reale: Estrazione di un'immagine del profilo dalle pagine di Overflow

Vediamo ora passo dopo passo il recupero forense di un'immagine memorizzata in un database SQLite.

Individuare il BLOB nel database

DB Browser per SQLite mostra una tabella di contatti con immagini del profilo memorizzate come BLOB, un passaggio essenziale per l'estrazione forense.

Utilizzo Browser DB per SQLite, gli analisti forensi identificano il record contenente l'immagine del profilo nel contatti tavolo.

Identificare la lunghezza del BLOB in esadecimale

La varint 0xB135 si converte in una lunghezza di cella di 6.325 byte (senza includere la varint stessa o l'ID riga).

Utilizzo HxDCon un editor esadecimale, si individua l'intestazione del record, che contiene un VARINT che determina la lunghezza del BLOB.

Confermare le dimensioni dell'immagine

Il VARINT evidenziato in HxD mostra la dimensione totale dell'immagine (6.325 byte), confermando che supera la dimensione standard della pagina SQLite.

Il secondo VARINT nell'intestazione del record specifica la dimensione dell'immagine. In questo caso, la dimensione totale è 6.325 bytesuperando il limite di pagine.

Seguire il puntatore di overflow

Puntatore di overflow SQLite in fondo alla pagina, che indirizza la continuazione dei dati alla pagina 4 per un ulteriore recupero.

Nella parte inferiore della pagina principale, un puntatore a quattro byte porta a pagina 4che contiene la porzione successiva dell'immagine.

Esaminare la pagina di overflow

Vista esagonale di un'immagine frammentata completamente evidenziata, pronta per l'estrazione manuale e la ricostruzione forense.

I primi quattro byte della pagina 4 indicano se segue un'altra pagina di overflow. Poiché il valore è 0x00000000, questo è il ultima pagina di overflow.

Estrazione e ricostruzione dell'immagine

Vista esagonale di un'immagine frammentata completamente evidenziata, pronta per l'estrazione manuale e la ricostruzione forense.

Gli analisti forensi estraggono il 6.292 byte dell'immagine da entrambe le pagine e ricostruirla manualmente.

📌I puntatori a quattro byte NON fanno parte dei dati da includere nell'immagine scolpita.

Verifica dell'immagine recuperata

Immagine estrattaImmagine del profilo recuperata dalle pagine di overflow di SQLite, intagliata con successo e visualizzata in Windows Photo Viewer.

L'immagine estratta è ora completamente ripristinata e visualizzabile.

Riflessioni finali: L'importanza dell'analisi delle pagine di overflow

Nelle indagini forensi, trascurare le pagine di overflow può portare a perdita di prove critiche. La comprensione del meccanismo di memorizzazione di SQLite è cruciale per estrazione e ricostruzione accurata dei dati.

Principali approfondimenti forensi:

✔️ Sempre controllare le pagine di overflowquando si analizzano record di grandi dimensioni.

✔️ Seguire il metodo SQLite puntatori di overflowcon attenzione.

✔️ Semplice tecniche di intaglio delle lime potrebbe non funzionare a causa di una memoria non contigua.

Sia che si analizzi database di chat, elenchi di contatti o registri delle applicazioniI professionisti forensi devono essere in grado di recuperare i dati frammentati.

💡 Avete riscontrato dati frammentati nella forensics di SQLite? Come affrontate l'analisi delle pagine di overflow? Condividete le vostre intuizioni qui sotto!

Facebook
Twitter
Email
Stampa

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *