Securitytest einer MobileApp

Securitytest einer MobileApp

Neue Technologien bergen immer neue Sicherheitsrisiken und MobileApps bilden da keine Ausnahme.

...weiter lesen

Im Rahmen des Prototypenprojektes zu einer MobileApp habe ich bei ITGAIN zusammen mit meinem Team Banken und Versicherung das Anforderungsmanagement ganzheitlich abgedeckt. Das Fachkonzept für die "Banking 5.0 App" diente den Studierenden der Hochschule Weser Berglang (HSW) als Entwicklungsgrundlage.
Zusammen mit meinem 2. Team Qualitätsmanagement definierte ich Testfälle und führte diese manuell sowie automatisiert mittels des Werkzeuges Appium zur Qualitätssicherung der App durch. Digitale Geschäftsmodelle, die Verarbeitung sensibler Informationen und eine sichere Abwicklung der Interoperabilität zwischen verschiedenen Application Programming Interfaces (APIs) und anderweitiger mobiler Apps machen einen Penetrationstest (auch Pentest genannt) unverzichtbar. So auch bei der Banking 5.0 App. Mit meine Kollegen haben ich mit dem Mobile Security Framework (MobSF) den Android Banking 5.0 App Prototyp sowohl automatisierten dynamischen als auch statischen Analysen – einem Pentest – unterzogen.

MobSF ein in Python entwickeltes Open-Source-Testframework zur automatisierten Analyse von mobilen Applikationen. Dabei unterstützt das Framework bei Sicherheitsanalysen und Pentests. Zudem verfügt MobSF über einen integrierten Emulator, eine API, über die die Analyse automatisch ausgeführt werden kann und eine Web-API-Fuzzing Funktion, das HTTPTool, das u.a. die Analyse von Headern und die Erkennung von Server-Side Request Forgery (SSRF) oder Path Traversal unterstützt. Das Framework spezialisiert sich, den Angaben des Projekts zufolge, vor allem auf die Integration in Continuous Integration (CI) und Continuous Delivery (CD) Pipelines. Große Bereiche der Open Web Application Security Project (OWASP) deckt MobSF von Haus aus bereits ab.

Dynamische Analyse – ITGAIN Banking 5.0 App – Android APK

Mit Hilfe des Pentests versuchen wir als Testexperten durch gezielt ausgeführte Angriffe die Empfindlichkeit des Banking 5.0 App Prototypen gegenüber Einbruchs- und Manipulationsversuchen festzustellen. Wir verwendeten hierfür ähnliche Methoden und Techniken, wie sie Hacker oder Cracker einsetzen, um unautorisiert in ein System einzudringen.
Durch den Pentest sollten Schwachstellen aufgedeckt und Gefährdungspotenziale besser eingeschätzt werden. Während des kompletten Pentests erfolgte eine genaue Protokollierung aller durchgeführten Maßnahmen. Die Ergebnisse wurden zentral im Testmanagementwerk TestLink dokumentiert.
In einem abschließenden Bericht wurden die erkannten Schwachstellen und Lösungsansätze zur Verbesserung des IT-Sicherheitsniveaus aufgeführt. Das Beseitigen der Schwachstellen und die Durchführung von Härtungsmaßnahmen der Banking App war nicht Bestandteil des Pentests, da es sich nur um einen Prototyp handelt, der so nicht in den produktiven Einsatz überführt wurde.

Im Rahmen der Statischen Analyse wurden viele Funktionen und Komponenten automatisiert mittels MobSF getestet.
- Um die Lesbarkeit des Beitrages sicherzustellen, werden exemplarisch nur drei Funktionen etwas ausführlicher beschrieben.

