Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge:...

21
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

Transcript of Software Security am Beispiel von Android …sohr/papers/Marburg.pdfGängige kommerzielle Werkzeuge:...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 20: 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

Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]

20

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

Systemqualität und Informationssicherheit Dr. Karsten Sohr, [email protected]

21

Vielen Dank!

Fragen?