Technologies de l'information - Langages de programmation, leurs environnements et interfaces logicielles système - Règles de codage C secure
Porté:
Cette spécification technique spécifie
• règles de codage sécurisé dans le langage de programmation C et
• exemples de code.
Cette spécification technique ne précise pas
• le mécanisme par lequel ces règles sont appliquées ou
• tout style de codage particulier à appliquer. (Il a été impossible de développer un consensus sur des directives de style appropriées. Les programmeurs doivent définir des directives de style et appliquer ces directives de manière cohérente. Le moyen le plus simple d'appliquer systématiquement un style de codage consiste à utiliser un outil de formatage de code. capacités.)
Chaque règle de cette spécification technique est accompagnée d'exemples de code. Les exemples de code sont uniquement informatifs et servent à clarifier les exigences décrites dans la partie normative de la règle. Les exemples n'imposent aucune exigence normative.
Chaque règle de la présente spécification technique basée sur un comportement indéfini défini dans la norme C identifie le comportement indéfini par un code numérique. Les codes numériques des comportements indéfinis se trouvent à l'annexe B, Comportement indéfini.
Deux types d'exemples distincts sont fournis :
• des exemples non conformes démontrant des constructions de langage présentant des faiblesses avec des implications de sécurité potentiellement exploitables ; on s'attend à ce que de tels exemples suscitent un diagnostic d'un analyseur conforme pour la construction de langage affectée ; et
• on s'attend à ce que les exemples conformes ne provoquent pas de diagnostic.
Les exemples ne sont pas destinés à être des programmes complets. Par souci de concision, ils omettent généralement les directives #include des en-têtes de la bibliothèque standard C qui seraient autrement nécessaires pour fournir des déclarations de symboles référencés. Les exemples de code peuvent également déclarer des symboles sans fournir leurs définitions si les définitions ne sont pas essentielles pour démontrer une faiblesse spécifique.
Certaines règles de cette spécification technique ont des exceptions. Les exceptions font partie de la spécification de ces règles et sont normatives.
Raison d’être du projet
Note : L’information ci-dessus a été recueillie et est diffusée par le Conseil canadien des normes (CCN) pour les besoins de son système de notification centralisé et transparent pour l’élaboration de nouvelles normes. Le système permet aux organismes d’élaboration de normes (OEN) accrédités par le CCN et aux membres du public d’être informés des nouveaux travaux d’élaboration de normes au Canada. Il donne aussi aux OEN accrédités la possibilité de repérer et de résoudre les cas de doubles emplois éventuels dans les normes et les travaux de normalisation.
Les OEN sont eux-mêmes responsables du contenu et de l’exactitude de l’information présentée ici. Cette information n’existe que dans la langue dans laquelle elle a été fournie au CCN.