IT-Sicherheit heute - aktuelle Angriffe, Bedrohungen

Secorvo Security Consulting GmbH
„Secure Coding C/C++“
Programm *
Erster Tag
9:00
Einführung in die Veranstaltung
Christoph Weinmann, Secorvo
9:30
Einführung - Sicheres programmieren in C/C++
§ Software Engineering vs. Security Engineering
§ Typische Sicherheitsschwachstellen durch Programmierfehler
§ Taxonomie der sicherheitsrelevanten Programmierfehler
§ Popularität von C/C++
§ Ursache für Sicherheitsprobleme in C
Dr. Yun Ding, Secorvo
10:30
Pause
10:50
Strings (Teil I)
§ Datentyp String in C und C++
§ String Null-Termination, strlen() vs. sizeof()
§ Typische Programmierfehler mit Strings: Improperly-Bounded Strings, Offby-One Fehler, Null-Termination Fehler, String Truncation
§ Prozess- und Speicherorganisation, Stack Management, Stack Frames
§ Stack Buffer Overflow: Ursache und Angriffsmöglichkeiten
Dr. Yun Ding, Secorvo
12:00
Fragen und Antworten
12:15
Mittagspause
13:30
Strings (Teil II)
§ Mitigation gegen Stack Buffer Overflow: Vorsorgen vor Erkennen
§ Stack Buffer Overflow erkennen mit Compiler-Optionen
§ Stack Buffer Overflow erkennen und verhindern mit Stack Canaries
§ Mitigation durch Address Space Layout Randomization (ASLR)
§ Vorsorgen durch sichere String-Behandlung
Dr. Yun Ding, Secorvo
15:30
Pause
15:50
Zeiger
§ Zeiger in C/C++
§ Angriffe auf Zeiger: Arbitrary Memory Write, Ausführen von Schadcode
§ Mitigationsstrategien
Dr. Yun Ding, Secorvo
16:20
Dynamische Speicherverwaltung (Teil I)
§ Funktionen für dynamische Speicherverwaltung in C/C++
§ Typische Programmierfehler mit der Speicherverwaltung (I):
Initialisierungsfehler,fehlerhafte Prüfung Dereferencing Null Pointer
Dr. Yun Ding, Secorvo
17:00
Fragen und Antworten
17:30
Ende des ersten Schulungstages
Secorvo College
programm-secure-coding-c 01.docx
Secure Coding C/C++
Programm
Seite 1 von 3
Stand 23. Juni 2015
Secorvo Security Consulting GmbH
Zweiter Tag
8:30
Einleitung in den zweiten Schulungstag
Christoph Weinmann, Secorvo
8:35
Dynamische Speicherverwaltung (Teil II)
§ Typische Programmierfehler mit der Speicherverwaltung (II): Zugriff auf
freigegebenen Speicherbereich, Speicher mehrmals freigeben, Memory
Leaks, Zero-Length Allokation, fehlerhafte Kombinationen von Speicherverwaltungsfunktionen in C und C++
§ Heap Memory Management, Doug Lea Memory Manager (dlmalloc)
§ Heap Buffer Overflow und Angriffsmöglichkeiten
§ Heap Buffer Overflow vermeiden mit Null Pointer, konsistente Konvention
für die Programmierung mit Speicherverwaltungsfunktionen
§ Heap Buffer Overflow erkennen mit statischen Analysen und LaufzeitAnalysen
Dr. Yun Ding, Secorvo
10:05
Pause
10:25
Integers (Teil I)
§ Datentypen für Integer: unsigned vs. signed
§ Integer Overflow
§ Integer-Konvertierung
Dr. Yun Ding, Secorvo
11:40
Fragen und Antworten
12:00
Mittagspause
13:15
Integers (Teil II)
§ Typische Probleme mit Integer: Fehler durch Wraparound,
Konvertierungsfehler, Fehler durch das Abschneiden, fehlende
Überprüfung auf Ausnahmen
§ Mitigation durch Verwenden eines geeigneten Integertyps
§ Mitigation durch Prüfung der Integer-Wertebereiche
Dr. Yun Ding, Secorvo
14:45
Pause
15:05
Parallelität
§ Allgemeines über die Parallelität: Daten- und Taskparallelität, Grenzen
der Parallelität
§ Herausforderungen mit der Parallelität: Race Condition,
Speicherkonsistenz in Multiprozessorsystemen
§ Mitigation durch Synchronisation, Primitiven für die Synchronization
§ Typische Programmierfehler mit der Parallelität: Dead-Lock, fehlende
Locks für gemeinsame Ressourcen bzw. Locks zu früh freigeben
Dr. Yun Ding, Secorvo
16:35
Fragen und Antworten, Diskussion
17:00
Ende des zweiten Schulungstages
Secorvo College
programm-secure-coding-c 01.docx
Secure Coding C/C++
Programm
Seite 2 von 3
Stand 23. Juni 2015
Secorvo Security Consulting GmbH
Dritter Tag
8:30
Einleitung in den dritten Schulungstag
Christoph Weinmann, Secorvo
8:35
Formatierte Ausgabe mit printf
§ Einführung in formatierte Ausgaben
§ Angriffsmöglichkeiten: Buffer Overflow, Programmabsturz, Stack/Speicher
auslesen
§ Exploit im Detail: Aufbau und Durchführung
§ Maßnahmen gegen Sicherheitsprobleme durch formatierte Ausgaben
Kai Jendrian, Secorvo
10:05
Pause
10:25
File I/O-Operationen
§ Übersicht über Secure Coding Empfehlungen bei Input-Output
§ Ausgewählte Beispiele
Kai Jendrian, Secorvo
11:40
Fragen und Antworten
12:00
Gemeinsames Mittagessen
13:15
Fehlerbehandlung
§ Fallstricke und Best Practice bei der Fehlerbehandlung
Kai Jendrian, Secorvo
13:45
Best Practices und Empfehlungen (I)
§ Awareness und Know-How zu Schwachstellen
§ Sicherer Entwicklungsprozess
§ Sicherheitsanforderungen
§ Bedrohungsmodellierung
§ Sicherer Entwurf
Kai Jendrian, Secorvo
14:45
Pause
15:05
Best Practices und Empfehlungen (II)
§ Sichere Implementierung
§ Prüfen der Sicherheit
§ Umgang mit Schwachstellen
§ Sichere Auslieferung
Kai Jendrian, Secorvo
16:20
Fragen und Antworten, Abschlussdiskussion
16:40
Ende der Schulung
* Diese Veranstaltung wird als Weiterbildung im
Sinne der T.I.S.P.-Rezertifizierung anerkannt.
Secorvo College
programm-secure-coding-c 01.docx
Secure Coding C/C++
Programm
Seite 3 von 3
Stand 23. Juni 2015