Dr. Ricarda Weber, Prof. Dr. Johann Schlichter

Vorlesung Security Engineering

Sicherheitskritische Anwendungen und Sichere Software

Modul IN2178

Durchführung

  • Zeit und Ort: Dienstags, 14:00 - 16:15 Uhr, im Raum MI 01.07.023 (Seminarraum. Prof. Schlichter)
  • Die Vorlesung beginnt am Dienstag, den 15. April 2008
  • Voraussetzungen: Modul IN2100 von Vorteil
  • Credits: 4 ECTS (3 SWS)
  • Die Prüfung wird als mündliche Prüfung durchgeführt. Inhalt der Prüfung ist der gesamte Stoff der Vorlesung.
  • Die Vorlesungsfolien werden hier bereit gestellt (Login und Passwort in der Vorlesung).

Prüfung

Bitte melden Sie sich unbedingt vorher bei mir direkt, wenn Sie von mir geprüft werden wollen. Die Prüfungsdauer ist 20 Minuten.

Vorlesungstermine

Die Vorlesung findet statt an den folgenden Terminen (jeweils Dienstags, 14:15-16:30 in Raum 01.07.023):
15.4., 22.4., 29.4., 6.5., 20.5., 27.5., 3.6., 10.6., 17.6., 24.6., 1.7., 8.7. und 15.7. (Prüfung).
Am Pfingstdienstag, den 13.5. entfällt die Veranstaltung.

27. Mai 2008: Dr. David von Oheimb (Siemens AG), Einsatz formaler Methoden und Evaluation gemäß Common Criteria. Mit Live Model Checking des SW-Verteil-Systems der Fallstudie

Exkursion

Am Dienstag, den 1. Juli 2008,  findet von 10:30  bis 16:30 eine Exkursion zu Siemens CT (München Perlach) statt.

Gegenstand der Vorlesung

Eine sichere IT-Anwendung erfordert sowohl die Anwesenheit erwünschter Sicherheitsfunktionalität (Beispiel: Zugriffskontrolle), als auch die Abwesenheit unerwünschter Sicherheitsmängel (Beispiel: verwundbare Software). Wir besprechen grundlegende Begriffe (Beispiel: "Security" versus "Safety"), sowie Sicherheitsziele.

Wir lernen, unterstützt von den Dokumenten des BSI, den Entstehungsprozeß sicherheitskritischer Anwendungen kennen. Wir beginnen mit einer Analyse der Sicherheitsanforderungen, gefolgt von einer Risiko- und Bedrohungsanalyse, die auch wirtschaftliche Aspekte einschließt. Wir lernen, wie Sicherheitsrichtlinien definiert werden und wie sie sich in einer Sicherheitsarchitektur widerspiegeln. Wir betrachten grundlegende Sicherheitsmechanismen sowie klassische Zugriffs- und Informationsfluß-Kontrollmodelle. Wir adressieren Methoden zur Validierung und Bewertung sicherer Anwendungen (Beispiel: "Penetration Tests", formale Methoden, "Common Criteria"-Evaluierung). Wir schließen den ersten Teil mit einem Überblick über IT-Sicherheitsmanagement- Konzepte und "Intrusion-Detection and -Prevention"-Werkzeuge.

Im zweiten Teil der Vorlesung befassen wir uns mit sicherer Software-Entwicklung. Wir sprechen die grundlegenden Angriffs-Vektoren von Hackern, Crackern und Schadsoftware-Autoren an. Wir frischen unsere Assembler- und Speicherverwaltungs-Kenntnisse auf und lernen Shellcode kennen. Wir sehen, wie unsichere Programmierung Verwundbarkeiten eröffnet (Beispiele: "Buffer- und Integer-Overflows", "Script Injection" und "Cross-Site-Scripting"). Wir lernen, wie man systematisch nach solchen Schwachstellen sucht (Beispiele: Werkzeuge, "Social Engineering", "Fuzzing" und "Debugging"). Wir untersuchen den professionellen Umgang mit Sicherheitsvorfällen, Patch-Prozesse und die Arbeit von "Computer Emergency Response Teams" (CERTs). Wir adressieren Prinzipien sicheren Software-Entwurfs und sicherer Programmierung, sowie die entsprechenden Testmethoden (Beispiele: Simulation feindlicher Umgebungen, Seitenkanalattacken). Wir betrachten den "Security Development Cycle" von Microsoft.

Inhalt

  1. Einführung
    • Motivation, Begriffe, Sicherheitsziele
  2. Entwicklung sicherheitskritischer Anwendungen
    • Entwicklungsprozeß, Struktur- und Sicherheits-Bedarfsanalyse
    • Bedrohungs- & Risiko-Analyse, Fallstudie
    • Sicherheitsstrategie, -architektur & -grundfunktionen
    • Sicherheitsmodelle und konkrete Konzepte
    • Validierung, Bewertung & Betrieb
    • IT-Sicherheitsmanagement
  3. Entwicklung sicherer Software
    • Grundlagen von Angriffen (Hacking) & unsichere Programmierung
    • Entdeckung von Verwundbarkeiten & Entschärfungsmaßnahmen
    • Prinzipien sicheren SW-Designs & sicherer Programmierung
    • Testmethoden für sichere Software
    • Der Microsoft Security Development Cycle
  4. Exkursion zu Siemens CT mit Laborbesuchen & Demos
  5. Abschluß
    • Zusammenfassung & Wrap-Up
    • Prüfungsvorbereitung

Die Vorlesungsfolien werden hier jeweils nach Möglichkeit zeitnah zur Vorlesung bereit gestellt.
Login und Passwort dazu werden in der Vorlesung bekannt gegeben.

Literatur

  • Claudia Eckert: IT-Sicherheit, Oldenbourg, 2007
  • Ross Anderson: Security Engineering, Wiley & Sons, 2001 (Neuauflage: April 2008!)
  • Jack Koziol et.al.: The Shellcoder's Handbook, Wiley & Sons, 2007
  • Michael Howard et.al.: The Security Development Lifecycle, Microsoft Press, 2006

(weitere Literaturhinweise finden sich in den Folien)

Nützliche Links:

Ansprechpartner: