Codage sécurisé en C/C++

Identifier les principales vulnérabilités dans le code C/C++
Informations pratiques
PUBLIC VISÉ
Développeurs C et/ou C++ intervenant sur des applications critiques (embarqué, système, temps réel, industriel, finance, cybersécurité), responsables qualité, architectes logiciels.
Prérequis
Maîtrise des fondamentaux du langage C ou C++ (pointeurs, structures, fonctions, gestion mémoire, compilation). Une expérience de développement concret est fortement recommandée.
Méthodes et moyens
Travaux pratiques : formation alternant théorie et pratique.
Objectifs visés

Ce que vous saurez faire à l'issue de la formation

À l’issue de la formation, les participants seront capables de :

  • Identifier les principales vulnérabilités dans le code C/C++
  • Appliquer les bonnes pratiques de programmation défensive
  • Rédiger un code robuste, fiable et sécurisé dès la conception
  • Utiliser des outils d’analyse statique et dynamique pour prévenir les failles
  • Se conformer aux référentiels de sécurité reconnus (CERT, MISRA, ISO/IEC TS 17961)
Programme détaillé

Un parcours structuré, module par module

Chaque module alterne apports théoriques, démonstrations et exercices pratiques pour ancrer les acquis.

Introduction à la sécurité logicielle

  • Enjeux de sécurité dans le développement natif
  • Historique et vulnérabilités emblématiques (Heartbleed, Stack Clash…)
  • Panorama des normes : CERT C, CERT C++, MISRA C, ISO/IEC TS
  • Attaques classiques : buffer overflow, use-after-free, integer overflow, format string

Failles courantes en C/C++

  • Problèmes liés à la gestion mémoire manuelle :
  • Déréférencement de pointeurs invalides
  • Double free, fuites mémoire, free non initialisé
  • Failles d'initialisation et d'accès concurrent
  • Dangereuses fonctions standard (strcpy, sprintf, gets…)

Bonnes pratiques de codage sécurisé

  • Validation stricte des entrées/sorties (whitelisting, bornes)
  • Gestion défensive des pointeurs et allocations dynamiques
  • Utilisation correcte des types (size_t, uint32_t, conversions sûres)
  • Programmation robuste : assertions, invariants, defensive programming

Codage sécurisé en C++

  • Exceptions vs codes d’erreur, RAII et gestion des ressources
  • Bonnes pratiques avec les smart pointers (unique_ptr, shared_ptr)
  • Conteneurs STL sécurisés vs accès mémoire direct
  • Gestion de l’héritage, override explicite, règles d’encapsulation

Recommandations CERT C/C++

  • Principes de la norme CERT (rules vs recommendations)
  • Exemples de règles : INT32-C, EXP33-C, ARR30-C, MEM50-CPP
  • Cas pratiques : analyse de code et refactoring à partir d'extraits non conformes

Outils d’analyse statique et dynamique

  • Analyse statique : Clang-Tidy, Cppcheck, SonarQube, Coverity
  • Analyse dynamique : Valgrind, AddressSanitizer, UndefinedBehaviorSanitizer
  • Intégration dans les chaînes CI/CD (GitHub Actions, GitLab CI)
  • Métriques de sécurité et rapports de conformité

Sécurisation du cycle de développement

  • Intégration des contrôles sécurité dans le SDLC (Secure Development Life Cycle)
  • Revue de code orientée sécurité
  • Tests fuzzing (libFuzzer, AFL), injection de fautes
  • Techniques de durcissement du binaire : ASLR, DEP, stack canaries, PIE

Études de cas et atelier final

  • Analyse de failles réelles dans des bibliothèques open source
  • Réécriture sécurisée d’un module critique (lecture/écriture fichier, socket, parsing)
  • Application d’outils d’analyse et rédaction de rapports de non-conformité

Modalités d'évaluation

  • En cours de formation, par des études de cas ou des travaux pratiques
  • Et, en fin de formation, par un questionnaire d'auto-évaluation
Certification et financement

Une formation certifiée qualité

SKILLIA Academy est certifié Qualiopi au titre des actions de formation. Nos formations sont finançables via OPCO, CPF ou plan de développement des compétences.

Attestation de formation délivrée
Financement OPCO et CPF
Formateurs experts certifiés
Nos formateurs

Des experts terrain, praticiens de leur discipline

Chaque formation est animée par un consultant SKILLIA sélectionné pour son expertise sectorielle et sa pédagogie. Nos formateurs cumulent expérience opérationnelle et pratique régulière du transfert de compétences.

Praticiens en activité — Une expérience opérationnelle actuelle, mise au service de cas concrets.
Sélection exigeante — Expertise sectorielle et qualité pédagogique évaluées pour chaque intervenant.
Prix
2 100 € HT
Durée
3 jours