- Sections 2 and 3 explain risk-based tailoring, distributed responsibility, optional examples, and that table order does not imply sequence or relative importance.
NIST SP 800-218 SSDF the four practice groups explained
SSDF v1.1 contains 19 current practices and 42 tasks: five Prepare the Organization practices, three Protect the Software practices, eight Produce Well-Secured Software practices, and three Respond to Vulnerabilities practices.
The groups are not maturity levels or a sequence that ends at release. They form a connected lifecycle, and organizations tailor task applicability and implementation formality to risk.
Structured answer sets in this page tree.
Cited legal and guidance references.
SSDF v1.1 organizes secure software development into four : Prepare the Organization (PO), Protect the Software (PS), Produce Well-Secured Software (PW), and Respond to Vulnerabilities (RV). Each current practice contains one or more tasks, notional implementation examples, and references. The examples are optional and non-exhaustive. PW.3 appears in the table only as a retired identifier because Version 1.1 moved its work into other practices.
Prepare the Organization (PO): make secure development possible
PO establishes the organizational conditions that the other groups depend on. It covers requirements, roles and training, toolchains, security-check criteria, and protected development environments.
PO evidence should show that teams maintain requirements, assigned responsibilities, proficiency, toolchain controls, check criteria, and protected development environments. NIST leaves terms such as "qualified person," "sensitive data," and environment names to each organization to define for its own use case.
- PO.1 | Define and maintain internal and external security requirements for software development and organization-developed software.
- PO.2 | Define SDLC roles and responsibilities and provide role-based training.
- PO.3 | Specify, integrate, secure, monitor, and maintain supporting toolchains.
- PO.4 | Define criteria for software security checks and gather and safeguard the information needed to apply them.
- PO.5 | Separate and protect development environments and maintain their components and configurations.
Protect the Software (PS): preserve code and release trust
PS addresses unauthorized access and tampering across source code, executable code, configuration, and other software forms. It also gives acquirers ways to verify that a release is legitimate and has not been altered.
A software bill of materials (SBOM) can be part of provenance data under PS.3.2, but an SBOM alone does not prove release integrity, secure development, or conformance with every SSDF practice.
- PS.1 | Store code according to least privilege and protect it from unauthorized access and tampering.
- PS.2 | Make integrity-verification information, such as appropriately published cryptographic hashes or signatures, available to acquirers.
- PS.3 | Archive each release and collect, safeguard, maintain, and share provenance data for its components according to policy.
Produce Well-Secured Software (PW): build security into the product
PW covers design through release configuration. It combines risk modeling and design review with component governance, secure coding, build configuration, human-readable code analysis, executable testing, and secure defaults.
The tasks call for organization-defined decisions. For example, PW.8.1 asks whether executable-code testing should be performed and which testing types should be used; SSDF does not mandate one scanner, severity threshold, or universal release gate.
- PW.1-PW.2 | Model security risk, track requirements and design decisions, and review the design against them.
- PW.4 | Acquire and maintain well-secured components, create reusable internal components where appropriate, and verify acquired components against organization-defined requirements throughout their life cycles. Version 1.1 retired PW.3: it moved PW.3.1 to PO.1.3 and PW.3.2 to PW.4.5.
- PW.5-PW.6 | Follow appropriate secure coding practices and configure compilation, interpretation, and build processes to improve security.
- PW.7-PW.8 | Review or analyze human-readable code and determine, scope, perform, document, and triage executable-code testing.
- PW.9 | Configure software with secure settings by default and provide information that helps acquirers use the settings.
Respond to Vulnerabilities (RV): close the loop after release
RV keeps vulnerability handling connected to development. Producers gather reports from acquirers, users, and public sources; investigate credible reports; assess and prioritize vulnerabilities; remediate them; communicate to affected acquirers; and use root-cause analysis to prevent recurrence.
A vulnerability disclosure policy is only the intake surface. Evidence should also show investigation, prioritization, remediation, advisory or customer communication where appropriate, and feedback into requirements, design, code, toolchains, and tests.
- RV.1 | Gather vulnerability information continuously, investigate credible reports, and periodically identify software components with known vulnerabilities.
- RV.2 | Assess, prioritize, remediate, and communicate vulnerabilities, retaining the decisions and remediation evidence.
- RV.3 | Analyze root causes and feed the lessons into the SDLC to prevent similar vulnerabilities from recurring.
Tailor tasks without breaking the lifecycle
NIST expects the degree and formality of implementation to vary. It says risk, cost, feasibility, applicability, and automatability can affect selection and implementation. A useful tailoring record states why each task is relevant, not applicable, inherited, supplier-performed, or deferred.
Keep the groups connected: PO criteria govern PW checks; PS provenance informs PW component decisions and RV monitoring; RV root-cause findings update PO requirements and PW design, coding, and testing.
- Define the software, SDLC, release, environment, component, producer, supplier, and acquirer boundary.
- Disposition each of the 42 tasks and record risk rationale, owner, evidence, and any inherited responsibility.
- Use the task statement as the outcome; use NIST's examples and references as implementation options, not an exhaustive mandatory list.
- Reassess the mapping when architecture, toolchains, components, suppliers, threats, vulnerabilities, customer requirements, or authority changes.
Put this NIST SSDF guidance into practice
Choose a practice group, identify its current tasks, and trace the upstream requirements and downstream evidence needed to keep the groups connected.
Create cited tasks, evidence requests, and review checkpoints for this NIST SSDF scope.
Check group boundaries, task ownership, evidence gaps, and the handoffs among PO, PS, PW, and RV.