Dieser Artikel führt in die Android-Forensik und die Techniken ein, die zur Durchführung forensischer Untersuchungen von Android verwendet werden. Wir besprechen Android-Dateisysteme, Datenerfassung, Analyse und verschiedene Tools, die für die Extraktion von Android-Daten zur Verfügung stehen.
Einführung
Der Smartphone-Markt wächst immer weiter. Mit den drastischen Veränderungen in der Technologie werden Smartphones zur Zielscheibe von Kriminellen. Da die meisten Menschen völlig süchtig nach mobilen Geräten sind, um ihre täglichen Aufgaben zu erledigen – vom Einrichten einer Erinnerung, um unseren Lieben zu besonderen Anlässen alles Gute zu wünschen, bis hin zu Online-Bankgeschäften -, enthalten mobile Geräte eine Menge sensibler Daten, die für Ermittler von Interesse sind. Da Android eines der führenden Smartphone-Betriebssysteme ist, ist es wichtig, Kenntnisse über die Android-Forensik zu haben.
Die Android-Forensik unterscheidet sich aus verschiedenen Gründen von der normalen Festplattenforensik. Es unterstützt verschiedene Dateisysteme, die spezifisch für Android sind. Wir können auf Android-Geräten nach den folgenden Daten suchen: SMS, MMS, E-Mails, Anrufprotokolle, Kontakte, Fotos, Kalender, Notizen, Browserverlauf, GPS-Standorte, Passwörter, auf SD-Karten gespeicherte Daten usw.
Es ist wichtig, Dateisysteme und Verzeichnisstrukturen zu verstehen und zu wissen, wie und wo die Daten auf den Geräten gespeichert sind, bevor man sich mit der eigentlichen Forensik befasst.
Android-Verzeichnisstruktur
Android hat eine eigene Verzeichnisstruktur. Wir können uns die Verzeichnisstruktur des Geräts mit „adb shell“ ansehen. Es ist auch möglich, die Verzeichnisstruktur des Geräts mit DDMS einzusehen. Die folgende Abbildung zeigt das Dateisystem meines Geräts „Sony Xperia E“ mit „adb shell“.
Die obige Abbildung zeigt viele Dateien und Ordner auf dem aktuellen Gerät. Die wichtigsten Speicherorte für einen forensischen Analysten sind /system, /data, /sdcard, /ext_card.
/system: Es enthält betriebssystemspezifische Daten.
Wie wir in der obigen Abbildung sehen können, enthält dieses Verzeichnis verschiedene Unterverzeichnisse, die Informationen über die Systemanwendungen, Schriftarten, Bibliotheken, ausführbare Dateien usw. enthalten.
/data: Es enthält benutzerspezifische Daten, wie z.B. Daten, die von einer SMS-Anwendung gespeichert werden. Im Verzeichnis „/data/app“ sind die ausführbaren Dateien jeder installierten Anwendung zu sehen. Dies erfordert Root-Rechte, was bedeutet, dass ein Benutzer ohne Root-Gerät den Inhalt dieses Verzeichnisses nicht sehen kann. Die folgende Abbildung zeigt, wie die Binärdateien der einzelnen installierten Anwendungen auf dem Gerät angezeigt werden können (die Ausgabe ist gekürzt).
Benutzerdaten befinden sich im Verzeichnis „/data/data//“. Aus Sicherheitsgründen kann auf die Daten in den einzelnen Verzeichnissen von anderen Anwendungen nicht zugegriffen werden.
/sdcard und /ext_card: In diesem speziellen Fall haben wir sdcard für den internen Speicher und ext_card für den externen Speicher. Normalerweise wird sdcard für externen Speicher angegeben. Diese werden verwendet, um Benutzerdaten wie Bilder, Musikdateien, Videos usw. zu speichern.
Android-Dateisysteme
Ein Grundwissen über Android-Dateisysteme ist immer gut, bevor man in die Android-Forensik eintaucht. Das liegt daran, dass Android verschiedene Dateisysteme unterstützt. Die Hauptpartition des Android-Dateisystems wird oft als YAFFS2 (Yet Another Flash File System) partitioniert. YAFFS2 ist speziell für eingebettete Systeme wie Smartphones konzipiert. Es bietet eine größere Effizienz und Leistung.
Um die Liste der unterstützten Dateisysteme zu sehen, können wir den folgenden Befehl auf der „adb shell“ verwenden.
„cat /proc/filesystems“
Wie wir in der obigen Abbildung sehen können, erhalten wir eine Liste der vom Gerät unterstützten Dateisysteme. Der Eintrag „nodev“ neben dem Dateisystem zeigt an, dass es kein physisches Gerät gibt, das mit diesem bestimmten Dateisystem verbunden ist. Android unterstützt die Dateisysteme ext2, ext3 und ext4 (die von Linux-Systemen verwendet werden) sowie das Dateisystem vfat, das von Windows-basierten Systemen verwendet wird. Da Android für mobile Geräte gedacht ist, unterstützt es die Dateisysteme YAFFS und YAFFS2, da es die in diesen Geräten verwendeten NAND-Chips unterstützt.
Das Dateisystem von Android ist in verschiedene Partitionen unterteilt. Um die verschiedenen Partitionen zu sehen, die auf einem Android-Gerät eingehängt sind, können wir eine Shell auf dem Gerät aufrufen und den folgenden Befehl ausführen: „mount“. Dies wird in der folgenden Abbildung gezeigt.
Wie wir in der obigen Abbildung sehen können, gibt es verschiedene Partitionen, die auf dem Gerät eingehängt sind.
Wenn wir die obige Abbildung betrachten, gibt es einige wichtige Dateisystempartitionen wie /system, /cache, /data, die ext4 als ihren Dateisystemtyp verwenden und nicht YAFFS. Das liegt daran, dass Android ab Gingerbread das YAFFS-Dateisystem durch ext4 ersetzt hat.
Datenerfassungsmethoden
Datenerfassung ist der Prozess der Extraktion von Daten aus den Beweisen. Wie bereits erwähnt, ist die Datenerfassung auf mobilen Geräten nicht so einfach wie die forensische Erfassung von Standardfestplatten. Diese Datenerfassungstechniken werden grob in die folgenden Typen unterteilt:
Manuelle Erfassung:
Der Prüfer nutzt die Benutzeroberfläche des mobilen Geräts, um den Inhalt zu untersuchen. Während er das Gerät durchsucht, macht der Prüfer Bilder von jedem Bildschirm. Bei dieser Methode werden keine Tools zur Datenerfassung benötigt. Abgesehen von den Vorteilen besteht der größte Nachteil dieser Methode darin, dass nur Daten, die für den Benutzer auf dem Telefon sichtbar sind, wiederhergestellt werden können, und natürlich ist sie zeitaufwendig.
Physikalische Erfassung:
Ähnlich dem physischen Erfassungsprozess bei der standardmäßigen digitalen Forensik wird beim physischen Erfassungsprozess auf mobilen Geräten eine Bit-für-Bit-Kopie des gesamten Dateisystems erstellt. Es wird eine Kopie des gesamten Dateisystems erstellt, das die auf einem Gerät vorhandenen Daten enthält, einschließlich der gelöschten Daten und des nicht zugewiesenen Speicherplatzes.
Logische Erfassung:
Die logische Extraktion erfasst Informationen aus dem Gerät unter Verwendung der Anwendungsprogrammierschnittstelle des Originalgeräteherstellers, um den Inhalt des Telefons mit einem PC zu synchronisieren.
Die meisten der kostenlos verfügbaren Tools führen eine logische Erfassung durch. Logische Erfassung ist der Prozess der Extraktion von Daten, die für die Benutzer des Geräts zugänglich sind, und daher kann es keine gelöschten Daten oder Daten in nicht zugewiesenem Speicherplatz erfassen. Die obige Aussage hat in einigen Fällen Einschränkungen.
Imaging einer SD-Karte mit FTK Imager
FTK Imager kann unter dem folgenden Link heruntergeladen werden. http://www.accessdata.com/support/product-downloads
Es ist wichtig, eine Bit-für-Bit-Kopie der SD-Karte des Telefons zu erstellen, da sie bei Ermittlungen als wertvoller Datenschatz verwendet werden kann. Um die Integrität des Beweismaterials zu wahren, sollten wir eine Schreibsperre verwenden.
SD-Karten haben im Allgemeinen das FAT32-Dateisystem. Wir können also herkömmliche Imaging-Tools verwenden und ein Image der SD-Karte erstellen. In diesem Abschnitt werden wir ein beliebtes Tool namens FTK Imager verwenden, um das Image der SD-Karte zu erhalten.
Hier sind die Schritte:
- Entfernen Sie die SD-Karte sicher aus dem mobilen Gerät und schließen Sie sie mit einem Kartenleser an die Workstation an.
-
Starten Sie das Tool FTK Imager. Dieses erscheint wie in der Abbildung unten dargestellt.
-
Navigieren Sie nun zu „File“ und klicken Sie auf „Create Disk Image“ wie unten dargestellt.
Der obige Schritt öffnet ein neues Fenster, um die Art der Erfassung auszuwählen.
Da wir versuchen, ein Image der kompletten SD-Karte zu erstellen, habe ich „Physical Drive“ gewählt. Es öffnet sich ein neues Fenster zur Auswahl des physischen Laufwerks, wie unten gezeigt.
Ich habe „PHYSICALDRIVE 2“ mit 1 GB gewählt, was in unserem Fall die SD-Karte ist. Nachdem Sie die entsprechende Option ausgewählt haben, klicken Sie auf „Fertig stellen“. Es wird ein weiteres Fenster angezeigt, in dem wir das Ziel sowie den Typ des zu erstellenden Images hinzufügen können.
Nach dem Klicken auf die Schaltfläche „Hinzufügen“ öffnet sich ein neues Fenster, in dem wir den Typ des Zielimages auswählen können.
In unserem Fall wählen wir „Raw“, was ein „dd“-Image ergibt. Im Gegensatz zu anderen Bildformaten wie „E01“ werden bei einem „dd“-Bild die Metadaten nicht im Bild gespeichert. Wenn wir auf „Weiter“ klicken, wird ein weiteres Fenster angezeigt, in dem FTK Imager nach Informationen zum Asservat fragt. Wir können die entsprechenden Details ausfüllen und auf „Weiter“ klicken oder es überspringen, wenn wir es als Spur machen.
Wie wir in der obigen Abbildung sehen können, haben wir den Zielpfad und den Namen der Ausgabedatei angegeben. Klicken Sie abschließend auf „Fertig stellen“, um das Imaging zu starten.
Klicken Sie auf „Start“, um den Prozess zu beginnen.
-
Nach Abschluss des Prozesses zeigt FTK Imager ein neues Fenster mit den Ergebnissen der Hash-Verifizierung an. Dies ist in der folgenden Abbildung dargestellt.
Das erstellte Image kann nun mit herkömmlichen forensischen Analysetools weiter analysiert werden.
Imaging des Android-Dateisystems:
In diesem Abschnitt werden wir sehen, wie man die Datenerfassung von Android-Dateisystempartitionen durchführt.
Hinweis: Um den folgenden Prozess zu befolgen, muss das Gerät gerootet sein.
Wir werden das beliebte Tool „dd“ verwenden, um unsere Arbeit zu erledigen. „dd“ ist in Android standardmäßig im Verzeichnis „/system/bin“ vorhanden. Dies ist in der folgenden Abbildung zu sehen.
Schauen wir uns nun die Partitionen an, die für uns von Interesse sind, indem wir den mount-Befehl verwenden.
Nachfolgend ist der Eintrag, der mit der Partition „/data“ aus der obigen Ausgabe verbunden ist.
/dev/block/platform/msm_sdcc.3/by-num/p16 /data ext4 rw,nosuid,nodev,relatime,noauto_da_alloc,data=ordered 0 0
So, lassen Sie uns den folgenden Befehl verwenden, um diese spezielle Partition mit „dd“ zu extrahieren.
dd if=/dev/block/platform/msm_sdcc.3/by-num/p16 of=/mnt/sdcard/output.img
Der obige Befehl wird im Folgenden erklärt.
if = Eingabedatei
of = zu erstellende Ausgabedatei
output.img = Name des zu erstellenden Ausgabe-Images.
Wir können sogar die Blockgröße mit der Option „bs“ in dd angeben.
Nach Abschluss des obigen Prozesses können wir diese Datei mit Tools wie Droid Explorer herausziehen. Wir können dies auch mit dem adb pull-Befehl tun.
Der folgende Screenshot zeigt den Befehl, um das Image mit dem adb pull-Befehl auf unsere Workstation zu ziehen.
Nun können wir dieses Image verwenden, um unsere weitere Analyse auf dem Gerät durchzuführen.