iOS-Forensik mit SQLite-Datenrettung: Tiefgang und Vergleich

Veröffentlicht Aktualisierte
Cover image for: iOS-Forensik mit SQLite-Datenrettung: Tiefgang und Vergleich

Es gibt viele Techniken, die wir einsetzen, um Menschen dabei zu helfen, ihre Daten mit unseren Produkten wiederherzustellen, und viele Klugheit, die wir im letzten Jahrzehnt aufgebaut haben, liegt unter der Oberfläche. Heute gehen wir auf einen der Ansätze ein, mit denen wir gelöschte Nachrichten wiederherstellen können: forensische Wiederherstellung von SQLite-Daten.

Wie speichern iPhones überhaupt Daten?

Vereinfacht gesagt, speichern viele Apps ihre Daten in Datenbanken und die meisten verwenden das SQLite- Format. SQLite ist ein kleines Datenbankformat ohne Server und passt gut zu den Anforderungen von Apple und App-Anbietern. Da SQLite ohne einen separaten Datenbankserver läuft, unterscheidet es sich in einigen Punkten von anderen Datenbanken. Insbesondere für einen schnellen Zugriff kann es sich nicht regelmäßig warten, wenn es benutzt wird. Benutzer möchten nicht, dass eine App langsamer wird, während die Datenbank routinemäßige Wartungsarbeiten durchführt, beispielsweise das Aufräumen von Indizes.

Es ist möglich, dass diese Bereinigungs- oder Optimierungsvorgänge mit SQLite ausgeführt werden, sie werden jedoch in der Regel selten ausgeführt. Für Benutzer ist das die richtige Balance: Ihr iPhone wird ziemlich schnell sein und Ihre Daten werden robust sein. Und wenn es erforderlich ist, haben Sie aufgrund der seltenen Wartungsarbeiten eine überdurchschnittliche Chance, gelöschte iOS-Daten wiederherzustellen.

Ohne zu technisch zu werden, ist es ziemlich einfach, wie der Prozess funktioniert. Stellen Sie sich diese Datenbanken wie große Aktenschränke vor:

  • Wenn es Zeit ist, Informationen hinzuzufügen, fügen Sie eine Datei mit einem ordentlichen Etikett hinzu und erklären, was in der Datei enthalten ist. So funktioniert Ihr Telefon.
  • Wenn Sie jedoch Daten entfernen, anstatt die Datei aus dem Aktenschrank zu entnehmen, zieht das Telefon das Etikett einfach ab. Die alten Daten werden also nicht entfernt, sondern nur unbeschriftet (oder "verwaist", wie man es vielleicht technisch nennen könnte.) Wenn Sie also Daten löschen, muss Ihr Telefon keinen relativ langsamen Prozess der Freigabe durchlaufen Platz im Schrank. Es sagt nur "huh, vergiss das" und geht weiter.
  • Wenn Sie mehr Daten hinzufügen möchten, fügt Ihr Telefon bei Bedarf zusätzliche Dateien hinzu. Wenn für das Hinzufügen weiterer Daten kein Speicherplatz vorhanden ist, wird festgestellt, ob einige dieser unbeschrifteten Dateien vorhanden sind, und falls vorhanden, werden die Teile herausgeholt, die erforderlich sind, um Platz zu schaffen.

Sie können davon ausgehen, dass es schnell ist, Daten auf Ihrem Telefon zu löschen und sie ziemlich schnell hinzuzufügen, vorausgesetzt, es gibt Platz. Und unabsichtlich ist es das Hinzufügen neuerer Daten, das wirklich dazu führt, dass ältere Informationen entfernt werden.

Gelöschte Informationen von SQLite unter iOS wiederherstellen

Angenommen, Sie haben Ihr Telefon seit einigen Monaten benutzt. Die Datenbanken sind wie die zuvor beschriebenen Aktenschränke. Sie enthalten eine Reihe von Dateien, und wenn Sie Daten gelöscht haben, werden diese Dateien immer noch vorhanden sein, jedoch mit zwei Vorbehalten: Sie wurden möglicherweise teilweise oder vollständig überschrieben und sind nicht gekennzeichnet.

Die Wiederherstellungsmethode ist also genau das, was Sie erwarten: Es geht darum, diese verwaisten Dateien zu finden - vollständig oder anderweitig - und zu suchen, wo sie passen, und ob noch genügend Daten vorhanden sind, um einen Sinn zu ergeben. Wie zu erwarten, ist das alles etwas fummelig, und es gibt eine Reihe weiterer technischer Aspekte, die die Dinge erschweren können. Datenbanken mit einer Größe von weniger als einigen Megabytes und Datenbanken, die binäre Daten enthalten, können den Prozess erheblich erschweren.

