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
© Copyright 2024 ExpyDoc