SQLite överflödssidor: Hur digital kriminalteknik återställer dolda data

Introduktion: Pusslet med överflödessidor

Tänk dig att du köper en affisch som är för stor för de ramar du har hemma. För att kunna visa den på rätt sätt måste du klippa den i delar så att den ryms inom de tillgängliga ramarna. Samma princip gäller för SQLite-databaser när de hanterar stora poster - de delar upp dem i delar och lagrar dem på flera sidor. Det är här överflödiga sidor Kom in.

Överflödessidor lagrar data som inte ryms inom en enda SQLite-databassida (vanligtvis 4 096 byte). Dessa sidor är sammanlänkadeoch bildar en kedja som kriminaltekniker måste rekonstruera för att återskapa fullständiga data. Om analytikerna inte följer overflow-strukturen riskerar de att hämta ofullständig eller förvanskad bevisning.

I den här artikeln förklarar vi hur overflow-sidor fungerar, varför de är viktiga i kriminaltekniska undersökningar och hur man steg för steg extraherar fragmenterad data.

Vad är överflödessidor i SQLite?

SQLite-databaser tilldelar en fast sidstorlek (t.ex, 4 096 byte). Men när en post - t.ex. en bild som lagras som en BLOB (Binary Large Object)-överstiger denna storlek, överskottsdata spills ut på överflödessidor.

Viktiga slutsatser:

✅ Överflödessidor förhindra stora poster från att monopolisera en enda sida.
✅ De är länkad i en kedja, med början från huvudsidan.
Kriminaltekniska analytiker måste rekonstruera dessa kedjor för att få fram fullständiga data.

Att förstå hur overflow-sidor fungerar är viktigt för kriminaltekniska utredningar.

Översikt på hög nivå: Hur överflödessidor fungerar

För att illustrera konceptet med överflödessidor, låt oss titta på följande exempel:

1. Fragmenterad bildrepresentation

Illustration av fragmenterad datalagring i SQLite: En stor bild är uppdelad på flera bilder, vilket visar hur overflow-sidor hanterar stora BLOB:ar.

Den här visualiseringen visar hur stora BLOB:er, t.ex. bilder, lagras i SQLite. Bilden är uppdelad i flera sektioner, precis som en overflow-sida lagrar fragmenterad data.

2. Data lagrad på en enda sida

En bild av ett F-16-jetplan lagras helt och hållet på en enda SQLite-sida, vilket är ett perfekt exempel på att det inte behövs några överflödiga sidor.

Här ryms en bild helt och hållet inom en databassida, vilket eliminerar behovet av överflödessidor.

3. Data uppdelad på flera sidor

Hexad bild av en bild som lagrats på ett icke sammanhängande sätt på SQLite-sidorna 7, 3 och 5 och som kräver kriminalteknisk rekonstruktion.

Detta exempel illustrerar hur data lagras på ett icke sammanhängande sätt, vilket kräver kriminalteknisk analys för att rekonstruera dem korrekt.

4. Rekonstruktion av data från överflödessidor

En framgångsrikt rekonstruerad bild från fragmenterade SQLite-sidor, som illustrerar den kriminaltekniska processen för hämtning av överflödessidor.

Genom att följa sidpekare för överflöd kan kriminaltekniker återmontera fragmenterad data.

Forensisk betydelse av överflödessidor

Många meddelandeappar, mobila applikationer och databaser lagra användarprofilbilder, chattloggar och bilagor i SQLite. När bilder och dokument sträcker sig över flera sidor måste kriminaltekniker förstå overflow-strukturer för att kunna extrahera data på rätt sätt.

Rättsmedicinska utmaningar:

  • Fragmenterade data: BLOB:er (t.ex. bilder) delas ofta upp på flera sidor.
  • Pekarbaserad hämtning: Analytiker måste följa SQLites sidpekare för överflöd för att rekonstruera hela bilden eller filen.
  • Täljfrågor: Att bara söka efter ett JPEG-huvud (FFD8FF) och -fot (FFD9) kan misslyckas eftersom de kan finnas på separata sidor.

Exempel från den verkliga världen: Extrahera en profilbild från överflödessidor

Låt oss nu gå igenom en steg-för-steg-forensisk återställning av en bild som lagras i en SQLite-databas.

Leta reda på BLOB i databasen

DB Browser for SQLite visar en kontakttabell med profilbilder lagrade som BLOB:er, ett viktigt steg i en kriminalteknisk extraktion.

Använda DB Browser för SQLiteidentifierar kriminaltekniker den skiva som innehåller profilbilden i den kontakter bord.

Identifiera BLOB-längden i hex

Varint 0xB135 konverteras till en cellängd på 6 325 byte (Varinten i sig eller rad-ID:t ingår inte)

Använda HxDMed hjälp av en hexeditor hittar de posthuvudet, som innehåller en VARINT som bestämmer BLOB-längden.

Bekräfta bildstorleken

Markerad VARINT i HxD visar den totala bildstorleken (6 325 byte), vilket bekräftar att den överskrider standardstorleken för SQLite-sidor.

Den andra VARINT i posthuvudet anger bildens storlek. I det här fallet är den totala storleken 6 325 byte, överskrider sidbegränsningen.

Följ pekaren för överflöde

SQLite overflow-pekare längst ner på sidan, som leder datafortsättningen till sidan 4 för vidare hämtning.

Längst ner på huvudsidan visas en pekare på fyra byte leder till sidan 4, som innehåller nästa del av bilden.

Undersök överströmningssidan

Sexkantsvy av en fragmenterad bild som är helt markerad, redo för manuell extraktion och kriminalteknisk rekonstruktion.

De fyra första bytena på sidan 4 anger om ytterligare en overflow-sida följer. Eftersom värdet är 0x00000000detta är sista överflödessidan.

Extrahera och rekonstruera bilden

Sexkantsvy av en fragmenterad bild som är helt markerad, redo för manuell extraktion och kriminalteknisk rekonstruktion.

Kriminaltekniska analytiker extraherar 6 292 byte av bilden från båda sidorna och rekonstruera den manuellt.

📌De fyra byte-pekarna är INTE en del av de data som ska ingå i den snidade bilden

Verifiera den återställda avbildningen

Extraherad bildÅtervunnen profilbild från SQLite overflow-sidor, framgångsrikt utskuren och visad i Windows Photo Viewer.

Den extraherade bilden är nu helt återställd och kan visas.

Slutliga tankar: Betydelsen av analys av överflödessidor

I kriminaltekniska undersökningar kan förbiseende av överflödessidor leda till förlust av kritiska bevis. Att förstå SQLites lagringsmekanism är avgörande för att korrekt datautvinning och rekonstruktion.

Viktiga kriminaltekniska insikter:

✔️ Alltid kontrollera för överflödessidorvid analys av stora datamängder.

✔️ Följ SQLites överströmningspekareförsiktigt.

✔️ Enkelt filhuggningstekniker kanske inte fungerar på grund av icke sammanhängande lagring.

Oavsett om man analyserar chattdatabaser, kontaktlistor eller programloggarmåste kriminaltekniker vara skickliga på att återställa fragmenterade data.

💡 Har du stött på fragmenterade data i SQLite-forensics? Hur går du tillväga för att analysera överflödessidor? Dela med dig av dina insikter nedan!

Facebook
Twitter
E-post
Skriv ut

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *