You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

This secure coding standard consists of rules and recommendations. Coding practices are defined to be rules when all of the following conditions are met:

  1. Violation of the coding practice is likely to result in a security flaw that may result in an exploitable vulnerability.
  2. There is a denumerable set of conditions for which violating the coding practice is necessary to ensure correct behavior.
  3. Conformance to the coding practice can be determined through automated analysis, formal methods, or manual inspection techniques.

Conformance to secure coding rules must be demonstrated to claim compliance with this standard unless an exceptional condition exists. If an exceptional condition is claimed, the exception must correspond to a predefined exceptional condition and the application of this exception must be documented in the source code. Implementation of the secure coding rules defined in this standard are neccessary (but not sufficient) to ensure the security of software systems developed in the C programming language.

Recommendations are guidelines or suggestions. Coding practices are defined to be recommendations when all of the following conditions are met:

  1. Application of the coding practice is likely to improve system security.
  2. One or more of the requirements necessary for a coding practice 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 dedicate more resources to security and are thus likely to adopt a larger set of recommendations.

To ensure that the source code conforms to this secure coding standard, it is necessary to have measures in place which check that none of the rules have been broken. 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.

The following graph shows the number and breakdown of rules and recommendations in the CERT C Programming Language Secure Coding Standard:

Key:
Blue -- recommendations
Red -- rules

Priority and Levels      00. Introduction      

  • No labels