Modellbasierte Softwaretechniken für sichere Systeme
Vorlesung (2 SWS) und Übung (2 SWS)
Beschreibung
Entwicklung und Pflege vertrauenswürdiger, sicherheitskritischer Systeme
sind große Herausforderungen. Es werden viele softwareintensive Systeme entworfen, realisiert und eingesetzt, die
gravierende Sicherheitslücken aufweisen. Wir wissen das aus eigener Erfahrung und aus Schlagzeilen über spektakuläres
Fehlverhalten von Systemen bzw. über erfolgreiche Angriffe auf sie. Die Gründe dafür sind vielfältig. Manchmal fehlt
den Entwicklern das notwendige Sicherheitsbewußtsein, oft fehlen die notwendigen Kenntnisse über die
Entwicklungsprozesse, -methoden, -verfahren und -werkzeuge oder sie werden nicht eingesetzt, weil man sich den
vermeintlich zu großen Zeit- und Kostenaufwand beim derzeitigen Konkurrenzdruck nicht leisten zu können glaubt.
Beim Engineering oder Reengineering sicherheitskritischer Softwaresysteme stellen sich u.a. folgende Fragen:
- Welche Methoden gibt es für ein umfassendes Risikomanagement, mit denen Experten aus den Geschäftsprozessen und
Arbeitsabläufen eine vollständige Analyse der Sicherheitsrisiken durchführen und Vorschläge zu ihrer angemessenen
Behandlung ableiten können?
- Welche Methoden gibt es für das Engineering bzw. Reengineering sicherheitskritischer Systeme, für die Auswahl
eines geeigneten Entwicklungsprozesses und geeigneter Werkzeuge sowie zur Qualitätssicherung?
- Welche Werkzeuge gibt es, die z.B. die Geschäftsprozessmodelle, UML-Systemspezifikationen, Software-Quelltexte
und Konfigurationsdateien automatisch auf Sicherheit analysieren können?
- Kann man z.B. mit UML oder CASE-Werkzeugen wie AutoFocus Sicherheitsanforderungen einfach und intuitiv
spezifizieren? Und gibt es Werkzeuge für Simulation, Konsistenzprüfung, Codegenerierung, Verifikation und Test der
Sicherheitsaspekte?
- Sind die erstellten Modelle als Dokumentation für die Zertifizierung nach relevanten Standards brauchbar?
Zielsetzung:
Die Vorlesung gibt Antworten auf diese Fragen. Die Teilnehmenden werden die Anforderungen an sicherheitskritische
Systeme und die Bedrohungsarten verstehen. Sie erhalten einen Überblick über die vorhandenen Techniken zur Vermeidung
von Sicherheitsrisiken und Abwehr von Bedrohungen. Sie werden die Besonderheiten beim Management sicherheitsrelevanter
Softwareprojekte, den Nutzen von Sicherheitsaufwendungen und die einschlägigen Normen und Verordnungen kennen.
Schließlich werden sie sich intensiv mit modellbasierten Techniken zur Entwicklung sicherheitskritischer Systeme sowie
zur Analyse und zum Reengineering existierender Software beschäftigt haben, die damit gewonnenen Praxiserfahrungen
einschätzen können, und einen Überblick über vorhandene Werkzeuge und deren Leistungsfähigkeit haben.
Im Anschluss an die Vorlesung kann im März ein darauf aufbauendes
Seminar
besucht werden.
Inhalt
Beispiele häufiger Sicherheitsprobleme
Sicherheitsgrundlagen
- Sicherheitsanforderungen (Security)
- Sicherheitsfunktionen (Authentifizierung u.a.)
- Sicherheitskonzepte (Autorisierung u.a.)
Sicherheitsrisiken und Bedrohungen
Abwehrmechanismen
- Kryptographie, Signaturen
- Zutrittskontrolle, Berechtigungen
- Netzwerksicherheit, mobile Systeme
- Java und C Sicherheit
- Smart Cards
Richtlinien und Normen für sichere Systeme
- Common Criteria (ISO 15408)
Modellbasierte Techniken zur Entwicklung sicherer Systeme sowie zu Sicherheits-Analyse existierender
Software
- Vorgehensmodelle für die Entwicklung sicherer Systeme
- Sicherheitskritische Geschäftsprozesse mit UML
- Architektur-Sicherheitsanalyse: Secure Model-Driven Architecture
- UML-Erweiterungen (UMLsec)
- Engineering-Prinzipien für sichere Systeme
- Sicherheits-Patterns und -Frameworks
- Sicherheits-Analyse, -Validierung und -Verifikation mit UML und AutoFocus
- Sicherheits-Code-Analyse
- Automatisiertes Sicherheitstesten
- Management sicherheitskritischer Berechtigungen
Werkzeuge für die Sicherheitsanalyse
Anwendungsbeispiele aus industriellen Projekten
- Anwendungsdomänen: Banken, Versicherungen, e-Government, e-Commerce, e-Business
- Bezahlsysteme auf Basis von Smart Cards
- Biometrische Authentifikationssysteme
Termine
Vorlesungen
- Montags, 14.00-16.00, GB IV Raum 322
Übung
- Montags, 12.00-14.00 im Raum 322, Jan Jürjens und Martín Ochoa
Sonstiges
- Zu verlegende Termine (wg. Dienstreisen): 16.11.2009: vorgezogen auf Mo 02.11.: 12.00-14.00 Uhr. 14.12.2009: TBD.
01.02.2010: TBD
- Gastvortragender: 23.11.2009, 14:15, GB 5, Raum 420 (Kolloquium): Prof. Dr. Peter Herrmann (Norges
teknisk-naturvitenskapelige universitet, Trondheim - Institutt for telematikk): Kollaborationsbasierte Entwicklung
verteilter Systeme
- Vorlesungsfreie Termine: 21./28.12.2009
Vorlesung
Folien
- Einführung (pdf)
- Netzwerksicherheit und Kryptographie (pdf)
- Modell-basierte Sicherheit mit UML (pdf)
- Secure Architectures (pdf)
- Kryptographische Protokolle (pdf) (zu A. 10a: Folie 6; zu A. 11: Axiome)
- Elektronische Geldbörsen (pdf)
- Biometrische Authentisierung (pdf)
- Models vs. Code (pdf)
Einordnung
Diplom
Schwerpunkte 1 (Software-Konstruktion) und 5 (Sicherheit und Verifikation)
Master Informatik / Angewandte Informatik
Modul-Beschreibung
Literatur
Feedback
Wir haben großes Interesse an veranstaltungsbegleitendem Feedback, um auf
Änderungswünsche gleich (und nicht erst im nächsten Semester) eingehen zu können. Bitte äußern Sie entsprechende
Hinweise im Anschluss an eine Vorlesung, per email, oder auch über das
anonyme Kontaktformular des Lehrstuhls (im letzteren Fall bitte die
Veranstaltung erwähnen, auf die sich der Hinweis bezieht). Vielen Dank!
Kontakt
Zum Profil von Prof. Dr. Jan
Jürjens