This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Phase 2: Build and Deploy

Security Compliance for Build and Deploy

Introduction

As software moves from development to production, the build and deploy stages play a pivotal role in maintaining the integrity, security, and provenance of your application. These phases involve compiling, packaging, and preparing your application for its live environment, making them prime targets for supply chain attacks, unauthorized modifications, and hidden vulnerabilities.

Integrating security into these phases ensures that your code is not only functional but also safeguarded against threats. From dynamic analysis during builds to automated scans for container security and misconfigurations, the right tools can help identify risks before deployment. Moreover, secure deployment pipelines prevent unauthorized changes, enforce compliance, and enable safe rollouts. Compliance for Build and Deploy steps include:

Reproducible and Deterministic Builds Ensure that software artifacts can be independently verified and reproduced to prevent tampering.
Automated Threat Detection and Compliance Enforcement Integrate continuous security analysis to detect misconfigurations, vulnerabilities, and unauthorized dependencies before deployment.
Policy-Enforced Deployments Enforce verifiable security policies ensuring only compliant, attested software reaches production.
Trusted Execution Environments (TEEs) Secure build environments against tampering using hardware-backed execution environments.
Cryptographic Attestation Use digital signatures and cryptographic proofs to verify the authenticity and integrity of builds and deployments.

Following are guidelines from industry frameworks with suggested open source tooling needed to achieve the compliance goals.

1 - Secure Software Development Framework

Secure Software Development Framework and Build/Deploy CI/CD Steps

Achieving Build and Deploy Tasks of the Secure Software Development Framework

The Secure Software Development Framework, developed by the National Institute of Standards and Technology (NIST), provides a comprehensive approach to ensuring security across the software development process, from initial design through deployment and maintenance. The framework outlines key practices and guidelines that organizations can implement to secure their software development lifecycle (SDLC), with a particular emphasis on integrating security into automated processes. This chapter focuses specifically on DevSecOps tooling and practices related to Build and Deploy actions of the CI/CD pipeline to achieve:

Prepare the Organization (PO) Organizations should ensure that their people, processes, and technology are prepared to perform secure software development at the organization level. Many organizations will find some PO practices to also be applicable to subsets of their software development, like individual development groups or projects.
Protect the Software (PS) Organizations should protect all components of their software from tampering and unauthorized access.
Produce Well-Secured Software (PW) Organizations should produce well-secured software with minimal security vulnerabilities in its releases.
Respond to Vulnerabilities (RV) Organizations should identify residual vulnerabilities in their software releases and respond appropriately to address those vulnerabilities and prevent similar ones from occurring in the future.

1.1 - Protect the Organization (PO)

Protect the Organization (PO) for the Build and Deploy CI/CD Steps

Protect the Organization (PO)

Organizations should ensure that their people, processes, and technology are prepared to perform secure software development at the organization level. Many organizations will find some PO practices to also be applicable to subsets of their software development, like individual development groups or projects.


PO.1 Define Security Requirements for Software Development: Ensure that security requirements for software development are known at all times so that they can be taken into account throughout the SDLC and duplication of effort can be minimized because the requirements information can be collected once and shared. This includes requirements from internal sources (e.g., the organization’s policies, business objectives, and risk management strategy) and external sources (e.g., applicable laws and regulations).


To satisfy SSDF PO.1 in a Build and Deploy context using open-source tools, the focus shifts from just defining to:

  • Enforcing security policies on dependencies, code, and configurations.

  • Verifying compliance with established security baselines before deployment.

  • Ensuring artifacts meet DoD, NIST, or organizational security requirements.


Tasks Tools

P.O.1.1: Identify and document all security requirements for the organization’s software development infrastructures and processes, and maintain the requirements over time.


PO.1.2 Identify and document all security requirements for organization-developed software to meet, and maintain the requirements over time.

Open Policy Agent

Enforces security and compliance policies during build and deployment (e.g., blocking deployments if SBOM scan fails).

Conftest

Uses OPA’s Rego language to test Kubernetes manifests, Terraform, and Dockerfiles against predefined security requirements.

InSpec

Tests infrastructure and deployed applications against compliance frameworks (e.g., CIS Benchmarks, NIST 800-53).

Kyverno

Kubernetes-native policy engine to enforce secure configurations at deploy time.

Checkov

Scans Infrastructure-as-Code (IaC) during build to ensure compliance with security requirements before deploy

Trivy

Scans container images, IaC, and SBOMs for vulnerabilities and misconfigurations before deployment.

Clair

Static analysis for container images to ensure they meet security requirements before push to registry.

Grype

Vulnerability scanning for container images and filesystems to validate artifacts against policy before deploy.

Sigstore Cosign

OPA-based admission controller to enforce compliance on Kubernetes clusters before allowing deployment.

PO.2

Implement Roles and Responsibilities: Ensure that everyone inside and outside of the organization involved in the SDLC is prepared to perform their SDLC-related roles and responsibilities throughout the SDLC.


To satisfy SSDF PO.2 in a Build and Deploy context using open-source tools, the focus shifts to:

  • Enforcing role-based access control (RBAC) to limit who can trigger builds, approve changes, and deploy.

  • Providing audit logs and traceability of actions for accountability.

  • Ensuring code changes and deployments are reviewed by authorized personnel.


Tasks Tools
PO.2.1: Create new roles and alter responsibilities for existing roles as needed to encompass all parts of the SDLC. Periodically review and maintain the defined roles and responsibilities, updating them as needed.


PO.2.2: Provide role-based training for all personnel with responsibilities that contribute to secure development. Periodically review personnel proficiency and role-based training, and update the training as needed


PO.2.3: Obtain upper management or authorizing official commitment to secure development, and convey that commitment to all with development related roles and responsibilities.

Keycloak

Open-source identity and access management for enforcing RBAC in CI/CD pipelines and deployment tools.

Dex

Federated OpenID Connect provider to integrate developer identities into build and deploy systems for role-based access.

Vault by HashiCorp

Securely manages and controls access to secrets based on defined roles during builds and deployments.

Argo CD

GitOps deployment tool with RBAC to control who can sync, approve, or rollback deployments.

Jenkins with Role Strategy Plugin

Adds fine-grained RBAC to Jenkins pipelines, limiting build and deployment actions to authorized roles.

Tekton Pipelines

Kubernetes-native CI/CD with Kubernetes RBAC to control pipeline execution permissions.

Flux CD

GitOps tool enforcing RBAC for deployment workflows and requiring approvals for changes.

Kubernetes RBAC

Built-in access control to restrict who can deploy, modify, or delete workloads.

Gitea

Self-hosted Git service with user roles and repository permissions to enforce approval and review workflows.

Auditbeat

Provides audit logging for build and deploy actions, helping track compliance with assigned responsibilities.

PO.3

Implement Supporting Toolchains: Use automation to reduce human effort and improve the accuracy, reproducibility, usability, and comprehensiveness of security practices throughout the SDLC, as well as provide a way to document and demonstrate the use of these practices. Toolchains and tools may be used at different levels of the organization, such as organization-wide or project-specific, and may address a particular part of the SDLC, like a build pipeline.


To satisfy SSDF PO.3 in a Build and Deploy context using open-source tools, the focus shifts to:

  • Ensuring build and deployment tools are configured securely and kept patched.

  • Protecting against supply chain attacks targeting the CI/CD pipeline.

  • Verifying the integrity of tools and artifacts before use.

  • Controlling and monitoring access to toolchains.


Tasks Tools
PO.3.1: Specify which tools or tool types must or should be included in each toolchain to mitigate identified risks, as well as how the toolchain components are to be integrated with each other.


PO.3.2: Follow recommended security practices to deploy, operate, and maintain tools and toolchains.


PO.3.3: Configure tools to generate artifacts6 of their support of secure software development practices as defined by the organization.

Sigstore Cosign

Signs and verifies build artifacts to prevent deploying tampered software.

SLSA Framework + slsa-verifier

Ensures build provenance and verifies the integrity of artifacts before deploy.

Gitleaks

Scans repos and build pipelines for secrets before build execution.

Argo CD

GitOps deployment tool with RBAC to control who can sync, approve, or rollback deployments.

Trivy

Scans CI/CD tool containers and dependencies for vulnerabilities.

Syft

Generates SBOMs for build artifacts to track components used in the toolchain.

Clair

Analyzes container images used in builds/deploys for vulnerabilities.

Vault by HashiCorp

Protects secrets used by build/deploy tools, ensuring they’re not exposed in pipelines.

DefectDojo

Centralizes and tracks security testing results for build and deploy toolchains.

Open Policy Agent (OPA)

agent.org/ Enforces security rules on CI/CD and deployment workflows to prevent unsafe actions

Auditbeat

Monitors and logs CI/CD toolchain activity for integrity and compliance.

PO.4 Define and Use Criteria for Software Security Checks: Help ensure that the software resulting from the SDLC meets the organization’s expectations by defining and using criteria for checking the software’s security during development.


To satisfy SSDF PO.4 in a Build and Deploy context using open-source tools, the focus shifts to:

  • Applying consistent security testing and validation practices before release.

  • Automating security checks in CI/CD pipelines.

  • Using standardized processes for verifying, signing, and tracking artifacts.

  • Integrating security gates so no insecure artifact is deployed.


Tasks Tools
PO.4.1: Define criteria for software security checks and track throughout the SDLC.


PO.4.2: Implement processes, mechanisms, etc. to gather and safeguard the necessary information in support of the criteria.


OWASP Dependency-Check

Automates open-source dependency scanning in builds to enforce consistent vulnerability detection.

Semgrep

Static analysis integrated into builds to ensure consistent code security checks before deploy.

Bandit (for Python)

Python security linting in build pipelines to maintain consistent language-specific checks.

Trivy

Consistent vulnerability and IaC scanning before deployment.

Grype

Maintains consistent vulnerability scanning for all build artifacts.

InSpec

Automates compliance checks before deployment to ensure practices match organizational standards.

Sigstore Cosign

Standardizes artifact signing and verification so only trusted builds are deployed.

Open Policy Agent (OPA)

Enforces organization-wide deployment policies across all environments.

DefectDojo

Centralizes and standardizes vulnerability tracking and remediation workflows across builds.

PO.5 Implement and Maintain Secure Environments for Software Development: Ensure that all components of the environments for software development are strongly protected from internal and external threats to prevent compromises of the environments or the software being developed or maintained within them. Examples of environments for software development include development, build, test, and distribution environments.


To satisfy SSDF PO.5 in a Build and Deploy context using open-source tools, the focus shifts to:

  • Protecting CI/CD infrastructure from internal and external threats.

  • Hardening build servers, container registries, and deployment systems.

  • Ensuring build and deploy environments are patched, monitored, and access-controlled.

  • Preventing malicious code or tampering in the software supply chain.


Tasks Tools
PO.5.1: PO.5.1: Separate and protect each environment involved in software development.


PO.5.2: Secure and harden development endpoints (i.e., endpoints for software designers, developers, testers, builders, etc.) to perform development-related tasks using a risk-based approach.


Jenkins Configuration as Code + Role Strategy Plugin

Secures Jenkins build servers with codified configs and RBAC to limit access to critical build jobs.

Tekton Pipelines

GitOps deployment with RBAC and signed commit enforcement for production deploys.

Argo CD

GitOps deployment with RBAC and signed commit enforcement for production deploys.

Vault by HashiCorp

Protects secrets in build and deploy environments, preventing leakage in pipelines

Sigstore Cosign

Signs build artifacts and verifies them before deployment to ensure no tampering occurred.

In-toto

Provides end-to-end software supply chain security, ensuring each step in build/deploy is signed and verified.

Inspec

Runs ongoing compliance scans against development and build servers; enforce CIS/NIST benchmarks.

SLSA + slsa-verifier

Verifies build provenance, ensuring artifacts come from a trusted, uncompromised build environment.

Trivy

Scans build/deploy infrastructure containers and images for vulnerabilities and misconfigurations.

Falco

Runtime security for build and deploy environments to detect malicious behavior or unauthorized activity.

Auditbeat

Monitors build and deploy servers for file integrity changes, unauthorized access, and security events

Kyverno

Enforces Kubernetes security policies in deployment environments (e.g., no privileged pods).

1.2 - Protect the Software (PS)

Protect the Software (PS) for Build and Deploy CI/CD Steps

Protect the Software (PS)

Protect the Software (PS): 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.


To satisfy SSDF PS.1 in a build and deploy context using open-source tools, the focus shifts from just defining to:

  • Secure the CI/CD pipeline itself – ensure only trusted, authenticated processes can produce build outputs.

  • Protect source inputs and dependencies, lock versions, use checksums, and prevent injection of malicious code into the build process.

  • Sign artifacts and record provenance, generate cryptographically verifiable metadata proving what was built, from which source, and by whom.

  • Enforce reproducible builds so that any tampering results in a hash/signature mismatch.

  • Restrict build system access and enforce role-based permissions, MFA, and least privilege for build servers

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.

cosign Sigstore

Sign build outputs (binaries, containers, SBOMs) and create attestations; verify in CI before promotion.

Git signed commits/tags

Require signed commits/tags and reject unsigned in CI to prevent unauthorized code from entering builds.

Sigstore Fulcio + Rekor

Issue short-lived certs (Fulcio) and record signatures/attestations in a transparency log (Rekor) to detect/trace tampering.

SLSA provenance (generators + verifier)

Emit and sign build provenance; verify who/what/where built the artifact before it can ship.

In-toto

Define a supply-chain layout and verify each step’s materials/products to ensure nothing was tampered across the pipeline.

Tekton Chains

Automatically sign task results (images, files) in Tekton pipelines and store attestations (e.g., in Rekor).

Notation (CNCF Notary v2)

Sign OCI artifacts (images, Helm charts) during build for later verification in registries and clusters.

Nix

Lock inputs and make builds deterministic so unauthorized changes are detectable by hash/provenance mismatch.

Bazel

Lock inputs and make builds deterministic so unauthorized changes are detectable by hash/provenance mismatch.

Grafeas

Persist signatures, SBOMs, and policy metadata to audit build integrity across services..

Harbor

Enforce content trust, robot accounts, and policy on who can push/pull; require signed artifacts before release..

Sigstore Policy Controller

Admission controller that blocks unsigned/incorrectly signed images; enforces key/issuer/subject policies.

Kyverno

Kubernetes policies that require image signatures, pin by digest, and forbid mutable tags in deployments.

OPA Gatekeeper

Gate deployments with custom policies (e.g., “only signed images from approved registries/namespaces”).

Ratify

Verifies OCI signatures/attestations (Cosign/Notation) at admission time and blocks anything that fails verification.

Connaisseur

Kubernetes admission controller dedicated to verifying container image signatures before scheduling.

Sigstore Cosign

Verify signatures/attestations as a release gate in your CD pipeline prior to applying manifests.

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. Make software integrity verification information available to software acquirers.


To satisfy SSDF PS.2 in a build and deploy context using open-source tools, the focus shifts to:

  • Generate integrity artifacts for every release

  • Bind artifacts to versioned source

  • Publish verification materials

  • Require integrity checks as a release gate

  • Expose verification data to consumers

  • Admission control based on integrity


Tasks Tools
PS.2.1: Make software integrity verification information available to software acquirers.
cosign Sigstore

Sign binaries, container images, SBOMs, and attestations during build; supports keyless signing.

Git signed commits/tags

Sign release tags to cryptographically tie the source to the built artifact.

Sigstore Fulcio + Rekor

Fulcio issues ephemeral signing certs; Rekor logs all signatures in a tamper-evident transparency log for downstream verification.

SLSA provenance (generators + verifier)

Automatically generate provenance metadata describing build origin, inputs, and process. Validates provenance files to ensure artifact integrity before distribution.

In-toto

Defines a verifiable software supply chain layout; creates link metadata proving each build step.

Grafeas

Stores metadata (signatures, checksums, SBOMs) so it can be queried for verification.

GNU Coreutils / sha256sum

Create and publish checksums for release artifacts so recipients can manually or automatically verify integrity.

Harbor

Enforce content trust; ensure only signed images are stored and distributed with policy on who can push/pull; require signed artifacts before release.

Sigstore Policy Controller

Kubernetes admission controller enforcing signature/provenance policies before deployment. Admission controller that blocks unsigned/incorrectly signed images; enforces key/issuer/subject policies.

Kyverno

Kubernetes policies that require image signatures, pin by digest, and forbid mutable tags in deployments. Validates signatures and digests for container images before they are deployed.

OPA Gatekeeper

Custom admission control to enforce artifact integrity and trusted signer policies.

Ratify

Pluggable verification framework for OCI registries/images; works with Cosign, Notation, in-toto.

Connaisseur

Kubernetes admission controller dedicated to signature verification and image trust policies.

Notation

Signs OCI artifacts (containers, Helm charts) and verifies them prior to install or deployment.

Sigstore Cosign

Used in CD pipelines or admission hooks to verify signatures and attestations match trusted keys/policies before promotion.

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.


To satisfy SSDF PS.3 in a build and deploy context using open-source tools, the focus shifts to:

  • Build: The emphasis is on capturing, storing, and securing every official release (source, binaries, SBOM, signatures, provenance) in immutable, versioned storage.

  • Deploy: The emphasis is on ensuring only those archived, protected releases are used in production with immutability, digest pinning, and signature/provenance verification as enforcement mechanisms.

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.


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]).

Git (Release Tagging)

Create immutable, signed tags for each release; preserves source snapshot for auditing

Git LFS

Store large binary release artifacts alongside source with integrity checks.

Nexus Repository OSS

OSS Host and version control release artifacts (JARs, binaries, containers) with role-based access and checksum validation.

JFrog Artifactory OSS

Archive build outputs in a controlled, versioned repository; supports checksums and retention policies.

Harbor

Store container images with vulnerability scanning, RBAC, and signed content trust to preserve release integrity. Enforce immutable tags and prevent overwrites so deployed artifacts can always be traced back to the archived copy.

OSS Review Toolkit

(ORT) Archive SBOMs, license files, and vulnerability reports alongside the release for compliance/audit.

Sigstore Cosign

Sign release artifacts before archiving so integrity can be checked later.

Kyverno

Enforce digest-pinned images to ensure deployments always match archived release versions.

OPA Gatekeeper

Policy enforcement to ensure only archived, approved artifacts are deployed.

Ratify

Verifies artifact signatures/attestations against archived release metadata before deployment..

Connaisseur

Admission controller that enforces deployment of only signed images from the archived se

Backblaze B2 / Rclone (OSS integration)

Long-term archival of deployed artifact versions for rollback or investigation.

SLSA Provenance + Rekor

Retain build provenance in a transparency log so deployed releases can be cross-verified with archived originals

1.3 - Produce Well-Secured Software (PW)

Produce Well-Secured Software (PW) in the Build and Deploy CI/CD Steps

Produce Well-Secured Software (PW)

Organizations should produce well-secured software with minimal security vulnerabilities in its releases.


PW.1

Design Software to Meet Security Requirements and Mitigate Security Risks: Identify and evaluate the security requirements for the software; determine what security risks the software is likely to face during operation and how the software’s design and architecture should mitigate those risks; and justify any cases where risk-based analysis indicates that security requirements should be relaxed or waived. Addressing security requirements and risks during software design (secure by design) is key for improving software security and also helps improve development efficiency.


To satisfy SSDF PW.1 in a build and deploy context using open-source tools, the focus shifts to:

  • Embedding security controls directly into the build process

  • Validating that build outputs (binaries, containers, packages) are hardened and free from known design-level weaknesses

  • Preserving traceability from design requirements to deployed artifacts

Tasks Tools

PW.1.1: Use forms of risk modeling, such as threat modeling, attack modeling, or attack surface mapping to help assess the security risk for the software.


PW.1.2: Track and maintain the software’s security requirements, risks, and design decisions.


PW.1.3: Where appropriate, build in support for using standardized security features and services (e.g., enabling software to integrate with existing log management, identity management, access control, and vulnerability management systems) instead of creating proprietary implementations of security features and services.

Semgrep

Prevents insecure code from being packaged and deployed.

Trivy

Ensures that deployed artifacts align with secure baseline configurations

Zap (Zed Attack Proxy)

Enforces approved component lists and security baselines before deployment.

Syft

Generates SBOMs for deployed applications for ongoing monitoring.

OWASP Dependency-Track

Enforces approved component lists and security baselines before deployment.

Grype

Focused vulnerability scanning for deployed artifacts.

Nix

Guarantees that build artifacts match the security-approved design exactly, with no drift or environmental differences.

GNU Guix

Ensures that all deployed artifacts are built from a traceable, verifiable environment that aligns with design security baselines.

Bazel

Enforces secure build rules, prevents unauthorized changes, and produces identical outputs across build agents.

Reproducible Builds Framework

Strengthens supply chain security by detecting unauthorized modifications between source and deployment.

Apko (Chainguard)

Implements secure design principles like minimal attack surface and verified dependency selection.

Sigstore(Cosign,Fulcio, Rekor)

Ensures artifacts come from a trusted, verified build process and haven’t been altered.

Notary

Provides cryptographic assurance that deployed artifacts are authentic and untampered.

In-Toto

Enforces integrity and accountability across the entire build-to-deploy pipeline.

The Update Framework (TUF)

Protects the integrity of deployment and update distribution channels.

OpenSSL

Generate and manage keys for signing build artifacts. Implement TLS/SSL for secure communication between build agents and artifact repositories.

GnuPG

Sign source code, commits, and build outputs and verify signatures before deploying artifacts.

Bouncy Castle

Embed cryptographic signing and verification into Java/.NET build pipelines.

Keylime

Validate that deployment environments meet hardware-based integrity requirements before deployment.

Ethereum Attestation Service (EAS)

Publish cryptographic attestations of build provenance or deployment approvals and provide a decentralized, tamper-proof audit log of artifact trust data.

Kyverno

Enforce secure deployment design policies (e.g., approved base images, disallowed configurations).

OPA

Enforce security design requirements at build time (e.g., dependency approval, CVE thresholds). Apply consistent policy enforcement from build pipelines to runtime.

SPIFFE/SPIRE

Ensure that deployed workloads meet security requirements for mutual authentication and zero trust and bind workload identity to build-time provenance for deployment integrity.

OWASP Threat Dragon

Embeds threat models into CI/CD, ensuring security requirements are tied to architectural components before build. (Meets PW.1.1 and PW.1.2)

OWASP Amass

Helps to refine security requirements around network exposure and asset inventory. (Meets PW.1.1)

CAIRIS

Integrates security requirements into system models, which can then be validated in build & deploy. (Meets PW.1.1)

Threagile

Embeds threat models into CI/CD, ensuring security requirements are tied to architectural components before build. (Meets PW.1.1)

Open-Needs

