Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The goal of each coding standard is to define a set of rules that are necessary (but not sufficient) to ensure the security of software systems developing in the respective programming languages.

A 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 will result in a security flaw that may result in an exploitable vulnerability.
  2. There is an enumerable set of exceptional conditions (or no such conditions) where violating the coding practice is necessary to ensure the correct behavior for the program.
  3. Conformance to the coding practice can be verified.

Rules must be followed to claim compliance with a standard unless an exceptional condition exists. If an exceptional condition is claimed, the exception must correspond to a pre-defined exceptional condition and the application of this exception must be documented in the source code.

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 a coding standard.  It is possible, however, to claim compliance with one or more verifiable guidelines. 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.