Tests von iOS- und Android-Apps zusammen mit ihrem Backend: Speicherung, Übertragung, Zusammenspiel mit der Plattform und Widerstand gegen Manipulation.
Eine mobile App läuft auf einem Gerät, das ihr Entwickler nicht kontrolliert. Alles, was im Paket ausgeliefert wird, lässt sich lesen, jede Prüfung auf dem Gerät lässt sich umgehen, und jedes im Code eingebettete Geheimnis ist an dem Tag öffentlich, an dem die App erscheint.
Wir analysieren die App statisch und auf instrumentierten Geräten, fangen ihren Datenverkehr ab und testen das Backend, mit dem sie spricht. Die Frage ist immer dieselbe: Was kann jemand tun, der das Gerät besitzt oder mit ihm im selben Netzwerk ist?
01Umfang
Was wir testen
Lokaler Speicher: Datenbanken, Einstellungen, Keychain und Keystore, Logs, Backups
Zusammenspiel mit der Plattform: Deep Links, Intents, URL-Schemata, WebView, Zwischenablage
Codequalität und Build-Einstellungen: Debug-Flags, exportierte Komponenten, Berechtigungen
Widerstandsfähigkeit: Root- und Jailbreak-Erkennung, Manipulationsschutz, Obfuskierung
Backend-API, die die App nutzt
02Vorgehen
Wie die Arbeit abläuft
01
Statische Analyse
Das Paket wird entpackt und dekompiliert. Wir lesen die Konfiguration, suchen nach Geheimnissen und untersuchen, wie die App Daten speichert und schützt.
02
Dynamische Analyse
Die App läuft auf instrumentierten Geräten. Wir hängen uns in ihre Funktionen ein, umgehen ihre Prüfungen und beobachten, was sie schreibt und sendet.
03
Analyse des Datenverkehrs
Der Datenverkehr wird bei deaktiviertem Pinning abgefangen. Das Backend wird anschließend direkt getestet, ohne die Einschränkungen, die der Client vorgibt.
04
Missbrauch der Plattform
Wir rufen die App aus anderen Apps auf dem Gerät auf: über ihre Links, Intents und exportierten Komponenten.
Klasse der Schwäche, die jedem Befund zugrunde liegt.
The MITRE Corporation
06Fragen
Fragen zu dieser Leistung
Müssen wir Ihnen den Quellcode geben?
Nein. Die App wird so getestet, wie sie verteilt wird. Quellcode macht die Arbeit schneller und die Befunde genauer und kann als Quellcode-Review hinzukommen.
Ist das Backend enthalten?
Ja. Der Test einer mobilen App ohne das Backend deckt die Hälfte der Angriffsfläche ab. Die API wird über die Schnittstelle getestet, die die App nutzt.
Unsere App nutzt Certificate Pinning und Root-Erkennung. Verhindert das den Test?
Das bremst einen Angreifer, und es bremst uns. Wir umgehen die Schutzmaßnahmen und berichten, wie viel Aufwand das gekostet hat. Daran sehen Sie, was sie wert sind.