Requirements management tool for defining, tracking, and validating security requirements. Documents security requirements and links them to commits and build outputs.(Meets PW.1.1 and PW.1.2)

rmtoo

Requirements management tool using plain text and version control for traceability. Supports traceability from design through build, ensuring requirements are carried into final artifacts.(Meets PW.1.2)

OpenRMF® OSS

Open-source compliance and risk management framework tool for tracking RMF (NIST 800-37) controls. Security requirements map to formal compliance controls that can be verified in build & deploy artifacts. (Meets PW1.2)

PW.2

Review the Software Design to Verify Compliance with Security Requirements and Risk Information:Help ensure that the software will meet the security requirements and satisfactorily address the identified risk information.


To satisfy SSDF PW.2 in a the build and deploy context using open-source tools, the is:

  • Validating security architecture decisions before deploying

  • Reviewing IaC and CI/CD configs to ensure they meet security baselines

  • Enforcing design rules automatically in build pipelines

  • atching misconfigurations and security gaps before release

Tasks Tools

PW.2.1: Have 1) a qualified person (or people) who were not involved with the design and/or 2) automated processes instantiated in the toolchain review the software design to confirm and enforce that it meets all of the security requirements and satisfactorily addresses the identified risk information.

OPA

Automated design compliance gate in CI/CD

Kyverno

Validates deployment configurations match approved security architecture.

Checkov

Enforce network segmentation rules, encryption requirements, and secure defaults.

KICS (Keeping Infrastructure as Code Secure)

Adds IaC review automation to the build process.

Semgrep

Automated code review for alignment with security design requirements.

Trivy (Config Scanning)

Config compliance verification before deploying.

ThreatSpec

Ensures threat model-driven design requirements are implemented.

Cartography

Post-build/pre-deploy architecture verification. Detect deviations from intended architecture.

kube-score

Review Kubernetes manifests for design compliance before deployment.Ensures pod security settings match approved deployment designs.

Dependabot

Automated dependency update PRs with vulnerability alerts. Helps verify dependencies meet security requirements (e.g., no known CVEs, minimum versions).

OpenRMF

Open Risk Management Framework tracking tool. Can map design-level security requirements to NIST 800-53 controls and verify those controls are implemented in build configs.

ESLint

Runs in CI/CD pipelines or as a pre-commit hook to block merges if code violates the approved security or architectural rules before build.

Grype

SBOM-driven vulnerability scanner for images/filesystems. Validates that dependencies in the build match security baselines and are free from disallowed components.

Clair

Static vulnerability analysis for container images. Confirms final images meet design security requirements before deployment.

Terrascan

IaC scanning and policy enforcement (OPA-based). Enforces approved security design in Terraform, Kubernetes, Docker, and AWS CloudFormation configs before deploy.

Gerrit

Code review and approval workflow tool. Enforces human review against design and security requirements before merge to release branches.


PW.4

Reuse Existing, Well-Secured Software When Feasible Instead of Duplicating Functionality : Lower the costs of software development, expedite software development, and decrease the likelihood of introducing additional security vulnerabilities into the software by reusing software modules and services that have already had their security posture checked. This is particularly important for software that implements security functionality, such as cryptographic modules and protocols.


Note: PW.3 moved to PW.4


To satisfy SSDF PW.4 in a build and deploy context using open-source tools, the focus shifts to:

  • Baking secure defaults into application code, containers, and deployment manifests

  • Removing insecure, legacy, or unnecessary features from build artifacts

  • Automatically applying baseline security settings during deployment

  • Enforcing hardening standards before release

Tasks Tools

PW.4.1: Acquire and maintain well-secured software components (e.g., software libraries, modules, middleware, frameworks) from commercial, opensource, and other third-party developers for use by the organization’s software.


PW.4.2: Create and maintain well-secured software components in-house following SDLC processes to meet common internal software development needs that cannot be better met by third-party software components.


PW.4.3: Moved to PW.1.3


PW.4.4: Verify that acquired commercial, open-source, and all other third-party software components comply with the requirements, as defined by the organization, throughout their life cycles.

Kyverno

Ensures manifests meet secure baseline defaults before deployment.

OPA

Validates default configurations meet security requirements.

Checkovn

Detects and blocks insecure defaults in Terraform, Helm, or CloudFormation before release.

KICS (Keeping Infrastructure as Code Secure)

Validates hardened defaults in cloud infrastructure provisioning.

Trivy

Automated config compliance check during CI/CD.

CIS-CAT Lite

Automates compliance testing for secure defaults.

DevSec Hardening Framework

Bakes hardened defaults into container or VM images before release.

kube-score

Pre-deployment validation of secure defaults in manifests.

OpenSCAP

Ensures deployed OS images meet hardened defaults.

CycloneDX

SBOM format for documenting exact components/configurations in final build; helps verify secure defaults are present.

SPDX

SBOM standard to record all components, licenses, and provenance; can confirm inclusion of hardened dependencies.

ArtifactHub

Catalog of verified Helm charts, OLM operators, etc.; can enforce use of curated, secure-by-default packages.

JFrog Artifactory OSS

Repository manager for storing signed, verified artifacts with access controls.

Sonartype Nexus OSS

Host artifacts and enforce policy checks before they’re promoted.

Harbor

OCI registry with vulnerability scanning, content signing, and policy enforcement for images.

GitLab Signing

Commit/tag signing in GitLab CE for provenance.

GitHub CodeQL

Detects code patterns violating security requirements.

AquaSec Trivy

Scans container images, IaC, and configs for insecure defaults.

Allstar

GitHub App enforcing security policies in repos.

OWASP SAMM

Security maturity model to guide secure default practices.

OWASP ASVS

Application security requirements to verify secure defaults.

OWASP Defectdojo

Central vulnerability tracking; ensures issues found in builds are fixed before release.

OWASP Dependency-Check

Detects known-vulnerable dependencies in builds.

