16.12·medium·Component: ProtectWhat this control requires
Apply static and dynamic analysis tools within the application life cycle to verify that secure coding practices are being followed.
In plain English
Apply static and dynamic analysis tools within the application life cycle to verify that secure coding practices are being followed. In practice, this means you can prove you implement tools-level controls on a defined cadence.
Why it matters
The CIS Controls are an industry-vetted, prioritised defence: skipping a safeguard widens the attack surface that the safeguards above and below it assume is closed. Audit frameworks (FedRAMP, PCI DSS, HIPAA) all cite CIS as evidence of due care.
What an auditor looks for
A CIS-aligned reviewer wants to see (a) which Implementation Group you are targeting, (b) a documented owner for the safeguard, and (c) a tooling or process artefact (config, scan output, ticket) that proves the safeguard runs on the cadence the control demands.
Within Protect, the assessor will trace your implementation back to the catalogue reference (Control 16.12) and look for objective evidence on the latest two assessment cycles.
How to implement
Secure Development
Pipeline. Require code review, SAST (Semgrep / Snyk Code), SCA (Dependabot / Renovate), secret-scanning and IaC scanning in the merge pipeline.
Branch protection. Protected branches enforce reviews, signed commits and passing CI before merge; document the protection rules as the control evidence.
Code Review Testing
Pipeline. Require at least one human reviewer plus passing CI (lint, type, unit, security scan) before merge — protected branches enforce this.
Operational checklist
- Implement. Document the trigger, the owner and the cadence.
- Protect. Document the trigger, the owner and the cadence.
- Apply. Document the trigger, the owner and the cadence.
- Scope: tools, code-level security checks.
Evidence to collect
- Code Repo Scan. Source-control evidence — branch protection, required reviewers, CI status, SCA / SAST reports.
- Infra Scan. Continuous infrastructure-posture telemetry — AWS Config, Azure Policy compliance, GCP Organisation Policy, Wiz / Prisma findings.
Source control pipelines (GitHub, GitLab) enforce SDLC guardrails. Focus: Implement Code-Level Security Checks.
Common pitfalls
- CI security checks set to warn-only; the merge button is faster than the security feedback.
How it maps to other frameworks
Computed from shared tags, control component and key-operation subjects — handy when you are reconciling controls across an audit.
- NIST SP 800-171 Rev. 3 3.7.4 — Maintenance Tools
- NIST SP 800-53 Rev. 5 MA-3 — Maintenance Tools
- ISO/IEC 27001:2022 A.8.28 — Secure coding
- SOC 2 (2017 TSC) CC1.3 — Organizational Structure and Reporting Lines
- GDPR Article 97 — Commission reports
Related controls in CIS Controls v8
- Control 16.3 — Perform Root Cause Analysis on Security Vulnerabilities
- Control 16.13 — Conduct Application Penetration Testing
- Control 16.9 — Train Developers in Application Security Concepts and Secure Coding
- Control 14.6 — Train Workforce Members on Recognizing and Reporting Security Incidents
- Control 2.7 — Allowlist Authorized Scripts
References
- Center for Internet Security — CIS Controls v8
- Catalogue identifier:
Control 16.12
Topics: application securitysecure developmentcode review testingdevsecops