iPhone Forensik

iPhone Forensik

Marc Ruef
von Marc Ruef
Lesezeit: 17 Minuten

Die Geräte von Apple erfreuen sich einer sehr grossen Beliebtheit. Damit werden sich ebenfalls für Angreifer interessant. Ebenso wächst aber auch das Interesse für forensische Untersuchungen. Diese werden beispielsweise von Behörden angesetzt, um Details zur Nutzung eines Geräts bzw. dem Verhalten dessen Besitzers in Erfahrung zu bringen.

Lokation des iTunes-Backup

Dieser Beitrag soll das grundlegende Prinzip der iPhone Forensik aufzeigen. Es lässt sich ebenfalls auf andere Apple-Geräte mit dem iOS-Betriebssystem übertragen (z.B. iPad und iPod). Hierzu ist der phsysische Zugriff auf ein entsprechendes Gerät erforderlich. Wie bei jeder forensischen Analyse soll auch hier darum bemüht sein, das Original-Material möglichst unangetastet zu lassen, um ein unbeabsichtigtes Verändern der Informationen zu verhindern. Zu diesem Zweck wird das Gerät über den USB-Anschluss an einen Rechner angeschlossen und auf diesem über iTunes ein reguläres Backup angefertigt.

iTunes legt eine lokale Kopie sämtlicher Konfigurationseinstellungen und Anwendungsdaten des Geräts an. Dabei werden die Backups benutzerbezogen und voneinander getrennt abgelegt. Die jeweiligen Ordner sind auf den verschiedenen Betriebssystemen wie folgt eingerichtet:

Dort finden sich als Unterordner die jeweiligen Backups der verschiedenen Geräte. Die Ordnernamen entsprechen dabei 40-bit hexadezimalen Hashwert, der manchmal um einen zusätzlichen Datumswert und eine weitere Kennzeichnung erweitert wird.

Allgemeine Dateien des Backup

Innerhalb eines Backup-Ordner finden sich sämtliche zu einem Backup dazugehörigen Dateien. In der Datei Info.plist werden im XML-Format die grundlegenden Informationen des Backups bereitgestellt. Dazu gehören allgemeine Informationen zum Gerät und der synchronisierten Apps.

Die zum Backup gehörigen Dateien weisen keine Dateierweiterung auf. Stattdessen werden deren Namen aus dem SHA1-Hash Wert des original Pfad- und Dateinamens gebildet. Beispiel:

maru@debian:~$ printf 'HomeDomain-Library/SMS/sms.db' | sha1
3d0d7e5fb2ce288813306e4d4636395e047a3d28

Es ist also mit der Durchsicht der Dateien möglich herauszufinden, um was für einen Dateityp es sich handelt. Die einfachste und effizienteste Form ist das Identifizieren der Magic Number einer Datei. Hierzu können Anwendungen wie das file-Kommando für Unix oder filerecon für Windows eingesetzt werden. Mit einem iPhone aufgenommene Filme lassen sich beispielsweise anhand der Zeichenkette ftypqt, die auf einen Quicktime AVI-Container hindeuten, identifizieren. Durch das Hinzufügen der Dateierweiterung .avi kann die entsprechende Aufnahme üblicherweise in einem Videoplayer abgespielt werden.

SQLite-Datenbanken

Von ebenso grossem Interesse bei einer forensischen Untersuchung sind jedoch SQLite-Datenbanken. Diese werden üblicherweise durch Systemapplikationen und zusätzlich installierte Apps eingesetzt, um dynamische Daten abzulegen. Solche Datenbanken lassen sich daran erkennen, dass ihr Dateiinhalt mit der folgenden Zeichenkette beginnt:

SQLite format 3

Bei SQLite handelt es sich um eine Programmbibliothek, die ein relationales Datenbanksystem bereitstellt. Sie unterstützt zu grosen Teilen die in SQL-92 festgelegten SQL-Sprachbefehle. Eine SQLite-Datenbank wird jedoch in reduzierter Weise als einzelne Datei abgelegt und verzichtet deshalb auf ein Client/Server-Modell. Es gibt verschiedene Clients und Bibliotheken, mit denen auf SQLite-Datenbanken zugegriffen können werden. Der nachfolgende Screenshot zeigt beispielsweise den SQLite Database Browser, eine Freeware-Lösung für Windows. Sie ist jedoch nicht gerade für ihre Stabilität und Zuverlässigkeit, gerade bei komplexeren SQL-Abfragen, bekannt.

SQLite Datbase Browser zeigt Anrufliste