Gitea

Self-hosted Git service with signing/policy support.

GitLab (Community Edition)

Git platform with signing, scanning, CI/CD policy integration.

Pytest

Automated testing to confirm defaults work.

Selenium

Functional/UI test automation to verify secure settings.

Playwright

Functional/UI test automation to verify secure settings.

OWASP ZAP

DAST scanner to verify app defaults are not exploitable.

TestNG

Java test framework for security/functional checks

Cucumber

BDD framework for verifying functional + security requirements.

Clair

Image vulnerability scanner for OCI registries.

Grype

SBOM-driven vuln scanner for builds and images

Bandit for Python

Detects insecure code patterns/defaults in Python.

Semgrep

Finds policy-violating patterns in code.

Brakeman

Detects Rails-specific security issues/defaults.

Gitleaks

Detects secrets in code (prevents default creds exposure).

TruffleHog

Finds secrets in repos/history to avoid insecure defaults.

OWASP Dependency-Check

Detects known-vulnerable dependencies in builds.>

OSS Review Toolkit (ORT)

Automates license/security checks; blocks noncompliant components.

FOSSA (Community Edition)

License/dependency scanning; ensures compliance with default policies.

ScanCode Toolkit

Detects license, copyright, and security metadata in artifacts.

Tern

Container image inspection for dependency/component details.

Open Policy Agent (OPA)

Policy-as-code for build & deploy; blocks insecure defaults in configs/manifests.

PW.5

Create Source Code by Adhering to Secure Coding Practices: Decrease the number of security vulnerabilities in the software, and reduce costs by minimizing vulnerabilities introduced during source code creation that meet or exceed organization-defined vulnerability severity criteria.


To satisfy SSDF PW.5 in a build and deploy context using open-source tools, the focus shifts to:

  • Software artifacts are stored in secure, controlled repositories.

  • Only approved, verified builds get stored and deployed.

  • Repository access is restricted and auditable.

  • Provenance and integrity checks are enforced before artifacts are accepted or deployed.

Tasks Tools

PW.5.1: Follow all secure coding practices that are appropriate to the development languages and environment to meet the organization’s requirements.

Artifactory Community Edition

Acts as the central trusted artifact repository.

Nexus Repository OSS

Acts as the central trusted artifact repository.

Harbor

Acts as the central trusted artifact repository.

Sigstore(Cosign,Fulcio, Rekor)

Ensures repository contents are authentic and tamper-free.

Clair

Ensures stored artifacts meet vulnerability requirements before deployment

In-Toto

Enforces provenance checks at repository ingestion.

The Update Framework (TUF)

Protects against repository and update tampering.

Notary (v2)

Controls supply chain intake and internal artifact storage.

Tekton Chains

Ties repository artifacts back to secure build pipelines.

Semgrep

Runs as part of the CI pipeline to automatically scan code for security flaws, policy violations, and unsafe patterns before artifacts are built. Supports rule-as-code to enforce secure build policies.

Bandit for Python

Python-focused static analyzer that checks for insecure functions, weak crypto, and common security issues before packaging or deployment.

FindBugs

Legacy Java static analysis; can be used to flag known insecure code patterns before build. Superseded by SpotBugs.

SpotBugs

Modern replacement for FindBugs. Java bytecode scanner to enforce safe code practices before compiling final artifacts.

SonarQube

Comprehensive SAST platform; can be integrated in CI/CD to enforce quality gates, stopping builds that fail security rules.

OWASP ZAP

Runs against built/staged applications in pre-deployment environments to detect exploitable vulnerabilities, ensuring no insecure version is promoted.

Arachni

Web application vulnerability scanner that can be part of a build’s QA stage to ensure secure release readiness.

OWASP Dependency-Check

Scans for known-vulnerable dependencies in the build, blocking insecure versions from being deployed.

PW.6

Configure the Compilation, Interpreter, and Build Processes to Improve Executable Security: Decrease the number of security vulnerabilities in the software and reduce costs by eliminating vulnerabilities before testing occurs.


To satisfy SSDF PW.6 in a build and deploy context using open-source tools, the focus shifts to make security testing continuous and automatic so every build and every deployment candidate is evaluated against a security bar, with evidence captured for audit and release gates.:

Tasks Tools

PW.6.1: Use compiler, interpreter, and build tools that offer features to improve executable security.


PW.6.2: Determine which compiler, interpreter, and build tool features should be used and how each should be configured, then implement and use the approved configurations.

Semgrep

Fast rule-based SAST with CI integration.

SonarQube Community

General code quality + basic security rules.

Bandit

Python SAST linters.

Gosec

Go SAST linters.

Brakeman

Rails SAST linters.

FindSecBugs

Java SAST linters.

Trivy

Vulnerability scan images/filesystems against SBOMs.

Grype

Vulnerability scan images/filesystems against SBOMs.

Syft

Generate SBOMs (SPDX/CycloneDX) during build.

OWASP Dependency Track

Continuous SBOM monitoring and alerting post-build./p>

Gitleaks

Block commits/builds that contain secrets; run in CI and as pre-commit hooks.

Reproducible Builds

Provides methods, guidelines, and supporting tools for deterministic builds, ensuring integrity and verifiability of source-to-binary outputs.

Bazel

Build system with hermetic (sandboxed) execution and explicit dependency tracking, preventing hidden or unverified dependencies.

Meson

High-speed, deterministic build system that supports reproducibility and strict configuration-as-code.

Apache Maven

Enforces controlled dependency resolution and supports reproducible builds for Java and JVM-based projects.

Yocto Project

Creates reproducible, controlled build environments for embedded Linux images, preventing environmental drift.

AOSP Build System

Uses prebuilt toolchains and sandboxed environments for secure, reproducible Android builds.

PW.7

Review and/or Analyze Human-Readable Code to Identify Vulnerabilities and Verify Compliance with Security Requirements: Help identify vulnerabilities so that they can be corrected before the software is released to prevent exploitation. Using automated methods lowers the effort and resources needed to detect vulnerabilities. Human-readable code includes source code, scripts, and any other form of code that an organization deems human readable.


To satisfy SSDF PW.7 in a build and deploy context using open-source tools, the focus shifts to:

  • Running automated code scanning in CI

  • Ensuring manual/peer review requirements are enforced before merging to release branches

  • Verifying code matches security policies defined earlier in PW.1 and validated in PW.2- Capturing audit evidence that review was completed before build artifacts are promoted

Tasks Tools

PW.7.1: Determine whether code review (a person looks directly at the code to find issues) and/or code analysis (tools are used to find issues in code, either in a fully automated way or in conjunction with a person) should be used, as defined by the organization.


PW.7.2: Perform the code review and/or code analysis based on the organization’s secure coding standards, and record and triage all discovered issues and recommended remediations in the development team’s workflow or issue tracking system.

Semgrep

Runs automatically in CI before building deployment artifact.

SonarQube Community Edition

Integrates with CI/CD to enforce clean code before release

CodeQL

Detect SQL injection, XSS, or unsafe deserialization patterns in codebase.

GitLeaks

Protects against secret leakage in deployed artifacts

GitHub and GitLab

Require two reviewers for any code changes in security-critical modules.

DefectDojo

Provides verifiable audit trail for security review completion.

Sigstore Cosign

Provides verifiable audit trail for security review completion.

OWASP Dependency-Check

Continuously scans dependencies in each build for new CVEs. Can run on every commit or nightly in CI/CD.

OWASP ZAP

Can be automated in CI/CD to re-test staging environments for vulnerabilities as new code is deployed.

Retire.js

Focused on JavaScript libraries; detects newly disclosed vulnerabilities in frontend/back-end packages during builds.

Fossa

Scans dependencies for vulnerabilities and license issues, integrating with builds to catch new findings.

Bandit for Python

Runs in CI/CD for Python projects to catch newly introduced security issues.

Checkmarx KICS

Detecting Known Vulnerabilities – Compares IaC components and configurations against known security best practices and compliance frameworks (CIS Benchmarks, NIST, PCI-DSS).

Cppcheck for C++

Re-scans C/C++ code after every build to ensure no new issues were introduced.

FindSecBugs

Extension to SpotBugs that catches security flaws in Java bytecode continuously during the build cycle.

GitHub CodeQL

Performs continuous security queries on code with each pull request or scheduled scan.

PMD

Runs code quality and security rule checks on every commit/build.

SpotBugs

Java static analysis integrated into the build pipeline for continuous vulnerability detection.

Danger JS

Automates security-related PR review rules, preventing unsafe code from merging.


PW.8

Test Executable Code to Identify Vulnerabilities and Verify Compliance with Security Requirements: Help identify vulnerabilities so that they can be corrected before the software is released in order to prevent exploitation. Using automated methods lowers the effort and resources needed to detect vulnerabilities and improves traceability and repeatability. Executable code includes binaries, directly executed bytecode and source code, and any other form of code that an organization deems executable.


To satisfy SSDF PW.8 in a post-deployment context using open-source tools, the focus shifts to:

  • Running security tests against the final artifact in staging or pre-deployment environments

  • Validating runtime configuration, dependencies, and permissions of the artifact

  • Ensuring compliance with security baselines at the executable level

  • Capturing evidence of artifact test results for compliance gates

Tasks Tools

PW.8.1: Determine whether executable code testing should be performed to find vulnerabilities not identified by previous reviews, analysis, or testing and, if so, which types of testing should be used.


PW.8.2: Scope the testing, design the tests, perform the testing, and document the results, including recording and triaging all discovered issues and recommended remediations in the development team’s workflow or issue tracking system.

Trivy

Run as a CI step after image build, before push to registry

Grype

Confirms that final executable meets vulnerability thresholds.

Syft

Feeds SBOM into SCA tools like Dependency-Track for ongoing monitoring

OpenSCAP

Ensures final artifact matches secure configuration requirements.

CIS-CAT Lite

Baseline enforcement step before promotion to production.

Zap (Zed Attack Proxy)

Pre-release runtime security testing.

In-toto + Sigstore Cosign Attestations

Provides verifiable evidence for compliance and audits.

PW.9

Configure Software to Have Secure Settings by Default: Help improve the security of the software at the time of installation to reduce the likelihood of the software being deployed with weak security settings, putting it at greater risk of compromise.


To satisfy SSDF PW.9 in a build and deploy context using open-source tools, the focus shifts to:

  • Embedding secure configs into container images, binaries, and IaC

  • Removing insecure or unused features before packaging

  • Applying security baselines (CIS, STIG, NIST) in the build process

  • Validating those defaults as part of CI/CD

  • Preventing insecure defaults from slipping into release candidates

Tasks Tools

PW.9.1: Define a secure baseline by determining how to configure each setting that has an effect on security or a security-related setting so that the default settings are secure and do not weaken the security functions provided by the platform, network infrastructure, or services.


PW.9.2: Implement the default settings (or groups of default settings, if applicable), and document each setting for software administrators.

DevSec Hardening Framework

Automates baseline hardening during image creation.

Chainguard Apko

Produces secure-by-default container images.

Trivy

CI gate to block insecure defaults from being built/deployed.

Checkov

Prevents insecure IaC defaults from reaching deployment.

KICS

Prevents insecure IaC defaults from reaching deployment.

OpenSCAP

Produces compliance evidence before artifact promotion.

Sigstore Cosign + In-Toto

Ensures only hardened, verified artifacts can be deployed.

CIS-CAT Lite

Verify hardened defaults match CIS requirements before release.

Kyverno

Policy enforcement for manifests and configs at build time.

OPA Conftest

Codifies secure defaults as enforceable CI/CD policies.

1.4 - Respond to Vulnerabilities (RV)

Respond to Vulnerabilities (RV) for Build and Deploy CI/CD Steps

Respond to Vulnerabilities (RV)

Respond to Vulnerabilities (RV): Organizations should identify residual vulnerabilities in their software releases and respond appropriately to address those vulnerabilities and prevent similar ones from occurring in the future.


RV.1

Identify and Confirm Vulnerabilities on an Ongoing Basis: Help ensure that vulnerabilities are identified more quickly so that they can be remediated more quickly in accordance with risk, reducing the window of opportunity for attackers.


To satisfy SSDF RV.1 in a build and deploy context using open-source tools, the focus shifts to continuously gathering vulnerability intel (VDP + public sources), monitor components, and confirm issues across supported releases.

Tasks Tools

RV.1.1: Gather information from software acquirers, users, and public sources on potential vulnerabilities in the software and third-party components that the software uses, and investigate all credible reports.


RV.1.2: Review, analyze, and/or test the software’s code to identify or confirm the presence of previously undetected vulnerabilities.


RV.1.3: Have a policy that addresses vulnerability disclosure and remediation, and implement the roles, responsibilities, and processes needed to support that policy.

OSV-Scanner

Continuously scans manifests/locks against OSV; great for confirming new disclosures across all supported releases..

Ortelius

Continuously synchronizes Software Bill of Material versions of built artifacts to OSV.dev reporting on vulnerabilities discovered post-build.

OSV Vulnerability Database

Queries the OSV.dev vulnerability database for open-source package CVEs.

Grype

Scans container images and SBOMs for known vulnerabilities.

Vulners CLI/API

Aggregates multiple public vulnerability feeds.

cve-bin-tool

Checks installed binaries for known CVEs.

Semgrep

SAST for multiple languages; customizable rules. Run on merge to main branch.

Bandit

Python security linting. Add to Python project build stage.

SonarQube Community Edition

SAST & quality checks. Run in build step; block deploy if high-severity issues found.

OWASP ZAP

DAST; quick passive scan on deployed staging app.

GitHub Security Policy

Public policy location for reporters.

Disclose.io templates

Vulnerability Disclosure Program.

OpenSSF Vulnerability Disclosure Guide

Playbook for implementing disclosure.

RV.2

Assess, Prioritize, and Remediate Vulnerabilities: Help ensure that vulnerabilities are remediated in accordance with risk to reduce the window of opportunity for attackers.


To satisfy SSDF RV.2 in a build and deploy context using open-source tools, the focus shifts to:

  • Recording each vulnerability

  • Analyze risk (exploitability & impact)

  • Choose responses, publish advisories, and deliver remediations via trusted mechanisms; include temporary mitigations where needed.\

Tasks Tools

RV.2.1: Analyze each vulnerability to gather sufficient information about risk to plan its remediation or other risk response.


RV.2.2: Plan and implement risk responses for vulnerabilities.

GUAC

Aggregates SBOMs, attestations, and vulns to understand blast radius and prioritize fixes.

Renovate

Automates dependency upgrades/patch PRs with risk-aware policies.

Ortelius

Exposes the blast radius of each vulnerability across live environments.

DefectDojo

Centralizes vulnerabilities from SAST/DAST/SCA tools; adds risk scoring.

OWASP Dependency-Track

SBOM-based vuln tracking, includes CVSS scoring and metadata.

EPSS (Exploit Prediction Scoring System)

Rates probability of exploitation for CVEs (risk-based prioritization).

Vulners API

Provides exploit links, PoCs, and additional context per CVE.

CVSS Calculator (FIRST)

Standardized impact scoring to support triage decisions.

Sigstore / Cosign

Sign remediated builds before deploying (trusted delivery mechanism).

OWASP ModSecurity CRS

Temporary WAF rules to mitigate unpatched web vulns.

Falco

Runtime detection and mitigation for unpatched container/Kubernetes issues.


RV.3

Analyze Vulnerabilities to Identify Their Root Causes: Help reduce the frequency of vulnerabilities in the future.



To satisfy SSDF RV.3 in a build and deploy context using open-source tools, the focus shifts to:

  • Capturing root causes & lessons learned

  • Detecting recurring patterns over time

Tasks Tools

RV.3.1: Analyze identified vulnerabilities to determine their root causes.


RV.3.2: Analyze the root causes over time to identify patterns, such as a particular secure coding practice not being followed consistently


RV.3.3: Review the software for similar vulnerabilities to eradicate a class of vulnerabilities, and proactively fix them rather than waiting for external reports.


RV.3.4: Review the SDLC process, and update it if appropriate to prevent (or reduce the likelihood of) the root cause recurring in updates to the software or in new software that is created.


Semgreps

Write org-specific rules to detect the root-cause pattern; scan repos to eradicate classes of bugs.

CodeQL

Deep code queries to identify the precise coding constructs leading to vulns.

SonarQube CE

Provides issue traces, rule violations, and hotspots including root cause indicators.

DefectDojo

Tracks vulns + metadata, allows attaching root cause notes per issue.

Dependency-Track

Long-term tracking of vulnerable components to see recurring dependency issues.

Grafeas

Metadata API for tracking security events across builds/releases.

cwe-checker

Detects weakness patterns (CWEs) in binaries, useful for compiled artifacts.

Joern

Open-source code analysis platform for hunting bug patterns at scale.

OpenSAMM (OWASP Software Assurance Maturity Model)

Framework to improve secure dev lifecycle practices.

OpenSSF Scorecards

Automates repo security health checks (branch protection, dependency pinning, CI hardening).

OSCAL (NIST)

Standard for documenting compliance + SDLC security improvements.

Allstar (by OpenSSF)

Enforces security policies across GitHub orgs/repos.