Tässä artikkelissa esitellään Android-tekniset tutkimukset ja tekniikat, joita käytetään Android-teknisten tutkimusten suorittamiseen. Käsittelemme Android-tiedostojärjestelmiä, tiedonhankintaa, analysointia ja Android-tiedonlouhintaan käytettävissä olevia erilaisia työkaluja.
Esittely
Älypuhelinmarkkinat kasvavat yhä suuremmiksi. Teknologian rajujen muutosten myötä älypuhelimista on tulossa rikollisten kohteita. Koska suurin osa ihmisistä on täysin riippuvaisia mobiililaitteista päivittäisten tehtävien suorittamisessa, aina muistutuksen asettamisesta toivottamaan hyviä toivotuksia läheisillemme erityistilaisuuksissa verkkopankkitapahtumiin, mobiililaitteet sisältävät paljon arkaluonteisia tietoja, jotka kiinnostavat tutkijoita. Koska Android on yksi johtavista älypuhelinten käyttöjärjestelmistä, on tärkeää tuntea Android-rikostutkinta.
Android-rikostutkinta eroaa tavallisesta levyteknisestä rikostutkinnasta useista syistä. Se tukee erilaisia tiedostojärjestelmiä, jotka ovat Androidille ominaisia. Android-laitteista voidaan etsiä seuraavia tietoja: Tekstiviestit, MMS-viestit, sähköpostit, puhelulokit, yhteystiedot, valokuvat, kalenterit, muistiinpanot, selainhistoria, GPS-sijainnit, salasanat, SD-kortteihin tallennetut tiedot jne.
On tärkeää ymmärtää tiedostojärjestelmiä, hakemistorakenteita ja sitä, miten ja minne tiedot on tallennettu laitteisiin, ennen kuin siirrytään varsinaiseen rikostekniseen tutkimukseen.
Androidin hakemistorakenne
Androidilla on sille ominainen hakemistorakenne. Voimme tarkastella laitteen hakemistorakennetta käyttämällä ”adb shell” -ohjelmaa. On myös mahdollista nähdä laitteen hakemistorakenne käyttämällä DDMS:ää. Seuraavassa kuvassa näkyy laitteeni ”Sony Xperia E” tiedostojärjestelmä käyttäen ”adb shell”-ohjelmaa.
Yllä olevasta kuvasta näkyy monia tiedostoja ja kansioita nykyisessä laitteessa. Rikosteknisen analyytikon kannalta tärkeimmät sijainnit ovat /system, /data, /sdcard, /ext_card.
/system: Sisältää käyttöjärjestelmäkohtaisia tietoja.
Kuten yllä olevasta kuvasta näkyy, tämä hakemisto sisältää erilaisia alihakemistoja, joissa on tietoja järjestelmäsovelluksista, fonteista, kirjastoista, suoritettavista ohjelmista jne.
/data: Se sisältää käyttäjäkohtaisia tietoja, kuten tekstiviestisovelluksen tallentamia tietoja. Näemme jokaisen sovelluksen suoritettavat tiedostot, jotka on asennettu hakemistoon ”/data/app”. Tämä edellyttää pääkäyttäjän oikeuksia, mikä tarkoittaa, että käyttäjä, jolla ei ole rootattua laitetta, ei voi nähdä tämän hakemiston sisältöä. Seuraavassa kuvassa näytetään, miten kunkin asennetun sovelluksen binääritiedosto voidaan nähdä laitteessa (tuloste on typistetty).
Käyttäjätiedot sijaitsevat hakemistossa ”/data/data//”. Turvallisuussyistä muut sovellukset eivät voi käyttää kussakin hakemistossa olevia tietoja.
/sdcard ja /ext_card: Tässä erityistapauksessa meillä on sdcard sisäistä tallennustilaa varten ja ext_card ulkoista tallennustilaa varten. Yleensä sdcard annetaan ulkoista tallennustilaa varten. Niitä käytetään käyttäjätietojen, kuten kuvien, musiikkitiedostojen, videoiden jne. tallentamiseen.
Androidin tiedostojärjestelmät
Androidin tiedostojärjestelmien perustietämys on aina hyvä olla hallussa, ennen kuin sukelletaan Android-rikostutkintaan. Tämä johtuu siitä, että Android tukee erilaisia tiedostojärjestelmiä. Android-tiedostojärjestelmän pääosio on usein osioitu YAFFS2:ksi (Yet Another Flash File System). YAFFS2 on suunniteltu erityisesti sulautettuihin järjestelmiin, kuten älypuhelimiin. Se tarjoaa suuremman tehokkuuden ja suorituskyvyn.
Katsoaksemme tuettujen tiedostojärjestelmien luettelon voimme käyttää seuraavaa komentoa ”adb shellissä”.
”cat /proc/filesystems”
Kuten yllä olevasta kuvasta näemme, saimme luettelon laitteen tukemista tiedostojärjestelmistä. Tiedostojärjestelmän vieressä oleva ”nodev”-merkintä osoittaa, että kyseiseen tiedostojärjestelmään ei ole liitetty fyysistä laitetta. Android tukee ext2-, ext3- ja ext4-tiedostojärjestelmiä (joita Linux-järjestelmät käyttävät) sekä Windows-pohjaisten järjestelmien käyttämää vfat-tiedostojärjestelmää. Koska Android on suunnattu mobiililaitteisiin, se tukee YAFFS- ja YAFFS2-tiedostojärjestelmiä, koska se edellyttää näissä laitteissa käytettävien NAND-sirujen tukemista.
Androidin tiedostojärjestelmä on jaettu eri osioihin. Nähdäksemme eri osiot, jotka on asennettu Android-laitteeseen, voimme hankkia laitteeseen komentotulkin ja suorittaa seuraavan komennon: ”mount”. Tämä näkyy seuraavassa kuvassa.
Kuten yllä olevasta kuvasta näemme, laitteeseen on asennettu erilaisia osioita.
Jos tarkkailemme yllä olevaa kuvaa, siinä on muutamia tärkeitä tiedostojärjestelmän osioita, kuten /system, /cache, /data, jotka käyttävät tiedostojärjestelmätyyppinä ext4:ää YAFFS:n sijaan. Tämä johtuu siitä, että Gingerbreadista alkaen Android on korvannut YAFFS-tiedostojärjestelmän ext4:llä.
Tiedonhankintamenetelmät
Tiedonhankinta on prosessi, jossa tiedot poimitaan todisteista. Kuten aiemmin todettiin, mobiililaitteiden tiedonhankinta ei ole yhtä yksinkertaista kuin tavallinen kiintolevyn rikostekninen tiedonhankinta. Nämä tiedonhankintamenetelmät jaetaan karkeasti seuraaviin tyyppeihin.
Manuaalinen tiedonhankinta:
Tutkija käyttää mobiililaitteen käyttöliittymää sisällön tutkimiseen. Laitetta selatessaan tutkija ottaa kuvia jokaisesta näytöstä. Tämä menetelmä ei vaadi mitään työkaluja tiedonhankinnan suorittamiseen. Etujen lisäksi tämän menetelmän suurin haittapuoli on se, että vain käyttäjien puhelimessa näkyvät tiedot voidaan ottaa talteen, ja se on luonnollisesti aikaa vievää.
Fyysinen tiedonhankinta:
Samankaltainen kuin fyysinen tiedonhankintaprosessi tavallisessa digitaalisessa rikostekniikassa, fyysinen tiedonhankintaprosessi mobiililaitteissa luo bittikohtaisen kopion koko tiedostojärjestelmästä. Se luo kopion koko tiedostojärjestelmästä, joka sisältää laitteessa olevat tiedot, mukaan lukien poistetut tiedot ja varaamattoman tilan.
Loginen hankinta:
Logisella louhinnalla hankitaan tietoja laitteesta käyttämällä alkuperäisen laitevalmistajan sovellusohjelmointirajapintaa puhelimen sisällön synkronoimiseksi henkilökohtaisen tietokoneen kanssa.
Useimmat ilmaiseksi saatavilla olevat työkalut suorittavat loogisen hankinnan. Logical Acquisition on prosessi, jossa poimitaan tietoja, joihin laitteen käyttäjät pääsevät käsiksi, eikä se näin ollen voi hankkia poistettuja tietoja tai varaamattomassa tilassa olevia tietoja. Edellä esitettyyn väitteeseen liittyy rajoituksia joissakin tapauksissa.
SD-kortin kuvantaminen FTK Imagerilla
FTK Imagerin voi ladata seuraavasta linkistä. http://www.accessdata.com/support/product-downloads
Puhelimen SD-kortista on tärkeää saada bitti kerrallaan kopio, sillä sitä voidaan käyttää arvokkaana data-aarteena tutkinnan aikana. Parhaana käytäntönä on käytettävä kirjoituksenestolaitetta todisteiden eheyden säilyttämiseksi.
SD-kortit ovat yleensä FAT32-tiedostojärjestelmää. Voimme siis käyttää perinteisiä kuvantamistyökaluja ja hankkia kuvan SD-kortista. Tässä osiossa käytämme suosittua työkalua, joka tunnetaan nimellä FTK Imager, saadaksemme kuvan SD-kortista.
Tässä ovat vaiheet:
- Poista SD-kortti mobiililaitteesta ja liitä se työasemaan kortinlukijan avulla.
-
Käynnistä FTK Imager -työkalu. Tämä tulee näkyviin alla olevan kuvan mukaisesti.
-
Siirry nyt kohtaan ”File” (Tiedosto) ja napsauta ”Create Disk Image” (Luo levykuva) alla olevan kuvan mukaisesti.
Yllä olevassa vaiheessa avautuu uusi ikkuna, jossa voit valita hankintatyypin.
Koska yritämme luoda kuvaa täydellisestä SD-kortin sisältävästä SD-muistista, valitsin vaihtoehdoksi vaihtoehdon ”Physical Drive (Fyysinen asema)”. Se avaa uuden ikkunan fyysisen aseman valitsemiseksi alla esitetyllä tavalla.
Olen valinnut ”PHYSICALDRIVE 2”, jonka koko on 1GB ja joka meidän tapauksessamme on SD-kortti. Kun olet valinnut sopivan vaihtoehdon, napsauta viimeistelyä. Näyttöön tulee toinen ikkuna, jossa voimme lisätä määränpään sekä luotavan kuvan tyypin.
Klikkaamalla ”Lisää”-painiketta avautuu uusi ikkuna, jossa voimme valita määränpään kuvatyypin.
Tapauksessamme valitsemme vaihtoehdon ”Raw”, joka antaa ”dd”-kuvan. Toisin kuin muut kuvaformaatit, kuten ”E01”, ”dd”-kuva ei tallenna metatietojaan kuvaan. Kun napsautetaan Seuraava, näyttöön tulee toinen ikkuna, jossa FTK Imager pyytää todisteen kohteen tietoja. Voimme täyttää asianmukaiset tiedot ja napsauttaa ”next” tai ohittaa sen, jos teemme sen jälkikäteen.
Kuten yllä olevasta kuvasta näkyy, olemme antaneet tulostiedoston kohdepolun ja nimen. Aloita kuvantaminen napsauttamalla lopuksi viimeistelyä.
Aloita prosessi napsauttamalla ”Käynnistä”.
-
Prosessin päätyttyä FTK Imager näyttää uuden ikkunan, jossa näkyvät hash-varmistuksen tulokset. Tämä näkyy alla olevassa kuvassa.
Luotua kuvaa voidaan nyt edelleen analysoida perinteisillä rikosteknisillä analyysityökaluilla.
Androidin tiedostojärjestelmän kuvantaminen:
Tässä osiossa katsomme, miten Androidin tiedostojärjestelmän osioiden tiedonhankinta suoritetaan.
Huomautus: jotta voimme seurata alla olevaa prosessia, laitteen on oltava rootattu.
Käytämme suosittua dd-työkalua työmme suorittamiseen. ”dd” on Androidissa oletusarvoisesti paikassa ”/system/bin”. Tämä näkyy seuraavassa kuvassa.
Katsotaan nyt kiinnostavien osioiden sijainnit mount-komennon avulla.
Seuraavana on osioon ”/data” liittyvä merkintä yllä olevasta tulosteesta.
/dev/block/platform/msm_sdcc.3/by-num/p16 /data ext4 rw,nosuid,nodev,relatime,noauto_da_alloc,data=ordered 0 0
Käytetään siis seuraavaa komentoa kyseisen osion poimimiseen käyttämällä ”dd”.
dd if=/dev/block/platform/msm_sdcc.3/by-num/p16 of=/mnt/sdcard/output.img
Yllä oleva komento selitetään seuraavassa.
if = syöttötiedosto
of = luotava tulostiedosto
output.img = luotavan tulostuskuvan nimi.
Voidaan jopa määrittää lohkokoko käyttämällä dd:n optiota ”bs”.
Yllä olevan prosessin päätyttyä voimme vetää tämän tiedoston ulos käyttämällä työkaluja, kuten Droid Explorer. Voimme tehdä sen jopa adb pull -komennolla.
Alla olevassa kuvakaappauksessa näkyy komento, jolla kuva vedetään työasemallemme adb pull -komennolla.
Nyt voimme käyttää tätä kuvaa tehdäksemme jatkoanalyysin laitteesta.