Da wir jedoch im Rahmen einer forensischen Analyse unsere Zugriffe bestmöglich automatisieren wollen, werden wir auf die zeilenbasierte Implementierung des SQLite-Clients zurückgreifen. Mit diesem sollen nun auf die SQLite-Dateien der jeweiligen Applikationen zugegriffen werden. Nachfolgende Tabelle zeigt die wichtigsten Dateinamen bei einer forensischen Untersuchung. Diese können bei verschiedenen iOS-Versionen voneinander abweichen. Die gezeigte Liste fokussiert sich lediglich auf die Namenskonvention von iOS4.

Dateiname Beschreibung OS
ca3bc056d4da0bbf88b5fb3be254f3b7147e639c Notizen 4
2041457d5fe04d39d0ab481178355df6781e6858 Kalender 2-4
31bb7ba8914766d4ba40d6dfb6113c8b614be442 Kontakte 2-4
2b2b0084a1bc3a5ac8c27afdf14afb42c61a19ca Anrufe 4
992df473bbb9e132f4b3b6e4d33f72171e97bc7a Voicemail 4
3d0d7e5fb2ce288813306e4d4636395e047a3d28 SMS 1-4
d9d4cfe3ea7c24405aebf4cca72505d5f7e53bb6 Whatsapp 4
be856a633d851b307e07576cb78af18911468f09 Notifo Messages 4
6639cb6a02f32e0203851f25465ffb89ca8ae3fa Facebook 4
6a0ff24e9ae0e722d414a8489bbee4ff66e68278 Xing 4
a099ad74dbbc2a6b536b5e3a0fe388aeb629b27b Shazam 4
bff364619d73328930e02e7fbf268b4ff3d351cd Instapaper 4
b89f186b6dd6235b0a5004aac852ca758d2c00bd Evernote 4

Auslesen des Datenbankinhalts

Wir rufen nun das sqlite3-Kommando (sqlite3.exe) auf, um die Informationen zu den letzten Anrufen zusammenzutragen. Diesem übergeben wir zwei Argumente: Mit dem ersten Argument definieren wir die anzuzeigende SQLite-Datenbank 2b2b0084a1bc3a5ac8c27afdf14afb42c61a19ca und mit dem zweiten Argument ".tables" weisen wir an, dass die Namen der darin enthaltenen Tabellen ausgegeben werden sollen.

C:\>sqlite3 2b2b0084a1bc3a5ac8c27afdf14afb42c61a19ca ".tables"
_SqliteDatabaseProperties  data
call

In der Ausgabe ist zu sehen, dass in der Datenbank die drei Tabellen _SqliteDatabaseProperties, data und call enthalten sind.

Tabellenname Beschreibung
_SqliteDatabaseProperties Eigenschaften der SQLite-Datenbank
data Informationen zur Datenübertragung
call Liste der letzten 100 Anrufe

Die Tabelle call beinhaltet die letzten 100 Anrufe, die über das Gerät getätigt wurden. Mit der SQL-Anweisung PRAGMA kann die Tabellenstruktur ausgegeben werden:

C:\>sqlite3 2b2b0084a1bc3a5ac8c27afdf14afb42c61a19ca "PRAGMA table_info(call);"
0|ROWID|INTEGER|0||1
1|address|TEXT|0||0
2|date|INTEGER|0||0
3|duration|INTEGER|0||0
4|flags|INTEGER|0||0
5|id|INTEGER|0||0
6|name|TEXT|0||0
7|country_code|TEXT|0||0

Die Namen der jeweiligen Felder sind selbsterklärend. Mit address wird die Telefonnummer des Gegenübers definiert. Durch date wird der Zeitpunkt des Anrufs als Unix-Timestamp und durch duration die Dauer dessen in Sekunden ausgegeben. Mit dem Schalter -csv kann sqlite3.exe angewiesen werden, die unterschiedlichen Zellen durch Kommans voneinander zu trennen. Mit dem folgenden Aufruf wird nun der ganze Inhalt der Tabelle ausgegeben, wobei eine umgekehrte Sortierung anhand des Datumswerts vorgenommen wird.

C:>sqlite3 -csv 2b2b0084a1bc3a5ac8c27afdf14afb42c61a19ca "SELECT * FROM call ORDER BY date DESC;"
3648,+41123456789,1303400162,9,4,-1,"",228
3647,+41123456789,1303284369,3,5,4066,"",228
3646,+41123456789,1303219489,0,4,-1,"",228
3645,+41123456789,1303219276,200,4,-1,"",228
3644,+41123456789,1303105423,82,5,-1,"",228
(...)

