Das Smartphone ist aus unseren Köpfen und aus unserem Alltag kaum noch wegzudenken. Über dieses gehen E-Mails ein und aus, Nachrichten von Freunden und Familie werden beantwortet, die Gesundheit wird getrackt und Smart-Home Geräte bedient. Mit 50,6 % Anteil am globalen Traffic im Word Wide Web ist das Smartphone Spitzenreiter.
Dies ist Grund genug, die Sicherheit von Smartphones und mobilen Anwendungen für als kritisch zu betrachten. Ein gezieltes iOS-Pentesting auf mobile Applikationen ist hier das richtige Mittel zur Wahl.
Das von den Pentestern der Aware7 entwickelte Whitepaper beschreibt auf 20 Seiten alles, was es für einen schnellen Einstieg ins iOS-Hacking braucht. Es werden praktische Leitfäden und Mobile Hacking Tools vorgestellt. Dieser Guide kann für einen anstehenden Pentest oder für die persönliche Weiterbildung einen perfekten Einstieg liefern. Es werden die wichtigsten Aspekte erläutert, Techniken erklärt, Befehle aufgelistet und eine Tool-Liste mitgegeben.
An dieser Stelle wollen wir einige Techniken mitgeben, die im Pentesting-Whitepaper erhalten sind, dort jedoch ausführlicher und auch technischer beschrieben sind.
iOS-Pentesting
Damit Apps auf Sicherheitslücken und Schwachstellen analysiert werden können, müssen mehrere Schritte im Vorfeld unternommen werden. Zuerst muss das iOS-Gerät eingerichtet werden, Tools installiert und bestimmte Einstellungen vorgenommen werden. Eine Auswahl dieser Vorbereitung bilden die folgenden Punkte.
Jailbreaking eines iOS-Geräts
Die Grundlage für einen iOS-App Pentest bildet ein Jailbreak. Dieser ermöglicht einen offenen Zugang zum Betriebssystem, ohne den Hacking von Anwendung nur eingeschränkt möglich wäre. Mithilfe des Jailbreaks können die benötigten Hacking-Tools auf dem Gerät über einen alternativen App-Store installiert werden. Außerdem wird es möglich eine App zur Laufzeit zu analysieren und damit Erkenntnisse über verwendete Bibliotheken, den Programmfluss und die Netzwerkkommunikation zu erlangen. Die bekanntesten Jailbreaks für iOS 14 und iOS 15 sind checkra1n, palera1n und Fugu14/15. Im Whitepaper wird die Durchführung eines Jailbreaks detailliert, Schritt für Schritt behandelt.
Cydia der App-Store für iOS-Penetests
Nach der Durchführung des Jailbreaks stehen andere App-Stores zur Verfügung. Je nach durchgeführten Jailbreak sind das Sileo oder Cydia. Über diese ist es möglich, sogenannte Tweaks herunterzuladen und zu installieren, die im normalen Apple App Store nicht zur Verfügung stehen. Am Anfang stehen in diesen alternativen App-Stores nicht alle Tools zur Verfügung, sondern es müssen zuerst sogenannte Repositorys hinzugefügt werden. Ein Repository ist eine Sammlung von Programmen eines Entwicklers. Im Whitepaper sind Tools und die dazugehörigen Repository-Links aufgelistet. Drei unerlässliche Tools sind Frida, A-Bypass und SSL Killswitch 2, deren Anwendung in den folgenden Punkten erläutert wird.
Netzwerkkommunikation mitlesen
Ein wesentlicher Angriffspunkt für Angreifer ist die Kommunikation zwischen Smartphone und Server. Unzureichend abgesicherter Datenverkehr fällt einem Angreifer in die Hände und führt in den meisten Fällen zu einem großen Schaden – für den Benutzer, jedoch auch für den Server selbst. Es ist daher eine Notwendigkeit, diesen Kanal ausführlich zu analysieren und zu testen. Am besten eignet sich dafür das Einrichten eines Proxyservers. Mit diesem können, mithilfe von Tools wie Wireshark und Burp Suite, Netzwerkverkehr aufgenommen und auch manipuliert werden.
Dieser zu analysierende Datenverkehr wird mit TLS abgesichert sein, weshalb es nicht möglich ist, den Netzwerkverkehr während des iOS-Pentesting mitzulesen. An dieser Stelle kommt das Tool SSL Killswitch 2 zum Einsatz. Dieses ändert systemweit die Funktion zur Validierung von TLS-Zertifikaten und sorgt dafür, dass auch unsichere Zertifkate (wie das von unserem Proxyserver) akzeptiert werden.
Jaibreak-Detection Bypass
Entwickler schlafen nicht: Um die Analyse einer Anwendung zu unterbinden, wird eine sogenannte Jailbreak-Detection-Funktionalität implementiert. Diese versucht herauszufinden, ob die App zurzeit auf einem Gerät läuft, auf dem ein Jailbreak installiert ist. Falls dies der Fall ist, sind bestimmte Funktionen nicht mehr verfügbar oder die App startet generell nicht mehr. Dies erschwert die Analyse von Applikationen zur Laufzeit und würde nur noch eine statische Analyse ermöglichen. Pentesting und Hacking würden kaum Sicherheitslücken finden können.
Hacker schlafen auch nicht: Hacking lebt davon, Umwege zu finden, und auch in diesem Fall stehen uns wieder Tools zur Verfügung, mit denen diese Maßnahme umgangen werden kann. Das prominenteste und erfolgreichste Tools hierfür ist A-Bypass. Dieses Tool kennt eine Vielzahl an Jailbreak-Detection Mechanismen und setzt genau hier an, um diesen Mechanismus zu umgehen. Der Bypass kann mit diesem Tool pro App separat aktiviert werden.
iOS-Pentesting und Reverse-Engineering
Möchte man eine Applikation auf Herz und Nieren prüfen und eine tiefgehende Sicherheitsanalyse vornehmen, wird es früher oder später notwendig den Quellcode einer App zu auditieren und das Laufzeitverhalten zu bestimmen. Frida ist hierfür ein mächtiges Werkzeug, mit denen fortgeschrittene Aufgaben wie Funktions-Tracing oder Binary Patching durchführbar sind. Frida arbeitet nach dem Client-Server-Modell. Der Server ist hierbei das mobile Endgerät und ein Client kann sich mit diesem Server verbinden, um Debugging und Reverse-Engineering-Aufgaben durchzurühren. Auf macOS oder Linux gibt es dafür das Paket frida-tools, welches mit dem Python Paketmanager pip installiert werden kann und ein Kommandozeilentool liefert.
Möchten Sie mehr über das Thema iOS-Pentesting erfahren oder haben weitere Ideen für das Whitepaper, kommen Sie gerne auf uns zu.