NIST 800-53 REV 5 • SYSTEM AND SERVICES ACQUISITION
SA-11(1) — Static Code Analysis
Require the developer of the system, system component, or system service to employ static code analysis tools to identify common flaws and document the results of the analysis.
CMMC Practice Mapping
No direct CMMC mapping
NIST 800-171 Mapping
No direct NIST 800-171 mapping
Related Controls
No related controls listed
Supplemental Guidance
Static code analysis provides a technology and methodology for security reviews and includes checking for weaknesses in the code as well as for the incorporation of libraries or other included code with known vulnerabilities or that are out-of-date and not supported. Static code analysis can be used to identify vulnerabilities and enforce secure coding practices. It is most effective when used early in the development process, when each code change can automatically be scanned for potential weaknesses. Static code analysis can provide clear remediation guidance and identify defects for developers to fix. Evidence of the correct implementation of static analysis can include aggregate defect density for critical defect types, evidence that defects were inspected by developers or security professionals, and evidence that defects were remediated. A high density of ignored findings, commonly referred to as false positives, indicates a potential problem with the analysis process or the analysis tool. In such cases, organizations weigh the validity of the evidence against evidence from other sources.
Practitioner Notes
Static code analysis examines source code for security vulnerabilities without executing the program. It catches many common coding errors like SQL injection, cross-site scripting, and buffer overflows before the code ever runs.
Example 1: Configure a static analysis tool (SonarQube, Semgrep, Checkmarx) to scan code automatically on every pull request. Set quality gates that block merging if critical or high-severity findings are detected. Review and resolve findings before the code moves forward.
Example 2: In GitHub, enable Advanced Security with CodeQL analysis. CodeQL scans your codebase for vulnerability patterns and creates security alerts directly in the pull request. Configure it to scan on every push and pull request to the main branch.