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

Slides:



Advertisements
Ähnliche Präsentationen
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

IT-Inventarverwaltung
Präsentation des Abschlussprojektes Rudolf Berger
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Java: Objektorientierte Programmierung
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
CIDOC-CRM Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung AM 2 Dozent: Prof. Dr. Manfred Thaller Referent: Nelson Marambio.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Explizite und editierbare Metainformationen für Software Muster.
Reverse Engineering K2 1 Ziele Heute Nachlese Volltextsuche Dokumentation in Quelltext einbetten JavaDoc Vorbereitung für Compileransatz.
Einführung MySQL mit PHP
Templates. © beas2009 / Page 2 This documentation and training is provided to you by beas group AG. The documents are neither approved nor in any way.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Qualifizierte Elektronische Signatur
Technische Umsetzung von Transactional Promotion
7th German CDISC User Group Basel, 11. März 2010 Willkommen zum Define.xml Workshop.
Weitere Fotos?
Präsentation von Sonja Pathe
Grundlagen: Client-Server-Modell
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Aktuelle Pressefolien Schiff THB
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a Einführung in Reguläre Ausdrücke.
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Algorithmen und Datenstrukturen SS 2005
PHP: Operatoren und Kontrollstrukturen
xRM1 Pilot Implementierung
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
…und nun aber zum heutigen Vortrag Die Herausforderung: Krisen und andere Verwerfungen Die Herangehensweise: Kosten senken & Produktivität erhöhen Das.
Sprachneuerungen des .NET Frameworks 3.5
Einfaches Erstellen von Präsentationen aus Einzelfolien heraus.
1 Bauhaus-Universität Weimar ArchitekturProgrammierung Generative Entwurfsmethoden Processing Grundlagen Professur Informatik in der Architektur.
Quelle: xkcd.com SQL Injections.
Datenbanken im Web 1.
Weg mit Fehlern, die kein Entwickler versteht …
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
Geschichte - Entstehung - Was ist PHP? Einordnung - Allgemeines
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
(Syntax, Strings/Zahlen, Variablen, Arrays)
Arbeiten in einem agilen Team mit VS & TFS 11
? What is Open PS? SAP Open PS based on EPS 4.0
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
Accessible content is available upon request. Meine Daten – Deine Daten Dennis Hobmaier, Sr. TSP, MCSE
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
Mönchengladbach Tchibo Filial-Manager Erste Ideen.
Rechen- und Kommunikationszentrum (RZ) Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste Jan-Frederic Janssen.
J.GehlenDept. of Medical Informatics 1 Department of Medical Informatics, Uniklinik RWTH Aachen, Germany Sichere Mobile Datenerfassung.
© 2012 IBM Corporation © 2013 IBM Corporation IBM Storage Germany Community Josef Weingand Infos / Find me on:
Atos, Atos and fish symbol, Atos Origin and fish symbol, Atos Consulting, and the fish itself are registered trademarks of Atos Origin SA. August 2006.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Technische Universität München Institute of Aeronautical Engineering Prof. Dr.-Ing. Horst Baier Presentation of the Institute (December 2009)
1Crypto AG / P_M_HC-2650-Course-Notes-d_0833_rd.PPT Training and Education HC-2650 Kursunterlagen.
(Name of presenter) (Short title of presentation).
Vorbereitung einer Anforderungsanalyse für ein GUI im Kreditkarten- Processing-Umfeld Yanik Dreiling MatrNr
Monitoring System in the federal state of Saxony-Anhalt, Germany Meeting on monitoring systems , May 2012, Prague Christine Makiol,
29. Magento Stammtisch Thema: IT-Sicherheit Gregor Bonney
Azure Active Directory und Azure Active Directory Domain Services
Lync and Learn mit Manfred Helber Thema heute:
• Projektdialog paralleler Plagiatschutz- projekte
Workshop Adobe® Formulare für
Templates
Thema Kraftfeld-Analyse
Enhancement Request Enable Program and suppressed faetures in UDF Pro/Program und unterdrückte KEs in UDF verwendbar machen Pro/Engineer Part - Modelling.
XINFO HORIZONT Überblick zu XINFO Software for Datacenters
eSciDoc als Plattform für die Wissenschaft Anwendungen und Szenarien
Workshop Adobe® Formulare für
 Präsentation transkript:

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

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

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

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

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

| | 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?

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

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

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

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

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

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

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

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

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

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

| | Fabian Braun | Matrikelnummer FORTIFY 17

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

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

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

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

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

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

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

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

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

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

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 | Matrikelnummer Quellen ▶ Einzelnachweise sind in den Foliennotizen hinterlegt 29