Ein Mobile-Test – was geschieht denn da?

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.

Die Discovery-Phase

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.

Die Exploitation-Phase

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:

  • In der Planung sollte ein möglichst ausführliches Sicherheitskonzept in Betracht gezogen werden
  • Nicht genutzte Funktionen sollten deaktiviert werden
  • Kommunikation sollte, wenn möglich, verschlüsselt mit gegenseitiger Validierung stattfinden
  • In der App sollten keine sensiblen Daten vorhanden sein
  • Es sollte ein Rooting Detection-Mechanismus implementiert werden
  • Der Quelltext der App sollte, wenn möglich, obfuskiert werden
  • Zertifikatpinning sollte implementiert sein
  • Daten sollten – wenn überhaupt – sicher auf dem Handy gespeichert werden
  • Plattformabhängige Sicherheitsvorkehrungen, beispielsweise hinsichtlich der Sicherung lokaler Daten, sollten genutzt werden

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.


Termine

05.06.2018 - 06.06.2018
SySS-Schulung - Hack1: Hacking Workshop 1
07.06.2018 - 08.06.2018
SySS-Schulung - Hack2: Hacking Workshop 2
19.06.2018 - 21.06.2018
SySS-Schulung – Hack3: Angriffe gegen Windows-basierte Netzwerke
26.06.2018 - 27.06.2018
SySS-Schulung – Hack7: Sicherheit und Einfallstore bei Webapplikationen