Navigation überspringen

Securitytest einer MobileApp

Neue Technologien bergen immer neue Sicherheitsrisiken und Mobile Apps bilden da keine Ausnahme. 2021 haben wir zusammen mit der Hochschule Weser-Bergland (HSW) den ersten Prototypen unserer Banking 5.0 App entwickelt. Unsere Sicherheitstester haben mit dem Mobile Security Framework (MobSF) den Android Banking 5.0 App Prototyp sowohl automatisierten dynamischen als auch statischen Analysen – einem Pentest – unterzogen.

Im Rahmen des Prototypenprojektes wurde durch das Team Banken und Versicherung das Anforderungsmanagement ganzheitlich abgedeckt. Das Fachkonzept für die Banking 5.0 App diente den Studierenden der HSW als Entwicklungsgrundlage.

Das Team Qualitätsmanagement definierte Testfälle und führte diese manuell sowie automatisiert mittels des Werkzeuges Appium zur Qualitätssicherung der Banking 5.0 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.

Unsere Sicherheitstester haben mit dem Mobile Security Framework (MobSF) den Android Banking 5.0 App Prototyp sowohl automatisierten dynamischen als auch statischen Analysen – einem Pentest – unterzogen.

Mobile Security Framework (MobSF)

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.

Vorgehen unserer Sicherheitstester

Mit Hilfe des Pentests versuchen unsere Testexperten durch gezielt ausgeführte Angriffe die Empfindlichkeit des Banking 5.0 App Prototypen gegenüber Einbruchs- und Manipulationsversuchen festzustellen. Sie verwenden 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 wird.

Statische Analyse

Im Rahmen der statischen Analyse wurden viele Funktionen und Komponenten automatisiert mittels MobSF getestet.

Es 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.

Dynamische 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.

Fazit

Keine App, keine Anwendung oder System ist vollkommen sicher. Kein System ist frei von Fehlern und Schwächen. Auch wenn unser Team Banken und Versicherung die App konzipiert hat, konnte das Team Qualitätsmanagement durch den Penstest nachweisen, dass es durchaus Optimierungspotential hinsichtlich der Sicherheit gibt.

Beim Penetrationstest einer mobilen Anwendung gehen wir ä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, vermitteln wir gerne in unserem ISTQB® Certified Tester Foundation Level Seminar. 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.

Unsere Security Tester wissen, dass all die Aufgabenstellungen im Softwaretest sehr vielschichtig sind. Profitieren Sie von unserer Erfahrung in der präventiven Sicherheit und gewinnen Sie Sicherheit in Ihren Softwareprojekten. Wir begleiten Sie, um Sicherheitsrisiken zu erkennen, effektive Gegenmaßnahmen zu entwickeln und diese umzusetzen. Technisch orientieren wir uns dabei an Industriestandards, beispielsweise dem OWASP Mobile Testing Guide. Kontaktieren Sie uns gerne.

Nehmen Sie Kontakt auf

Unsere Website kann natürlich nur einen ersten Eindruck von uns und unserem Leistungsspektrum vermitteln. Viel besser können wir in einem persönlichen Gespräch darstellen, wer wir sind, was uns ausmacht und was wir für Sie tun können. Per E-Mail, am Telefon oder face to face. Wir freuen uns auf den Dialog mit Ihnen.

Captcha Grafik