Vorlesung Entwicklung sicherer Software (Sommersemester 2007)

Diese Vorlesung vermittelt Studenten Grundlagen der Entwicklung sicherer Software aus drei unterschiedlichen Sichten. Zum einem wird die Sicht des Secure Software Engineering vermittelt, welches Methoden, Verfahren und Prozesse für die Entwicklung sicherer Software Systeme zur Verfügung stellt. Die zweite Sicht vermittelt den Studenten die Sichtweise des Software Managements, welches für die Erstellung sicherer Software verantwortlich ist. Die dritte Sicht wird von dem Standpunkt des Software Entwicklers aus betrachtet, der für die Implementierung sicheren Codes zuständig ist. Kenntnisse aus den Vorlesungen zur Softwaretechnik und Software-Qualität werden um Sicherheitsaspekte ergänzt. Die Modellierung sicherer Softwaresysteme und die Kenntnisvermittlung von Angriffsmethodiken und sicherer Programmierung sind wesentlicher Anteil der Veranstaltung. Praktische Beispiele vertiefen das Wissen.

 

Die Vorlesung wird an der Universität Hannover und vorraussichtlich auch an der FH Hannover angeboten. Dozent ist Univ.-Doz. Dr. Thorsten Schneider.

Stoffplan

Einführung in das Thema “Secure Software Engineering”

- Zahlen und Fakten
- Begriffsabgrenzungen (Hacker vs. Cracker, Security vs. Safety)
- Problemstellungen
- Klassifikation von Angriffsverfahren
- Klassifikation von Schutzverfahren

Terminologie im Secure Software Engineering

- Standards
- Normen
- Begrifflichkeiten der Community und der Szene
- Abgrenzungen zu den anderen IT-Security Fachgebieten

Modelle im Secure Software Engineering

- Vorgehensmodelle für die IT-Sicherheit
- The Trustworthy Security Development Lifecycle
- CLASP

Management und Secure Software Engineering

- Tätigkeiten und Verantwortung des Managements
- Secure Software Auditing
- Kosten-, Aufwand- und Risikoanalysen (Security Risk Management)
- Tiger Teams
- Schwachstellen-Datenbanken

Verfahren im Secure Software Engineering

- Security Requirements
- Richtlinien für die Berichterstattung
- Abuse Cases und Misuse Cases
- Security Modeling, sicheres Design und sichere Architektur
- Threat Modeling und Attack Trees
- Security Testing
- Security Auditing

Methoden im Secure Software Engineering

- Penetrationstests auf Applikationsebene
- Penerationstests auf Web-Ebene
- Fuzzing
- Statische und Dynamische Code-Analyse
- Reverse Code Engineering
- Testen auf Sicherheitsschwachstellen

Entwicklung sicherer binärer Applikationen

- Buffer Overflows
- Heap Overflows
- Format String Schwachstellen
- Exploitation und Shellcodes

Entwicklung sicherer Web-Applikationen

- PHP-Schwachstellen
- SQL Injection

Erweiterte Schutzverfahren

- Prävention von Reverse Code Engineering Analysen
- Elimination symbolischer Informationen
- Grundlagen binärer Dateien (Dateiformate: PE-Files, ELF-Files)
- Virale und maligne Methoden als Schutzverfahren
- Code Encryption und Self-Encryption
- Anti-Disassembler Methoden
- Anti-Debugger Methoden
- Code Obfuskation
- Kontrollfluss Transformationen, Anti-Decompiler Methoden
- Datentransformationen
- Packer, Shrinker und Crypter
- Binary Watermarking

Terminplan Uni Hannover 15:30 - 18:30

Terminplan FH Hannover 14:30 - 18:30

Literaturempfehlungen