Durch Anpassungen des sQL-Statements können nun beispielsweise nicht erfolgreiche Anrufe ausgeklammert werden. Dies geschähe durch SELECT * FROM call WHERE duration>0;, denn es sollen lediglich Anrufe mit einer Dauer von mehr als 0 ausgewiesen werden. Und mit der Eingabe von SELECT AVG(duration) FROM call WHERE duration > 0; lässt sich die durchschnittliche Dauer eines Telefongesprächs ermitteln.

Zugriff auf gelöschte Objekte

Viele Apps für das iPhone sind so konzipiert, dass kleinere Nutzdaten nicht wirklich gelöscht werden. Ein gutes Beispiel hierfür sind SMS-Nachrichten. Diese lassen sich zwar auf dem Gerät als gelöscht markieren. Tatsächlich findet dabei aber jedoch nur ein Ausblenden derer statt. Sie selbst sind nach wie vor auf dem Gerät vorhanden und werden auch im iTunes-Backup geführt. Hierzu lässt kann ganz einfach er folgende Zugriff durchgeführt werden:

C:\>sqlite3 -csv 3d0d7e5fb2ce288813306e4d4636395e047a3d28 "SELECT ROWID, address, date, text FROM message ORDER BY date ASC"
1,Swisscom,1245744630,"Dies ist die erste Nachricht auf Ihrem iPhone"
2,Swisscom,1245744634,"Als Nutzer der COMBOX pro wird die Funktion Visual Voicemail auf Ihrem iPhone nicht automatisch aktiviert."
3,Swisscom,1245744641,"Falls Sie von der COMBOX pro zu Visual Voicemail wechseln möchten, wenden Sie sich bitte an unsere Gratis-Hotline 0800xxxxxx"
(...)

Gerade im Rahmen einer forensischen Untersuchung können Zugriffe dieser Art von zentraler Wichtigkeit sein. Die Einfachheit dieser soll aber auch zeitgleich daran erinnern, dass sich entsprechende Datensätze mit selbigem Aufwand manipulieren lassen. Durch Anpassungen an den jeweiligen Datenbanken können Spuren verwischt, manipuliert und generiert werden. Um eine umfassende forensische Untersuchung abschliessend vorlegen zu können, sollten als nach Möglichkeiten querprüfungen mit anderen Informationsquellen vorgenommen werden. Gerade im Zusammenhang mit über das Netzwerk (WLAN/Internet oder GSM/UMTS) verschickten Daten ist die Zusammenarbeit mit dem Provider angeraten.

Applikation Löschverhalten
Mark Echt
SMS  
Kontakte  
Notizen  

An gewissen Punkten setzt das iPhone oder zusätzliche Apps Mechanismen zur Protokollierung ein. Zum Beispiel wird im Adressbuch ebenfalls eine Tabelle mit dem Namen ABRecent geführt. Diese listet die letzten Zugriffe auf die Kontakte auf. Sie ist während der Handynutzung nicht direkt einsehbar oder editierbar/löschbar. Sie eignet sich deshalb bestens, um eine forensische Untersuchung voranzutreiben.

Lokalisierung

Das iPhone weist seit der ersten Generation die Möglichkeit einer Lokalisierung auf. Zu Beginn wurde mit einem Software-Update im Januar 2008 die Möglichkeit geschaffen, die Lokalisierung mittels Trilateration über WiFi-Netze zu bestimmen. Erst mit dem iPhone 3G wurde ein echtes A-GPS eingeführt, das im 3GS um eine digitale Kompassfunktion erweitert wurde. Diese Lokalisierungsmöglichkeiten werden durch das iPhone rege genutzt, um lokationsabhängige Dienste ermöglichen oder vereinfachen zu können. Zum Beispiel kann in der Karten-App die eigene Position angezeigt werden. Viele Twitter-Clients erlauben auch das Mitschicken der eigenen Position. Und so manche Anwendung basiert praktisch vollständig auf der Möglichkeit, die eigene Position mitzugeben (z.B. Foursquare und Gowalla).

Im April diesen Jahres wurde breitflächig bekannt, dass das iPhone diese Bewegungsdaten abspeichert. Sie werden beim Anlegen eines Backups mittels iTunes, wird dieses denn ohne Verschlüsselung durchgeführt, ebenfalls auf den Computer übertragen. Die Medien sahen darin in erster Linie das Risiko, dass diese Informationen durch dritte eingesehen und missbraucht werden könnten. Später stellte sich dann heraus, dass diese Daten gar teilweise in anonymisierter Weise an Apple übertragen werden, um die Lokalisierung über WiFi zu verbessern. Der Benutzer musste hierzu innerhalb von iTunes einwilligen.

