Dr. Ricarda Weber

Vorlesung Security Engineering

Sicherheitskritische Anwendungen und Sichere Software

Modul IN2178

Durchführung

  • Zeit und Ort: Donnerstags, 14:00 - 16:15 Uhr, im Raum MI 01.07.023 (Seminarraum. Prof. Schlichter)
  • Die Vorlesung beginnt am Donnerstag, den 23. April 2009
  • 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

Der Termin für die verpflichtende Prüfungsvoranmeldung war am Donnerstag, den 7. Mai. Es liegen 16 Voranmeldungen vor. Nur diese vorangemeldeten und bestätigten Prüflinge werden am Ende der Vorlesung zur Prüfung akzeptiert.

Die Prüfung ist mündlich, die Prüfungsdauer ist  20 Minuten. Die Prüfungstermine sind der 23. und der 30. Juli 2009.

Vorlesungstermine

Die Vorlesung findet statt an den folgenden Terminen (jeweils Donnerstags, 14:00-16:15 in Raum 01.07.023):
23.4., 30.4., 7.5., 14.5., 28.5., 4.6., 18.6., 25.6., 2.7., 9.7. (Exkursion) und 16.7. Prüfung ist am 23.7. und 30.7.

4. Juni 2009: Dr. David von Oheimb (Siemens AG, CT IC 3), Einsatz formaler Methoden und Evaluation gemäß Common Criteria. Mit Live Model Checking des SW-Verteil-Systems der Fallstudie.

2. Juli 2009: Barbara Fichtinger (Siemens AG, CT IC CERT), Secure Coding Guidelines.

Exkursion

Am Donnerstag, den 9. Juli 2009,  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
    • Validierung, Bewertung & Betrieb
    • IT-Sicherheitsmanagement
  3. Entwicklung sicherer Software
    • Grundlagen von Angriffen (Hacking) & unsichere Programmierung
    • Prinzipien sicherer Programmierung
    • 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: