RISIKEN MOBILER APPS ERKENNEN UND VERHINDERN · HSMs, Side-Channel, EMA-, Fault-Analysis Product-...
Transcript of RISIKEN MOBILER APPS ERKENNEN UND VERHINDERN · HSMs, Side-Channel, EMA-, Fault-Analysis Product-...
© Fraunhofer AISEC | D. Titze
RISIKEN MOBILER APPS ERKENNEN UND VERHINDERN
Mario Hoffmann
16. Jahresfachkonferenz, Datenschutz und Datensicherheit23. und 24. Juni 2014 in Berlin
© Fraunhofer AISEC | M. Hoffmann | 2
1. Fraunhofer AISEC
2. App-Analyse Tool App-Ray
3. Untersuchung 10.000 Android Apps
Agenda
© Fraunhofer AISEC | M. Hoffmann | 3
Embedded Security Trusted platforms (HW/SW-Co-Design)
Hardware Security HSMs, Side-Channel, EMA-, Fault-Analysis
Product- and Know-How-Protection PUFs, Smart Materials, Firmware-Protection
IP-based Networks Cloud-Networking, Secure Multi-Party Computation
Digital Identity Attribute based IDs, Object-IDs, Web-IDs
Mobile Security Trusted BYOD, App-Analysis Tool, Automotive-Sec.
Fraunhofer AISEC
© Fraunhofer AISEC | M. Hoffmann | 4
© Fraunhofer AISEC | M. Hoffmann | 5
Problem:
Verhalten einer App nicht offensichtlich
Analyse in offiziellen Märkten undurchsichtig und unzureichend
Nicht nur Malware stellt eine Bedrohung dar
App-Analyse
© F
orb
es.
com
© Fraunhofer AISEC | M. Hoffmann | 6
Lösung
Vollautomatische Sicherheitsuntersuchung von Android-Apps
Klassifikation gemäß benutzerspezifischem Richtlinienkatalog
Aufdecken von Schwachstellen, Datenlecks, Datenschutzverletzungen, Programmierfehlern, …
App-Ray
http://www.app-ray.de
© Fraunhofer AISEC | M. Hoffmann | 7
Beispiele für typische Implementierungsfehler
Fehlerhafte Implementierung von TrustManager
Ermöglicht MitM-Angriffe auf SSL, Abhören von sensiblen Daten
Fehlendes setFilterTouchesWhenObscured
Kein Schutz gegen Tapjacking-Angriffe
Fehlerhafte Permissions für Content-Provider, unabsichtlicher Export
Andere Apps können Daten lesen und schreiben
App-Analyse
© Fraunhofer AISEC | M. Hoffmann | 8
App-Ray
© Fraunhofer AISEC | M. Hoffmann | 9
Katalog von High-Level Kriterien
Vertraulichkeit, Datenschutz, ...
Konfigurierbare Zuweisung von Testverfahren
Wird zur Auswertung der Analysen herangezogen
App-Ray
© Fraunhofer AISEC | M. Hoffmann | 10
Untersuchen von AndroidManifest.xml, Ressourcen & Market-Infos
Activities, Services, Content Provider, Broadcast Receiver
Permissions
Bekannte Binaries (busybox, su, iptables) und Exploits
Bekannte Bibliotheken für Payment, User Tracking, Advertising
Metadata Analysis
© Fraunhofer AISEC | M. Hoffmann | 11
Disassemblieren (Smali)
Dekompilieren (DED Decompiler)
Suche nach dedizierten Code-Patterns
Suche nach kritischen API-Calls
Location, Read Logs, Send SMS, Contact Data, …
Suche nach dynamisch geladenem Code, JNI
Code Analysis
public void checkServerTrusted(java.security.cert.X509Certificate[] p1, String p2) {
return;
}
© Fraunhofer AISEC | M. Hoffmann | 12
Control Flow Analysis
Call Graph
Control Flow Graph
Bidirektionale Datenflussanalyse(statisches Tainting)
Erkennen von Datenlecks(bspw. Kontaktdaten – Socket)
Code Analysis
© Fraunhofer AISEC | M. Hoffmann | 13
Ausführen der unmodifizierten App in emulierter Umgebung
Aufzeichnen und Wiedereinspielen von Benutzerinteraktionen
Syscall-Monitoring per Kernel-Modul
Aufzeichnen des Netzwerktraffic(insbes. Erkennen von unverschlüsselten Verbindungen & Ad-Hosts)
Dynamic Taint Analysis(taintdroid + Scripting zur Automatisierung und Auswertung)
Monitored Execution
© Fraunhofer AISEC | M. Hoffmann | 14
Re-packaging von Apps und Modifikation des Bytecodes
Instrumentieren von SSL-Verbindungen zum Mitschneiden von Klartext-Kommunikation ohne MitM
Injecten von dynamischer Taint-Analyse entlang kritischer Datenpfade
Härten von Apps durch Überwachen von Datenpfaden und kritischen API Calls
Instrumented Execution
© Fraunhofer AISEC | M. Hoffmann | 15
Auswertung der Rohdaten mit konfigurierbaren Regeln
Regeln entsprechen High-Level-Kriterien
Benutzer erhält
High-Level-Übersicht
Detaillierte Ergebnisse
(ggf. Rohdaten)
Auswertung mit Regeln
© Fraunhofer AISEC | M. Hoffmann | 16
Aktuelle Untersuchung: 10.000 Apps
© Fraunhofer AISEC | M. Hoffmann | 17
Analyse
• 10.000 Apps aus dem Google Play Store (Q1/2014)
• 5kB – 50MB
• 7051 verschiedene Entwickler
• Ø290k Codezeilen (inkl. enthaltener Bibliotheken)
Eingesetzte Verfahren
• Metadaten Analyse
• Statische Analyse
• Dynamische Analyse
www.app-ray.de
© Fraunhofer AISEC | M. Hoffmann | 18
Kommunikationsziele (4058)
© Fraunhofer AISEC | M. Hoffmann | 19
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
INTERNET
WRITE_EXTERNAL_STORAGE
READ_PHONE_STATE
WAKE_LOCK
ACCESS_WIFI_STATE
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
GET_ACCOUNTS
RECEIVE_BOOT_COMPLETED
BILLING
CAMERA
READ_CONTACTS
WRITE_SETTINGS
RECORD_AUDIO
READ_EXTERNAL_STORAGE
CALL_PHONE
SYSTEM_ALERT_WINDOW
WRITE_CONTACTS
Auswertung der 10.000 beliebtesten Apps
© Fraunhofer AISEC | M. Hoffmann | 20
Auswertung der 10.000 beliebtesten Apps (2)
96%
4%
Versand der IMEI direkt nach Start
Internet-Berechtigung
9%
91%
31%
69%
76%
24%
Selbst implementierte SSL-Überprüfung
Unverschlüsselte Kommunikation
© Fraunhofer AISEC | M. Hoffmann | 21
5193
2154
Receiver
427
100Provider
Auswertung der 10.000 beliebtesten Apps (3)
75%
25%
Native Bibliotheken
Exportierte Komponenten
1994
997
Services
83%
17%
Starten eines Hintergrunddienstes
© Fraunhofer AISEC | M. Hoffmann | 22
App-Ray
© Fraunhofer AISEC | M. Hoffmann | 23
Automatisierter Prüfprozess für Apps
Best practices, Anti-patterns
Capability leak Erkennung
Trusted App-Store
"Härtung" von Apps
Tamper-proof Apps: Verhindern von Disassemblieren, customized Obfuscation/Encryption
Ggf. Binden von Code an Device
Ausblick
© Fraunhofer AISEC | M. Hoffmann | 24
Review der App-Stores nicht ausreichend
Nicht nur Malware stellt eine Gefahr dar
Mehr Transparenz nötig!
Trusted App-Store?
Lösungsansatz: www.App-Ray.de
Fazit
© Fraunhofer AISEC | M. Hoffmann | 25
Mario [email protected]
Fraunhofer AISECService & Application SecurityParkring 485748 Garching (bei München)http://www.aisec.fraunhofer.de
Kontakt