1.2 Protect the Software (PS)

1.2 Protect the Software (PS) Phase 1 Tasks

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.