Schulungsübersicht
Einführung in die sichere C- und C++-Entwicklung
- Verständnis der Prinzipien der sicheren Softwareentwicklung
- Gängige Sicherheitsrisiken in C- und C++-Anwendungen
- Der Zusammenhang zwischen Programmierfehlern und Sicherheitslücken
- Leitlinien und bewährte Praktiken für sicheres Programmieren
Gängige Programmierschwachstellen in C und C++
- Erkennen von häufigen Programmierfehlern, die Sicherheitsrisiken verursachen
- Speicherprobleme in C und C++
- Schwachstellenmuster und deren Auswirkung
- Analysieren von unsicheren Codebeispielen
Prinzipien des sicheren Programmierens
- Anwendung von Defense-in-Depth-Techniken
- Schreiben von robustem und wartbarem Code
- Minimierung der Angriffsfläche
- Prinzipien der sicheren Gestaltung für C- und C++-Anwendungen
Eingabevalidierung und Datenverarbeitung
- Wichtigkeit der Eingabevalidierung verstehen
- Verhinderung der Ausnutzung böswilliger Eingaben
- Techniken zur Datenbereinigung
- Sichere Verarbeitung von Benutzer- und externen Daten
Fehlerbehandlung und Ausnahmenverwaltung
- Risiken, die mit unsachgemäßer Fehlerbehandlung verbunden sind
- Entwurf sicherer Fehler- und Ausnahmemechanismen
- Vermeidung von Informationslecks durch Fehler
- Erstellung widerstandsfähiger Anwendungen
Speicherintegrität und Schutz vor Pufferüberläuf
- Verständnis von Schwachstellen im Speichermanagement
- Stapel-basierte Pufferüberläuf
- Heap-basierte Pufferüberläuf
- Erkennen und Verhindern von Speicherfehler
- Sichere Techniken zur Speicherverwaltung
Stapelschutz und Laufzeitsicherheitsfunktionen
- Verständnis von Stapelüberlauf-Schwachstellen
- Compilerbasierte Sicherheitschutzmaßnahmen
- Stapel-Kanäle und Schutzmechanismen
- Randomisierung der Speicherlayout-Anordnung (ASLR)
- Modern Betriebssystem-Sicherheitsfunktionen
Fortgeschrittene C++-Sicherheitsaspekte
- Sichere Verwaltung des Objektlebenszyklus
- Verhinderung von Use-after-Fehler-Schwachstellen
- Sichere Verwaltung von Zeigern und Referenzen
- Vermeidung von Typverwechslungsproblemen
- Sicherer Einsatz von C++-Sprachfunktionen
Werkzeuge und Techniken für sicheres Programmieren
- Einsatz statischer Analysewerkzeuge zur Identifikation von Schwachstellen
- Code-Review-Techniken zur Sicherheitsbewertung
- Ansätze für automatisierte Sicherheitstests
- Integration von Sicherheitsprüfungen in Entwicklungsprozesse
Standards und bewährte Praktiken für sicheres Programmieren
- Überprüfung branchenweiter Leitlinien für sicheres Programmieren
- Anwendung defensiver Programmiermethoden
- Einarbeitung von Sicherheit in den Softwareentwicklungslebenszyklus
- Wartung sicherer und zuverlässiger C/C++-Anwendungen
Praktisches Workshop für sicheres Programmieren
- Analysieren von anfälligen C/C++-Codebeispielen
- Anwendung von Sicherheitskorrekturen und -verbesserungen
- Testen von Code auf gängige Schwachstellen
- Kurswiederholung und Empfehlungen zur sicheren 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