Diese Daten werden bis zur Firmware 4.3.3 in der Datei consolidated.db (4096c9ec676f2847dc283405900e284a7c815836) abgelegt. In dieser SQLite-Datenbank sind verschiedene Tabellen enthalten, die von Interesse sein können. In erster Linie interessieren die Tabellen WifiLocation (Positionierung von WLANs) und CellLocation (Positionierung von GSM-Sendemasten). Der Aufbau dieser Tabellen ist jeweils ähnlich: So wird im Feld Timestamp der Zeitpunkt der Ortung und in den Feldern Latitude und Longitude die GPS-Position vermerkt. Im Fall der WiFi-Daten ist ebenfalls im Feld MAC die MAC-Adresse des Access Points notiert. Mit der folgenden Eingabe können die letzten 5 Lokationen ausgegeben werden:

C:>sqlite3 4096c9ec676f2847dc283405900e284a7c815836 "SELECT MAC,Timestamp,Latitude,Longitude FROM WifiLocation ORDER BY Timestamp DESC LIMIT 5;"
MAC Timestamp Latitude Longitude
0:1d:7e:2c:4d:2c 326527281.103384 47.46643942 8.32417249
0:22:3f:93:d9:e5 326527281.103384 47.46657633 8.32428169
0:24:1:38:82:a2 326527281.103384 47.46638536 8.32389265
0:24:b2:fc:24:14 326527281.103384 47.46637845 8.32445275
0:1:e3:1:ad:88 326527281.103384 47.46637523 8.32386404

Mit einer entsprechenden Visualisierungs-Software für GPS-Daten kann damit ein ungefähres Bewegungsverhalten illustriert werden. Das Thema wurde mitunter deshalb so schnell von den Massenmedien aufgegriffen, weil mit dem iPhone Tracker ein einfaches Tool zur automatisierten Extrahierung und Darstellung dieser Daten genutzt wurde. Die nachfolgende Grafik, die mit einer eigenen Software angefertigt wurde, zeigt mein Bewegungsverhalten rund um Zürich Hauptbahnhof der letzten Jahre:

iPhone-Tracking in Zürich

Apple wurde durch die grosse Medienaufmerksamkeit des sogenannten Locationgate gezwungen, diesen angeblich versehentlichen Detailreichtum an Daten einzuschränken. In der Firmware-Version 4.3.3 werden nur noch die letzten Positionen gespeichert. Diese werden zudem nicht mehr angelegt, wenn die Ortungsfunktion abgeschaltet wird. Und von einem Übertragen auf das iTunes-Backup wird generell auch abgesehen. Die Auswertung von Lokalisierungsdaten ist aber nicht nur auf diese Built-In Funktion beschränkt. Viele andere Apps legen ebenfalls Ortungsdaten ab.

Fazit

Moderne Mobiltelefone stehen in Punkto Funktionalität klassischen Computersystemen in nichts mehr nach. Dadurch wird ebenfalls eine neue Welt der digitalen Forensik, die vor allem von Ermittlungsbehörden je länger je mehr berücksichtigt werden wird, erschlossen. Das iTunes-Backup eines iPhones ist schnell angelegt und durch standardisierte Dateiformate, wie halt eben SQLite-Datenbanken, können unkompliziert auf interessante Daten zugegriffen werden. Dies reicht von herkömmlichen Objekten wie Adressbuch, SMS und Kalender. Die zusätzlichen Apps und die Möglichkeiten der Ortungsdienste lassen mit einer umfassenden Analyse jedoch ein sehr exaktes Verhalten des Benutzers rekonstruieren.

Hinweis

Aufgrund der Aktualität der Diskussion wurde dieser Artikel mitunter in der Tageszeitung 20 Minuten zitiert.

Über den Autor

Marc Ruef

Marc Ruef ist seit Ende der 1990er Jahre im Cybersecurity-Bereich aktiv. Er hat vor allem im deutschsprachigen Raum aufgrund der Vielzahl durch ihn veröffentlichten Fachpublikationen und Bücher – dazu gehört besonders Die Kunst des Penetration Testing – Bekanntheit erlangt. Er ist Dozent an verschiedenen Fakultäten, darunter ETH, HWZ, HSLU und IKF. (ORCID 0000-0002-1328-6357)

Links

Sie suchen Interviewpartner?

Unsere Spezialisten kontaktieren Sie gern!

×
Konkrete Kritik an CVSSv4

Konkrete Kritik an CVSSv4

Marc Ruef

scip Cybersecurity Forecast

scip Cybersecurity Forecast

Marc Ruef

Voice Authentisierung

Voice Authentisierung

Marc Ruef

Bug-Bounty

Bug-Bounty

Marc Ruef

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv