This secure coding standard consists of rules and recommendations.
Rules
Coding practices are defined to be rules when all of the following conditions are met:
- Violation of the coding practice is likely to result in 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.
- Conformance to the coding practice can be determined through automated analysis, formal methods, or manual inspection techniques.
Implementation of the secure coding rules defined in this standard are necessary (but not sufficient) to ensure the security of software systems developed in the C programming language.
Rules are identified by the label rule.
Recommendations
Recommendations are guidelines or suggestions. Coding practices are defined to be recommendations when all of the following conditions are met:
...
To ensure that the source code conforms to this secure coding standard, it is necessary to have measures in place that check for rules violations. The most effective means of achieving this is to use one or more static analysis tools. Where a rule cannot be checked by a tool, then a manual review is required.
Recommendations are identified by the label recommendation.
Exceptions
Any rule or recommendation may specify a small set of exceptions detailing the circumstances under which the coding practice is not necessary to ensure the security of software. Exceptions are informative only and not required to be followed.
Coding practices that specify one or more exceptions are identified by the label exceptions.
Identifiers
Each rule and recommendation is given a unique identifier. These identifiers consist of three parts:
...