Schwachstellenanalyse für Unternehmen
Mobile Penetrationstests werden speziell eingesetzt, um Sicherheitslücken in mobilen Anwendungen und deren Infrastruktur gezielt zu identifizieren und zu beheben, bevor sie von Angreifern ausgenutzt werden können. Sie berücksichtigen dabei typische Risiken mobiler Apps, wie unsichere Datenspeicherung, schwache Authentifizierung oder unsichere Schnittstellen. Durch regelmäßige Tests können Unternehmen ihre mobilen Anwendungen vor Cyberangriffen schützen, gesetzliche Vorgaben einhalten und finanzielle sowie rechtliche Folgen vermeiden. Zudem helfen sie, Sicherheitsmaßnahmen kontinuierlich zu verbessern, zukünftigen Angriffen vorzubeugen und neue Updates oder Funktionen sicher bereitzustellen. Gleichzeitig dienen mobile Penetrationstests als Nachweis für die Sicherheit der App, stärken das Vertrauen der Nutzer und unterstützen den Aufbau einer zuverlässigen Marke.
Schritt 1: Vorbereitung und Erkundung
Die Informationssammlung ist ein notwendiger Schritt im Prozess des Penetrationstests für mobile Anwendungen. In dieser Phase kommen unter anderem folgende Techniken zum Einsatz:
Statische Analyse mobiler Anwendungen (SAST)
Während des Mobile-App-Penetrationstests setzen wir – wann immer möglich – Static Application Security Testing (SAST) ein, um die Analyse des Quellcodes der App zu ergänzen.Diese Tools sind besonders effektiv darin, Schwachstellen zu identifizieren, die bei manuellen Code-Reviews übersehen werden könnten, wie z. B. unsichere Programmierpraktiken oder fest im Code hinterlegte Zugangsdaten.
Zu den gängigen SAST-Tools in unserem Werkzeugkasten gehören:
AndroBugs: Ein leistungsstarkes Tool zur Analyse von Android-Anwendungen
Static Analysis Framework (SAF): Oft direkt in Mobile-Pentesting-Plattformen integriert und bietet robuste Code-Scanning-Funktionen
Checkmarx Mobile: Eine umfassende SAST-Lösung für tiefgehende Analysen mobiler Apps
Open-Source-Intelligence (OSINT)
Bevor wir mit dem eigentlichen Pentest der mobilen Anwendung beginnen, sammeln wir öffentlich verfügbare Informationen über die App, ihre Entwickler und die zugrunde liegende Infrastruktur.Diskussionen in sozialen Medien, Entwicklerforen oder App-Store-Einträge sind häufig wertvolle Informationsquellen. OSINT kann unter anderem folgende Erkenntnisse liefern:
Zukünftige Features oder Funktionen aus Entwickler-Roadmaps, die möglicherweise anfälliger für Angriffe sind
Nutzungstrends und wiederkehrende Nutzerbeschwerden, die auf Sicherheitsprobleme hinweisen können
Informationen über im Backend eingesetzte Technologien, die gezielte Angriffsversuche erleichtern
Analyse des mobilen Netzwerkverkehrs
Die Untersuchung des von der App erzeugten Netzwerkverkehrs hilft dabei, verwendete Übertragungsprotokolle (z. B. HTTPS vs. HTTP), angesprochene Endpunkte sowie mögliche Übertragungen sensibler Daten zu identifizieren.Tools wie Wireshark und Burp Suite haben sich in dieser Phase als besonders hilfreich erwiesen.
Schritt 2: Analyse, Bewertung und Beurteilung
Nach Abschluss der Erkundungsphase beginnen die Pentester mit der Analyse- und Bewertungsphase. Dabei wird die Anwendung vor und nach der Installation auf dem Gerät untersucht. Zu den kombinierten Analysetechniken gehören:
1. Fortgesetzte statische und dynamische Analyse
In dieser Phase führen wir eine vertiefte statische Code-Analyse (SAST) durch, um Schwachstellen wie SQL-Injections, Buffer Overflows oder unsichere Datenspeicherung aufzudecken.
Für die dynamische Analyse wird die App in einer Sandbox-Umgebung ausgeführt, um reale Nutzungsszenarien zu simulieren. Dadurch lassen sich Laufzeit-Schwachstellen erkennen, z. B. fehlerhafte Eingabevalidierung oder Cross-Site-Scripting-(XSS)-Probleme.
Häufig eingesetzte Tools wie Drozer und Frida helfen dabei, unter anderem folgende Schwachstellen zu identifizieren:
Unsichere Eingabevalidierung: Benutzereingaben werden nicht korrekt geprüft, was Code-Injection oder Datenmanipulation ermöglicht
Schwachstellen in der Inter-Component Communication (ICC): Fehlerhafte Kommunikation zwischen App-Komponenten oder Backend-Systemen, die unbefugten Zugriff oder Rechteausweitung ermöglichen
Unsichere direkte Objektverweise: Direkter Zugriff auf Objekte ohne ausreichende Autorisierungsprüfung
2. Architekturanalyse
Das Verständnis der Gesamtarchitektur der App ist entscheidend. Dazu gehören Backend-Komponenten, Datenspeichermechanismen und Authentifizierungsverfahren. Durch die Analyse der Architektur lassen sich systemweite Schwachstellen identifizieren, z. B.:
Fehlkonfigurierte Sicherheitsrichtlinien auf Backend-Servern oder in Cloud-Speichern
Schwache Authentifizierungs- und Autorisierungsmechanismen, die unbefugten Zugriff ermöglichen
Unsichere Datenspeicherung, etwa unverschlüsselte Speicherung sensibler Daten
3. Reverse Engineering
Beim Reverse Engineering wird der Code der App zerlegt, um interne Abläufe, versteckte Funktionen oder verschleierte Logik zu verstehen, die Sicherheitslücken enthalten könnten.
Identifikation verschleierter Logik: Code-Verschleierung kann Schwachstellen verbergen
Analyse kundenspezifischer Frameworks: Eigene Frameworks oder Bibliotheken werden auf Implementierungsfehler untersucht
Tools und Techniken: Gängige Werkzeuge sind IDA Pro, Ghidra und JADX (für Java-Anwendungen). Zum Einsatz kommen u. a. Disassemblierung, Kontrollflussanalysen und Funktions- sowie Datenstrukturanalyse.
4. Dateisystemanalyse
Mobile Apps speichern häufig Daten lokal auf dem Gerät, z. B. für Offline-Funktionen oder Benutzereinstellungen. Dabei wird geprüft, ob sensible Daten unsicher gespeichert oder für andere Apps zugänglich sind.
Identifikation von Datenresten: Gelöschte Daten können als Fragmente im Dateisystem verbleiben
Versuche zur Umgehung von Sandboxing: Überprüfung, ob auf Daten außerhalb des vorgesehenen Speicherbereichs zugegriffen werden kann
Pro-Tipp:ADB (Android Debug Bridge) ist ein CLI-Tool zur Analyse des Android-Dateisystems. Für iOS kann z. B. iExplorerverwendet werden.
5. Analyse der Inter-App-Kommunikation (IAC)
Untersuchung der Kommunikation der App mit anderen Apps auf dem Gerät, insbesondere im Hinblick auf Datenaustausch und mögliche Angriffsflächen.
Unsichere IPC-Mechanismen: Fehlende Authentifizierung, unzureichende Validierung oder Intent-Spoofing
Missbrauch von Berechtigungen: Analyse, ob App-Berechtigungen übermäßig oder missbräuchlich genutzt werden
Eine kleine Sicherheitslücke kann Ihre Android- oder iOS-App gefährden.Lassen Sie Ihre mobile App prüfen und stärken Sie Ihre Verteidigungsmaßnahmen!
Schritt 3: Ausnutzung (Exploitation)
Basierend auf den zuvor identifizierten Schwachstellen simuliert die Exploitation-Phase reale Angriffe, z. B. durch schädliche Payloads oder Shell-/Root-Exploits, um das Verhalten der App im Angriffsfall zu verstehen.
Dazu gehören unter anderem:
- Individuell entwickelte Exploits, zugeschnitten auf spezifische Schwachstellen
- Öffentlich verfügbare Exploit-Kits, die bekannte Sicherheitslücken ausnutzen
Schritt 4: Berichtserstellung und erneute Prüfung
Nach Abschluss der Exploitation-Phase erstellt das Team einen detaillierten Bericht, der Folgendes enthält:
Liste der getesteten Endpunkte und angewandten Methoden
Beschreibung der identifizierten Schwachstellen inkl. Schweregrad (CVSS-Werte)
Risikobewertung basierend auf den potenziellen Auswirkungen
Proof-of-Concept-(PoC)-Exploits zur Veranschaulichung
Konkrete Handlungsempfehlungen zur Behebung der Schwachstellen
Öffentlich verifizierbares Pentest-Zertifikat (optional)
Rescanning:Idealerweise sollten nach der Behebung der Schwachstellen regelmäßige erneute Scans durchgeführt werden. So lässt sich die Wirksamkeit der Maßnahmen überprüfen und verbleibende Risiken identifizieren.