Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

15-01-2014 Fabian Braun, Matrikelnummer 857816 Software Security Assurance – Statische Code- Analyse mit Fortify.

Ähnliche Präsentationen


Präsentation zum Thema: "15-01-2014 Fabian Braun, Matrikelnummer 857816 Software Security Assurance – Statische Code- Analyse mit Fortify."—  Präsentation transkript:

1 Fabian Braun, Matrikelnummer Software Security Assurance – Statische Code- Analyse mit Fortify

2 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Ziel der Seminararbeit ▶ Erhöht statische Code-Analyse Softwaresicherheit? ▶ Inwiefern ist die HP Fortify Software dazu geeignet? 2

3 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Motivation ▶ Datenbankzugriff: ▶ Folge: Angreifer hat Zugriff auf Datenbank ▶ Einfach zu verhindern durch „prepared statement“ 3 SQL-Injection

4 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit ▶ Ausgabe einer Fehlermeldung auf einer Website: ▶ ▶ Folge: Angreifer kann JavaScript-Code in Seite einbetten ▶ alert("Hallo"); ▶  Reflected Cross-Site-Scripting ▶ Nicht einfach zu verhindern, nur durch konsequente Input-Validierung Motivation 4 Cross-Site-Scripting

5 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Motivation 5 Obwohl oftmals leicht zu verhindern: SQL- Injection Cross-Site- Scripting

6 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Quality Assurance als Gegenmittel? ▶ Maßnahmen: – Tests – Manuelle Codereviews, Tools wie „FindBugs“ – Definierte Entwicklungsprozesse  Zentrale Frage der QA: Erfüllt die Software die Anforderungen? „Reliable software does what it is supposed to do. Secure software does what it is supposed to do and nothing else“ Ivan Arce, ehemaliger technischer Geschäftsführer von “Core Security Technologies” 6 != Ist die Software sicher?

7 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Software Security Assurance ▶ Maßnahmen: – Penetrationtests – Manuelle Codereviews (gezielt auf Sicherheitslücken) – Laufzeit-Analyse / Applikations-Monitoring – Statische Code-Analyse 7

8 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Statische Code-Analyse ▶ Analyse eines Programms anhand – Source-Code – Konfigurationsdateien ▶ Statisch = keine Programmausführung 8

9 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Algorithmus Statische Code-Analyse 9 Code Abstraktes Modell TransformationAnalyse Ergebnis Algorithmus

10 | | Fabian Braun | Matrikelnummer STATISCHE CODE-ANALYSE TECHNIKEN 10

11 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Lexikalische Analyse ▶ Quellcode  Tokenfluss ▶ Tokens = Variablen, Schlüsselwörter, Operatoren… ▶ Entfernung irrelevanter Zeichen ▶ Suche nach bekannten unsicheren Funktionen 11

12 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Semantische Analyse ▶ Quellcode  Abstract Syntax Tree ▶ AST eindeutiger als Tokenfluss – Explizite Typumwandlungen – Eindeutige Operatoren ▶ Grundlage für weitergehende Transformationen ▶ Verknüpfung mit Regeln ▶ Logger die fälschlicherweise als public deklariert wurden 12

13 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Kontroll- und Datenfluss ▶Q▶Q uellcode  Kontrollflussgraph ▶S▶S uche nach unsicheren Befehlsketten ▶V▶V erknüpfung mit Entstehung und Nutzung von Daten  Datenfluss ▶S▶S uche nach kompromittierten Daten ▶T▶T aint-Analyse 13

14 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Randsystem Taint-Analyse 14 Anwender Programm

15 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Status-Automaten ▶ Unsicherer Code in Statusdiagrammen – C: malloc (x)  free (x)  free (x) – Java: ▶ Status wird in Ablaufpfaden überprüft 15

