SE2006 Projekt SecFlow – Automatische Ermittlung sicherheitskritischer Datenflüsse in Quellcode Dr. Holger Peine Fraunhofer IESE, Kaiserslautern.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Modellbasierte Software-Entwicklung eingebetteter Systeme
Die 20 beliebtesten Versäumnisse hinsichtlich Sicherheit in der Softwareentwicklung EUROSEC GmbH Chiffriertechnik & Sicherheit Tel: / 60850,
MySQL.
Sortieren mit Binären Bäumen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
FH-Hof SQLJ Richard Göbel. FH-Hof SQLJ - Idee Erweiterung von Java um SQL Die Verwendung von SQL-Anweisungen innerhalb einer Programmiersprache wird vereinfacht.
Java: Grundlagen der Objektorientierung
3.+4. Übungsblatt Abstraktion, Modultypen und OO Erweiterung des Entwurfs Benutzbarkeitsbeziehungen 11. Mai 2006 Dipl.-Inform. Christian Fuß.
Einführung in Visual C++
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Cursor-Konzept u Zugriff auf Mengen von Ergebnistupeln u In SQLJ Iteratoren u Vergleichbar.
Internetzugang zur Prüfungsverwaltung Dr. Wilfried Jauer, HIS
Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Unterprogramme in JAVA
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Structured Query Language
Eike Schallehn, Martin Endig
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
Robuste Programme durch Ausnahmebehandlung
Trojanische Pferde © Arnolds, Kiebis, Bleser, Nürenberg.
Objektorientierte (OO) Programmierung
Kurzpräsentation zum Kopieren und Anwenden ab sofort Eric Hoffmann Head of European Production Institute Ihr Erfolg – unser Ziel. Prozess-Management.
Rechen- und Kommunikationszentrum (RZ) Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste Jan-Frederic Janssen.
© DSA-Daten- und Systemtechnik GmbH, Aachen DSA-GmbH_PR_ © DSA - Daten- und Systemtechnik GmbH, Aachen PRODIS.Control: Technologischer Durchstich.
Dirk Schuirmann W+M AG Theorie in der Praxis 1. CPGJDBC Schreiben aus dem CICS Lesen aus dem Batch 2. Programmdokumentation 3. Preismodell bei CA.
Quick Response Codes Quick Response Codes Schlüsseltechnologien der Informationsgesellschaft Präsentation: Christine Hackenbuchner
Case Management Ein Lösungsvorschlag für die Unterstützung des Case Managements in der Betreuung und Pflege.
Einführung. Ziel der Veranstaltung  Vermittlung von Grundkenntnissen in C++  Solide Basis für anschließende Weiterentwicklung  Fähigkeit, kleine Programme.
Statistische Auswertung und Darstellungsmöglichkeiten von Messdaten Seminarvortrag von Christian Gorgels im Studiengang Scientific Programming.
1 - axmann geoinformation gmbh Schema Mapper (Migration Suite)
Die Programmiersprache Ruby Seminarvortrag von Lia Schulze Dephoff 1.
DatenschutzPC-VirenSpywareSchädlingeAbwehr
S INGLETON P ATTERN IN M ATLAB By Giuseppe
Tragwerksplanung Seite | 1  Der Gebäudekomplex „LKH Villach Neustrukturierung Baustufe 1“ besteht aus drei Bereichen die strukturell (statisch) und im.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
LIBRARY Private Edition Bitte beachten Sie, dass wir Ihnen aus Gründen der Präsentationstechnik nur einen Ausschnitt aus der Funktionalität unserer Bibliothekssoftware.
Schreibwerkstatt. Anfrage Sehr geehrte Damen und Herren, für unsere Anlage benötigen wir ein Molekularsieb mit der Oberfläche von 600 m2/g. Deshalb bitten.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
SAP und Oracle: Was das Internet über Anwender verrät Jochen Hein Senior Architekt SAP R/3 Basis SerCon GmbH, Mainz
Projekt mobile Zeiterfassung für DATEV Anwalt Pro AdvoTools GmbH …make good things even better.
Eine Präsentation von Johann Härtig, Max Hellmuth, Tim Uhlig, Tobias Mäde Der Computerwurm.
Die Magische Wand – Smartphone & Apps
Nudging für eine bessere IT-Sicherheit
Testomat® 808 Produktpräsentation.
Modul 124, Woche 2 R. Zuber, 2015.
Programm Anfertigung eines kurzen Programmes (ca. 5 Seiten), wo eine eigenständige Bearbeitung und Analyse eines Luft- oder Satellitenbildes bzw. Orthofotos.
Hello World! Javakurs 2013 Arne Kappen
KI in Computerspielen Tactical and Strategic AI
Referenzen In c kennen wir gewöhnliche Variablen und Pointer.
Bei dieser Präsentation wird sicher eine Diskussion mit dem Publikum entstehen, die zu Aktionsschritten führt. Verwenden Sie PowerPoint, um diese Aktionsschritte.
Geschäftspräsentation FXEA
Merkwürdiges aus der Welt
Merkwürdiges aus der Welt
Routing … … die Suche nach dem Weg..
Projekte und RZ-Betrieb im Global Sourcing
Einführung in die Programmierung
Geschäftsplanpräsentation
Studienphase 2.
1. Die rekursive Datenstruktur Liste 1
Präsentation von Darleen und Michèle
COCOMO-Methode & FPA-Methode
Nutzung und Modellierung von Datenbanken
Einführung in die Programmierung
DATA INTELLIGENCE REPORTING © Wolfgang Kress BI Consultant.
Schmock Mutter nicht ausreichend versorgt  fast verhungert Mutter bei Geburt verstorben Schmock mit Flasche aufgezogen.
 Präsentation transkript:

