Denna artikel introducerar Android-forensik och de tekniker som används för att utföra Android-forensiska undersökningar. Vi kommer att diskutera Android-filsystem, datainsamling, analys och olika verktyg som finns tillgängliga för Android Data Extraction.
Introduktion
Marknaden för smarta telefoner växer sig allt större. Med de drastiska förändringarna inom tekniken blir smarta telefoner måltavlor för brottslingar. På grund av att de flesta människor är helt beroende av de mobila enheterna för att utföra våra dagliga uppgifter, allt från att ställa in en påminnelse för att önska våra nära och kära lycka till vid speciella tillfällen, till banktransaktioner på nätet, innehåller mobila enheter en hel del känsliga uppgifter som är av intresse för en utredare. Eftersom Android är ett av de ledande operativsystemen för smarta telefoner är det viktigt att ha kunskap om Android forensics.
Android forensics skiljer sig från vanlig diskforensics av olika skäl. Det stöder olika filsystem som är specifika för Android. Vi kan leta efter följande data på Android-enheter: SMS, MMS, e-post, samtalslistor, kontakter, foton, kalendrar, anteckningar, webbläsarhistorik, GPS-positioner, lösenord, data som lagras på SD-kort etc.
Det är viktigt att förstå filsystem, katalogstrukturer och hur och var data lagras på enheterna innan man går in i den egentliga kriminaltekniska undersökningen.
Android-katalogstruktur
Android har en katalogstruktur som är specifik för det. Vi kan titta på enhetens katalogstruktur med hjälp av ”adb shell”. Det är också möjligt att se enhetens katalogstruktur med hjälp av DDMS. Följande figur visar filsystemet för min enhet ”Sony Xperia E” med hjälp av ”adb shell”.
Den ovanstående figuren visar många filer och mappar på den aktuella enheten. De viktigaste platserna för en kriminalteknisk analytiker är /system, /data, /sdcard, /ext_card.
/system: Som vi kan se i figuren ovan innehåller den här katalogen olika underkataloger med information om systemprogram, teckensnitt, bibliotek, körbara program etc.
/data: Den här katalogen innehåller information om systemprogram, teckensnitt, bibliotek, körbara program etc.
/data: Den innehåller användarspecifika data, t.ex. data som lagras av en SMS-applikation. Vi kan se de körbara filerna för varje program som installerats i katalogen ”/data/app”. Detta kräver root-privilegier, vilket innebär att en användare utan en rotad enhet inte kan se innehållet i den här katalogen. Följande figur visar hur varje installerad applikations binärfil kan ses på enheten (utgången är förkortad).
Användardata finns i katalogen ”/data/data//”. Av säkerhetsskäl kan data i varje katalog inte nås av andra program.
/sdcard och /ext_card: I det här specifika fallet har vi sdcard för intern lagring och ext_card för extern lagring. Vanligtvis ges sdcard för extern lagring. Dessa används för att lagra användardata som bilder, musikfiler, videor etc.
Android-filsystem
Det är alltid bra att ha grundläggande kunskaper om Android-filsystem innan man ger sig in i Android-forensiska undersökningar. Detta beror på att Android har stöd för olika filsystem. Huvudpartitionen i Androids filsystem är ofta partitionerad som YAFFS2 (Yet Another Flash File System). YAFFS2 är särskilt utformat för inbyggda system som t.ex. smarta telefoner. Det ger större effektivitet och prestanda.
För att se listan över filsystem som stöds kan vi använda följande kommando på ”adb shell”.
”cat /proc/filesystems”
Som vi kan se i figuren ovan fick vi en lista över filsystem som stöds av enheten. Anteckningen ”nodev” bredvid filsystemet visar att det inte finns någon fysisk enhet som är associerad med just det filsystemet. Android stöder filsystemen ext2, ext3 och ext4 (som används av Linux-system) och filsystemet vfat som används av Windows-baserade system. Eftersom Android är avsett för mobila enheter stöder Android filsystemen YAFFS och YAFFS2, eftersom det kräver stöd för de NAND-chip som används i dessa enheter.
Androids filsystem är uppdelat i olika partitioner. För att se de olika partitioner som är monterade på en Android-enhet kan vi öppna ett skal på enheten och utföra följande kommando: ”mount”. Detta visas i följande figur.
Som vi kan se i figuren ovan finns det olika partitioner monterade på enheten.
Om vi observerar figuren ovan finns det några viktiga filsystempartitioner som /system, /cache, /data som använder ext4 som filsystemtyp i stället för YAFFS. Detta beror på att Android från och med Gingerbread har ersatt YAFFS-filsystemet med ext4.
Metoder för datainsamling
Datainsamling är processen för att extrahera data från bevismaterialet. Som vi diskuterade tidigare är datainsamling på mobila enheter inte lika enkel som standardiserad kriminalteknisk insamling på hårddiskar. Dessa datainsamlingsmetoder delas i stort sett in i följande typer.
Manuell insamling:
Undersökaren använder den mobila enhetens användargränssnitt för att undersöka innehållet. Medan han/hon surfar på enheten tar granskaren bilder av varje skärm. Denna metod kräver inga verktyg för att utföra datainsamling. Bortsett från fördelarna är den största nackdelen med denna metod att endast data som är synliga för användarna på telefonen kan återvinnas, och den är naturligtvis tidskrävande.
Fysiskt förvärv:
Som liknar fysisk förvärvsprocess vid vanlig digital kriminalteknik skapar fysisk förvärvsprocess på mobila enheter en bit-för-bit-kopia av ett helt filsystem. Den skapar en kopia av hela filsystemet som innehåller data som finns på en enhet, inklusive raderade data och oallokerat utrymme.
Logiskt förvärv:
Logiskt uttag förvärvar information från enheten med hjälp av originalutrustningstillverkarens programgränssnitt för synkronisering av telefonens innehåll med en persondator.
De flesta av de verktyg som finns gratis utför logiskt förvärv. Logiskt förvärv är processen för att extrahera data som är tillgängliga för användarna av enheten och därför kan den inte förvärva raderade data eller data i oallokerat utrymme. Ovanstående uttalande har begränsningar i vissa fall.
Avbildning av ett SD-kort med FTK Imager
FTK Imager kan laddas ner från följande länk. http://www.accessdata.com/support/product-downloads
Det är viktigt att få en bitvis kopia av telefonens SD-kort, eftersom det kan användas som en värdefull dataskatt under utredningar. Som bästa praxis måste vi använda en skrivblockerare för att bibehålla bevisens integritet.
SD-kort har i allmänhet filsystemet FAT32. Så vi kan använda traditionella avbildningsverktyg och förvärva bilden av SD-kortet. I det här avsnittet kommer vi att använda ett populärt verktyg som kallas FTK Imager för att få bilden av SD-kortet.
Här är stegen:
- Ta bort SD-kortet från den mobila enheten på ett säkert sätt och anslut det till arbetsstationen med hjälp av en kortläsare.
-
Lansera verktyget FTK Imager. Detta visas som i figuren nedan.
-
Nu navigerar du till ”File” (Fil) och klickar på ”Create Disk Image” (Skapa diskavbildning) som visas nedan.
Ovanstående steg öppnar ett nytt fönster där du kan välja typ av förvärv.
Då vi försöker skapa en avbildning av hela SD-kortet har jag valt ”Physical Drive”. Det öppnas ett nytt fönster för att välja fysisk enhet enligt nedan.
Jag har valt ”PHYSICALDRIVE 2” på 1 GB vilket i vårt fall är SD-kortet. När du har valt rätt alternativ klickar du på avsluta. Det visas ett annat fönster där vi kan lägga till destinationen samt typ av bild som ska skapas.
När vi klickar på knappen ”Add” öppnas ett nytt fönster där vi kan välja typ av destinationsbild.
I vårt fall väljer vi ”Raw” vilket ger en ”dd”-bild. Till skillnad från andra bildformat som ”E01” kommer ”dd”-bilden inte att lagra sina metadata i bilden. När du klickar på nästa visas ett annat fönster där FTK Imager begär information om bevisföremål. Vi kan fylla i lämpliga uppgifter och klicka på ”next” eller hoppa över det om vi gör det som ett spår.
Som vi kan se i figuren ovan har vi angett destinationssökvägen och namnet på utdatafilen. Slutligen klickar du på avsluta för att starta avbildningen.
Klicka på ”start” för att påbörja processen.
-
När processen är avslutad visar FTK Imager ett nytt fönster där den visar hashverifieringsresultaten. Detta visas i figuren nedan.
Nu kan den skapade bilden analyseras ytterligare med hjälp av traditionella verktyg för kriminalteknisk analys.
Avbildning av Androids filsystem:
I det här avsnittet kommer vi att se hur man utför datainsamling av partitioner i Androids filsystem.
Observera: för att kunna följa nedanstående process måste enheten vara rotad.
Vi kommer att använda det populära verktyget ”dd” för att göra vårt jobb. ”dd” finns i Android som standard i ”/system/bin”. Detta visas i följande figur.
Nu ska vi titta på partitionsplatserna av vårt intresse med hjälp av kommandot mount.
Följande är posten som är associerad med partitionen ”/data” från ovanstående utdata.
/dev/block/platform/msm_sdcc.3/by-num/p16 /data ext4 rw,nosuid,nodev,relatime,noauto_da_alloc,data=ordered 0 0
Så, låt oss använda följande kommando för att extrahera denna specifika partition med hjälp av ”dd”.
dd if=/dev/block/platform/msm_sdcc.3/by-num/p16 of=/mnt/sdcard/output.img
Ovanstående kommando förklaras nedan.
if = inmatningsfil
of = utdatafil som ska skapas
output.img = namnet på den utdatabilden som ska skapas.
Vi kan till och med ange blockstorleken med hjälp av alternativet ”bs” i dd.
När vi har avslutat ovanstående process kan vi ta fram filen med hjälp av verktyg som Droid Explorer. Vi kan även göra det med hjälp av kommandot adb pull.
Den nedanstående skärmdumpen visar kommandot för att dra bilden till vår arbetsstation med hjälp av kommandot adb pull.
Nu kan vi använda den här bilden för att göra vår vidare analys på enheten.