Slijede razlike između dviju inačica stranice.
| Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
|
racfor_wiki:seminari2025:nb53918 [2026/01/20 17:12] Nikola Botić [Izazovi i ograničenja SQLite forenzike] |
racfor_wiki:seminari2025:nb53918 [2026/01/20 23:30] (trenutno) Nikola Botić [Izazovi i ograničenja SQLite forenzike] |
||
|---|---|---|---|
| Redak 68: | Redak 68: | ||
| * Offset 44–47: | * Offset 44–47: | ||
| * Offset 48–51: | * Offset 48–51: | ||
| + | |||
| + | {{: | ||
| Forenzičar može ručno provjeriti je li datoteka valjana SQLite baza pregledom prvih 16 bajtova u hex editoru, gdje se mora pojaviti ASCII niz " | Forenzičar može ručno provjeriti je li datoteka valjana SQLite baza pregledom prvih 16 bajtova u hex editoru, gdje se mora pojaviti ASCII niz " | ||
| Redak 133: | Redak 135: | ||
| * Ne smije se kopirati samo .db datoteka. Potrebno je prikupiti i: | * Ne smije se kopirati samo .db datoteka. Potrebno je prikupiti i: | ||
| * .db-wal (Write-Ahead Log – često sadrži obrisane podatke) | * .db-wal (Write-Ahead Log – često sadrži obrisane podatke) | ||
| - | * Element obične liste.db-shm | + | * .db-shm |
| * .db-journal | * .db-journal | ||
| - Osiguranje integriteta | - Osiguranje integriteta | ||
| - | * Element obične listeKopirane | + | * Kopirane |
| **Izazovi pri prikupljanju** | **Izazovi pri prikupljanju** | ||
| Redak 159: | Redak 161: | ||
| **WAL (Write-Ahead Log)** | **WAL (Write-Ahead Log)** | ||
| + | |||
| U WAL modu, promjene se ne upisuju odmah u glavnu bazu. Umjesto toga, prvo se zapisuju u .wal datoteku. Tek kasnije se ti zapisi integriraju u glavnu bazu kroz proces nazvan checkpoint. | U WAL modu, promjene se ne upisuju odmah u glavnu bazu. Umjesto toga, prvo se zapisuju u .wal datoteku. Tek kasnije se ti zapisi integriraju u glavnu bazu kroz proces nazvan checkpoint. | ||
| Redak 166: | Redak 169: | ||
| - Checkpoint – sadržaj WAL-a se zapisuje u glavnu bazu | - Checkpoint – sadržaj WAL-a se zapisuje u glavnu bazu | ||
| - Truncate – nakon checkpointa, | - Truncate – nakon checkpointa, | ||
| + | |||
| + | {{: | ||
| Zašto je to važno u forenzici: | Zašto je to važno u forenzici: | ||
| Redak 177: | Redak 182: | ||
| Zašto je to važno: | Zašto je to važno: | ||
| * Broj stranica u freelistu pokazuje količinu potencijalno obrisanih podataka. | * Broj stranica u freelistu pokazuje količinu potencijalno obrisanih podataka. | ||
| - | * Primjer: 47 stranica × 4096 B ≈ 188 KB podataka koji se mogu biti prisutni i oporavljivi. | + | * Primjer: 47 stranica × 4096 B ≈ 188 KB podataka koji mogu biti prisutni i oporavljivi. |
| **Ekstrakcija podataka iz freelista i WAL-a** | **Ekstrakcija podataka iz freelista i WAL-a** | ||
| Redak 198: | Redak 203: | ||
| - Heksadecimalna analiza | - Heksadecimalna analiza | ||
| * Napredna tehnika koja uključuje analizu sirovih bajtova baze podataka. Forenzičari pretražuju karakteristične SQLite strukture (npr. leaf B-tree stranice koje započinju s bajtom 0x0D) kako bi identificirali obrisane zapise koji još nisu prebrisani. | * Napredna tehnika koja uključuje analizu sirovih bajtova baze podataka. Forenzičari pretražuju karakteristične SQLite strukture (npr. leaf B-tree stranice koje započinju s bajtom 0x0D) kako bi identificirali obrisane zapise koji još nisu prebrisani. | ||
| - | - Specijalizirani forenzički alati | + | - Specijalizirani forenzički alati - više o njima u poglavlju ispod |
| - | * Za automatizirani oporavak često se koriste specijalizirani alati: | + | |
| - | * Autopsy – open-source alat s podrškom za SQLite carving | + | |
| - | * PhotoRec i Scalpel – alati za file carving | + | |
| - | * SQLite Forensic Explorer – komercijalni alat za pregled obrisanih zapisa | + | |
| - | * Oxygen Forensic Detective i Magnet AXIOM – profesionalne platforme za mobilnu forenziku | + | |
| **Primjer uspješnog oporavka** | **Primjer uspješnog oporavka** | ||
| Redak 210: | Redak 210: | ||
| **Postupak: | **Postupak: | ||
| - | Utvrđeno je postojanje WAL datoteke veličine 2,3 MB, što upućuje na necheckpointane | + | Utvrđeno je postojanje WAL datoteke veličine 2,3 MB, što upućuje na ne checkpointane |
| SQL upitima identificirani su zapisi koji su dodani tijekom checkpointa, | SQL upitima identificirani su zapisi koji su dodani tijekom checkpointa, | ||
| Redak 263: | Redak 263: | ||
| SQLite forenzika suočava se s nizom tehničkih i proceduralnih izazova koji mogu značajno otežati ili u potpunosti onemogućiti analizu. | SQLite forenzika suočava se s nizom tehničkih i proceduralnih izazova koji mogu značajno otežati ili u potpunosti onemogućiti analizu. | ||
| - | - Enkripcija baza podataka | + | |
| + | **1. Enkripcija baza podataka** | ||
| **Problem**: | **Problem**: | ||
| Redak 278: | Redak 280: | ||
| * reverse engineering aplikacije radi pronalaska ključeva ili algoritama | * reverse engineering aplikacije radi pronalaska ključeva ili algoritama | ||
| - | - Anti-forenzičke tehnike | + | {{: |
| + | |||
| + | **2. Anti-forenzičke tehnike** | ||
| **Problem**: | **Problem**: | ||
| Redak 285: | Redak 289: | ||
| * Secure delete - Kada je omogućeno, SQLite odmah prepisuje obrisane zapise nulama umjesto da ih ostavi u freelistu, čime se onemogućuje oporavak obrisanih podataka. | * Secure delete - Kada je omogućeno, SQLite odmah prepisuje obrisane zapise nulama umjesto da ih ostavi u freelistu, čime se onemogućuje oporavak obrisanih podataka. | ||
| * VACUUM operacija - VACUUM reorganizira bazu i trajno uklanja sav slobodni (freelist) prostor. Nakon izvođenja ove operacije, oporavak obrisanih zapisa postaje iznimno težak ili nemoguć. | * VACUUM operacija - VACUUM reorganizira bazu i trajno uklanja sav slobodni (freelist) prostor. Nakon izvođenja ove operacije, oporavak obrisanih zapisa postaje iznimno težak ili nemoguć. | ||
| + | |||
| + | {{: | ||
| **Protumjere**: | **Protumjere**: | ||
| Redak 291: | Redak 297: | ||
| * izrada memory dumpova | * izrada memory dumpova | ||
| - | - Sinkronizacija s cloud servisima | + | **3. Sinkronizacija s cloud servisima** |
| **Problem**: | **Problem**: | ||
| Redak 303: | Redak 309: | ||
| ===== Zaključak ===== | ===== Zaključak ===== | ||
| + | |||
| + | SQLite baze podataka predstavljaju ključan izvor digitalnih dokaza u modernoj forenzici, osobito u analizi mobilnih uređaja i aplikacija. Zbog široke primjene i relativno jednostavne strukture, SQLite baze često sadrže vrijedne informacije o komunikaciji, | ||
| + | |||
| + | Jedna od značajnih prednosti SQLite forenzike je mogućnost oporavka podataka koji su korisnici obrisali. Obrisani zapisi mogu ostati dostupni u WAL datotekama, freelist prostorima ili journal datotekama, ovisno o načinu rada baze i stanju zapisivanja. Upravo zato je važno provesti prikupljanje i analizu na ispravan način, kako bi se očuvala integritet i dobili relevantni dokazi. | ||
| + | Istovremeno, | ||
| + | |||
| + | Zbog toga je za uspješnu analizu potrebno kombinirati tehničko znanje o strukturi SQLite baza s odgovarajućim alatima i forenzičkim postupcima. | ||
| + | |||
| + | U konačnici, razumijevanje unutarnje strukture SQLite baze, rada WAL mehanizma i mogućnosti oporavka obrisanih podataka čini SQLite forenziku neizostavnom vještinom u digitalnoj forenzici, a primjena ispravnih metoda prikupljanja i analize ključna je za valjanost dokaza. | ||
| ===== Literatura ===== | ===== Literatura ===== | ||
| - | [1] [[http://books.google.hr/books? | + | [1] [[https://www.sqlite.org/docs.html|SQLite Službena Dokumentacija]] |
| + | |||
| + | [2] [[https:// | ||
| + | |||
| + | [3] [[https:// | ||
| + | |||
| + | [4] [[https:// | ||
| + | |||
| + | [5] [[https:// | ||
| + | |||
| + | [6] [[https:// | ||
| - | [2] [[http://www.google.com/books? | + | [7] [[https://www.geeksforgeeks.org/ |
| - | [3] [[http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf|Kirschner, | + | [8] [[https://reincubate.com/support/how-to/iphone-backup-files-structure/ |