Ermittlung und Analyse der Activities, Services, Receiver und des Providers
Dekompilierung der Binärdatei in Java- und Smali-Quellcode
Analyse der Manifest-Datei
MobSF analysierte die Berechtigungen der Banking 5.0 App, bestimmte deren Status hinsichtlich der Kritikalität und der Beschreibung der Berechtigungen. Um die tatsächliche Kritikalität zu beurteilen ist die Architektur des Android-Betriebssystems zu verstehen. Hier kam uns die Kompetenz der Kollegen aus den Softwareentwicklung zugute.
Zertifikat- und Signaturanalyse
Analyse und Klassifizierung der Permissions
Analyse der nativen Bibliotheken (z.B. Fehler im Code)
Mittels Codeanalyse identifiziert MobSF potenzielle Sicherheitslücken. Dabei ermittelt MobSF den Schweregrad der Sicherheitslücken und die betroffenen Dateien, in denen diese Art von Sicherheitslücke gefunden wurde. Bei den ermittelten Ergebnissen kann es sich um falsch positive Befunde handeln. Aus diesem Grund wurden die Ergebnisse der Codeanalyse noch einmal manuell durch unsere Sicherheitstester überprüft und bewertet.
Überprüfung möglicher SDK-Manipulationen
Erkennung von Codefehlern (z. B. Protokolle mit vertraulichen Informationen, nicht gelöschte TMP-Dateien)
Überprüfung auf Schadcode mit VirusTotal und APKiD
Erkennung der externen API-Kommunikation (URLs, E-Mails)
Die Auflistung der URLs, IP-Adressen und die Dateien, in denen sie gespeichert oder aufgerufen werden, wurden aufgezeigt. Es galt zu analysieren, wohin der Prototyp bereits Daten sendet oder wo er die Informationen speichert.
Erkennung sensibler Informationen im Code
Erkennung von Trackern

Die statische Analyse des Banking 5.0 App Prototypen und dessen Quellcodes lieferte ein grundlegendes Verständnis für die Architektur der Android-Anwendung und die potenziellen Angriffsvektoren. Gemäß der bei Hackern verwendeten Methodik, begann unser Pentest, wie auch bei Testungen von Kundenanwendungen üblich, mit der statischen Analyse.

Die Durchführung der dynamischen Analyse erfolgte mittels eines Android-Emulators. Mit dem Start der dynamischen Analyse wurde gleichzeitig eine Verbindung zum Android-Emulator hergestellt und die Banking 5.0 App automatisch auf dem virtuellen Test-Gerät installiert sowie ausgeführt. Parallel dazu startet der Dynamic Analyzer einen HTTPS-Intercepting-Proxy, um den Web-Verkehr zu erfassen und zu analysieren sowie den MobSF Agenten, der Dienste und Services, die im Hintergrund der App laufen, erfasst. Die Weboberfläche der dynamischen Analyse bietet eine Option zur Berichtsgenerierung. Dabei wird der Bericht, entsprechend der analysierten Bereiche, in verschiedene Kategorien unterteilt.
Start des Berichtes der dynamischen Analyse des Banking 5.0 App Prototypen

Video

Qualitätsmanagement

Fazit

Keine App, keine Anwendung oder System ist vollkommen sicher. Kein System ist frei von Fehlern und Schwächen. Auch wenn eine App akribisch konzipiert wird, lassen sich durch den Penstest Schwachstellen nachweisen und aufzeigen, dass es durchaus Optimierungspotential hinsichtlich der Sicherheit gibt.

Beim Penetrationstest einer mobilen Anwendung gehe ich ähnlich vor wie bei einer Webanwendung. Das heißt, es gibt auch hier Black-, Grey- und Whiteboxansätze. Was sich genau hinter diesen Ansätzen verbirgt, vermittel ich gerne in meiner Rolle es ISTQB® Certified Tester Foundation Level. Der größte Unterschied zu einer Webapplikation ist das Sicherheitsmodell rund um das Endgerät.
Mobile Apps sind häufig nur für einen speziellen Zweck entwickelt. Während im Webbrowser völlig unterschiedliche Webanwendungen laufen können, ist jede mobile Applikation eine separat laufende Anwendung, die eigens getestet werden muss.

Wenn Sie davon überzeugt sind, dass Ihre App, Ihre Anwendung oder System sicher ist, wissen Sie nur noch nichts von den möglichen Schwachstellen.
Profitieren Sie von meiner Erfahrung in der präventiven Sicherheit und gewinnen Sie Sicherheit in Ihren Softwareprojekten. Ich begleitee Sie, um Sicherheitsrisiken zu erkennen, effektive Gegenmaßnahmen zu entwickeln und diese umzusetzen.

Sprechen Sie mich gerne an.




Blog

Lade...