In vorigen Beiträgen wurde bereits die Methodologie für 1) Webapplikations-, 2) Perimeter- und 3) Hardwaretests in den Blick genommen. Der vorliegende Artikel nun bietet eine Einführung in die Analyse einer mobilen App. Ausgangspunkt sind dabei sowohl die App selbst und ihre Interaktion mit dem zugrunde liegenden System (sprich Mobiltelefon oder Tablet) als auch deren Kommunikation mit dem Webservice. Wie schon bei der Hardwareanalyse lassen sich auch hier Ansätze aus der Webapplikationsanalyse übertragen. Auch die verschiedenen von dort bekannten Testphasen können durchlaufen werden. In Bezug auf die Reconnaissance-Phase wird auf Teil 1 der Reihe verwiesen, da sich diese im Wesentlichen kaum unterscheidet.
In der Reconnaissance-Phase hat sich der Consultant bereits einen Überblick über den Kontext der App verschafft. Bevor er nun aber mit der Analyse beginnt, baut er sich zunächst ein Set-up auf. Dieses Set-up erlaubt dem Tester, sowohl die App als auch ihre Interaktion mit dem Mobiltelefon sowie den Datenverkehr einzusehen. Dazu gehören:
Zum Einsatz kommen hier sowohl Hardware (Mobiltelefon/Tablet, WLAN-Dongle) als auch Software (zum Beispiel die Burp Suite als lokaler Angriffsproxy).
Sobald die Teststellung eingerichtet ist, kann sich der Consultant einen Überblick darüber verschaffen, welche Technologien für die App genutzt wurden und welche Funktionen dem Benutzer zur Verfügung stehen. Auch ist er in der Lage, einen Überblick über Parameter und Technologien zu erhalten, die beim Datenverkehr zum Einsatz kommen. Auch wird durch eine statische Analyse Verständnis über die Applikation erlangt. Bei ausführlichen iOS-Tests lässt sich zudem mithilfe einer Laufzeitanalyse ermitteln, welche Klassen in der App verwendet werden und welche Daten während der Benutzung im Arbeitsspeicher vorhanden sind. Dazu wird beispielsweise die Anwendung Cycript verwendet.
In der dritten Phase beginnt der Consultant anzugreifen. Dabei werden Erkenntnisse aus den ersten beiden Phasen verwendet. Untersucht wird unter anderem, wie die Interaktion zwischen der App und dem Mobiltelefon verläuft. Werden zum Beispiel sensible Daten sicher abgelegt? Dies ist relevant für den Fall, dass ein Angreifer es schafft, administrative Rechte auf dem Gerät zu bekommen, zum Beispiel mithilfe einer schadhaften App, die einen Root-Exploit beinhaltet.
Des Weiteren wird mittels einer statischen Analyse der App versucht, Passwörter oder Schlüssel zu extrahieren, die bei allen Anwendern gleich sind. Bei Laufzeitanalysen wird versucht, die App so zu manipulieren, dass zum Beispiel eine Passwortabfrage umgangen werden kann. Zudem wird der Datenverkehr genau untersucht, da Schwachstellen in diesem Bereich andere Benutzer betreffen können. Wie bei der Webapplikationsanalyse wird hier der Hybridansatz angewandt: Es werden sowohl automatisierte als auch manuelle Tests durchgeführt.
In dieser Phase werden Tools wie zum Beispiel Burp Suite und technologiespezifische Tools wie SoapUI eingesetzt.
Das Ziel der letzten Phase ist das aktive Ausnutzen von in der Discovery-Phase identifizierten Schwachstellen, um neue Informationen zu erhalten. Diese wiederum können weitere Angriffe ermöglichen oder Schwachstellen offenlegen, die zuvor noch nicht ersichtlich waren. Aber auch hier gilt, dass nicht alle Schwachstellen ausgenutzt werden müssen, um zeigen zu können, wie kritisch die jeweilige Sicherheitslücke ist. Zum Beispiel reicht es, Angriffe gegen Bezahlvorgänge mit fiktiven Kreditkartendaten durchzuführen. Bei anderen Schwachstellen impliziert die Identifikation schon deren Ausnutzung, beispielsweise wenn durch Manipulation einer Zahl in einer Gesundheits-App plötzlich Daten von einem anderen Patienten ausgegeben werden.
Bei allen Schwachstellen, die während dieser Analyse identifiziert wurden, spricht die SySS GmbH Empfehlungen aus, wie die Sicherheit der mobilen App und der Kommunikation mit dem Server nachhaltig verbessert werden kann. Auch wenn Apps sich aufgrund der Plattform (z. B. iOS und Android) möglicherweise stark unterscheiden, lassen sich grundsätzlich folgende allgemeine Empfehlungen geben:
Sind diese Maßnahmen umgesetzt, wird die Angriffsoberfläche so gering wie möglich gehalten und Angreifer haben es schwer, Einstiegspunkte für Angriffe zu finden. Wichtig ist jedoch zu beachten, dass nach jeder signifikanten Änderung in der App mögliche neue Einstiegspunkte entstehen können und die App einer neuen Sicherheitsprüfung unterzogen werden sollte.
24.09.2024
- 26.09.2024
Hack9: Embedded Security
08.10.2024
- 09.10.2024
Hack1/Hack2: Hacking Workshop
10.10.2024
- 11.10.2024
Hack1/Hack2: Hacking Workshop
15.10.2024
Awe2: Phishing Awareness
Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de | IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer
Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de
IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer
Direkter Kontakt
+49 (0)7071 - 40 78 56-0 oder anfrage@syss.de
IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN
+49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer