When should teams use code scanning under NIST SP 800-218 SSDF?
Use when your secure development process calls for code analysis, code review, or executable testing to find issues before release. NIST SP 800-218 recommends deciding whether review and analysis should be used, and it also recommends testing executable code to find vulnerabilities not identified earlier.
Tie the decision to the organization's secure coding standards, software stage, technology, threat model, and security-check criteria. Static analysis is one PW.7.2 example; PW.8 examples also include dynamic testing, fuzz testing, functional security testing, and penetration testing for high-risk scenarios when resources permit.
If scanning or testing is selected, define the covered repositories, branches, components, builds, and releases. Record tool and ruleset versions, relevant configuration, exclusions, results, triage, recommended remediations, fixes, retests, and approved risk responses in the team's workflow or issue tracker.
- Decide whether code review, code analysis, and/or executable testing is needed.
- Use the organization's secure coding standards to guide what the scans should look for.
- Record discovered issues and recommended remediations in workflow or issue tracking systems.
- Re-run the applicable check after relevant code, configuration, dependency, or threat changes and after a fix that needs verification.
PW.7.1 and PW.8.1 make code review, analysis, and executable testing organization-defined decisions. PW.7.2 and PW.8.2 cover performing the selected checks and recording results, issues, triage, and recommended remediations.