SQLite Overflow Pagina's: Hoe digitaal forensisch onderzoek verborgen gegevens terugvindt

Inleiding: De puzzel van overloop pagina's

Stel je voor dat je een poster koopt die te groot is voor de lijsten die je thuis hebt. Om hem goed weer te geven, moet je hem in stukken knippen zodat hij binnen de beschikbare kaders past. Hetzelfde principe is van toepassing op SQLite databases bij het verwerken van grote records-ze breken ze op in delen en slaan ze op over meerdere pagina's. Dit is waar overlooppagina's binnenkomen.

Overflow pagina's slaan gegevens op die niet in een enkele SQLite databasepagina passen (meestal 4.096 bytes). Deze pagina's zijn met elkaar verbondenen vormen een keten die forensisch analisten moeten reconstrueren om volledige gegevens te herstellen. Als analisten de overloopstructuur niet volgen, lopen ze het risico dat ze onvolledig of beschadigd bewijs.

In dit artikel zullen we onderzoeken hoe overflow pages werken, waarom ze belangrijk zijn in forensisch onderzoek en hoe je stap voor stap gefragmenteerde gegevens kunt extraheren.

Wat zijn overlooppagina's in SQLite?

SQLite databases wijzen een vaste paginagrootte toe (bijv, 4.096 bytes). Echter, wanneer een record, zoals een afbeelding opgeslagen als een BLOB (Binair Groot Object)-deze grootte overschrijdt, de overtollige gegevens komen terecht op overlooppagina's.

Belangrijkste opmerkingen:

Overlooppagina's grote records voorkomen van het monopoliseren van één pagina.
Ze zijn verbonden in een kettingvanaf de hoofdpagina.
Forensisch analisten moeten deze ketens reconstrueren om volledige gegevens te verkrijgen.

Begrijpen hoe overflowpagina's werken is essentieel voor forensisch onderzoek.

Overzicht op hoog niveau: Hoe overlooppagina's werken

Laten we de volgende voorbeelden bekijken om het concept van overflowpagina's te illustreren:

1. Gefragmenteerde beeldweergave

Illustratie van gefragmenteerde gegevensopslag in SQLite: Een grote afbeelding wordt verdeeld over meerdere frames, wat weergeeft hoe overflow pages omgaan met grote BLOBs.

Deze visualisatie geeft weer hoe grote BLOB's, zoals afbeeldingen, worden opgeslagen in SQLite. De afbeelding is opgesplitst in meerdere secties, net zoals een overflow pagina gefragmenteerde gegevens opslaat.

2. Gegevens opgeslagen op één pagina

Een afbeelding van een F-16 straaljager die volledig is opgeslagen binnen een enkele SQLite-pagina, wat een ideaal geval laat zien waarbij overflow-pagina's niet nodig zijn.

Hier past een afbeelding volledig op één databasepagina, zodat er geen overlooppagina's nodig zijn.

3. Gegevens verdeeld over meerdere pagina's

Hex weergave van een afbeelding die niet-contigu is opgeslagen op SQLite pagina's 7, 3 en 5, waarvoor forensische reconstructie nodig is.

Dit voorbeeld illustreert hoe gegevens op een niet-contigue manier worden opgeslagen, waardoor forensische analyse nodig is om ze correct te reconstrueren.

4. Gegevens reconstrueren van overlooppagina's

Een succesvol gereconstrueerde afbeelding van gefragmenteerde SQLite-pagina's, die het forensische proces van het ophalen van overflow-pagina's illustreert.

Door overflow-paginapointers te volgen, kunnen forensisch analisten gefragmenteerde gegevens opnieuw samenvoegen.

Forensisch belang van overlooppagina's

Veel messaging-apps, mobiele applicaties en databases gebruikersprofielfoto's, chatlogs en bijlagen opslaan in SQLite. Wanneer afbeeldingen en documenten meerdere pagina's beslaan, moeten forensische onderzoekers overflow-structuren begrijpen om de gegevens er goed uit te halen.

