Ce site est une archive officieuse de l'ancien site de l'ANSSI, remplacé fin novembre 2023.
Veuillez aller sur https://cyber.gouv.fr/ pour naviguer le site officiel.

Règles de programmation pour le développement sécurisé de logiciels en langage C


Le langage C offre une grande liberté aux développeurs. Cependant, il comporte des constructions ambiguës ou risquées qui favorisent l'introduction d'erreurs lors du développement. Le standard du langage C ne spécifie pas l'ensemble des comportements souhaités, et certains restent donc indéfinis ou non spécifiés. Libre alors aux développeurs de compilateurs, de bibliothèques ou de systèmes d'exploitation de faire leurs propres choix. Il est ainsi nécessaire de définir des restrictions quant à l'utilisation du langage C afin d'identifier les différentes constructions risquées ou non portables et d'en limiter voire interdire l'utilisation.
ANSSI - guide - Règles de programmation pour le développement sécurisé de logiciels en langage C - v1.1 - couverture

Le présent guide définit un ensemble de règles, de recommandations et de bonnes pratiques consacrées aux développements sécurisés en langage C.

Ce guide a différents objectifs :

  • augmenter la sécurité, la qualité et la fiabilité du code source produit, en identifiant les mauvaises pratiques ou les pratiques dangereuses de programmation ;
  • faciliter l’analyse du code source lors d’une relecture par un pair ou de l’utilisation d’outils d’analyse statique ;
  • établir un niveau de confiance dans la sécurité, la fiabilité et la robustesse d’un développement ;
  • favoriser la maintenabilité du logiciel mais également l’ajout de fonctionnalités.

Ce guide ne s’inscrit pas dans un domaine d’application particulier et ne veut pas remplacer les contraintes de développement imposées par tout contexte normatif (domaine automobile, aéronautique, systèmes critiques, etc.). Il traite justement les développements en C sécurisés non couverts par ces contraintes normatives.

Ce guide est également disponible en anglais : « Rules for secure C language software development »

  • pdf

    ANSSI - guide - Règles de programmation pour le développement sécurisé de logiciels en langage C - v1.4 du 24/03/2022

    1.1 Mo

  • pdf

    (obsolète) ANSSI - guide - Règles de programmation pour le développement sécurisé de logiciels en langage C - v1.3 du 16/11/2021

    1004.17 Ko

  • pdf

    (obsolète) ANSSI - guide - Règles de programmation pour le développement sécurisé de logiciels en langage C - v1.2 du 21/07/2020

    974.81 Ko

  • pdf

    (obsolète) ANSSI - guide - Règles de programmation pour le développement sécurisé de logiciels en langage C - v1.1 du 29/05/2020

    973.21 Ko

  • pdf

    (obsolète) ANSSI - guide - Règles de programmation pour le développement sécurisé de logiciels en langage C - v1.0 du 25/05/2020

    973.05 Ko