SQLite-tietokantojen palautustyökalu : olemassa olevan ja poistetun datan etsiminen SQLite-tietokannoista
Salonen, Jesse (2022)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202205097903
https://urn.fi/URN:NBN:fi:amk-202205097903
Tiivistelmä
Opinnäytetyö tehtiin Keskusrikospoliisille, ja sen tavoitteena oli kehittää yleiskäyttöinen työkalu SQLite-tietokantojen karveeraukseen, eli poistetun tai muuten tavoittamattoman datan hakemiseen. Idea työkalulle oli muodostunut Keskusrikospoliisin ICT-ryhmässä, jossa forensinen tutkimus SQLite-tietokantojen parissa on yleistä.
Projekti alkoi SQLite-tietokantojen rakenteeseen tutustumisella, minkä jälkeen itse sovelluksen rungon suunnittelu alkoi. Ohjelmointikielenä käytettiin C++:aa, koska se on tehokas matalan tason kieli, ja sen käytöstä kehittäjällä oli eniten kokemusta. Tuloksena syntyi tavoitteiden mukainen työkalu, jonka avulla käyttökohteesta riippumatta saatiin käsiteltyä mikä tahansa SQLite-tietokanta. Olemassa oleva data parsittiin käyttäjälle luettavaan muotoon, ja tietokannan rakennetta hyödyntäen myös poistettua dataa onnistuttiin palauttamaan.
Projektin edetessä osaaminen ja ymmärrys SQLite-tietokannan rakenteesta kehittyi, ja parannuksia sekä lisäominaisuuksia kehiteltiin dynaamisesti. Jos otetaan huomioon, mitä ominaisuuksia työkalulta vaadittiin, onnistui tuotos tavoitteiden mukaisesti. Datan eheyden kannalta mitään merkittäviä riskejä ei otettu, ja käyttäjä voi luottaa saamansa tiedon eheyteen. Karveerauksessa olisi kuitenkin ollut mahdollisuus käsitellä osittain vioittunutta dataa tarkemmin, jolloin jotain tietoa olisi ollut mahdollista saada enemmän esille. Tämä olisi kuitenkin lisännyt merkittävästi riskejä datan eheyteen, joten se jätettiin tarkoituksella projektin ulkopuolelle.
Projekti alkoi SQLite-tietokantojen rakenteeseen tutustumisella, minkä jälkeen itse sovelluksen rungon suunnittelu alkoi. Ohjelmointikielenä käytettiin C++:aa, koska se on tehokas matalan tason kieli, ja sen käytöstä kehittäjällä oli eniten kokemusta. Tuloksena syntyi tavoitteiden mukainen työkalu, jonka avulla käyttökohteesta riippumatta saatiin käsiteltyä mikä tahansa SQLite-tietokanta. Olemassa oleva data parsittiin käyttäjälle luettavaan muotoon, ja tietokannan rakennetta hyödyntäen myös poistettua dataa onnistuttiin palauttamaan.
Projektin edetessä osaaminen ja ymmärrys SQLite-tietokannan rakenteesta kehittyi, ja parannuksia sekä lisäominaisuuksia kehiteltiin dynaamisesti. Jos otetaan huomioon, mitä ominaisuuksia työkalulta vaadittiin, onnistui tuotos tavoitteiden mukaisesti. Datan eheyden kannalta mitään merkittäviä riskejä ei otettu, ja käyttäjä voi luottaa saamansa tiedon eheyteen. Karveerauksessa olisi kuitenkin ollut mahdollisuus käsitellä osittain vioittunutta dataa tarkemmin, jolloin jotain tietoa olisi ollut mahdollista saada enemmän esille. Tämä olisi kuitenkin lisännyt merkittävästi riskejä datan eheyteen, joten se jätettiin tarkoituksella projektin ulkopuolelle.