Forensische uitdagingen:

  • Gefragmenteerde gegevens: BLOB's (zoals afbeeldingen) worden vaak verdeeld over meerdere pagina's.
  • Retrieval op basis van aanwijzers: Analisten moeten SQLite's overflow page pointers volgen om de volledige afbeelding of het bestand te reconstrueren.
  • Snijproblemen: Eenvoudig zoeken naar een JPEG-header (FFD8FF) en footer (FFD9) kan mislukken omdat ze op afzonderlijke pagina's kunnen staan.

Voorbeeld uit de praktijk: Een profielfoto uit Overflow-pagina's extraheren

Laten we nu stap voor stap een forensisch herstel uitvoeren van een image die is opgeslagen in een SQLite database.

De BLOB in de database zoeken

DB Browser voor SQLite toont een contactentabel met profielfoto's opgeslagen als BLOB's, een essentiële stap in forensische extractie.

Gebruik DB-browser voor SQLiteforensisch analisten identificeren de record met de profielfoto in de contacten tafel.

De BLOB-lengte in hexadecimaal bepalen

Varint 0xB135 converteert naar een cellengte van 6.325 bytes (zonder de varint zelf of de rij-ID)

Gebruik HxD, een hex-editor, zoeken ze de recordheader, die een VARINT die de BLOB-lengte bepaalt.

De afbeeldingsgrootte bevestigen

Gemarkeerde VARINT in HxD toont de totale afbeeldingsgrootte (6.325 bytes), wat bevestigt dat het de standaard SQLite paginagrootte overschrijdt.

De tweede VARINT in de recordkop specificeert de grootte van de afbeelding. In dit geval is de totale grootte 6.325 bytesoverschrijdt de paginalimiet.

Volg de overloopwijzer

SQLite overflow pointer onderaan de pagina, waardoor het vervolg van de gegevens naar pagina 4 wordt geleid om verder opgevraagd te worden.

Onderaan de hoofdpagina staat een vier-byte pointer leidt tot pagina 4die het volgende deel van de afbeelding bevat.

De overlooppagina onderzoeken

Hex-weergave van een gefragmenteerde afbeelding volledig gemarkeerd, klaar voor handmatige extractie en forensische reconstructie.

De eerste vier bytes op pagina 4 geven aan of er nog een overflowpagina volgt. Aangezien de waarde 0x00000000Dit is de laatste overloop pagina.

De afbeelding extraheren en reconstrueren

Hex-weergave van een gefragmenteerde afbeelding volledig gemarkeerd, klaar voor handmatige extractie en forensische reconstructie.

Forensisch analisten halen de 6.292 bytes van de afbeelding van beide pagina's en deze handmatig reconstrueren.

📌De vier-byte pointers maken GEEN deel uit van de gegevens die worden opgenomen in de gekerfde afbeelding

De herstelde afbeelding controleren

Uitgepakte afbeeldingVerzamelde profielfoto van SQLite overflow-pagina's, met succes gekerfd en weergegeven in Windows Photo Viewer.

De geëxtraheerde afbeelding is nu volledig hersteld en kan worden bekeken.

Laatste gedachten: Het belang van analyse van overlooppagina's

Bij forensisch onderzoek kan het over het hoofd zien van overflowpagina's leiden tot verlies van kritisch bewijs. Inzicht in het opslagmechanisme van SQLite is cruciaal voor nauwkeurige gegevensextractie en reconstructie.

Forensisch inzicht:

✔️ Altijd controleren op overlooppagina'sbij het analyseren van grote records.

✔️ Volg SQLite's overloopaanwijzerszorgvuldig.

✔️ Eenvoudig vijlsnijtechnieken werkt mogelijk niet vanwege niet-aaneengesloten opslag.

Of het nu gaat om het analyseren van chatdatabases, contactlijsten of toepassingslogboekenForensische professionals moeten bedreven zijn in het herstellen van gefragmenteerde gegevens.

💡 Ben je gefragmenteerde gegevens tegengekomen in SQLite forensisch onderzoek? Hoe benadert u de analyse van overflow pagina's? Deel je inzichten hieronder!

Facebook
Twitter
E-mail
Afdrukken

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *