This secure coding standard consists of rules and recommendations. Coding practices are defined to be rules when all of the following conditions are metRules are meant to provide normative requirements for code; recommendations are meant to provide guidance that, when followed, should improve the safety, reliability, and security of software systems. However, a violation of a recommendation does not necessarily indicate the presence of a defect in the code. Rules and recommendations are collectively referred to as guidelines.
Rules
Rules must meet the following criteria:
- Violation of the coding practice guideline is likely to result in a defect that may adversely affect the safety, reliability, or security of a system, for example, by introducing a security flaw that may result in an exploitable vulnerability.There is a denumerable set of conditions for which violating the coding practice is necessary to ensure correct behavior
- The guideline does not rely on source code annotations or assumptions.
- Conformance to the coding practice guideline can be determined through automated analysis (either static or dynamic), formal methods, or manual inspection techniques.
...
Recommendations
Recommendations are guidelines or suggestions . Coding practices for improving code quality. Guidelines are defined to be recommendations when all of the following conditions are met:
- Application of the coding practice a guideline is likely to improve system securitythe safety, reliability, or security of software systems.
- One or more of the requirements necessary for a coding practice guideline to be considered a rule cannot be met.
Compliance with recommendations is not necessary to claim compliance with this standard. It is possible, however, to claim compliance with recommendations (especially in cases in which compliance can be verified). The set of recommendations that a particular development effort adopts depends on the security requirements of the final software product. Projects with high-security requirements can stricter requirements may decide to dedicate more resources to ensuring the safety, reliability, and security of a system and consequently are thus likely to adopt a larger set of recommendations.
Implementation of the secure coding rules defined in this standard are helpful (but not sufficient) to ensure the security of software systems developed in the C programming language.
The following graph shows the number and breakdown of rules and recommendations in the CERT C Programming Language Secure Coding Standard:
No Format |
---|
Key:
Blue -- recommendations
Red -- rules
|
Priority and Levels 00. Introduction broader set of recommendations.