Sichere Anwendungen mit C und C++
Speicherfehler früh finden, Exploit-Pfade verstehen und native Codebasen gezielt härten
Die wichtigsten Themen
Speicherfehler mit Sanitizern finden
Exploit-Pfade technisch nachvollziehen
Eingaben und Datenformate absichern
Compiler-Härtung passend konfigurieren
Fuzzing in Tests integrieren
Bestehende Codebasen gezielt härten
Überblick Eine lauffähige Anwendung in C oder C++ ist noch keine sichere Anwendung. In systemnaher Software, Embedded-Systemen, Treibern und nativen Bibliotheken führen ungültige Speicherzugriffe, ungeprüfte Eingaben oder...
Eine lauffähige Anwendung in C oder C++ ist noch keine sichere Anwendung. In systemnaher Software, Embedded-Systemen, Treibern und nativen Bibliotheken führen ungültige Speicherzugriffe, ungeprüfte Eingaben oder falsche Annahmen über Objektlebensdauern zu Abstürzen, Datenverlust und ausnutzbaren Schwachstellen. Die Schulung zeigt, wie solche Fehler entstehen und an welchen Stellen im Code, Build-Prozess und Test sie verhindert oder früh erkannt werden.
Du analysierst fehlerhaften C/C++-Code, verfolgst ausgewählte Exploit-Pfade und prüfst Gegenmaßnahmen mit Compiler-Warnungen, Sanitizern, statischer Analyse und Fuzzing. Die Übungen behandeln sowohl manuelle Speicherverwaltung in C als auch RAII, Smart Pointer, Container und Ownership in C++. Dadurch kannst du Findings bewerten, statt Werkzeugmeldungen ungeprüft zu übernehmen, und bestehende Codebasen nach ihrem tatsächlichen Risiko härten. Weitere Schulungen findest du in der Kategorie Software-Entwicklung und Programmierung.
Live-Demos und konkrete Codebeispiele machen sichtbar, welche Schutzmaßnahme einen Fehler verhindert und welche ihn nur schwerer ausnutzbar macht. Die Gruppen umfassen maximal acht Personen. Die Schulung ist online, in Präsenz oder als Firmenschulung verfügbar; für Teams stimmen wir die Plattform, den Compiler und geeignete Beispiele vorab ab. Aktuelle C++-Sprachmittel vertieft das Training C++: Neue Features bis C++23. Sprich mit uns über den passenden Termin und das Format für dein Team.
Die Themen Angriffsflächen nativer Anwendungen erkennen · Fehler, Schwachstelle und Exploit unterscheiden · Defense-in-Depth auf Codeebene umsetzen · Secure Coding im Entwicklungsprozess verankern...
Sicherheitsmodell und Angriffsflächen
- Angriffsflächen nativer Anwendungen erkennen
- Fehler, Schwachstelle und Exploit unterscheiden
- Defense-in-Depth auf Codeebene umsetzen
- Secure Coding im Entwicklungsprozess verankern
- Undefined Behavior als Risiko bewerten
Speicher- und Typfehler
- Stack- und Heap-Overflows analysieren
- Out-of-bounds-Zugriffe früh erkennen
- Use-after-free und Double-free vermeiden
- Nullzeiger sicher behandeln
- Integer-Overflows und Signedness-Fehler prüfen
- Type Confusion nachvollziehen
Eingaben und Schnittstellen
- Externe Daten konsequent validieren
- Längen und Wertebereiche prüfen
- Zeichensätze und Konvertierungen absichern
- Command-Injection in Systemaufrufen verhindern
- SQL-Injection an Datenbankschnittstellen verhindern
- Informationsabfluss bei Fehlern vermeiden
Sichere Implementierung in C und C++
- Unsichere Standardfunktionen ersetzen
- RAII für Ressourcen einsetzen
- Smart Pointer passend auswählen
- Ownership und Lebensdauern modellieren
- Container statt roher Puffer nutzen
- Race Conditions im Code erkennen
Exploit-Verständnis und Codeanalyse
- Stack-Layout und Heap-Verhalten untersuchen
- Return-Address-Overwrite technisch nachvollziehen
- SEH-Angriffe plattformbezogen bewerten
- Heap Spraying und ROP verstehen
- Sanitizer für Laufzeitfehler einsetzen
- Fuzzing für Parser nutzen
- Findings nach Risiko priorisieren
Build-Härtung und sichere Auslieferung
- Compiler-Warnungen konsequent konfigurieren
- Stack-Schutz und Fortify-Optionen wählen
- ASLR, DEP/NX und PIE prüfen
- Kontrollfluss-Härtung plattformbezogen aktivieren
- Release-Builds und Symbole absichern
- Schlüsselmaterial vor Offenlegung schützen
- Security-Tests in CI/CD integrieren
- Secure-Code-Reviews systematisch durchführen
Zielgruppe
- Softwareentwicklerinnen und Softwareentwickler für native Anwendungen
- Embedded- und Automotive-Teams mit C/C++-Codebasen
- Security Engineers für Codeanalyse und Build-Härtung
- Fachkräfte für Softwarearchitektur systemnaher Komponenten
- Teams, die bestehende native Codebasen härten
Das lernst du
- Speicherzugriffe außerhalb gültiger Grenzen erkennen und beheben
- AddressSanitizer, UndefinedBehaviorSanitizer und ThreadSanitizer passend einsetzen
- Eingaben und Datenformate mit überprüfbaren Regeln absichern
- Exploit-Pfade nachvollziehen und wirksame Gegenmaßnahmen auswählen
- Compiler- und Plattform-Härtung in Release-Builds integrieren
- Bestehende Codebasen priorisiert härten, damit kritische Speicherfehler nicht bis zur Auslieferung unentdeckt bleiben
So arbeiten wir
- Trainergeführte Erläuterungen realer Schwachstellenklassen
- Live-Demos zu Speicherfehlern und Schutzmechanismen
- Hands-on-Übungen mit fehlerhaftem C/C++-Code
- Code-Reviews mit gemeinsamer Risikobewertung
- Arbeit mit Sanitizern und statischer Analyse
- Fuzzing ausgewählter Schnittstellen und Parser
- Transfer durch Checklisten und Maßnahmenpläne
Empfohlene Vorkenntnisse
- Gute praktische Kenntnisse in C oder C++
- Erfahrung mit Zeigern, Speicherverwaltung und Debugging
- Grundverständnis von Compilern wie GCC, Clang oder MSVC
- Grundkenntnisse über Prozesse und virtuelle Speicherbereiche
- Für aktuelle C++-Sprachmittel: C++: Neue Features bis C++23
Dein Fahrplan
Der erste Tag schafft das technische Modell für sichere native Anwendungen. Die Teilnehmer untersuchen, wie Fehler im Speicherzugriff, in der Integer-Arithmetik und bei externen Eingaben zu ausnutzbaren Zuständen führen.
- Angriffsflächen nativer Anwendungen
- Stack, Heap und Speichergrenzen
- Buffer Overflows und Out-of-bounds-Zugriffe
- Integer Overflows und Typfehler
- Eingabevalidierung und sichere Fehlerbehandlung
Organisatorisches
Lernformate
Unsere Seminare bieten dir maximale Flexibilität: Du kannst zwischen Live-Online und Vor Ort in unseren modernen Schulungszentren im D-A-CH Raum wählen. Beide Formate garantieren dir die gleiche hohe Qualität und interaktive Lernerfahrung.
Schulungsarten
Wir bieten dir verschiedene Schulungsarten: Offene Seminare, Firmenseminare für Teams und Inhouse-Schulungen direkt bei dir vor Ort. So findest du genau das Format, das zu deinen Bedürfnissen passt.
Aktuelle Software
In unseren offenen Kursen arbeiten wir mit der aktuellsten Software-Version. So lernst du direkt mit den Tools und Features, die du auch in deinem Arbeitsalltag verwendest - praxisnah und zukunftsorientiert. Bei Inhouse- und Firmenschulungen bestimmt ihr die Version.
Deine Vorteile
Zufriedenheitsgarantie
Wir sind von unserer Qualität überzeugt. Sollte ein Training einmal nicht deinen Erwartungen entsprechen, bieten wir dir an, den Kurs kostenlos zu wiederholen oder ein anderes Training zu besuchen. Ohne Risiko, ohne Diskussion.
Inklusivleistungen
Deine Teilnahme beinhaltet: Schulungsmaterial, Zertifikat, Verpflegung (bei Präsenzveranstaltungen) und persönliche Betreuung durch unsere Trainer und unser Orga-Team. Alles aus einer Hand - keine versteckten Kosten.
Lernen von Experten
Unsere Trainer sind zertifizierte und erfahrene Profis mit jahrelanger Berufserfahrung. Sie vermitteln dir in den Kursen nicht nur theoretisches Wissen, sondern teilen ihre Erfahrungen aus realen Projekten und helfen dir, das Gelernte direkt in deiner täglichen Arbeit anzuwenden. Das ist kein Werbeversprechen, sondern unser Anspruch. Am besten siehst du das in unseren Bewertungen, z.B. auch bei Google.
Keine Vorkasse
Du zahlst erst nach dem Seminar. Keine Vorkasse, keine Vorauszahlung - so kannst du sicher sein, dass du nur für das bezahlst, was du auch wirklich erhalten hast. Die Rechnung erhältst du erst nach Kursbeginn.
Max. 8 Teilnehmende
Wir setzen auf kleine Gruppen, damit du die Aufmerksamkeit bekommst, die du verdienst. So haben wir mehr Zeit für deine individuellen Fragen und können gezielt auf deine Bedürfnisse eingehen.
Termine & Buchung
Vor Ort
Online
Nicht der passende Termin dabei?
Wir finden eine Lösung: anderer Termin, mehrere Teilnehmer, Inhouse-Schulung oder individuelle Beratung.
Lieber gleich das ganze Team schulen?
Diese Schulung gibt es auch exklusiv für dein Unternehmen, bei euch vor Ort, an unseren Standorten oder Live-Online. Inhalte und Termine nach Maß.
Inhouse-Schulung
Wir kommen zu euch: diese Schulung maßgeschneidert in euren Räumen, für Unternehmen und Behörden.
- Inhalte exakt auf euch zugeschnitten
- Termine nach euren Bedürfnissen
- Günstiger ab mehreren Teilnehmern
- Vertraute Umgebung, kein Reiseaufwand
Firmen-Seminar
Exklusiv für dein Team an einem unserer Standorte oder Live-Online, individuell angepasst.
- Geschlossene Gruppe aus eurem Haus
- Individuelle Terminplanung
- An unseren Standorten oder Live-Online
- Angepasste Inhalte
Fragen und Antworten zu Sichere Anwendungen mit C und C++
Was bedeutet Secure Coding bei C und C++?
Secure Coding in C und C++ verhindert Programmierfehler, aus denen Angreifer Speicherzugriffe, Eingaben oder Kontrollflüsse missbrauchen können. Dazu gehören Regeln für Speichergrenzen, Lebensdauern und Integer-Arithmetik. Compiler-Härtung, Sanitizer, Fuzzing und Code-Reviews ergänzen die sichere Implementierung, ersetzen sie aber nicht.
Wann nutzt man Sanitizer statt statischer Codeanalyse?
Sanitizer finden Fehler während der Programmausführung, während statische Analyse den Quellcode ohne konkreten Testlauf untersucht. In der Schulung kombinierst du beide Ansätze: Die statische Analyse sucht verdächtige Pfade, Sanitizer bestätigen Laufzeitfehler mit konkreten Testdaten.
Geht es in der Schulung mehr um C oder um C++?
Beide Sprachen werden berücksichtigt. Bei C stehen manuelle Speicherverwaltung und unsichere Bibliotheksfunktionen im Vordergrund; bei C++ kommen RAII, Smart Pointer, Container, Ownership und Objektlebensdauern hinzu.
Welche C/C++-Vorkenntnisse brauche ich?
Gute praktische Kenntnisse in mindestens einer der beiden Sprachen werden vorausgesetzt. Zeiger, Speicherverwaltung, Debugging und der grundlegende Build-Prozess sollten vertraut sein; Security-Vorwissen ist nicht notwendig.
Ist die C/C++-Security-Schulung online und in Präsenz verfügbar?
Die Schulung kann online, in Präsenz oder als Firmenschulung durchgeführt werden. Verfügbare Termine, Standorte und Konditionen erhältst du bei der Anfrage für dein gewünschtes Format.
Kann die Schulung als Inhouse-Training für ein Entwicklungsteam stattfinden?
cmt bietet die Schulung als Inhouse- und Firmenseminar an. Eine mögliche Abstimmung auf euren Compiler, die Zielplattform und anonymisierte Projektsituationen wird vor der Durchführung geklärt.
Gibt es ein Zertifikat oder eine Teilnahmebescheinigung?
Eine offizielle Herstellerzertifizierung ist für diese Schulung nicht vorgesehen. Wenn du einen Nachweis für die Personalakte oder interne Weiterbildungsprozesse benötigst, kläre die gewünschte Form bitte bei der Anfrage.
Ist die Schulung für Embedded- und Treiberentwicklung geeignet?
Die Inhalte passen zu nativer und systemnaher Software, da Speicherzugriffe, Ressourcenlebensdauern und Compiler-Härtung dort unmittelbar relevant sind. Eine anschließende Vertiefung bietet die Linux Kernel-Modul Entwicklung mit C.
Weitere häufig gestellte Fragen und Antworten findest du in den FAQs .
Unser Qualitätsversprechen: Wissen, das in der Praxis funktioniert
Aus der Praxis für die Praxis
Schluss mit theoretischem Ballast. Wir trainieren dich für reale IT-Herausforderungen, nicht für Multiple-Choice-Tests. Unsere Trainer vermitteln dir genau das Wissen, das am nächsten Montagmorgen im Job wirklich funktioniert.
Individuell statt "Schema F"
Deine Fragen passen nicht ins Standard-Skript? Bei uns schon. Wir verzichten auf starre Lehrpläne und geben deinen konkreten Projekt-Fragen Raum. Unsere Trainer passen die Inhalte flexibel an das an, was dich und dein Team aktuell weiterbringt.
Maximale Freiheit: Remote oder vor Ort
Lerne so, wie es in deinen Alltag passt - ohne Reise-Stress und Zeitverlust. Egal ob remote, hybrid oder präsent vor Ort: Wir garantieren dir ein nahtloses und effektives Lernerlebnis, egal von wo du dich zuschaltest.
Mit Zufriedenheitsgarantie
Wir sind von unserer Qualität überzeugt - und wollen, dass du es auch bist. Sollte ein Training einmal nicht deinen Erwartungen entsprechen, bieten wir dir an, den Kurs kostenlos zu wiederholen oder ein anderes Training zu besuchen. Ohne Risiko, ohne Diskussion.
Über 20.000 Unternehmen und Behörden vertrauen auf uns