Allerdings ist es nicht zu schwer, einige Daten zurückzugewinnen. Aus diesem Grund sehen Sie eine Reihe von Tools auf dem Markt, die dies behaupten. Im Allgemeinen können Sie diese Tools in drei Kategorien einteilen:

  • Die gute. Sie verwenden viele verschiedene Techniken, die gegen Tausende verschiedener Beispiele für Löschen oder Korruption entwickelt und getestet wurden.
  • Das Schlechte. Sie stellen nur den verbleibenden Inhalt wieder her, der perfekt gestaltet ist und eine Reihe von Hinweisen enthält, wo er hingehört.
  • Das hässliche. Diese suchen nach verwaistem Inhalt und kennzeichnen alten Müll, der aussieht, als ob er in den Kontext passen könnte. Wenn Sie es beim Blinzeln betrachten. „NSMutableArray“ - könnte dies der Name Ihres fehlenden Kontaktdatensatzes sein? Hmmm.

Rücknahme von SQLite und Wiederherstellung von iOS in der realen Welt

Nun, da wir ein wenig darüber gesprochen haben, wie dies funktioniert, wollen wir einmal sehen, wie effektiv es in der realen Welt ist. Schließlich möchten wir gewöhnliche Benutzer dazu befähigen, ihre Daten ohne Experten zurückzugewinnen. Schaffen wir das? Wir vergleichen die vier führenden SQLite-Wiederherstellungstools mit dem iPhone Backup Extractor. Zum Zeitpunkt des Schreibens sind die neuesten Versionen dieser Tools:

Name Version & Erscheinungsdatum Plattformen Preis
Reinkubieren Sie den iPhone Backup Extractor 7.6.1.2201, 18. Mai Windows & MacOS $ 34,95
SQLite Doctor von SQLabs 1.3.0, 13. August Windows & MacOS 49 US-Dollar
Wiederherstellung der SQLite-Datenbank von SysTools 1.2, kein Erscheinungsdatum angegeben Nur für Windows 149 US-Dollar
Stellar Data Recoverys Stellar Phoenic Repair für Sqlite 1.0, kein Veröffentlichungsdatum angegeben Nur für Windows 599 US-Dollar
GetDatas Forensic Explorer (FEX) 4.3.5.7364, Mai '18 Nur für Windows 1.695 US-Dollar
Erwerben Sie den Sqlite Forensics Explorer von Forensics 2.0, kein Erscheinungsdatum angegeben Nur für Windows 149 US-Dollar

Um diesen Test einzurichten, verwenden wir eine schöne große Datenbank voller Daten aus der realen Welt. In diesem Fall handelt es sich um eine 169-MB-Datenbank "Messages", die von einem iPhone mit iOS 11 stammt. Lassen Sie uns einen Blick darauf werfen: Die folgenden Befehle zeigen die Dateigröße und die Ergebnisse einer Abfrage, um die Anzahl der darin enthaltenen Nachrichten zu zählen .

$ ls -l sms.db
-rw------- 1 afitzpatrick 177565696 Oct  2  2017 sms.db

$ sqlite3 sms.db
SQLite version 3.19.3 2017-06-27 16:48:08
Enter ".help" for usage hints.
sqlite> SELECT COUNT(*) FROM message;
220261

Es gibt also über 220.000 Nachrichten. Das sind diejenigen, die nicht gelöscht wurden. Aber wie viele der gelöschten Nachrichten können die Wiederherstellungstools finden?

SQLite Datenwiederherstellung von iOS: Die Ergebnisse sind in

Wir haben alle oben gezeigten Tools in derselben Datei ausgeführt und die Ergebnisse in der folgenden Tabelle aufgeführt. Wir hätten gerne einen Mac verwendet, aber da nicht alle Tools MacOS unterstützen, haben wir einen PC mit 16 GB RAM unter Windows 10 Pro (Version 1803 , Build 17134.48 ) verwendet.

