Schulungsübersicht
Einführung in die sichere C- und C++-Entwicklung
- Verständnis der Grundsätze der sicheren Softwareentwicklung
- Häufige Sicherheitsrisiken in C- und C++-Anwendungen
- Der Zusammenhang zwischen Programmierfehlern und Sicherheitsvulnerabilitäten
- Sichere Coding-Standards und bewährte Praktiken
Häufige Programmier-Vulnerabilitäten in C und C++
- Identifizierung häufiger Programmierfehler, die Sicherheitsrisiken mit sich bringen
- Probleme mit der Speicherintegrität in C und C++
- Vulnerabilitätsmuster und deren Auswirkungen
- Analysieren unsicherer Code-Beispiele
Prinzipien des sicheren Programmierens
- Anwendung von Defense-in-Depth-Techniken
- Schreiben robuster und pflegbarer Code
- Minimierung der Angriffsfläche
- Prinzipien des sicheren Designs für C- und C++-Anwendungen
Eingabevalidierung und Datenverarbeitung
- Verständnis der Bedeutung der Eingabevalidierung
- Verhinderung der Ausnutzung böswilliger Eingaben
- Techniken zur Datensanisierung
- Sichere Verarbeitung von Benutzereingaben und externen Daten
Fehlerbehandlung und AusnahmeManagement
- Risiken im Zusammenhang mit fehlerhafter Fehlerbehandlung
- Gestaltung sicherer Mechanismen für Fehler- und Ausnahmebehandlung
- Vermeidung von Informationslecks durch Fehler
- Schaffung resilienter Anwendungen
Speicherintegrität und Schutz vor Buffer Overflows
- Verständnis von Speicher-Verwaltungsvulnerabilitäten
- Stack-basierte Buffer Overflows
- Heap-basierte Buffer Overflows
- Erkennung und Vermeidung von Speicherkorruption
- Techniken für die sichere Speicherverwaltung
Stack-Schutz und Sicherheitsfunktionen zur Laufzeit
- Verständnis von Stack-Overflow-Vulnerabilitäten
- Vom Compiler bereitgestellte Sicherheitsmechanismen
- Stack Canaries und Schutzmechanismen
- Address Space Layout Randomization (ASLR)
- Moderne Sicherheitsfunktionen des Betriebssystems
Erweiterte Sicherheitsaspekte in C++
- Sicheres Management des Objekt-Lebenszyklus
- Verhinderung von Use-after-Free-Vulnerabilitäten
- Sicheres Verwalten von Zeigern und Referenzen
- Vermeidung von Typverwechslungsproblemen (Type Confusion)
- Sicherer Einsatz von C++-Sprachfeatures
Werkzeuge und Techniken für sicheres Programmieren
- Einsatz von statischen Analysewerkzeugen zur Identifizierung von Vulnerabilitäten
- Code-Review-Techniken für die Sicherheitsbewertung
- Ansätze für automatisiertes Sicherheitstesting
- Integration von Sicherheitsprüfungen in Entwicklungsprozesse
Sichere Coding-Standards und bewährte Praktiken
- Prüfung von branchenweiten Richtlinien für sicheres Programmieren
- Anwendung defensiver Programmiermethoden
- Einarbeitung von Sicherheit in den Software-Entwicklungslebenszyklus
- Aufrechterhaltung sicherer und zuverlässiger C/C++-Anwendungen
Praktischer Workshop zum sicheren Programmieren
- Analysieren vulnerabler C/C++-Code-Beispiele
- Anwendung von Sicherheitskorrekturen und Verbesserungen
- Testen von Code gegen häufige Vulnerabilitäten
- Kurswiederholung und Empfehlungen für die sichere Entwicklung
Voraussetzungen
Grundkenntnisse in C/C++
Erfahrungsberichte (7)
Erfahrungstechnik, es ist das Wissen und die wertvollen Kenntnisse des Lehrers.
Carey Fan - Logitech
Kurs - C/C++ Secure Coding
Maschinelle Übersetzung
das Gleichgewicht zwischen Vorlesungen und Praxis, der Rhythmus, das Wissen des Trainers und seine pädagogischen Fähigkeiten
Armando Pinto - EID
Kurs - C/C++ Secure Coding
Maschinelle Übersetzung
Der Trainer stellte aktuelle Informationen sowie wertvolle Referenzen und Tools zur Verfügung.
Jose Vicente - EID
Kurs - C/C++ Secure Coding
Maschinelle Übersetzung
um viele nützliche Informationen zum Kursinhalt zu erhalten
Paulo Pereira - EID
Kurs - C/C++ Secure Coding
Maschinelle Übersetzung
Der Coach verfügt über festes Wissen und Erfahrung, die Folien sind ansprechend und die Beispiele gut gewählt.
Celso Almeida - EID
Kurs - C/C++ Secure Coding
Maschinelle Übersetzung
The lectures
Fernando Afonso - EID
Kurs - C/C++ Secure Coding
Allgemeine Kursinformationen
Paulo Gouveia - EID
Kurs - C/C++ Secure Coding
Maschinelle Übersetzung