SE2006 Projekt SecFlow – Automatische Ermittlung sicherheitskritischer Datenflüsse in Quellcode Dr. Holger Peine Fraunhofer IESE, Kaiserslautern

Folie 2/9 SE2006 Statuskonferenz Leipzig, Dr. Holger Peine Projekt SecFlow: Sicherheitskritische Datenflüsse in Quelltext Software-Security Viren & Würmer: Sasser, Blaster, SQL-Slammer,... Der Großteil der heutigen Sicherheitsschwachstellen in IT-Systemen beruht letztlich auf Programmierfehlern -Hauptfehler: Ungenügende Eingabedatenprüfung Firewalls, Virenscanner etc. versuchen nur, vorhandene Löcher in der Software zu verdecken -unvollkommen; ständiger „Rüstungswettlauf“ Besser: Sicherheitsschwachstellen schon während der Software-Entwicklung vermeiden -bessere Entwicklungsmethoden -Werkzeuge zur autom. Schwachstellenerkennung „We wouldn‘t need so much network security if we didn‘t have such bad software security“ - Bruce Schneier (wahrscheinlich bekanntester IT-Sicherheitsexperte der Welt)

Folie 3/9 SE2006 Statuskonferenz Leipzig, Dr. Holger Peine Projekt SecFlow: Sicherheitskritische Datenflüsse in Quelltext Beispiel einer Sicherheitslücke durch fehlende Datenvalidierung Ein Java-Servlet zum Eintragen von Benutzer-Eingaben in eine Datenbank könnte folgenden Quelltext enthalten: String = req.getParameter( “ " ); String company = req.getParameter( “company" ); stmt.execute( "INSERT INTO customers ( , company ) VALUES ( '" + + "', '" + company + “');" ); Alles bestens bei -Argumenten wie : INSERT... VALUES( ' ', ' Mike Inc. ' ) Was passiert, wenn ein Angreifer folgendes als angibt: x ', ' x ' ); DELETE FROM customers... –- INSERT... VALUES( ' x ', ' x ' ); DELETE FROM.. -- ' );... löscht Kundeneinträge aus der Datenbank 

Folie 4/9 SE2006 Statuskonferenz Leipzig, Dr. Holger Peine Projekt SecFlow: Sicherheitskritische Datenflüsse in Quelltext Ziel: Unvalidierte Datenflüsse erkennen Größte Klasse von Software-Sicherheitsschwachstellen -SQL Injection, Cross-Site-Scripting, Command Injection,... Finde alle Daten, die... -aus nicht vertrauenswürdiger Quelle stammen (z.B. aus dem Internet) -ohne Prüfung durch die Variablen des Programms fließen (auch in Form von Verarbeitung durch Funktionen etc.) -an ein verwundbares externes System weitergereicht werden (z.B. eine Datenbank, Shell,...) Für verschiedene Quellsprachen: Java, C#,...(?) p=req.getParameter(); query=buildQuery(p); stmt.execute(query); nur heuristisch erkennbar schwierig, aber machbar „nur“ Fleißarbeit

