Heute möchte ich über wenig bekannte Funktionen von iOS im Zusammenhang mit dem Schutz von Backups, der Umgehung dieses Schutzes (Rekursion) und dem Schutz gegen Umgehungsschutz (doppelte Rekursion) sprechen. Die Kirsche auf dem Kuchen ist eine kurze Anweisung, mit der Sie den Schutz gegen den Backup-Schutz-Bypass umgehen können (z. B. Rekursion dritter Ordnung), sowie Empfehlungen, die zum Schutz vor Umgehung des Schutzes gegen Backup-Schutz-Bypass beitragen (ausgezeichnete Rekursion vierter Ordnung - glaube ich eine Medaille verdient!).
Backup-Schutz: Während alles einfach ist
IOS-Backup-System - wirklich außer Konkurrenz. In Bezug auf lokale Backups in BlackBerry 10 haben wir etwas Ähnliches gesehen, aber dieses System ist tot, und BlackBerry ist nie in die Cloud gelangt. (Übrigens wurden in BlackBerry 10 OS-Backups immer verschlüsselt und der Schlüssel immer in der Cloud gespeichert - entweder in der BlackBerry ID des Benutzers oder im Unternehmensnetzwerk). Es war ziemlich anständig, in der „Cloud“ und in Windows Phone 8.1 sowie in Windows 10 Mobile zu sichern - aber diese Systeme sind jetzt tot und es gab nie lokale Sicherungen in ihnen.
Der einzige Konkurrent von iOS ist das Android-System, dessen Backups ausschließlich in der Cloud erstellt werden (wir ignorieren den Befehl adb backup: Mit diesem Befehl werden sogar noch weniger Daten gespeichert, als in die Cloud gelangen). Ja, bestimmte Tricks helfen dabei, mehr Daten herauszuholen, aber Backups in Android sind alles andere als ideal.
Als Teil dieses Artikels interessieren wir uns hauptsächlich für lokale Backups. Ich habe
vorhin in ihrem
Blog über ihren Inhalt geschrieben. Sie können beispielsweise in der iTunes-Anwendung erstellt werden, aber nicht nur darin: Es gibt viele Anwendungen von Drittanbietern (einschließlich unseres eigenen iOS Forensic Toolkit), die bei Verbindung mit dem iPhone eine Sicherungskopie davon erstellen. Übrigens kann mit Toolkit manchmal ein Backup aus dem Telefon gezogen werden, selbst wenn der Bildschirm gesperrt ist und der Sperrcode unbekannt ist (hierfür werden Sperrdateien verwendet).
Eine Sicherungskopie ist eine bequeme, universelle und sehr einfache Möglichkeit, eine neue Kopie von Daten von einem gut geschützten (und übrigens verschlüsselten) Speichergerät zu extrahieren. Fast alle interessanten Dinge fallen in die Sicherungen: sowohl die Daten der meisten Anwendungen als auch Anmeldungen mit Kennwörtern, die der Benutzer im Safari-Browser und in Anwendungen von Drittanbietern gespeichert hat, sowie Kennwörter für Wi-Fi und Uhrensicherungen sowie Daten zur Benutzeraktivität (Schritte, Herzschlag) zu einem bestimmten Zeitpunkt). Fallen Sie in Backups und viele andere Dinge, die für die Untersuchung von Verbrechen von entscheidender Bedeutung sind.
Warum brauche ich ein Backup, wenn der Sperrcode bekannt ist?Oft wird uns die Frage gestellt (um genau zu sein, sie "behaupten"): Wenn der Sperrcode bereits bekannt ist, warum brauchen wir dann eine Sicherungskopie? Kann ich alles auf dem iPhone selbst sehen?
Nein, nicht alle. Selbst wenn der Sperrcode bekannt ist, können nicht alle interessanten Daten auf dem iPhone selbst angezeigt werden. IPhone sichert viele Daten in Backups, auch außerhalb des Willens des Benutzers. Der Benutzer weiß möglicherweise nicht einmal, dass diese Daten vorhanden sind! Dies gilt beispielsweise für den Verlauf des Safari-Browsers. Auf dem Telefon selbst oder in iCloud können Sie den Verlauf der letzten 30 Tage anzeigen, und der gesamte Verlauf für die gesamte Zeit, in der Sie das Telefon verwenden, wird gesichert (wenn der Benutzer den Verlauf nicht manuell gelöscht hat). Genau das gilt übrigens auch für die Anrufliste: In der Telefonanwendung ist sie nur für die letzten 30 Tage sichtbar, und Informationen zu allen Anrufen werden in der Sicherungskopie gespeichert. Dies allein reicht für Strafverfolgungsbehörden aus, um nach Backups zu suchen, aber das ist noch nicht alles. Der Benutzer kann einige der Nachrichten im Instant Messaging-Programm löschen - und Sie werden sie nicht auf dem Gerätebildschirm sehen. Gleichzeitig kann eine Datenbank im SQLite-Format lange Zeit gelöschte Datensätze enthalten - bis die periodische Speicherbereinigungsprozedur gestartet wird. Wichtige Dinge sind Analyse, Suche, Export von Daten, einschließlich gelöschter Daten (die erste polizeiliche Anfrage lautet „Wo war der Benutzer zu diesem und jenem Datum?“. Versuchen Sie, diese Frage mit Interesse zu beantworten, haben Sie Ihr eigenes Telefon in der Hand und erkennen Sie sie Wie lange es dauern wird, und die Analyse der Daten aus der Sicherung gibt in einer Sekunde eine Antwort.) Es gibt auch kleine Dinge - zum Beispiel das Datum, an dem der Kontakt hinzugefügt wurde, oder das Datum, an dem das Ereignis im Kalender erstellt wurde, die in der Benutzeroberfläche nicht sichtbar sind.
Gleichzeitig wird das Backup in den Händen des Angreifers zu einer Waffe gegen den Benutzer. Mit Logins und Passwörtern aus dem Schlüsselbund können Sie Konten „entführen“, Zugriff auf die Korrespondenz und das Geld des Benutzers erhalten. Um dies zu verhindern, ermöglicht Apple dem Benutzer, ein Kennwort für Sicherungen festzulegen.
Wenn ein Kennwort festgelegt ist, wird die gesamte Sicherung mit einem starken Schlüssel verschlüsselt, der basierend auf dem Kennwort generiert wird. Die Verschlüsselung erfolgt im Gerät. Wenn ein Passwort festgelegt ist, verlassen unverschlüsselte Daten das Telefon einfach nicht. Unabhängig davon, welches Sicherungsprogramm Sie verwenden, ist das Ergebnis dasselbe: verschlüsselte Sicherung.
Die Verschlüsselung lokaler Sicherungen in relativ neuen Versionen von iOS (10.2 und neuer) ist so stark, dass wir trotz der Hardwarebeschleunigung mit der Nvidia GTX 1080-GPU nicht die Suchgeschwindigkeit von mehr als hundert Passwörtern pro Sekunde erreichen konnten. Dementsprechend ist ein Frontalangriff auch dann nutzlos, wenn ein einfaches Passwort mit nur 7 Zeichen verwendet wird (Krankenhausdurchschnitt). Selbst wenn Sie ein sicheres Verschlüsselungskennwort von Ihrem Telefon haben, können Sie Fotos und Mediendateien extrahieren, wenn Sie den Passcode kennen oder gesperrt sind.
In iOS 10.2 und bis zur Veröffentlichung von iOS 11 war ein langes und kompliziertes Sicherungskennwort ein absoluter Schutz. Es gab keine Möglichkeit, das Passwort zu löschen oder zu ändern, ohne zuerst das alte einzugeben. In älteren Versionen des Systems gab es keine. In iOS 11 hat sich die Situation geändert.
Erste Rekursion: Passwort auf Backup zurücksetzen
Ich habe bereits darüber geschrieben, was in iOS 11, 12 und 13 mit einem Sperrcode getan werden kann. In diesen iOS-Versionen kann unter anderem ein Bildschirmsperrcode verwendet werden, um das Sicherungskennwort zurückzusetzen. Wenn ein Angreifer den Bildschirmsperrcode gelernt hat, kann er das Kennwort auf eine lokale Sicherung zurücksetzen, das Telefon mit dem Computer verbinden und alle Daten extrahieren sowie alle Kennwörter aus dem Schlüsselbund entschlüsseln.
Auf der Apple-Website finden Sie
detaillierte Anweisungen zum Zurücksetzen des Kennworts für die Sicherung:
In iOS 11 oder höher können Sie eine verschlüsselte Sicherung Ihres Geräts erstellen, indem Sie Ihr Kennwort zurücksetzen. Gehen Sie dazu folgendermaßen vor:
- Wählen Sie auf Ihrem iOS-Gerät Einstellungen> Allgemein> Zurücksetzen.
- Klicken Sie auf "Alle Einstellungen zurücksetzen" und geben Sie das iOS-Passwort ein.
- Befolgen Sie die Anweisungen zum Zurücksetzen. Dies wirkt sich nicht auf Benutzerdaten oder Kennwörter aus, setzt jedoch Einstellungen wie Anzeigehelligkeit, Programmposition auf dem Startbildschirm und Hintergrundbild zurück. Das Passwort zum Verschlüsseln von Backups wird ebenfalls gelöscht. (In Klammern: Zu diesem Zeitpunkt müssen Sie auf dem Gerät einen Bildschirmsperrcode eingeben.)
- Verbinden Sie das Gerät erneut mit iTunes und erstellen Sie ein neues verschlüsseltes Backup.
- Sie können keine zuvor erstellten verschlüsselten Sicherungen verwenden, aber Sie können iTunes verwenden, um aktuelle Daten zu sichern und ein neues Sicherungskennwort festzulegen.
Auf einem Gerät mit iOS 10 oder früher ist ein Zurücksetzen des Kennworts nicht möglich.
Zweite Rekursion: Wir schützen uns vor Versuchen, das Passwort für die Sicherung zurückzusetzen
Die Leichtigkeit, mit der ein Angreifer Ihr komplexestes und langes Passwort umgehen kann, indem er nur einen Bildschirmsperrcode eingibt, ist unangenehm erstaunlich. Sie können jedoch versuchen, sich vor dieser Geißel zu schützen. Der Schutzmechanismus ist hier die Kindersicherung (iOS 11) oder das Bildschirmzeitkennwort (iOS 12 und 13). Der Einfachheit halber werde ich iOS 12 genau beschreiben.
Angenommen, Ihr iPhone ist in die Hände eines Angreifers gefallen. Angenommen, ein Angreifer hat es geschafft, Ihren Sperrcode auszuspionieren. Jetzt versucht er, das Telefon aus der Cloud zu lösen und gleichzeitig eine Kopie der Daten zusammenzuführen, um Zugriff auf Kennwörter aus dem Schlüsselbund zu erhalten. Sie können sich mit Hilfe des Screen Time-Passworts vor einer solchen Entwicklung von Ereignissen schützen. Weitere Informationen zu den Möglichkeiten zur Steuerung der Bildschirmzeit finden Sie im Apple-Artikel
Verwenden der Kindersicherung auf iPhone, iPad und iPod touch-Geräten eines Kindes . Wir sind jetzt an einer anderen Möglichkeit dieses Systems interessiert: das Telefon vor dem Zurücksetzen des Passworts für die Sicherung zu schützen.
Seltsamerweise ist es recht einfach, die Möglichkeit zum Zurücksetzen des Kennworts für die lokale iOS-Sicherung einzuschränken: Sie müssen lediglich das Kennwort für die Bildschirmzeit als solches festlegen. Die Komplexität dieses Passworts ist gering: Die einzige verfügbare Option ist ein 4-stelliger PIN-Code. Trotzdem ist ein solcher Schutz im Allgemeinen ziemlich zuverlässig. Da dieses Passwort sehr selten verwendet wird und vom Gerätesperrcode abweicht, kann es nicht versehentlich ausspioniert werden. Dieser Code wird in äußerst seltenen Fällen benötigt, wenn Sie die Einstellungen ändern oder Einschränkungen deaktivieren möchten. Sie können einen zufälligen Code festlegen, indem Sie ihn auf ein Stück Papier schreiben, das Sie zu Hause gelassen haben - und er ist absolut sicher.
Was passiert, wenn ich jetzt versuche, mein Passwort für die Sicherung zurückzusetzen? Im ersten Schritt gibt es keine Unterschiede: Das System fragt nach dem Kennwort für die Gerätesperre. Unmittelbar danach wird jedoch ein zusätzliches 4-stelliges Passwort für die Bildschirmzeit angefordert. Diese Sicherheitsmaßnahme kann nicht nur Neugierige abwehren, sondern auch das iPhone vor ernsthaften Hacking-Versuchen schützen.
Rekursion 3: So ermitteln Sie das Kennwort der Bildschirmzeit
Das Bildschirmzeitkennwort wird auf dem Gerät selbst gespeichert. Es ist unmöglich, es in angemessener Zeit aufzunehmen: Ein kleiner Raum von 10.000 Kombinationen wird durch fortschreitende Verzögerungen zwischen den Eingabeversuchen geschützt. Nach mehreren erfolglosen Versuchen begrenzt das System die Geschwindigkeit der Aufzählung von Kennwörtern für die Bildschirmzeit, indem progressive Verzögerungen von 1, 5, 15 und 60 Minuten eingeführt werden. Nach 10 erfolglosen Versuchen kann jeder nachfolgende Versuch frühestens eine Stunde nach dem vorherigen durchgeführt werden. Ein Neustart des Geräts beschleunigt den Vorgang nicht. Somit können alle 10.000 Kombinationen in 416 Tagen aussortiert werden.
Es gibt jedoch interessantere Möglichkeiten. Ich werde sofort eine Reservierung vornehmen: Das erste funktioniert nur, wenn das Kennwort für das Backup nicht festgelegt oder bekannt ist, und das zweite - wenn Sie das iPhone jailbreaken können (dh die darauf befindliche iOS-Version ist nicht neuer als iOS 12.2).
Für das iPhone mit einem unbekannten Kennwort für das Backup, das auf der neuesten Version von iOS ausgeführt wird (heute ist es 12.4), gibt es keine Möglichkeit, das Kennwort für die Bildschirmzeit (vorerst) herauszufinden.
Methode 1: Aus Backup extrahierenIn iOS 7-11 wird dieses Kennwort (dort als Einschränkungen bezeichnet) als Hash gespeichert. Der Algorithmus ist relativ robust (pbkdf2-hmac-sha1, aber die Anzahl der Iterationen ist relativ gering). Da dieses Passwort immer nur aus 4 Ziffern besteht, dauert eine vollständige Suche nach dem Hash auf dem Computer einige Sekunden. Der Hash selbst wird in der Datei com.apple.restrictionspassword.plist gespeichert, die in die Sicherung fällt. Dementsprechend kann das Passwort für Einschränkungen geöffnet werden, wenn wir Folgendes haben:
- Backup ohne Passwort
- Backup mit Passwort plus Passwort davon
In iOS 12 (hier ist es das Passwort der Bildschirmzeit oder Bildschirmzeit) wird im Klartext gespeichert. Nein, die Sicherheit wurde nicht schlechter: Das Passwort wurde in den Schlüsselbund verschoben. Trotzdem wurde der Schutzklasse für das Passwort für die Bildschirmzeit ein Minimum zugewiesen: Sie ist nicht an das Gerät gebunden. Die Mindestschutzklasse wird absichtlich vergeben. Dies geschieht, damit beim Wiederherstellen eines neuen iPhone aus dem Backup das Bildschirmzeitkennwort automatisch festgelegt wird (daher hat Apple das Potenzial zum Entfernen des Bildschirmzeitkennworts geschlossen, indem ein Backup erstellt, das Gerät zurückgesetzt und anschließend aus dem Backup wiederhergestellt wurde). Schlüsselbunddatensätze mit höheren Schutzklassen werden nicht in Backups oder Endups gespeichert, sondern durch den Hardwareschlüssel des Geräts geschützt (dh sie können nur auf demselben Gerät wiederhergestellt werden).
Um das Passwort für die Bildschirmzeit zu erhalten, benötigen Sie:
- Backup mit Passwort plus Passwort davon
Methode 2: durch JailbreakOffensichtlich funktioniert die erste Methode nur, wenn das Kennwort für die Sicherung nicht festgelegt oder bekannt ist. Wenn das Kennwort für die Sicherung festgelegt ist, es jedoch nicht bekannt ist, besteht die einzige verbleibende Möglichkeit, das Kennwort für die Bildschirmzeit zu ermitteln, darin, Zugriff auf den Schlüsselbund zu erhalten. Für ältere Versionen von iOS benötigen Sie eine Kopie des Dateisystems.
Für iOS 7-11 benötigen Sie:
- Bild eines Dateisystems, das von EIFT (Jailbreak erforderlich) oder GrayKey (Jailbreak wird nicht benötigt, ein Gerätesperrcode ist ausreichend, aber das Produkt selbst ist nur für Strafverfolgungsbehörden einiger Länder verfügbar) erstellt wurde.
Für iOS 12:
- Schlüsselbund von EIFT oder GrayKey abgebaut
Muss das getan werden? Ich bin mir nicht sicher: Wenn es möglich war, einen Jailbreak zu installieren, können zunächst alle Passwörter ohne Zwischenhändler in Form eines Backups extrahiert werden. Zweitens können Sie das Passwort für die Sicherung herausfinden, indem Sie den Schlüsselbund entschlüsseln: Das Passwort für die Sicherung (genau wie das Passwort für die Bildschirmzeit) wird dort im Klartext gespeichert. Wenn das Ziel jedoch darin besteht, die Einschränkungen der Bildschirmzeit zu beseitigen, ist dieser Ansatz durchaus geeignet.
Noch eine SacheInteressanterweise wird das Bildschirmzeitkennwort auch in der iCloud-Cloud gespeichert, jedoch nur, wenn Sie die Zwei-Faktor-Authentifizierung aktivieren und die Bildschirmzeitoption „Geräteübergreifend freigeben“ aktivieren. Der Schlüssel selbst fällt nicht in den Cloud-Schlüsselbund, sondern wird separat gespeichert (ungefähr in derselben Form wie der Schlüssel zum Wiederherstellen des Zugriffs auf verschlüsselte FileVault 2-Volumes). Derzeit gibt es keine Mechanismen, um es aus iCloud zu extrahieren und anzuzeigen. Wir arbeiten daran; Im Herbst ist die Veröffentlichung der neuesten Version von Elcomsoft Phone Breaker geplant, die über diese Funktion verfügt (wenn sich mit der Veröffentlichung von iOS 13 nichts am Speichermechanismus ändert; es besteht die Möglichkeit, dass iOS 13 den Speicherort für dieses Kennwort bereits geändert hat).
In jedem Fall benötigen Sie Folgendes, um das Kennwort für die Bildschirmzeit aus iCloud abzurufen:
- Benutzername und Passwort des Apple ID (iCloud) -Nutzers
- Sperrcode des Gerätebildschirms
- Zugriff auf den zweiten Authentifizierungsfaktor (es ist das Gerät selbst, wenn der Sperrcode bekannt ist; eine SIM-Karte mit einer vertrauenswürdigen Telefonnummer reicht jedoch aus)
Wir haben das Szenario jedoch nicht überprüft, indem wir das Gerät zurückgesetzt und dann aus der Cloud-Sicherung wiederhergestellt haben. Daher kann ich nicht sicher sagen, ob das Kennwort für die Bildschirmzeit aktiviert ist, wenn ich eine Sicherung in iCloud erstelle, das iPhone zurücksetze und aus der Cloud wiederherstelle. Darüber hinaus kann sich das System in Fällen anders verhalten, in denen dasselbe iPhone oder neue Gerät aus der Sicherung wiederhergestellt wird.
Vierte Rekursion, letzte: So schützen Sie den Zugriff auf das Bildschirmzeitkennwort
Wir kommen also zum letzten Punkt. Wenn Sie das Gerät so weit wie möglich sichern möchten, liegt es in Ihrem Interesse, sicherzustellen, dass das Bildschirmzeitkennwort weder zurückgesetzt noch erkannt wird. Wie im vorherigen Teil habe ich zwei Neuigkeiten: gut und schlecht.
Die gute Nachricht ist, dass der Schutz des Screen Time-Passworts vor einer durchschnittlichen Person und sogar vor einem professionellen Cracker ganz einfach ist: Legen Sie einfach ein langes und sicheres Passwort für eine Sicherungskopie fest und halten Sie das Gerät auf dem neuesten Stand, indem Sie die neuesten Versionen von iOS direkt nach dem Beenden installieren. Jailbreaks für neue Versionen von iOS werden nicht sofort veröffentlicht. Manchmal vergehen Monate zwischen der Veröffentlichung eines iOS-Updates und dem Auftreten eines funktionsfähigen Jailbreak.
Sie können sich vor einem Szenario fürchten, in dem ein gestohlenes Gerät (mit einem einem Angreifer bekannten Sperrcode) in ein Regal gestellt wird und auf das Auftreten eines Jailbreak wartet. Hier kann jedoch der im Portal "Mein iPhone suchen" erstellte Standard "Löschen [Gerät]" hilfreich sein. Tatsache ist, dass Sie zum Installieren des Jailbreak zuerst die IPA-Datei signieren und dann die digitale Signatur direkt auf dem iPhone selbst bestätigen müssen. Die digitale Signatur wird auf dem Apple Server überprüft. Das heißt, der Angreifer muss zulassen, dass das gestohlene iPhone online geht. In diesem Moment funktioniert der Befehl zum Löschen des Geräts höchstwahrscheinlich.
Angreifer können dieses Problem mithilfe spezieller Routerkonfigurationen lösen, bei denen der Zugriff auf die Knoten, die für die Funktion "Mein iPhone suchen" verantwortlich sind, verweigert wird. Darüber hinaus können sie anstelle des üblichen Zertifikats ein Entwicklerzertifikat verwenden, um den Jailbreak zu signieren. Dafür muss das iPhone nicht online gehen, um die digitale Signatur zu bestätigen.
Die schlechte Nachricht ist, dass Sie Ihr iPhone nicht vor dem Zugriff über GrayKey- oder UFED Premium-Systeme schützen können, egal wie sehr Sie es versuchen: Die Entwickler konnten die meisten Sicherheitsmechanismen des iPhones umgehen.
Wenn der Bildschirmsperrcode bekannt ist, können Benutzer dieser Komplexe ohne besondere Probleme auf das Dateisystem zugreifen und den Schlüsselbund entschlüsseln. Andererseits stehen diese Komplexe nur Strafverfolgungsbehörden zur Verfügung und keinesfalls in einem Land (zum Beispiel werden sie nicht nach Russland geliefert). Es ist praktisch ausgeschlossen, sie in die Hände von Angreifern zu bekommen. Daher ist es unwahrscheinlich, dass Sie dieser Gefahr ausgesetzt sind.