1.2 Protect the Software (PS)
1.2 Protect the Software (PS) Tasks for Code and Prebuild
Organizations should protect all components of their software from tampering and unauthorized access.
PS.1: Protect All Forms of Code from Unauthorized Access and Tampering
Help prevent unauthorized changes to code, both inadvertent and intentional, which could circumvent or negate the intended security characteristics of the software. For code that is not intended to be publicly accessible, this helps prevent theft of the software and may make it more difficult or time-consuming for attackers to find vulnerabilities in the software.
| Tasks | Tools |
|---|---|
|
PS.1.1:
Store all forms of code – including source code, executable code, and configuration-as-code – based on the principle of least privilege so that only authorized personnel, tools, services, etc. have access. Store all source code and configuration-as-code in a code repository, and restrict access to it based on the nature of the code. For example, open source code intended for public access may need its integrity and availability protected; other code may also need its confidentiality protected. |
GitHub Provides a centralized source code repository with access control, auditability, and workflow enforcement supporting SSDF practices for secure code management and change control. |
|
GitLab Delivers integrated source control, CI/CD, and security workflows that enable SSDF-aligned governance, traceability, and secure development processes. |
|
|
Bitbucket Supports SSDF by managing source code with role-based access, commit integrity options, and mandatory review workflows. |
|
|
SourceForge Hosts and distributes open-source projects with version control and release management supporting SSDF requirements for code provenance and transparency. |
|
|
Subversion Provides centralized version control enabling SSDF practices for change tracking, audit trails, and controlled access to source code. |
|
|
Git Enables immutable history, traceability, and distributed development workflows foundational to SSDF source integrity and accountability. |
|
|
GitBucket Offers Git-based repository hosting with access control and collaboration features supporting SSDF secure development governance. |
|
|
Gitea Provides lightweight, self-hosted Git repositories that support SSDF requirements for controlled source management and auditability. |
|
|
gittuf Strengthens SSDF compliance by enforcing cryptographic policies and verifiable trust metadata over Git repositories and workflows. |
|
|
GitHub Signing Commits Ensures SSDF-aligned source integrity by cryptographically verifying the identity of commit authors. |
|
|
Sigstore Enables SSDF-aligned artifact and commit verification through keyless, auditable cryptographic signing and transparency logs. |
|
|
Github CODEOWNERS Enforces SSDF role separation and accountability by requiring designated owners to review and approve code changes. |
|
|
GitHub Code Review Supports SSDF secure development by enforcing peer review, policy checks, and approval gates before code integration. |
|
|
Gitlab CODEOWNERS Implements SSDF responsibility assignment by automatically routing changes to accountable reviewers. |
|
|
Gitlab Code Review Guidelines Establishes SSDF-aligned review standards that reduce defects and security risks prior to merging code. |
PS.2 Provide a Mechanism for Verifying Software Release Integrity
Help software acquirers ensure that the software they acquire is legitimate and has not been tampered with.
| Tasks | Tools |
|---|---|
|
PS.2.1:
Make software integrity verification information available to software acquirers. Post cryptographic hashes for release files on a well-secured website. |
Apache Infrastructure Signing Releases Supports SSDF by ensuring that Apache software releases are cryptographically signed and verifiable, establishing trusted provenance and protecting against tampered distribution artifacts. |
|
OpenPGP Provides SSDF-aligned cryptographic mechanisms for signing and verifying code and artifacts to ensure authenticity, integrity, and non-repudiation. |
|
|
The GNU Privacy Guard Implements OpenPGP standards to enable SSDF practices for signing source code, commits, and releases with verifiable developer identity. |
|
|
Let's Encrypt Supports SSDF secure delivery by issuing free, automated TLS certificates that protect software distribution channels and developer services from interception and tampering. |
|
|
EJBCA Community Enables SSDF compliance by providing an open-source PKI for managing certificates used to authenticate developers, systems, and software artifacts. |
|
|
Dogtag Certificate System Supports SSDF trust and identity requirements by issuing and managing digital certificates for secure software signing and infrastructure authentication. |
|
|
OpenXPKI Provides SSDF-aligned certificate lifecycle management to establish, audit, and enforce trust across software development and release pipelines. |
|
|
Step-CA Enables SSDF automation of cryptographic identity by issuing short-lived certificates for developers, CI/CD systems, and software signing workflows. |
PS.3 Archive and Protect Each Software Release
Preserve software releases in order to help identify, analyze, and eliminate vulnerabilities discovered in the software after release.
| Tasks | Tools |
|---|---|
|
PS.3.1:
Securely archive the necessary files and supporting data (e.g., integrity verification information, provenance data) to be retained for each software release. Store the release files, associated images, etc. in repositories following the organization’s established policy. Allow read-only access to them by necessary personnel and no access by anyone else. |
Access Permissions on GitHub Enforces SSDF role-based access control by restricting who can view, modify, or administer source code repositories. |
|
GitLab Roles and Permissions Supports SSDF governance by defining granular roles that enforce least privilege and separation of duties across the SDLC. |
|
|
GitHub Repository Roles for an Organization Implements SSDF organizational controls by standardizing permission levels across teams and repositories. |
|
|
GitLab Roles and Permissions Implements SSDF organizational controls by standardizing permission levels across teams and repositories. |
|
|
Ortelius Extends SSDF controls beyond source code by enforcing access, traceability, and accountability over deployed software, SBOMs, and live environment metadata through a deployment-centric digital twin. |
|
|
PS.3.2:
Collect, safeguard, maintain, and share provenance data for all components of each software release (e.g., in a Software Bill of Materials (SBOM)). Make the provenance data available to software acquirers in accordance with the organization’s policies, preferably using standards-based formats. |
AI SBOM Generator Supports SSDF by automatically generating and maintaining accurate software bills of materials that improve component visibility and vulnerability traceability across the SDLC. |
|
CycloneDX Enables SSDF-aligned component transparency by providing a standardized SBOM format optimized for security, integrity, and risk analysis. |
|
|
Software Identification (SWID) Tagging Tools and Utilities Support SSDF practices by uniquely identifying installed software components to enable asset inventory, provenance tracking, and vulnerability correlation. | |
|
SPDX Provides an SSDF-compliant standard for documenting software components, licenses, and relationships to support supply-chain transparency and compliance. |
bomctl Supports SSDF SBOM consumption by validating, querying, and managing SBOMs throughout build and release workflows. |
|
OWASP Dependency-Check Enables SSDF vulnerability detection by identifying known CVEs in third-party dependencies during development and build phases. | |
|
Dependency-Track Supports SSDF risk management by continuously analyzing SBOMs to monitor component vulnerabilities and policy compliance. |
|
|
Clair Contributes to SSDF by scanning container images for known vulnerabilities prior to deployment. |
|
|
Grype Supports SSDF secure build practices by detecting known vulnerabilities in container images and file systems using SBOM data. |
|
|
Ortelius Extends SSDF beyond build time by correlating and aggregating SBOMs, vulnerabilities, and deployment metadata to identify which live environments are actually at risk. |
|
|
Protobom Supports SSDF interoperability by providing reusable libraries and tools for generating and transforming SBOMs across formats. |
|
|
Syft Enables SSDF component discovery by generating SBOMs from source code, containers, and runtime artifacts. |
|
|
Hoppr Supports SSDF SBOM sharing and discovery by enabling secure distribution and retrieval of SBOM artifacts. |
|
|
Tern Contributes to SSDF transparency by analyzing container images to produce detailed component inventories and SBOMs. |
|
|
Trivy Supports SSDF secure development by scanning for vulnerabilities, misconfigurations, and exposed secrets across code and artifacts. |
|
|
aoss-verifier Enables SSDF compliance validation by verifying the integrity and authenticity of open-source artifacts. |
|
|
Sigstore Supports SSDF provenance by enabling cryptographically verifiable signing of artifacts and SBOMs with transparency logs. |
|
|
TLSNotary Protocol Contributes to SSDF trust by providing cryptographic proof of data integrity for externally retrieved security and dependency metadata. |
|
|
GitHub Actions Enables SSDF automation by embedding security checks, SBOM generation, and policy enforcement directly into CI workflows. |
|
| GitLab CI/CDSupports SSDF secure pipelines by integrating build, test, scan, and release controls within a governed CI/CD system. | |
|
Jenkins Jenkins is a fully open-source automation server, released under the MIT License, with an extensible plugin ecosystem governed by the Jenkins community and widely used to implement SSDF-aligned CI/CD security controls. |
|
|
Updatecli Supports SSDF remediation by automating dependency, configuration, and policy updates in a controlled and auditable manner. |
|
|
Renovate Enables SSDF secure maintenance by automatically updating vulnerable dependencies while preserving review and approval controls. |