Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der...

11
Analyse der Verschlüsselung von App- Daten unter iOS 7 Version 1.0

Transcript of Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der...

Page 1: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

Version 1.0

Page 2: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

Dokumentenhistorie:

Version Datum Autor Co-Autor

1.0 16.12.2013 ASC -

1.0 16.12.2013 - CD

Version 1.0 – © cirosec GmbH 2013 Seite 2 von 11

Page 3: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

Inhaltsverzeichnis

1.  Vorwort ...................................................................................................... 4 

1.1.  Untersuchungsaufbau ................................................................................. 4 

1.2.  Überprüfung ............................................................................................. 4 

1.2.1.  Apple eigene Apps .............................................................................. 5 

1.2.2.  Thirdparty-Apps .................................................................................. 9 

1.2.3.  Aktualisierung von Thirdparty-Apps ..................................................... 11 

Version 1.0 – © cirosec GmbH 2013 Seite 3 von 11

Page 4: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

Version 1.0 – © cirosec GmbH 2013 Seite 4 von 11

1. Vorwort

Apple hat mit der Veröffentlichung von iOS in der Version 7 neben der Einführung von neuen Convenience-Features und einer kompletten Neugestaltung der Benutzeroberfläche auch zahlreiche Erweiterungen und Verbesserungen für den Einsatz in Enterprise-Umgebungen geschaffen.

Neben der Eingrenzung von einzelnen Applikationen, welche zum Öffnen von bestimmten Datentypen genutzt werden dürfen und der Einführung von dedizierten VPN-Tunneln für einzelne Applikationen, hat Apple nun auch die Verschlüsselung auf Dateisystemebene mit ihrer Data-Protection für alle Thirdparty-Applikationen eingeführt.

Bisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der von Apple bereitgestellten Schutzklassen er für die sensiblen Daten seiner App einsetzen möchte. Die Schutzklassen unterscheiden sich jeweils darin, ab welchem Zeitpunkt die geschützten Daten entschlüsselt zur Verfügung stehen und in der Frage, ob diese Daten bei einem Gerätebackup mit gesichert werden sollen.

Seit iOS 7 werden nun die Dateien in den Ordnern Documents und Library aller Thirdparty-Apps mit der Schutzklasse "NSFileProtectionCompleteUntilFirstUserAuthentication" abgesichert, welche dafür sorgt, dass die Dateien mit einem Schlüssel verschlüsselt sind, in den der Passcode des Anwenders eingeht. Erst nach erstmaliger Eingabe dieses Passcodes nach einem Booten stehen die Daten entschlüsselt im Dateisystem zur Verfügung.

Wir haben diesen neuen Sachverhalt zum Anlass genommen, um uns genauer anzuschauen, ob dieses Versprechen ohne Einschränkungen für alle Thirdparty-Apps gilt und ob Apple diesen Mechanismus auch für die bei iOS mitgelieferten Apps einsetzt. Als Untersuchungsgegenstand haben wir die Instant-Messaging Apps von Thirdparty-Anbietern sowie Apple's eigene Apps ausgewählt.

1.1. Untersuchungsaufbau

Als Testaufbau wurde ein iPhone 4 mit iOS 7.0.4 und einer ActiveSync-Anbindung an einen Exchange-Server verwendetet. Für den Zugriff auf das Dateisystem wurde der „limera1n1“ Exploit verwendet, mit dem eine beliebige und nicht signierte RAM-Disk geladen werden kann. Durch das Verwenden einer RAM-Disk lässt es sich am einfachsten feststellen, welche Daten durch eine Verschlüsselung auf Dateisystemebene geschützt sind, da hier absichtlich der Geräte-Unlock nicht durchgeführt wird und folglich die benötigten Schlüssel zur Freischaltung der Dateisystemverschlüsselung nicht generiert werden können.

1.2. Überprüfung

Nach erfolgreichem Laden der RAM-Disk haben wird uns mittels SSH auf das iPhone 4 verbunden, um sowohl die Daten der Apple eigenen Apps als auch die Daten von Thirdparty-Messenger-Apps genauer untersuchen zu können.

1 http://theiphonewiki.com/wiki/Limera1n_Exploit

Page 5: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

1.2.1. Apple eigene Apps

1.2.1.1. SMS/iMessage

Zu Beginn haben wir die SMS/iMessage SQLite-Datenbank (SMS.db) von dem Gerät kopiert und stellten fest, dass diese nach wie vor unverschlüsselt ist. Wie die folgende Abbildung zeigt, ist ein Zugriff auf die Nachrichten möglich:

Speicherort: /private/var/mobile/Library/SMS/SMS.db

Abbildung 1: SMS.db

1.2.1.2. Kontakte

Als nächstes wurde betrachtet, ob das Adressbuch inzwischen verschlüsselt ist. Folgende Abbildung bestätigt die Vermutung, dass auch das Adressbuch noch unverschlüsselt auf dem Dateisystem vorgehalten wird. Auch beim Adressbuch wäre eine Verschlüsselung mit "NSFileProtectionCompleteUntilFirstUserAuthentication" sinnvoll, um den Zugriff über eine RAM-Disk zu verhindern.

Speicherort: /private/var/mobile/Library/AddressBook/AddressBook.sqlitedb

Abbildung 2: AddressBook.sqlitedb

Version 1.0 – © cirosec GmbH 2013 Seite 5 von 11

Page 6: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

1.2.1.3. Kalender / Aufgaben / Erinnerungen

Unverschlüsselte Ablage von Terminen, Aufgaben und Erinnerungen.

Speicherort: /private/var/mobile/Library/Calendar/Calendar.sqlitedb

Abbildung 3: Calendar.sqlitedb

1.2.1.4. Notizen

