Diese Arbeit beschäftigt sich mit dem Auffinden von Schwachstellen in Android Apps. Der Leser dieser Arbeit soll in die Lage versetzt werden, die Sicherheit einer App beurteilen zu können. Damit richtet sich diese Arbeit vorrangig an Android Administratoren und Entwickler. Die beschriebenen Techniken sollten nur aus Eigenentwicklungen angewandt werden.
Die Arbeit gliedert sich in vier logische Abschnitte. Am Anfang stehen Informationen zum Umgang mit Android und dem Google Play Store. Diese Informationen sind Grundlagen, welche wichtig für alle nachfolgenden Themen sind. Danach werden einige Schwachstellen, die häufig in Android Apps vorkommen, aufgezeigt und am praktischen Beispiel erläutert. Die letzten zwei Abschnitte stellen den Kern dieser Arbeit da, indem sie beschreiben, wie solche Schwachstellen gefunden werden können. In Abschnitt drei wird prinzipiell gezeigt, wie eine App aufgebaut ist und wie Quelltext aus einer App gewonnen wird. Der letzte Teil der Arbeit geht auf konkrete Analysetechniken ein.
Insgesamt wird so der aktuelle Stand der Technik für Sicherheitsanalysen von Android beschrieben.
Inhaltsverzeichnis
Einleitung
Voraussetzungen
Apps herunterladen
Testumgebung einrichten
Android Development Umgebung
Alternativer Emulator
Santoku
Schwachstellen in Android Apps
Intent Spoofing
Unauthorized Intent Receipt
Information Leakage
Backdoor
SSL
DOS
Weitere Schwachstellen
SQL, JavaScript & XML Injection
Fragment Injection
OWASP Mobile Top 10 Risks
Manuelle Analyse
Betrachtung der Manifest-Datei
App Konfiguration herausfinden
Ressourcen untersuchen
Statische Analyse
Grundlagen der Dekompilierung
Manuelle Dekompilierung von Dex-Bytecode
Dekompilierung von Dex zu Java
Prüfung von verdächtigen Konstanten
Dekompilierung von Dex zu Smali
Dekompilierung von Dex zu Jimple
Datenfluss Analyse mit FlowDroid
Optimierung von FlowDroid
Dynamische Analyse
Laufzeit injection mit Drozer
Schwachstellentests
Überwachung von Apps mit Logcat
Netzwerküberwachung
Zielsetzung & Themen
Diese Arbeit widmet sich der systematischen Sicherheitsanalyse von Android-Anwendungen, mit dem Ziel, Methoden zur Identifizierung von Schwachstellen zu vermitteln und den aktuellen Stand der Technik für Experten zugänglich zu machen.
- Grundlagen der Android-Testumgebungen und Emulator-Konfiguration.
- Analyse gängiger Sicherheitslücken wie Intent Spoofing, Information Leakage und Injection-Angriffe.
- Methodik der manuellen und statischen Analyse mittels Dekompilierung.
- Einsatz automatisierter Werkzeuge wie FlowDroid und Drozer zur Schwachstellenerkennung.
Auszug aus dem Buch
Information Leakage
Die Android API bietet eine Reihe von Möglichkeiten wie Informationen gespeichert werden können. Dabei kann der Entwickler sich nicht einfach eine Möglichkeit aussuchen, sondern muss den richtigen Speicherort für seine Daten wählen. Dabei unterscheiden sich die Speicherorte aufgrund ihres Sicherheitsniveau. Welcher Speicherort und Sicherheitsniveau angemessen ist, hängt dabei vom Grad der Sensibilität der Informationen ab. Um die Sensibilität der Informationen einer App einschätzen zu können, kann man zwischen fünf Stufen unterscheiden.
1. Keine sensiblen Anwenderdaten
Daten die keine Rückschlüsse zulassen, wie zum Beispiel die Displayposition auf der etwas angezeigt wird.
2. Benutzerdaten
Daten die direkt vom Benutzer kommen aber nicht kritisch sind, da sie für eine breite Masse von Leuten gedacht sind. Zum Beispiel Statusmeldungen in sozialen Netzwerken.
3. Metadaten
Daten die indirekt Rückschlüsse auf den Benutzer und sein Verhalten zulassen. Zum Beispiel GPS Daten.
4. sensible Benutzerdaten
Daten die direkt vom Benutzer kommen aber nur für einen eingeschränkten Benutzerkreis sichtbar sein sollen, zum Beispiel SMS Nachrichten.
5. hochsensible Benutzerdaten
Benutzerdaten die einen finanziellen Schaden verursachen können, wie zum Beispiel Kreditkarten Daten.
Zusammenfassung der Kapitel
Einleitung: Dieses Kapitel erläutert die notwendigen Voraussetzungen sowie die Einrichtung der Entwicklungsumgebung und der benötigten Werkzeuge für die Analyse von Android-Apps.
Schwachstellen in Android Apps: Hier werden typische Sicherheitslücken wie Intent Spoofing, Information Leakage und verschiedene Injection-Methoden im Kontext von Android-Anwendungen theoretisch und praktisch diskutiert.
Manuelle Analyse: Dieses Kapitel konzentriert sich auf die Untersuchung der Manifest-Datei und der App-Ressourcen, um erste Indizien für mögliche Sicherheitsrisiken zu identifizieren.
Statische Analyse: Hier wird der Prozess der Dekompilierung von Dex-Bytecode in Java, Smali oder Jimple detailliert behandelt sowie die automatisierte Datenflussanalyse mittels FlowDroid vorgestellt.
Dynamische Analyse: Das abschließende Hauptkapitel widmet sich der Laufzeit-Analyse unter Einsatz von Drozer sowie der Netzwerküberwachung und Logcat-Protokollierung.
Schlüsselwörter
Android Sicherheit, Reverse Engineering, Schwachstellenanalyse, Dekompilierung, Dex-Bytecode, Intent Spoofing, Injection Angriffe, Statische Analyse, Dynamische Analyse, FlowDroid, Drozer, OWASP, Manifest-Datei, Datensicherheit, Smali
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Arbeit behandelt die Sicherheitsanalyse und das Reverse Engineering von Android-Applikationen mit dem Ziel, Schwachstellen methodisch aufzudecken.
Was sind die zentralen Themenfelder der Analyse?
Die Schwerpunkte liegen auf dem Verständnis von Android-Komponenten, der Dekompilierung von Anwendungscode und der Nutzung spezialisierter Sicherheitstools.
Was ist das primäre Ziel der Untersuchung?
Das Ziel ist es, Administratoren und Entwicklern Techniken an die Hand zu geben, mit denen sie die Sicherheit von Android-Apps selbstständig beurteilen können.
Welche wissenschaftliche Methode wird primär verwendet?
Die Arbeit kombiniert manuelle Code-Prüfung mit strukturierten statischen und dynamischen Analyse-Methoden unter Verwendung etablierter Frameworks.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die Identifikation von Schwachstellen, die manuelle Manifest-Analyse, diverse Dekompilierungs-Strategien und den Einsatz von Analyse-Software.
Welche Schlüsselbegriffe charakterisieren die Publikation?
Begriffe wie Reverse Engineering, statische Analyse, FlowDroid, Drozer und Intent Spoofing beschreiben den methodischen Kern der Arbeit am besten.
Wie kann man mit Drozer auf ein System einwirken?
Drozer ermöglicht das Simulieren von Intents zur Laufzeit, um Schwachstellen in Service- oder Broadcast-Komponenten direkt auf dem Android-Gerät zu testen.
Warum ist die Manifest-Datei für einen Angreifer besonders relevant?
Sie dient als Kernstück der App, da sie Berechtigungen, Komponenten und Einstiegspunkte offenlegt, die für eine zielgerichtete Schwachstellenanalyse essenziell sind.
- Arbeit zitieren
- Daniel Szameitat (Autor:in), 2014, Schwachstellenanalyse & Reverse Engineering von Android Apps, München, GRIN Verlag, https://www.grin.com/document/280939