Skip to content

Repository files navigation

OWASP DevSecOps Guideline

The OWASP DevSecOps Guideline explains how we can implement a secure pipeline and use best practices and introduce tools that we can use in this matter. Also, the project is trying to help us promote the shift-left security culture in our development process. This project helps any companies of each size that have a development pipeline or, in other words, have a DevOps pipeline. We try to draw a perspective of a secure DevOps pipeline during this project and then improve it based on our customized requirements.

The Ideal goal is "detect security issues (by design or application vulnerability) as early as possible."

How the guideline is organized

The guideline is built around three pillars:

  • People — teams, roles, culture, and training.
  • Process — security activities woven into every SDLC stage: Design, Develop, Build, Test, Release, Deploy, Operate.
  • Governance — compliance, policy as code, reporting, ASPM, and AI governance.

The current edition is refreshed for 2025/2026 and aligned with frameworks such as NIST SSDF, OWASP SAMM, OWASP DSOMM, and SLSA. See the Table of Contents below, or browse the current version.

Initial steps

DevSecOps is all about putting security into DevOps. But to keep up with the pace of CI/CD, security has to be injected early into software writing and testing.

DevSecOps cycle

OWASP Proactive Controls lists the top 10 security controls every developer has to implement while coding any application. Consider this set as the starting point when you have to design, write or test code in the DevSecOps cycle.

You can also follow the OWASP Software Assurance Maturity Model (SAMM) to establish what to consider for security requirements (and more) according to your maturity level.

What to add in a pipeline

DevSecOps pipeline At first, we consider implementing the following steps in a basic pipeline:

  • Scan git repositories for finding potential credentials leakage.
  • SCA (Software Composition Analysis)
  • SAST (Static Application Security Test)
  • IaC Scanning (Scanning Terraform, HelmChart code to find misconfiguration)
  • Software supply-chain security (SBOM, artifact signing and provenance, CI/CD pipeline security)
  • IAST (Interactive Application Security Testing)
  • API Security
  • DAST (Dynamic Application Security Test)
  • CNAPP (Cloud Native Application Protection)
  • Infrastructure scanning
  • Continuous Scanning from other tools
  • Compliance check and policy as code
  • Security gates (quality gates that block risky builds and releases)
  • Centralized reporting and ASPM (Application Security Posture Management)
  • AI/LLM security and AI governance (securing AI-assisted development and AI-powered features)

We can customize the steps of our pipeline according to our Software Development Life Cycle (SDLC) or software architecture and add automation progressively if we are starting. For instance, we can switch from SAST/DAST to a regular test suite with built-in security controls or add an audit script checking for known vulnerable dependencies.

CI/CD is an advantage for SecOps, a privileged entry point for security measures and controls. However, when using CI/CD tools to provide automation, keep in mind that the tools themselves often expand your attack surface, so put security controls on building, deployment, and automation software.


Table of Contents


Contributing

Contributions are welcome: fix a typo, add a tool, or propose a new topic by opening an issue or pull request. Please keep tool lists vendor-neutral and alphabetically ordered, and update the Table of Contents when adding or renaming files (see doc-utilities for the TOC generator).

Running the checks locally

CI runs pre-commit (Markdown lint, trailing whitespace, end-of-file newline, YAML/JSON validity) on every pull request. Running the same hooks locally before you push avoids a red CI run:

python3.13 -m pip install pre-commit
pre-commit install          # run the hooks automatically on every commit
pre-commit run --all-files  # or run them once across the whole repository

On pull requests CI only checks the files you changed; pushes to master check the whole repository.

Previous versions

Earlier editions are kept in old-versions (V0.1, V0.2, V0.3).

License

This project is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.

The project page on the OWASP website is available at OWASP DevSecOps Guideline Project

About

The OWASP DevSecOps Guideline can help us to embedding security as a part of the development pipeline.

Topics

Resources

Contributing

Stars

1.1k stars

Watchers

42 watching

Forks

Releases

Used by

Contributors

Languages