In dit artikel maken we kennis met forensisch onderzoek op Android en de technieken die worden gebruikt om forensisch onderzoek op Android uit te voeren. We bespreken Android-bestandssystemen, gegevensverwerving, analyse en verschillende hulpmiddelen die beschikbaar zijn voor Android Data Extraction.
Inleiding
De markt voor smartphones groeit steeds verder. Met de drastische veranderingen in de technologie, worden smartphones doelwitten van criminelen. Omdat de meeste mensen volledig verslaafd zijn aan mobiele apparaten om hun dagelijkse taken uit te voeren, variërend van het instellen van een herinnering om onze dierbaren het beste te wensen bij speciale gelegenheden, tot online banktransacties, bevatten mobiele apparaten veel gevoelige gegevens die van belang zijn voor een rechercheur. Aangezien Android een van de toonaangevende smart phone besturingssystemen is, is het belangrijk om kennis te hebben van Android forensisch onderzoek.
Android forensisch onderzoek is anders dan regulier schijf forensisch onderzoek om verschillende redenen. Het ondersteunt verschillende bestandssystemen die specifiek zijn voor Android. We kunnen zoeken naar de volgende gegevens op Android-apparaten: SMS, MMS, e-mails, oproeplogboeken, contacten, foto’s, kalenders, notities, browsergeschiedenis, GPS-locaties, wachtwoorden, gegevens die zijn opgeslagen op SD-kaarten, enz.
Het is belangrijk om bestandssystemen, directorystructuren, en hoe en waar de gegevens zijn opgeslagen op de apparaten te begrijpen voordat we aan het eigenlijke forensisch onderzoek beginnen.
Android directorystructuur
Android heeft een directorystructuur die er specifiek voor is. We kunnen kijken naar de directory structuur van het apparaat met behulp van “adb shell”. Het is ook mogelijk om de mappenstructuur van het apparaat te bekijken met DDMS. De volgende figuur toont het bestandssysteem van mijn toestel “Sony Xperia E” met behulp van “adb shell”.
De bovenstaande figuur toont vele bestanden en mappen op het huidige toestel. De belangrijkste locaties voor een forensisch analist zijn /system, /data, /sdcard, /ext_card.
/system: Het bevat besturingssysteemspecifieke gegevens.
Zoals we in de bovenstaande figuur kunnen zien, bevat deze directory verschillende submappen om informatie over de systeemapps, lettertypen, bibliotheken, uitvoerbare bestanden enz.
/data: Het bevat gebruikersspecifieke gegevens, zoals gegevens die zijn opgeslagen door een SMS-applicatie. We kunnen de uitvoerbare bestanden van elke geïnstalleerde applicatie zien in de “/data/app” directory. Hiervoor zijn root-privileges nodig, wat betekent dat een gebruiker zonder een geroot apparaat de inhoud van deze directory niet kan zien. De volgende afbeelding laat zien hoe de binary van elke geïnstalleerde applicatie op het apparaat kan worden bekeken (de uitvoer is ingekort).
Gebruikersgegevens bevinden zich in de directory “/data/data//”. Om veiligheidsredenen zijn de gegevens in elke directory niet toegankelijk voor andere toepassingen.
/sdcard en /ext_card: In dit specifieke geval, kregen we sdcard voor interne opslag en ext_card voor externe opslag. Gewoonlijk wordt sdcard gegeven voor externe opslag. Deze worden gebruikt om gebruikersgegevens op te slaan, zoals afbeeldingen, muziekbestanden, video’s, enz.
Android bestandssystemen
Het hebben van basiskennis van Android bestandssystemen is altijd goed voordat je in Android forensisch duikt. Dit komt omdat Android ondersteuning heeft voor verschillende bestandssystemen. De hoofdpartitie van het Android bestandssysteem wordt vaak gepartitioneerd als YAFFS2 (Yet Another Flash File System). YAFFS2 is speciaal ontworpen voor embedded systemen zoals smart phones. Het biedt meer efficiëntie en prestaties.
Om de lijst met ondersteunde bestandssystemen te zien, kunnen we het volgende commando op “adb shell” gebruiken.
“cat /proc/filesystems”
Zoals we in de bovenstaande figuur kunnen zien, hebben we een lijst gekregen met bestandssystemen die door het apparaat worden ondersteund. De vermelding “nodev” naast het bestandssysteem geeft aan dat er geen fysiek apparaat is dat is gekoppeld aan dat specifieke bestandssysteem. Android ondersteunt ext2, ext3, en ext4 bestandssystemen (gebruikt door Linux systemen) en het vfat bestandssysteem gebruikt door Windows-gebaseerde systemen. Omdat het gericht is op mobiele apparaten, ondersteunt Android YAFFS en YAFFS2 bestandssystemen, omdat het ondersteuning vereist voor NAND-chips die in deze apparaten worden gebruikt.
Android’s bestandssysteem is verdeeld in verschillende partities. Om de verschillende partities te zien die zijn aangekoppeld op een Android toestel, kunnen we een shell op het toestel krijgen en het volgende commando uitvoeren: “mount”. Dit wordt weergegeven in de volgende figuur.
Zoals we kunnen zien in de bovenstaande figuur, zijn er verschillende partities aangekoppeld op het apparaat.
Als we kijken naar de bovenstaande figuur, zijn er een paar belangrijke bestandssysteem partities zoals /system, /cache, /data die ext4 gebruiken als hun bestandssysteem type in plaats van YAFFS. Dit komt omdat, vanaf Gingerbread, Android het YAFFS-bestandssysteem heeft vervangen door ext4.
Gegevensverwervingsmethoden
Gegevensverwerving is het proces van het extraheren van gegevens uit het bewijsmateriaal. Zoals we eerder hebben besproken, is data-acquisitie op mobiele apparaten niet zo eenvoudig als standaard forensische acquisitie op harde schijven. Deze technieken voor data-acquisitie zijn grofweg onder te verdelen in de volgende typen.
Handmatige acquisitie:
De onderzoeker gebruikt de gebruikersinterface van het mobiele apparaat om de inhoud te onderzoeken. Terwijl hij door het apparaat bladert, maakt de onderzoeker foto’s van elk scherm. Bij deze methode is geen gereedschap nodig om de gegevens te verzamelen. Afgezien van de voordelen is het grootste nadeel van deze methode dat alleen gegevens die zichtbaar zijn voor de gebruikers op de telefoon kunnen worden achterhaald, en dat het uiteraard tijdrovend is.
Physieke acquisitie:
Gelijkaardig aan het fysieke acquisitieproces bij standaard digitaal forensisch onderzoek, creëert het fysieke acquisitieproces op mobiele apparaten een bit-voor-bit kopie van een volledig bestandssysteem. Het creëert een kopie van het gehele bestandssysteem dat gegevens bevat die aanwezig zijn op een apparaat, met inbegrip van de verwijderde gegevens en niet-toegewezen ruimte.
Logische acquisitie:
Logische extractie verwerft informatie van het apparaat met behulp van de original equipment manufacturer application programming interface voor het synchroniseren van de inhoud van de telefoon met een personal computer.
De meeste van de gratis beschikbare tools voeren Logische Acquisitie uit. Logische Acquisitie is het proces van het extraheren van gegevens die toegankelijk zijn voor de gebruikers van het apparaat en dus kan het geen verwijderde gegevens of de gegevens in niet-toegewezen ruimte verwerven. De bovenstaande verklaring heeft in sommige gevallen beperkingen.
Een SD-kaart met FTK Imager
FTK Imager kan worden gedownload van de volgende link. http://www.accessdata.com/support/product-downloads
Het is belangrijk om een bit-voor-bit-kopie van de SD-kaart van de telefoon te maken, omdat deze tijdens onderzoeken kan worden gebruikt als een waardevolle schat aan gegevens. Als beste praktijk moeten we een schrijfblokker gebruiken om de integriteit van het bewijsmateriaal te behouden.
SD-kaarten zijn over het algemeen van het FAT32-bestandssysteem. We kunnen dus traditionele imaging tools gebruiken en het beeld van de SD-kaart verkrijgen. In deze sectie gaan we gebruik maken van een populaire tool bekend als FTK Imager om het beeld van de SD card.
Hier zijn de stappen:
- Verwijder veilig de SD-kaart van het mobiele apparaat en sluit deze aan op het werkstation met behulp van een kaartlezer.
-
Lanceer FTK Imager tool. Deze verschijnt zoals weergegeven in de onderstaande figuur.
-
Nu navigeert u naar “Bestand” en klikt u op “Schijfimage maken”, zoals hieronder weergegeven.
De bovenstaande stap opent een nieuw venster om het type overname te selecteren.
Omdat we proberen een image van de volledige SD-kaart te maken, heb ik gekozen voor “Fysieke schijf”. Er wordt een nieuw venster geopend om de fysieke schijf te selecteren, zoals hieronder wordt weergegeven.
Ik heb gekozen voor “PHYSICALDRIVE 2” van 1 GB, wat in ons geval de SD-kaart is. Nadat u de juiste optie hebt gekozen, klikt u op Voltooien. Er wordt een ander venster weergegeven waarin we de bestemming en het type afbeelding kunnen toevoegen.
Als u op de knop “Toevoegen” klikt, wordt er een nieuw venster geopend waarin u het type afbeelding kunt selecteren.
In ons geval kiezen we voor “Raw”, wat een “dd”-afbeelding oplevert. In tegenstelling tot andere afbeeldingsformaten zoals “E01”, worden bij “dd” de metadata niet in de afbeelding opgeslagen. Als we op volgende klikken, verschijnt er een ander venster waarin FTK Imager om bewijsmateriaalinformatie vraagt. We kunnen de juiste details invullen en op “volgende” klikken of het overslaan als we het als een trail doen.
Zoals we in de bovenstaande figuur kunnen zien, hebben we het bestemmingspad en de naam van het uitvoerbestand opgegeven. Klik ten slotte op “finish” (voltooien) om de beeldverwerking te starten.
Klik op “start” (starten) om het proces te starten.
-
Nadat het proces is voltooid, geeft FTK Imager een nieuw venster weer waarin de resultaten van de hash-verificatie worden weergegeven. Dit wordt weergegeven in de onderstaande figuur.
Nu kan het gemaakte beeld verder worden geanalyseerd met traditionele forensische analyse-instrumenten.
Imaging Android bestandssysteem:
In deze sectie zullen we zien hoe we data-acquisitie van Android bestandssysteem partities kunnen uitvoeren.
Note: om het onderstaande proces te volgen, moet het apparaat geroot zijn.
We zullen de populaire “dd” tool gebruiken om ons werk te doen. “dd” is standaard aanwezig in Android in “/system/bin” locatie. Dit wordt weergegeven in de volgende figuur.
Nu, laten we eens kijken naar de partitie locaties van onze interesse met behulp van de mount commando.
Hieronder is de vermelding geassocieerd met “/data” partitie uit de bovenstaande output.
/dev/block/platform/msm_sdcc.3/by-num/p16 /data ext4 rw,nosuid,nodev,relatime,noauto_da_alloc,data=ordered 0 0
Dus, laten we het volgende commando gebruiken om deze specifieke partitie uit te pakken met “dd”.
dd if=/dev/block/platform/msm_sdcc.3/by-num/p16 of=/mnt/sdcard/output.img
Het bovenstaande commando wordt hieronder uitgelegd.
if = invoerbestand
of = uitvoerbestand dat moet worden gemaakt
output.img = naam van de aan te maken uitvoerafbeelding.
We kunnen zelfs de blokgrootte opgeven met de optie “bs” in dd.
Na het voltooien van het bovenstaande proces kunnen we dit bestand eruit halen met hulpmiddelen zoals Droid Explorer. We kunnen dit zelfs doen met het adb pull commando.
De onderstaande schermafbeelding toont het commando om de image naar ons werkstation te trekken met het adb pull commando.
Nu kunnen we deze image gebruiken om onze verdere analyse op het apparaat te doen.