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
- Unauthorized Intent Receipt
- Intent Spoofing
- 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
- Statische Analyse
- Ressourcen untersuchen
- Grundlagen der Dekompilierung
- Manuelle Dekompilierung von Dex-Bytecode
- Dekompilierung von Dex zu Java
- Dekompilierung von Dex zu Smali
- Prüfung von verdächtigen Konstanten
- 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
- Anhang: VBS Script FindString.vbs & FindAndroidKonst.vbs
- Anhang: „,isSession Valid" Methode
- Benutzerdefiniertes Verzeichnis
- App Downloader Icon
- Install
- ADT installieren 2
- ADT installieren 3
- Emulator per Konsole starten
- Android Debug Monitor
- Installieren von Apps im Emulator
- Verfügbare Geräte
- Santoku
- GoatDroid Konfiguration
- GoatDroid App auf virtuellem Device
- Mitschneiden von Nachrichten
- SQLite Datenbank in GoatDroid
- Öffnen von Userinfo.db
- Datenbankfelder
- Http Session mit geklauter Session ID
- URLs in GoatDroid
- DOS Angriff auf GoatDroid
- Fenster zur Eingabe eines neuen PINs
- Apktool Reversing
- Der Kompiliervorgang in Java
- JVM
- Beispiel einer Class Datei
- Class Datei im Hex-Editor
- Umwandlung von class zu dex
- Vergleich von „*.jar“ und „*.dex" Formaten
- Hex Code von der Beispiel App
- Apk zu Java
- Smali Ordnerstruktur
- Unterschiede Dekompiler
- Syntax Highlight für Smali
- Soot Projekt
- Runnable JAR File
- GUI für FlowDroid
- Dekompilierung mit Soot
- Drozer Server starten
- Virtuelles Gerät mit Android API 4.0.3
- Screen Lock
- Schwachstellentest
- Logcat GUI
- Netzwerküberwachung mit Whireshark
- Http Überwachung mit Fiddler2
- Fiddler2 Options
- Kurzfassung
- Fazit
- Literaturverzeichnis
Zielsetzung und Themenschwerpunkte
Diese Arbeit befasst sich mit der Analyse von Android Apps auf Schwachstellen. Das Ziel ist es, dem Leser die notwendigen Kenntnisse zu vermitteln, um die Sicherheit von Android Apps beurteilen zu können. Die Arbeit richtet sich vorrangig an Android Administratoren und Entwickler. Die beschriebenen Techniken sollten ausschließlich für eigene Entwicklungen verwendet werden.
- Grundlagen des Umgangs mit Android und dem Google Play Store
- Häufige Schwachstellen in Android Apps
- Methoden zur Analyse von Android Apps
- Statische und dynamische Analysetechniken
- Aktuelle Sicherheitsanalysemethoden für Android
Zusammenfassung der Kapitel
Die Einleitung stellt die Voraussetzungen für das Verständnis der Arbeit dar und erläutert die Bedeutung von Java- und Android-Kenntnissen sowie die Verwendung von Git-Repositories. Es wird außerdem erklärt, wie Android Apps heruntergeladen werden können, indem die Apk-Datei aus dem Google Play Store oder vom Gerät geladen wird. Der Apk-Downloader, ein Plugin für den Chrome Browser, wird vorgestellt, das den Download von Apps aus dem Google Play Store direkt auf den PC ermöglicht.
Der Abschnitt "Testumgebung einrichten" beschreibt die notwendigen Komponenten für die Analyse von Android Apps. Die Android Development Tools (ADT) werden als Grundlage für alle Apps und Tools vorgestellt. Die Verwendung von Eclipse mit dem Google Eclipse Plugin wird empfohlen. Für Linux-Benutzer wird das Santoku-System als fertiges System mit vielen Analysetools vorgestellt.
Im Kapitel "Schwachstellen in Android Apps" werden verschiedene Schwachstellen aufgezeigt, die häufig in Android Apps vorkommen. Dazu gehören Unauthorized Intent Receipt, Intent Spoofing, Information Leakage, Backdoor, SSL, DOS und weitere Schwachstellen wie SQL, JavaScript & XML Injection sowie Fragment Injection. Die OWASP Mobile Top 10 Risks werden ebenfalls erwähnt.
Der Abschnitt "Manuelle Analyse" befasst sich mit der Untersuchung der Manifest-Datei und der App-Konfiguration. Die statische Analyse umfasst die Untersuchung von Ressourcen und die Dekompilierung von Dex-Bytecode. Es werden verschiedene Dekompilierungsmethoden vorgestellt, darunter die Dekompilierung von Dex zu Java, Smali und Jimple. Die Datenflussanalyse mit FlowDroid und die Optimierung von FlowDroid werden ebenfalls behandelt.
Das Kapitel "Dynamische Analyse" beschreibt die Laufzeit-Injection mit Drozer, Schwachstellentests, die Überwachung von Apps mit Logcat und die Netzwerküberwachung. Es werden verschiedene Tools vorgestellt, die für die dynamische Analyse von Android Apps verwendet werden können.
Schlüsselwörter
Die Schlüsselwörter und Schwerpunktthemen des Textes umfassen die Analyse von Android Apps, Schwachstellen, Sicherheit, Android Development, Dekompilierung, statische Analyse, dynamische Analyse, Intent Spoofing, Information Leakage, Backdoor, SSL, DOS, SQL Injection, JavaScript Injection, XML Injection, Fragment Injection, OWASP Mobile Top 10 Risks, Drozer, Logcat, Netzwerküberwachung, Apktool, FlowDroid, Santoku, Android Debug Monitor, Google Play Store, Apk-Downloader, Android Development Tools (ADT), Eclipse, Java, Git, Android Manifest, Dex-Bytecode, Smali, Jimple, Ressourcen, App Konfiguration, Sicherheitsanalyse, Android Administratoren, Android Entwickler.
- Arbeit zitieren
- Daniel Szameitat (Autor:in), 2014, Schwachstellenanalyse & Reverse Engineering von Android Apps, München, GRIN Verlag, https://www.grin.com/document/280939