Unverschlüsselte Ablage von Notizen.

Speicherort: /private/var/mobile/Library/Notes/notes.sqlite 

Abbildung 4: notes.sqlite

Version 1.0 – © cirosec GmbH 2013 Seite 6 von 11

Page 7: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

1.2.1.5. Bilder und Videos

Unverschlüsselte Ablage von erstellten Bildern und Videos.

Speicherort: /private/var/mobile/Media/DCIM

1.2.1.6. Keyboard Cache

Unverschlüsselte Ablage von getätigten Eingaben auf der Bildschirmtastatur

Speicherort: /private/var/mobile/Library/Keyboard/de_DE_dynamic‐text.dat 

Abbildung 5: de_DE_dynamic-text.dat

1.2.1.7. Screenshots

Die Screenshots der Apple eigenen Apps als auch die von Thirdparty-Herstellern werden unter iOS 7 durch die Apple Data-Protection geschützt.

1.2.1.8. Safari Bookmarks

Unverschlüsselte Ablage von Lesezeichen des Safari-Webbrowsers

Speicherort: /private/var/mobile/Library/Safari/Bookmarks.db

Version 1.0 – © cirosec GmbH 2013 Seite 7 von 11

Page 8: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

Abbildung 6: Bookmarks.db

1.2.1.9. E-Mails/Anhänge

Durch die Verwendung eines ActiveSync-Profils ist die Maildatenbank „Protected Index“ unverschlüsselt abgelegt. Diese Datenbank beinhaltet jedoch nicht die eigentlichen E-Mails, sondern nur noch IDs der E-Mails, welche bereitliegen oder empfangen wurden. Dies hat den Hintergrund, dass eine neue E-Mail dem iPhone über eine Push-Nachricht mitgeteilt wird und diese Push-Nachricht bzw. ID der E-Mail auch in einem gesperrten Gerätezustand gespeichert werden muss. Erst wenn das Gerät einsperrt und die Nachrichten-App geöffnet wird, wird die eigentlich E-Mail geladen. Die empfangenen E-Mails und deren eventuell vorhandenen Anhänge werden in einer separaten Datenbank verschlüsselt gespeichert.

Speicherort E-Mails: /private/var/mobile/Library/Mail/ExchangeActiveSync<ID>

Speicherort Mail-Datenbank: /private/var/mobile/Library/Mail/Protected Index

Version 1.0 – © cirosec GmbH 2013 Seite 8 von 11

Page 9: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

Abbildung 7: Protected Index

1.2.1.10. Weitere Apps von Apple

Ein Zugriff auf Daten weiterer Apps von Apple ist ebenso möglich, wie zum Beispiel auf Voice-Mails oder gespeicherten Sprachmemos.

1.2.2. Thirdparty-Apps

Bei den Untersuchungen einiger Thirdparty-Apps stellten wir folgende interessante Tatsache fest: Die Dateisystemverschlüsselung ist nur aktiviert, wenn die App unter iOS 7 neu installiert wurde. Wurde das Gerät von einer früheren iOS-Version aktualisiert und die App war schon vor dem Update auf dem Gerät installiert, liegen die Daten weiterhin unverschlüsselt auf dem Dateisystem.

1.2.2.1. Skype

Bei Skype wurde festgestellt, dass die Datenbank, welche die gesamte Kommunikationsdaten enthält, seit iOS 7 automatisch mit der Apple Data-Protection auf Dateisystemebene verschlüsselt ist. Die entsprechende Datenbank befindet sich im Verzeichnis %APP HOME%/Library/Application\ Support/Skype/<Profil>/main.db

Falls die App schon unter früheren iOS-Versionen installiert wurde, dann liegen die Daten weiterhin unverschlüsselt im Dateisystem.

Version 1.0 – © cirosec GmbH 2013 Seite 9 von 11

Page 10: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

Abbildung 8: main.db der Skype-App

1.2.2.2. Facebook-App und Facebook-Messenger

Auch hier zeigt sich der gleiche Sachverhalt wie bei der Skype-App. Die Dateisystemverschlüsselung ist nur aktiv, wenn die App nach dem Updatevorgang auf iOS 7 neu auf dem Gerät installiert wurde.

Speicherort: %APP HOME%/Library/Caches/orca2.db 

Abbildung 9: orca2.db der Facebook-App

1.2.2.3. Viper

Hier war ein Zugriff auf die Datenbanken nicht möglich, da Viper schon in früheren Versionen die API der Apple Data-Protection benutzt hat.

Version 1.0 – © cirosec GmbH 2013 Seite 10 von 11

Page 11: Analyse der Verschlüsselung von App-Daten unter iOS 7 · PDF fileBisher musste der App-Entwickler dafür Sorge tragen, dass die Daten seiner App verschlüsselt werden und welche der

Analyse der Verschlüsselung von App-Daten unter iOS 7

Version 1.0 – © cirosec GmbH 2013 Seite 11 von 11

1.2.2.4. Whatsapp

Auch Whatsapp benutzte bereits in früheren Versionen die API der Apple Data-Protection. Somit war auch hier kein Zugriff möglich.

1.2.3. Aktualisierung von Thirdparty-Apps

Die Daten einer App liegen unverschlüsselt auf dem Endgerät bei Apps, die vor dem Updatevorgang auf iOS 7 installiert wurden. Auch nach einer Aktualisierung der App über den Apple App Store liegen diese Daten weiterhin unverschlüsselt auf dem Endgerät, obwohl sich bei einer Aktualisierung die GUID der App auf dem Dateisystem ändert. Erst nach einer Deinstallation und einer erneuten Installation der App unter iOS 7 werden die Daten verschlüsselt abgelegt.

Abbildung 10: orca2.db der Facebook-App