16 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Precision vs. Recall ▶ Problem bei statischer Analyse: 1.Schwachstellen, die nicht gefunden werden = „false negatives“ 2.Funde, die in Wahrheit keine Schwachstellen sind = „false positives“ ▶ Precision = Anteil der tatsächlichen Schwachstellen an den Funden ▶ Recall = Anteil der gefundenen Schwachstellen an allen Schwachstellen ▶ Größen wirken gegeneinander ▶ Passwörter im Quellcode 16 reale Sicherheit slücken Funde reale Sicherheit slücken Funde

17 | | Fabian Braun | Matrikelnummer FORTIFY 17

18 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Fortify Security Software ▶ Tools zur Verbesserung der Softwaresicherheit ▶ 2010 von HP übernommen ▶ Entwickler anerkannte Experten ▶ Von Payment Card Industry als Zertifizierungswerkzeug anerkannt 18 Static Code Analyzer Audit Workbench Program Trace Analyzer Software Security Center Real-Time Analyzer

19 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Static Code Analyzer ▶ Unterstützt 19 verschiedene Programmiersprachen und Konfigurationsdateien Java, C, C++, Objective C, PHP ▶ SCA wird über die Kommandozeile bedient ▶ Entstehende.fpr-Datei enthält Analyseergebnisse ▶ Scan kann je nach Projektgröße lange dauern 19

20 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Static Code Analyzer - Analysemodule ▶ Data Flow – SQL-Injection, Cross-Site-Scripting ▶ Control Flow – Unsichere Prüfung von Schreibrechten – Nicht geschlossene Streams ▶ Semantic – Nutzung veralteter/unsicherer Funktionen ▶ Structural – Benutzung von Threads in J2EE-Anwendungen ▶ Configuration – Zu lange Timeout-Zeiten in Webanwendungen ▶ Buffer – Bufferoverflow-Schwachstellen 20

21 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Audit Workbench 21

22 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Audit Workbench ▶ Details: – Warum Schwachstelle? – Codebeispiele in jeweiliger Sprache ▶ Recommendations – Wie beheben? – Verweise auf weitere Informationsquellen 22

23 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Analyseergebnisse ▶ Eingebaute kritische Sicherheitslücken wurden gefunden ▶ Einige false-positives ▶ Hilfreiche Aufbereitung der Funde – Details & Recommendations – Taint Analyse  Navigation von „Source to Sink“ 23

24 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Eigene Regeln ▶ Möglichkeit eigene Regeln zu formulieren  Custom Rules Editor 24

25 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit Software Security Center ▶ Server Applikation ▶ Inspizierung der Ergebnisse ▶ User und Issue- Verwaltung 25

26 | | Fabian Braun | Matrikelnummer Einleitung Statische Analyse Fortify Fazit ▶ Erhöht statische Code-Analyse Softwaresicherheit? Sicherheitsgrad der Software steigt deutlich Entwickler gewinnen Know-How Nachbearbeitung der Ergebnisse notwendig (false-positives) Keine 100%-ige Sicherheitsgarantie ▶ Inwiefern ist die HP Fortify Software dazu geeignet? Einsatz komplexer Analysealgorithmen Tiefgehende Aufbereitung der Ergebnisse Eigene Regeln Anerkanntes Zertifizierungswerkzeug von Payment Card Industry Proprietäre Software 26

27 | | Fabian Braun | Matrikelnummer RAUM FÜR FRAGEN 27

28 Worldline is a registered trademark of Atos Worldline SAS. June 2013 © 2013 Atos. Confidential information owned by Atos Worldline, to be used by the recipient only. This document, or any part of it, may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos Worldline. Worldline is a registered trademark of Atos Worldline SAS. June 2013 © 2013 Atos. Confidential information owned by Atos Worldline, to be used by the recipient only. This document, or any part of it, may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos Worldline. Danke Für weitergehende Informationen wenden Sie sich an:

29 | | Fabian Braun | Matrikelnummer Quellen ▶ Einzelnachweise sind in den Foliennotizen hinterlegt 29


Herunterladen ppt "15-01-2014 Fabian Braun, Matrikelnummer 857816 Software Security Assurance – Statische Code- Analyse mit Fortify."

Ähnliche Präsentationen


Google-Anzeigen