Denne artikel introducerer Android-forensisk undersøgelse og de teknikker, der bruges til at udføre Android-forensiske undersøgelser. Vi vil diskutere Android-filsystemer, dataindsamling, analyse og forskellige værktøjer, der er tilgængelige til Android Data Extraction.
Indledning
Markedet for smartphones vokser højere og højere. Med de drastiske ændringer i teknologien er smarttelefoner ved at blive mål for kriminelle. På grund af det faktum, at de fleste mennesker er fuldstændig afhængige af de mobile enheder til at udføre vores daglige opgaver, lige fra at oprette en påmindelse for at ønske vores kære godt ved særlige lejligheder, til online banktransaktioner, indeholder mobile enheder en masse følsomme data, som er af en efterforskers interesse. Da Android er et af de førende styresystemer til smartphones, er det vigtigt at have kendskab til Android-forensics.
Android-forensics er anderledes end almindelig diskforensics af forskellige årsager. Det understøtter forskellige filsystemer, som er specifikke for Android. Vi kan lede efter følgende data på Android-enheder: Vi kan f.eks. søge efter SMS, MMS, e-mails, opkaldslister, kontakter, fotos, kalendere, noter, browserhistorik, GPS-lokationer, adgangskoder, data gemt på SD-kort osv.
Det er vigtigt at forstå filsystemer, mappestrukturer, og hvordan og hvor dataene er gemt på enhederne, før vi går i gang med den egentlige kriminaltekniske undersøgelse.
Android-mappestruktur
Android har en mappestruktur, der er specifik for det. Vi kan se på enhedens mappestruktur ved hjælp af “adb shell”. Det er også muligt at se enhedens mappestruktur ved hjælp af DDMS. Følgende figur viser filsystemet på min enhed “Sony Xperia E” ved hjælp af “adb shell”.
Den ovenstående figur viser mange filer og mapper på den aktuelle enhed. De vigtigste steder for en kriminalteknisk analytiker er /system, /data, /sdcard, /ext_card.
/system: Den indeholder operativsystemspecifikke data.
Som vi kan se i ovenstående figur, indeholder denne mappe forskellige undermapper, der indeholder oplysninger om systemapps, skrifttyper, biblioteker, eksekverbare osv.
/data: Den indeholder brugerspecifikke data, f.eks. data, der er gemt af et SMS-program. Vi kan se de eksekverbare filer for hvert program, der er installeret i mappen “/data/app”. Dette kræver root-privilegier, hvilket betyder, at en bruger uden en rooted enhed ikke kan se indholdet af denne mappe. Følgende figur viser, hvordan hvert installeret programs binære filer kan ses på enheden (output er afkortet).
Brugerdata ligger i mappen “/data/data//”. Af sikkerhedsmæssige årsager kan data i hver mappe ikke tilgås af andre programmer.
/sdcard og /ext_card: I dette specifikke tilfælde har vi sdcard til intern lagring og ext_card til ekstern lagring. Normalt gives sdcard til ekstern lagring. Disse bruges til at gemme brugerdata såsom billeder, musikfiler, videoer osv.
Android-filsystemer
Det er altid godt at have grundlæggende viden om Android-filsystemer, før man dykker ned i Android-forensics. Dette skyldes, at Android har understøttelse for forskellige filsystemer. Hovedpartitionen i Android-filsystemet er ofte opdelt som YAFFS2 (Yet Another Flash File System). YAFFS2 er specielt designet til indlejrede systemer som f.eks. smarttelefoner. Det giver større effektivitet og ydeevne.
For at se listen over understøttede filsystemer kan vi bruge følgende kommando på “adb shell”.
“cat /proc/filesystems”
Som vi kan se i ovenstående figur, fik vi en liste over de filsystemer, der understøttes af enheden. Indgangen “nodev” ved siden af filsystemet angiver, at der ikke er nogen fysisk enhed forbundet med det pågældende filsystem. Android understøtter filsystemerne ext2, ext3 og ext4 (som anvendes af Linux-systemer) og vfat-filsystemet, der anvendes af Windows-baserede systemer. Da Android er rettet mod mobile enheder, understøtter Android filsystemerne YAFFS og YAFFS2, da det kræver understøttelse af de NAND-chips, der anvendes i disse enheder.
Androids filsystem er opdelt i forskellige partitioner. For at se de forskellige partitioner, der er monteret på en Android-enhed, kan vi få en shell på enheden og udføre følgende kommando: “mount”. Dette er vist i følgende figur.
Som vi kan se i ovenstående figur, er der forskellige partitioner monteret på enheden.
Hvis vi observerer ovenstående figur, er der få vigtige filsystempartitioner som /system, /cache, /data, der bruger ext4 som filsystemtype i stedet for YAFFS. Det skyldes, at Android fra og med Gingerbread har erstattet YAFFS-filsystemet med ext4.
Dataindsamlingsmetoder
Dataindsamling er processen med at udtrække data fra bevismaterialet. Som vi har diskuteret tidligere, er dataindsamling på mobile enheder ikke lige så enkel som standardrettidig retsmedicinsk dataindsamling på harddiske. Disse dataindsamlingsteknikker er groft sagt opdelt i følgende typer.
Manuel indhentning:
Undersøgeren anvender brugergrænsefladen på den mobile enhed til at undersøge indholdet. Mens undersøgeren gennemser enheden, tager han/hun billeder af hver enkelt skærm. Denne metode kræver ikke nogen værktøjer til at udføre dataindsamling. Bortset fra fordelene er den største ulempe ved denne metode, at kun data, der er synlige for brugerne på telefonen, kan genfindes, og det er naturligvis tidskrævende.
Fysisk erhvervelse:
I lighed med den fysiske erhvervelseproces på standard digital kriminalteknik skaber den fysiske erhvervelseproces på mobile enheder en bit for bit-kopi af et helt filsystem. Den opretter en kopi af hele filsystemet, som indeholder data, der er til stede på en enhed, herunder de slettede data og den ikke-allokerede plads.
Logisk erhvervelse:
Logisk udtræk erhverver oplysninger fra enheden ved hjælp af den oprindelige udstyrsproducents programmeringsgrænseflade til synkronisering af telefonens indhold med en pc.
De fleste af de værktøjer, der er gratis tilgængelige, udfører logisk erhvervelse. Logical Acquisition er processen med at udtrække data, der er tilgængelige for brugerne af enheden, og derfor kan den ikke erhverve slettede data eller data i ikke-allokeret plads. Ovenstående erklæring har begrænsninger i nogle tilfælde.
Billedoptagelse af et SD-kort med FTK Imager
FTK Imager kan downloades fra følgende link. http://www.accessdata.com/support/product-downloads
Det er vigtigt at få en bit for bit kopi af telefonens SD-kort, da det kan bruges som en værdifuld dataskat under efterforskningen. Som bedste praksis skal vi bruge en skriveblokering for at bevare integriteten af bevismaterialet.
SD-kort er generelt af FAT32-filsystemet. Så vi kan bruge traditionelle billedbehandlingsværktøjer og erhverve et billede af SD-kortet. I dette afsnit vil vi bruge et populært værktøj kendt som FTK Imager til at få billedet af SD-kortet.
Her er trinene:
- Fjern sikkert SD-kortet fra den mobile enhed, og tilslut det til arbejdsstationen ved hjælp af en kortlæser.
-
Lancer FTK Imager-værktøjet. Dette vises som vist i figuren nedenfor.
-
Nu skal du navigere til “File” og klikke på “Create Disk Image” som vist nedenfor.
Overstående trin åbner et nyt vindue til at vælge typen af opsamling.
Da vi forsøger at oprette et image af hele SD-kortet, har jeg valgt “Physical Drive”. Det åbner et nyt vindue til at vælge det fysiske drev som vist nedenfor.
Jeg har valgt “PHYSICALDRIVE 2” på 1 GB, som i vores tilfælde er SD-kortet. Når du har valgt den relevante indstilling, skal du klikke på afslutte. Den viser et andet vindue, hvor vi kan tilføje destinationen samt typen af det image, der skal oprettes.
Når vi klikker på “Add” knappen, åbner den et nyt vindue, hvor vi kan vælge destinationens image type.
I vores tilfælde vælger vi “Raw”, hvilket giver et “dd” image. I modsætning til andre billedformater som “E01” vil “dd”-billedet ikke gemme sine metadata i billedet. Når vi klikker på næste, vises et andet vindue, hvor FTK Imager anmoder om oplysninger om bevismateriale. Vi kan udfylde de relevante oplysninger og klikke på “next” eller springe det over, hvis vi gør det som et spor.
Som vi kan se i ovenstående figur, har vi angivet destinationsstien og navnet på outputfilen. Til sidst skal du klikke på afslutte for at starte billeddannelsen.
Klik på “start” for at starte processen.
-
Når processen er afsluttet, viser FTK Imager et nyt vindue, hvor den viser hashverifikationsresultaterne. Dette er vist i figuren nedenfor.
Nu kan det oprettede billede analyseres yderligere ved hjælp af traditionelle kriminaltekniske analyseværktøjer.
Aftryk af Android-filsystemet:
I dette afsnit vil vi se, hvordan man udfører dataindsamling af Android-filsystempartitioner.
Bemærk: For at kunne følge nedenstående proces skal enheden være rootet.
Vi vil bruge det populære værktøj “dd” til at udføre vores arbejde. “dd” er til stede i Android som standard i “/system/bin” placering. Dette er vist i følgende figur.
Nu skal vi se på partitionernes placering af vores interesse ved hjælp af mount-kommandoen.
Følgende er den post, der er forbundet med “/data”-partitionen fra ovenstående output.
/dev/block/platform/msm_sdcc.3/by-num/p16 /data ext4 ext4 rw,nosuid,nodev,relatime,noauto_da_alloc,data=ordered 0 0 0
Så lad os bruge følgende kommando til at udtrække denne særlige partition ved hjælp af “dd”.
dd if=/dev/block/platform/msm_sdcc.3/by-num/p16 of=/mnt/sdcard/output.img
Overstående kommando forklares nedenfor.
if = inputfil
of = outputfil, der skal oprettes
output.img = navnet på det output-billede, der skal oprettes.
Vi kan endda angive blokstørrelsen ved hjælp af indstillingen “bs” i dd.
Når vi er færdige med ovenstående proces, kan vi trække denne fil ud ved hjælp af værktøjer som Droid Explorer. Vi kan endda gøre det ved hjælp af adb pull-kommandoen.
Nedenstående skærmbillede viser kommandoen til at trække billedet over på vores arbejdsstation ved hjælp af adb pull-kommandoen.
Nu kan vi bruge dette billede til at foretage vores yderligere analyse på enheden.