![Page 1: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/1.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
1
30-jähriges Jubiläum des Fachgebietes Informatik der Universität
Marburg / Verabschiedung von Prof. Dr. Manfred Sommer, 31.10.2014
Dr. Karsten Sohr
TZI – Universität Bremen
Technologie-Zentrum Informatik und Informationstechnik
Software Security am Beispiel von Android-Anwendungen
![Page 2: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/2.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
2
Gliederung
Kurzvorstellung des Instituts
Software-Security als eigene Disziplin
Sicherheitsprobleme in Android-Apps
Forschungsprojekt ZertApps
Ausblick
![Page 3: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/3.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
3
Technologie-Zentrum Informatik und Informationstechnik
Inneninstitut der Universität Bremen
Zusammenschluss von Hochschullehrern aus den Fachbereichen Mathematik und Informatik sowie Physik und Elektrotechnik
Technologie-Transfer durch gemeinsame Forschungsprojekte (BMBF, EU, BMWi), Auftragsforschung, Ausgründungen, Personaltransfer
Regionaler Auftrag
Gliederung in vier Leitthemen, darunter Systemqualität und Informationssicherheit (SQuIS)
![Page 4: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/4.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
4
Software Security als eigene Disziplin
Gängige Sicherheitsmechanismen wie z.B. Firewalls, AV-Software oder Intrusion Detection-Systeme sind reaktiv
Ursache für Sicherheitsprobleme: Lücken in Software
McGraw: Trinity of Trouble
1. Steigende Komplexität (Windows 8 bis zu 80 Mio. Lines of Code?)
2. Wachsende Vernetzung (SOA, Industrie 4.0, Internet der Dinge,…)
3. Erweiterbarkeit von Systemen (Nachladen von Apps, Plugins für Browser)
Werkzeuge und Vorgehensweisen zur Verbesserung der Software Security • Security Development Process (SDL)
![Page 5: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/5.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
5
Anzahl von schwerwiegenden Sicherheitslücken
Quelle:
http://web.nvd.nist.gov/view/vuln/statistics
![Page 6: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/6.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
6
Code Review durch statische Programmanalyse
Sicherheitsanalyse des Quelltexts von Anwendungen • Aufdecken von gängigen Programmierfehlern wie z.B. Buffer-Overflows,
SQL-Injection- und Cross-Site-Scripting-Verwundbarkeiten
• Automatisierte Analyse
Einsatz von Compilerbau-Techniken • Zwischendarstellung des Programmes z.B. durch Abstract Syntax Trees,
Static Single Assignment (SSA)
• Daten- und Kontrollflussanalysen
False Positives, False Negatives • Nicht-Entscheidbarkeit
Gängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code)
![Page 7: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/7.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
7
Architekturelle Risikoanalyse
Sicherheitsanalyse der Architektur der Software • Zur Design-Zeit
• Finden von grundsätzlichen Sicherheitsproblemen („Flaws“ vs. „Bugs“)
• Beispiele für Flaws: Fehlende Verschlüsselung; nur Schutz der Integrität, obwohl die Vertraulichkeit das Schutzziel ist; fehlerhafte rollenbasierte Zugriffskontrolle; Überprivilegierung
Verschiedene Ansätze • Threat Modeling/STRIDE (Microsoft)
• Architekturelle Risikoanalyse nach McGraw
Kernidee in beiden Ansätzen:
Anhand von Diagrammen/Übersichtsgrafiken werden grundlegende Sicherheitsaspekte diskutiert
![Page 8: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/8.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
8
Threat Modeling mit Datenflussdiagrammen
![Page 9: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/9.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
9
Sicherheitslücken in Apps /1
Sicherheitslücken im WhatsApp-Messenger (z.B. erratbare Schlüssel)
Massive Sicherheitslücken in SSL-Implementierungen von Apps (s. Untersuchungen der Universität Hannover/Marburg)
Einschleusen von JavaScript-Code in Apps mit Web-Funktionalität (Übernahme der Apps)
Apps mit zu vielen Berechtigungen (Universität Berkeley)
Confused Deputy-Probleme
![Page 10: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/10.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
10
Sicherheitslücken in Apps /2
![Page 11: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/11.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
11
Sicherheitslücken in Apps /2
![Page 12: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/12.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
12
Eine E-Mail eines Kollegen …
Falls dich mal wieder die SSL-Geschichte interessiert: Die App ist als WebView
umgesetzt, also alles ist HTML. Was aber für einen groben Fehler spricht, ist
folgendes:
public void onReceivedSslError(android.webkit.WebView, android.webkit.SslErrorHandler, android.net.http.SslError){
com.WebDevs.SPCanywhere.MyWebViewClient $r0;
android.webkit.WebView $r1;
android.webkit.SslErrorHandler $r2;
android.net.http.SslError $r3;
$r0 := @this: com.WebDevs.SPCanywhere.MyWebViewClient;
$r1 := @parameter0: android.webkit.WebView;
$r2 := @parameter1: android.webkit.SslErrorHandler;
$r3 := @parameter2: android.net.http.SslError;
virtualinvoke $r2.<android.webkit.SslErrorHandler: void proceed()>();
return;
}
![Page 13: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/13.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
13
Dekompiliert nach Java
public void onReceivedSslError(WebView paramWebView, SslErrorHandler
paramSslErrorHandler, SslError
paramSslError)
{
paramSslErrorHandler.proceed();
}
![Page 14: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/14.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
14
Problemstellung
Es werden Analyse-Methoden und Evaluationsprozesse gesucht, durch die nachgewiesen werden kann, dass Android-Apps sicherheitstechnisch auf einem angemessenen Niveau sind.
![Page 15: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/15.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
15
Aktuelles Forschungsprojekt ZertApps
BMBF-Projekt ZertApps: Zertifizierte Sicherheit für mobile Anwendungen
Weitere Partner:
• Fraunhofer SIT,
• TU Darmstadt,
• OTARIS Interactive Service GmbH,
• datenschutz cert GmbH,
• SAP AG
![Page 16: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/16.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
16
Projektziele /1
Entwicklung präziser statischer Sicherheitsanalysen auf Basis der Android Framework-Konzepte mit Open Source-Werkzeugen wie z.B. Soot
Ggf. Ergänzung durch dynamische Analyse zur Bestätigung der Ergebnisse der statischen Analysen
Berücksichtigung des Zusammenspiels mehrerer Apps (→ Confused Deputy-Problem)
Extraktion und Sicherheitsanalyse der Software-Architektur der Apps
• Reverse Engineering von Datenflussdiagrammen (DFDs) durch statische Analysen (Soot)
• Automatische Analyse dieser extrahierten DFDs gegen gängige architekturelle Verwundbarkeiten (CWE-Einträge)
![Page 17: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/17.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
17
Projektziele /2
Berücksichtigung hybrider Apps (Apps mit Java- und Web-Anteilen)
• z.B. Analyse von PhoneGap-basierten Apps
Verständliche Präsentation der Analyseergebnisse für verschiedene Anwendergruppen
• Sicherheitsverantwortliche, Evaluatoren, Entwickler, Endnutzer?
Entwicklung eines leichtgewichtigen Zertifizierungsprozesses/-schemas
• Möglichst geringe Kosten
• Abgestuftes Zertifizierungskonzept
![Page 18: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/18.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
18
Zertifizierungsplattform
![Page 19: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/19.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
19
Zusammenfassung & Ausblick
Software Security wird immer relevanter
• Mobile Anwendungen, Internet der Dinge, Industrie 4.0, …
Systematische und kosteneffiziente Vorgehensweisen gesucht
Besonders interessant: Sicherheit von Apps
Werkzeugunterstützung
Ergänzende neue Ansätze:
Statische (und dynamische) Programmanalysen zur Extraktion und Überprüfung der implementierten Sicherheitsarchitektur
![Page 21: Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge: HP-Fortify SCA, IBM AppScan, Coverity Prevent (für C/C++-Code) Systemqualität](https://reader034.vdocuments.pub/reader034/viewer/2022043016/5f3905125cc79d6c7e1bcd25/html5/thumbnails/21.jpg)
Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]
21
Vielen Dank!
Fragen?