Folie 5/9 SE2006 Statuskonferenz Leipzig, Dr. Holger Peine Projekt SecFlow: Sicherheitskritische Datenflüsse in Quelltext Werkzeug-Architektur Syntax parsen, Kontrollflussgraph generieren -quellsprachenabhängig -für verschiedene Sprachen -bis zum Zwischencode-Niveau (z.B. while-Programme mit SSA-Eigenschaft) Analyse -datenfluss- u. kontrollfluss-spezifisch (konservativ) -auf einer Inferenzmaschine ausgeführt Erkennung von Datenvalidierungen durch -Heuristiken zur Erkennung lokaler Struktur-Muster -musterunabhängige Analyse (globale Eigensch.) Validierungs- Muster ? C#Java FLOW

Folie 6/9 SE2006 Statuskonferenz Leipzig, Dr. Holger Peine Projekt SecFlow: Sicherheitskritische Datenflüsse in Quelltext Programmbeschreibungssprache FLOW deklarative, logische Sprache (noch zu definieren) relationale Repräsentation des Kontrollflussgraphen und der Datenflussabhängigkeiten, z.B. -call(f, g, Core.java:47) assign(x, v, Core.java:112) enthält auch Informationen über -statischen Prozeduraufrufstack -Daten-Constraints aus if/while -Bedingungen schwierig zu erzeugen, aber gut zu analysieren, z.B. -redefinition(X, P, C) :- call(_, P, C2), isDefined(X, C2), assign(X, _, C). FLOW Validierungs- Muster ? C#Java

Folie 7/9 SE2006 Statuskonferenz Leipzig, Dr. Holger Peine Projekt SecFlow: Sicherheitskritische Datenflüsse in Quelltext Heuristische Analyse der Programminformationen Strukturelle Heuristiken -Muster im Daten-/Kontrollfluss als Indizien für Sicherheitsschwachstellen bzw. Datenvalidierungen  if (x > MAX) {return OUT_OF_RANGE;}  if (!someTest(x)) { x = someTransformation(x);} -Muster werden in FLOW formuliert Heuristiken mehr oder weniger spezifisch  allgemein  plattformspezifisch (z.B. J2EE,.NET)  anwendungsspezifisch Information aus vielen Heuristiken kombinieren ? C#Java FLOW Validierungs- Muster

Folie 8/9 SE2006 Statuskonferenz Leipzig, Dr. Holger Peine Projekt SecFlow: Sicherheitskritische Datenflüsse in Quelltext Rahmendaten des Projekts SecFlow Dauer: 2,5 Jahre (06/2006 bis 11/2008) Budget: ca K€ / 14 Personenjahre Gesamtaufwand Partner: -CC GmbH (Wiesbaden)  Implementierung, Koordinator -Fraunhofer IESE (Kaiserslautern)  Konzepte (Architektur, Konfig.-Sprache, Heuristiken), Java/J2EE-Arbeiten -ICT AG (Trier)  Java / J2EE-Arbeiten, empirische Erprobung -SHE AG (Ludwigshafen)  C# /.NET-Arbeiten, empirische Erprobung p=req.getParameter(); query=buildQuery(p); stmt.execute(query);

Folie 9/9 SE2006 Statuskonferenz Leipzig, Dr. Holger Peine Projekt SecFlow: Sicherheitskritische Datenflüsse in Quelltext Angestrebte Fähigkeiten des SecFlow-Werkzeugs Finden eines erheblichen Teils (50%?) der unsicheren Datenflüsse in Java, JSP, J2EE, C#, ASP.NET,.NET Programmen -Darunter möglichst selten (<50%) „falscher Alarm“ Grafische Ausgabe als Pfad durch den Quelltext Konfigurierbar für neue Programmierplattformen und anwendungsspezifische Konventionen Vorkonfiguriert auch mit nur oberflächlichem Security- Wissen produktiv nutzbar Klare Schnittstelle zur Erweiterung um weitere Quellsprachen Ergebnis: Software mit weniger Sicherheitslücken zu geringeren Kosten