Reinkubieren Forensik erwerben SQLabs SysTools Stellare Datenrettung Daten empfangen
Nummer wiederhergestellt 342 56 (aber meistens Junk) 0 0 (Nach einem längeren Scan wurden 220.261 gefunden, was der Anzahl gültiger Datensätze entspricht, die bereits vorhanden sind!) 0 (Jedes Mal, wenn wir es ausführten, wurden bis zu 37 gelöschte Nachrichten gezählt, es stürzte jedoch mit dem Fehler 0x40000015 ab, bevor der Vorgang abgeschlossen wurde. Es war nicht möglich, Nachrichten zu exportieren oder zu speichern.) 0 (Wir haben uns mehrmals um den Kauf einer Lizenz bemüht, aber noch nie etwas davon gehört.)
"Junk" erholt? Keiner; Alle scheinen gültige, nicht gelöschte Nachrichten zu sein. Emojis, Datums- und Uhrzeitangaben sowie Absender- / Empfängernummern werden wiederhergestellt. Die meisten der wiedergefundenen sind Trödel 😕 Wir mussten einige Male die maximalen ROWID-Werte manuell eingeben, um verschiedene Parameter auszuprobieren. Keiner erholte sich zu irgendeinem Zeitpunkt. Es wurden nur bereits vorhandene Nachrichten gefunden. Jedes Mal abgestürzt, konnte ich nicht sagen. Konnte es nicht zum Laufen bringen.
Effektive Kosten pro wiederhergestellter Nachricht (in diesem Beispiel) 0,10 USD 2,66 US-Dollar > 49 USD > 149 USD > 599 USD > 1.695 USD

OK. Das war also eine kleine Überraschung, da wir erwarteten, dass sie zumindest einige Daten wiederherstellen würden. 🧐 Es stellt sich heraus, dass unser bescheidenes Werkzeug auf dem Markt der SQLite-Datenwiederherstellung führend ist, obwohl es kein dediziertes SQLite-Datenwiederherstellungswerkzeug ist. (Wenn Sie sich gefragt haben, lizenzieren wir unsere Technologie deshalb auch an andere Unternehmen. Dieses Zeug ist hart.)

SQLite-Datenwiederherstellung auf verschiedenen iOS-Versionen

Mit jeder neuen Version von iOS hat Apple die Möglichkeit, den Umgang des Betriebssystems mit SQLite-Datenbanken zu ändern. Dies beinhaltet Optimierungen, wie oft Bereinigungen und andere Wartungsvorgänge stattfinden und wann sie ausgelöst werden.

Wenn Geräte leistungsfähiger werden, können diese Vorgänge freier genutzt werden, da ihre Auswirkungen auf die Benutzererfahrung geringer werden. Daher wird bei jeder neuen Generation eine SQLite-Datenbank wahrscheinlich häufiger bereinigt, was den Vorteil hat, dass die Datenbank für den normalen Betrieb schneller verwendet werden kann. Dies steht im Einklang mit Apples Ziel, den Schutz und die Privatsphäre der Benutzer zu erhöhen, da keine unerwünschten Daten auf dem Gerät verbleiben. Dies hat jedoch den Nachteil, dass die Wiederherstellung der Daten mithilfe der SQLite-Methode nicht möglich ist.

In iOS 11 wurde eine zunehmende Datenbankbereinigungsaktivität für SMS und iMessages festgestellt. Die Wiederherstellung ist immer noch möglich, und dies ist wahrscheinlicher für neuere Nachrichten, die später gelöscht wurden, jedoch nicht garantiert werden.

In iOS 12 hat die Datenbankbereinigungsfrequenz für die SMS- und iMessages-Datenbank stark zugenommen. Da diese Version als starker Fokus auf Wartungs- und Geschwindigkeitsverbesserungen angekündigt wurde, ist diese Änderung sinnvoll, da sie bei häufigeren Vorgängen wahrscheinlich zu einer besseren Leistung führt.

Was muss ich tun, um dies bei der Wiederherstellung von iOS-Daten zu nutzen?

Vielleicht ist das das Beste: Diese Technologie ist in Reincubate iPhone Backup Extractor integriert , und das seit den frühen Tagen. Bei der Verwendung der App wird diese Technologie beim Anzeigen oder Exportieren von Nachrichten und einer Reihe anderer Datentypen angewendet. Abhängig von den angezeigten Daten und der Art und Weise, wie sie angezeigt werden, zeigt die App an, welche Daten nicht gelöscht wurden und welche nicht. Es ist alles enthalten.

Bemerkungen (1)

I have a question. When apple release new ios , do they provide any information about schema change? or we can get them from ios backup. Thanks in advance.

Hey Jon. Apple don't, and it's not just them changing things: any time a third-party app gets updates things can change. We have a set of tools and a team testing these things every day.


Können wir diesen Artikel verbessern?

Wir hören gerne von Nutzern: Warum schicken Sie uns nicht eine E-Mail, schreiben Sie einen Kommentar oder tweeten Sie @reincubate?

© 2008 - 2024 Reincubate Ltd. Alle Rechte vorbehalten. Registriert in England und Wales #5189175, VAT GB151788978. Reincubate® und Camo® sind eingetragene Marken. Datenschutz-Bestimmungen & Begriffe.