Anssi guide regles de programmation pour le developpement securise de logiciels en langage c
RÈGLES DE PROGRAMMATION POUR LE DÉVELOPPEMENT SÉCURISÉ DE LOGICIELS EN LANGAGE C GUIDE ANSSI PUBLIC VISÉ Développeur Administrateur RSSI DSI Utilisateur ANSSI-PA- C C Informations Attention Ce document rédigé par l ? ANSSI présente les Règles de programmation pour le développement sécurisé de logiciels en langage C ? Il est téléchargeable sur le site www ssi gouv fr Il constitue une production originale de l ? ANSSI Il est à ce titre placé sous le régime de la Licence ouverte ? publiée par la mission Etalab www etalab gouv fr Il est par conséquent di ?usable sans restriction Ces recommandations n ? ont pas de caractère normatif elles sont livrées en l ? état et adaptées aux menaces au jour de leur publication Au regard de la diversité des systèmes d ? information l ? ANSSI ne peut garantir que ces informations puissent être reprises sans adaptation sur les systèmes d ? information cibles Dans tous les cas la pertinence de l ? implémentation des éléments proposés par l ? ANSSI doit être soumise au préalable à la validation de l ? adminis trateur du système et ou des personnes en charge de la sécurité des systèmes d ? information VERSION Évolutions du document DATE NATURE DES MODIFICATIONS Version initiale RÈGLES DE PROGRAMMATION POUR LE DÉVELOPPEMENT SÉCURISÉ DE LOGICIELS EN LANGAGE C ?? CTable des matières Introduction Convention de codage Comportements non dé ?nis et non spéci ?és Références Compilation preprocessing et macros Ma? triser l ? étape de compilation Compiler le code sans erreur ni avertissement Faire attention aux modes debug et release activables à la compilation Inclusion des ?chiers d ? en-tête nécessaires Non inclusion de ?chiers sources Format d ? une directive d ? inclusion d ? un ?chier Commentaire et dé ?nition des blocs préprocesseurs Utilisation des opérateurs de preprocessing et Nommage de façon spéci ?que des macros Une macro ne doit pas se terminer par un point-virgule Préférer les fonctions static inline aux macros de type fonction ? Macros multi-instructions Arguments et paramètres d ? une macro Utilisation de la directive undef Trigraphe et double point d ? interrogation Déclaration dé ?nition et initialisation Déclarations multiples de variables Déclaration libre de variables Déclaration des constantes Utilisation limitée de variables globales Utilisation du quali ?cateur de déclaration static Utilisation du spéci ?eur de type volatile Déclaration implicite de type interdite Compound literals Énumérations Initialisation des variables avant utilisation Initialisation de variables structurées Utilisation obligatoire des déclarations Nommage des variables pour les données sensibles Types et transtypages Taille explicite pour les entiers Alias de types Transtypage Transtypage de pointeurs sur des variables structurées de types di ?érents ?? RÈGLES DE PROGRAMMATION POUR LE DÉVELOPPEMENT SÉCURISÉ DE LOGICIELS EN LANGAGE C C Pointeurs et tableaux Accès normalisé aux éléments d ? un tableau Non utilisation des VLA Taille explicite des tableaux Véri ?cation systématique de non débordement de tableau Ne pas déréférencer des pointeurs NULL A ?ectation à NULL des pointeurs désalloués Utilisation du quali ?cateur de type
Documents similaires
-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 21, 2022
- Catégorie Administration
- Langue French
- Taille du fichier 634.4kB