Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Hannah Busch Geändert vor über 8 Jahren
1
15-01-2014 Fabian Braun, Matrikelnummer 857816 Software Security Assurance – Statische Code- Analyse mit Fortify
2
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Ziel der Seminararbeit ▶ Erhöht statische Code-Analyse Softwaresicherheit? ▶ Inwiefern ist die HP Fortify Software dazu geeignet? 2
3
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Motivation ▶ Datenbankzugriff: ▶ Folge: Angreifer hat Zugriff auf Datenbank ▶ Einfach zu verhindern durch „prepared statement“ 3 SQL-Injection
4
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit ▶ Ausgabe einer Fehlermeldung auf einer Website: ▶ http://trustedserver/index.php?errormsg=Ein+Fehler+ist+passiert ▶ Folge: Angreifer kann JavaScript-Code in Seite einbetten ▶ http://trustedserver/index.php?errormsg= alert("Hallo"); ▶ Reflected Cross-Site-Scripting ▶ Nicht einfach zu verhindern, nur durch konsequente Input-Validierung Motivation 4 Cross-Site-Scripting
5
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Motivation 5 Obwohl oftmals leicht zu verhindern: SQL- Injection Cross-Site- Scripting
6
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Statische Code-Analyse ▶ Analyse eines Programms anhand – Source-Code – Konfigurationsdateien ▶ Statisch = keine Programmausführung 8
9
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Algorithmus Statische Code-Analyse 9 Code Abstraktes Modell TransformationAnalyse Ergebnis Algorithmus
10
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 STATISCHE CODE-ANALYSE TECHNIKEN 10
11
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Randsystem Taint-Analyse 14 Anwender Programm
15
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 FORTIFY 17
18
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Audit Workbench 21
22
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Audit Workbench ▶ Details: – Warum Schwachstelle? – Codebeispiele in jeweiliger Sprache ▶ Recommendations – Wie beheben? – Verweise auf weitere Informationsquellen 22
23
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Eigene Regeln ▶ Möglichkeit eigene Regeln zu formulieren Custom Rules Editor 24
25
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Einleitung Statische Analyse Fortify Fazit Software Security Center ▶ Server Applikation ▶ Inspizierung der Ergebnisse ▶ User und Issue- Verwaltung 25
26
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 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
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 RAUM FÜR FRAGEN 27
28
15-01-2014 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: fabian.braun@worldline.com
29
| 15-01-2014 | Fabian Braun | Matrikelnummer 857816 Quellen ▶ Einzelnachweise sind in den Foliennotizen hinterlegt 29
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.