Curating the best DevSecOps resources and tooling.
DevSecOps is
an extension of the DevOps movement that aims to
bring security practices into the development lifecycle through
developer-centric security tooling and processes.
Contributions welcome. Add links through pull requests or create an
issue to start a discussion.
Alice
and Bob Learn Application Security - Tanya Janca - An
accessible and thorough resource for anyone seeking to incorporate, from
the beginning of the System Development Life Cycle, best security
practices in software development.
Communities
DevSecCon - Snyk -
A community that runs conferences, a blog, a podcast and a Discord
dedicated to DevSecOps.
TAG Security - Cloud
Native Computing Foundation - TAG Security facilitates
collaboration to discover and produce resources that enable secure
access, policy control, and safety for operators, administrators,
developers, and end-users across the cloud native ecosystem.
Conferences
AppSec Day - OWASP - An
Australian application security conference run by OWASP.
DevSecCon - Snyk -
A network of DevSecOps conferences run by Snyk.
Newsletters
Shift Security
Left - Cossack Labs - A free biweekly newsletter for
security-aware developers covering application security, secure
architecture, DevSecOps, cryptography, incidents, etc. that can be
useful for builders and (to a lesser extent) for breakers.
Podcasts
Absolute AppSec - Seth
Law & Ken Johnson - Discussions about current events and
specific topics related to application security.
Application Security
Podcast - Security Journey - Interviews with industry
experts about specific application security concepts.
BeerSecOps
- Aqua Security - Breaking down the silos of Dev, Sec and Ops,
discussing topics that span these subject areas.
DevSecOps Podcast
Series - OWASP - Discussions with thought leaders and
practitioners to integrate security into the development lifecycle.
The
Secure Developer - Snyk - Discussion about security tools
and best practices for software developers.
Building Security In
Maturity Model (BSIMM) - Synopsys - A framework for
software security created by observing and analysing data from leading
software security initiatives.
Secure
Development Lifecycle - Microsoft - A collection of tools
and practices that serve as a framework for the secure development
lifecycle.
Secure
Software Development Framework - NIST - A framework
consisting of practices, tasks and implementation examples for a secure
development lifecycle.
Application
Security Education - Duo Security - Training materials
created by the Duo application security team, including introductory and
advanced training presentations and hands-on labs.
Cybrary - Cybrary -
Subscription based online courses with dedicated categories for
cybersecurity and DevSecOps.
PentesterLab -
PentesterLab - Hands on labs to understand and exploit simple
and advanced web vulnerabilities.
Practical
DevSecOps - Practical DevSecOps - Learn DevSecOps concepts,
tools, and techniques from industry experts with practical DevSecOps
using state of the art browser-based labs.
SafeStack -
SafeStack - Security training for software development teams,
designed to be accessible to individuals and small teams as well as
larger organisations.
Secure Code Warrior
- Secure Code Warrior - Gamified and hands-on secure
development training with support for courses, assessments and
tournaments.
SecureFlag -
OWASP - Hands-on secure coding training for Developers and
Build/Release Engineers.
Security
Training for Engineers - Pager Duty - A presentation
created and open-sourced by PagerDuty to provide security training to
software engineers.
Security Training
for Everyone - Pager Duty - A presentation created and
open-sourced by PagerDuty to provide security training employees.
Semgrep Academy -
Semgrep - Free, on-demand courses covering topics including API
security, secure coding and application security.
Web Security
Academy - PortSwigger - A set of materials and labs to
learn and exploit common web vulnerabilities.
WeHackPuple -
WeHackPurple - Online courses that teach application security
theory and hands-on technical lessons.
Wikis
DevSecOps Hub -
Snyk - Introduction to key DevSecOps concepts, processes and
technologies.
SecureFlag
Knowledge Base - OWASP - A repository of information about
software vulnerabilities and how to prevent them.
Tools
Dependency Management
Open source software packages can speed up the development process by
allowing developers to implement functionality without having to write
all of the code. However, with the open source code comes open source
vulnerabilities. Dependency management tools help manage vulnerabilities
in open source packages by identifying and updating packages with known
vulnerabilities.
Deepfence
ThreatMapper - Apache v2, powerful runtime vulnerability scanner for
kubernetes, virtual machines and serverless.
Dependabot - GitHub -
Automatically scan GitHub repositories for vulnerabilities and create
pull requests to merge in patched dependencies.
Dependency-Check
- OWASP - Scans dependencies for publicly disclosed
vulnerabilities using CLI or build server plugins.
Dependency-Track -
OWASP - Monitor the volume and severity of vulnerable
dependencies across multiple projects over time.
JFrog XRay - JFrog -
Security and compliance analysis for artifacts stored in JFrog
Artifactory.
NPM Audit -
NPM - Vulnerable package auditing for node packages built into
the npm CLI.
Renovate -
WhiteSource - Automatically monitor and update software
dependencies for multiple frameworks and languages using a CLI or git
repository apps.
Requires.io - Olivier Mansion
& Alexis Tabary - Automated vulnerable dependency monitoring
and upgrades for Python projects.
Snyk
Open Source - Snyk - Automated vulnerable dependency
monitoring and upgrades using Snyk’s dedicated vulnerability
database.
Dynamic Analysis
Dynamic Analysis Security Testing (DAST) is a form of black-box
security testing where a security scanner interacts with a running
instance of an application, emulating malicious activity to find common
vulnerabilities. DAST tools are commonly used in the initial phases of a
penetration test, and can find vulnerabilities such as cross-site
scripting, SQL injection, cross-site request forgery and information
disclosure.
Automatic
API Attack Tool - Imperva - Perform automated security
scanning against an API based on an API specification.
BurpSuite
Enterprise Edition - PortSwigger - BurpSuite’s web
application vulnerability scanner used widely by penetration testers,
modified with CI/CD integration and continuous monitoring over multiple
web applications.
Gauntlt -
Gauntlt - A Behaviour Driven Development framework to run
security scans using common security tools and test output, defined
using Gherkin syntax.
Netz -
Spectral - Discover internet-wide misconfigurations, using
zgrab2 and others.
RESTler -
Microsoft - A stateful RESTful API scanner based on
peer-reviewed research papers.
Zed Attack Proxy
(ZAP) - OWASP - An open-source web application
vulnerability scanner, including an API for CI/CD integration.
Infrastructure as Code
Analysis
Infrastructure as Code allows applications to be deployed reliably to
a consistent environment. This not only ensures that infrastructure is
consistently hardened, but also provides an opportunity to statically
and dynamically analyse infrastructure definitions for vulnerable
dependencies, hard-coded secrets, insecure configuration and
unintentional changes in security configuration. The following tools
facilitate this analysis.
Multi-Platform
Checkov -
Bridgecrew - Scan Terraform, AWS CloudFormation and Kubernetes
templates for insecure configuration.
KICS -
Checkmarx - Find security vulnerabilities, compliance issues,
and infrastructure misconfigurations early in the development
cycle.
Spectral
DeepConfig - Spectral - Find misconfiguration both in
infrastructure as well as apps as early as commit time.
Terrascan -
Accurics - Detect compliance and security violations across
Infrastructure as Code to mitigate risk before provisioning cloud native
infrastructure.
Cloud Formation
Cfn Nag -
Stelligent - Scan AWS CloudFormation templates for insecure
configuration.
Containers
Clair - Red Hat
- Scan App Container and Docker containers for publicly disclosed
vulnerabilities.
Dagda -
Elías Grande - Compares OS and software dependency versions
installed in Docker containers with public vulnerability databases, and
also performs virus scanning.
Docker-Bench-Security
- Docker - The Docker Bench for Security is a script that
checks for dozens of common best-practices around deploying Docker
containers in production.
Grype -
Anchore - An easy-to-integrate open source vulnerability
scanning tool for container images and filesystems.
Hadolint -
Hadolint - Checks a Dockerfile against known rules and
validates inline bash code in RUN statements.
Snyk
Container - Snyk - Scan Docker and Kubernetes applications
for security vulnerabilities during CI/CD or via continuous
monitoring.
Trivy - Aqua
Security - Simple and comprehensive vulnerability scanner for
containers.
Terraform
Regula -
Fugue - Evaluate Terraform infrastructure-as-code for potential
security misconfigurations and compliance violations prior to
deployment.
Terraform Compliance
- terraform-compliance - A lightweight, security and compliance
focused test framework against terraform to enable negative testing
capability for your infrastructure-as-code.
Tfsec - Liam
Galvin - Scan Terraform templates for security misconfiguration and
noncompliance with AWS, Azure and GCP security best practice.
Kubernetes
Kubescape - Cloud Native
Computing Foundation - An open-source Kubernetes security platform
for your IDE, CI/CD pipelines, and clusters.
Kube-Score -
Gustav Westling - Scan Kubernetes object definitions for
security and performance misconfiguration.
Kubectrl
Kubesec - ControlPlane - Plugin for kubesec.io to perform
security risk analysis for Kubernetes resources.
Ansible
Ansible-Lint
- Ansible Community - Checks playbooks for practices and
behaviour that could potentially be improved. As a community backed
project ansible-lint supports only the last two major versions of
Ansible.
Intentionally Vulnerable
Applications
Intentionally vulnerable applications are often useful when
developing security tests and tooling to provide a place you can run
tests and make sure they fail correctly. These applications can also be
useful for understanding how common vulnerabilities are introduced into
applications and let you practice your skills at exploiting them.
Bad SSL -
The Chromium Project - A container running a number of
webservers with poor SSL / TLS configuration. Useful for testing
tooling.
Cfngoat -
Bridgecrew - Cloud Formation templates for creating stacks of
intentionally insecure services in AWS. Ideal for testing the Cloud
Formation Infrastructure as Code Analysis tools above.
CI/CD
Goat - Cider Security - A deliberately vulnerable CI/CD
environment. Learn CI/CD security through multiple challenges.
Damn Vulnerable Web App -
Ryan Dewhurst - A web application that provides a safe
environment to understand and exploit common web vulnerabilities.
Juice Shop -
OWASP - A web application containing the OWASP Top 10 security
vulnerabilities and more.
Kubernetes
Goat - Madhu Akula - Intentionally vulnerable cluster
environment to learn and practice Kubernetes security.
NodeGoat -
OWASP - A Node.js web application that demonstrates and
provides ways to address common security vulnerabilities.
Pentest-Ground -
Pentest-Tools.com - Pentest-Ground is a free playground with
deliberately vulnerable web applications and network services.
Terragoat -
Bridgecrew - Terraform templates for creating stacks of
intentionally insecure services in AWS, Azure and GCP. Ideal for testing
the Terraform Infrastructure as Code Analysis tools above.
WrongSecrets -
OWASP - Vulnerable app with examples showing how to not use
secrets
Monitoring
It’s not enough to test and harden our software in the lead up to a
release. We must also monitor our production software for usage,
performance and errors to capture malicious behavior and potential
security flaws that we may need to respond to or address. A wide variety
of tools are available to monitor different aspects of production
software and infrastructure.
Csper - Csper - A
set of Content Security Policy tools that can test policies, monitor CSP
reports and provide metrics and alerts.
Streamdal - Streamdal -
Embed privacy controls in your application code to detect and monitor
PII as it enters and leaves your systems, preventing it from reaching
unintended databases, data streams, or pipelines.
Secrets Management
The software we write needs to use secrets (passwords, API keys,
certificates, database connection strings) to access resources, yet we
cannot store secrets within the codebase as this leaves them vulnerable
to compromise. Secret management tools provide a means to securely
store, access and manage secrets.
Ansible
Vault - Ansible - Securely store secrets within Ansible
pipelines.
Secrets Operations
(SOPS) - Mozilla - Encrypt keys stored within YAML, JSON,
ENV, INI and BINARY files.
Teller -
Spectral - A secrets management tool for developers - never
leave your command line for secrets.
Secrets Scanning
Source control is not a secure place to store secrets such as
credentials, API keys or tokens, even if the repo is private. Secrets
scanning tools can scan and monitor git repositories and pull-requests
for secrets, and can be used to prevent secrets from being committed, or
to find and remove secrets that have already been committed to source
control.
CredScan
- Microsoft - A credential scanning tool that can be run as a
task in Azure DevOps pipelines.
Detect Secrets
- Yelp - An aptly named module for (surprise, surprise)
detecting secrets within a code base.
GitGuardian -
GitGuardian - A web-based solution that scans and monitors
public and private git repositories for secrets.
Gitleaks -
Zachary Rice - Gitleaks is a SAST tool for detecting hardcoded
secrets like passwords, api keys, and tokens in git repositories.
git-secrets -
AWS Labs - Scans commits, commit messages and merges for
secrets. Native support for AWS secret patterns, but can be configured
to support other patterns.
Nightfall -
Nightfall - A web-based platform that monitors for sensitive
data disclosure across several SDLC tools, including GitHub
repositories.
Repo-supervisor -
Auth0 - Secrets scanning tool that can run as a CLI, as a
Docker container or in AWS Lambda.
SpectralOps - Spectral
- Automated code security, secrets, tokens and sensitive data
scanning.
truffleHog -
Truffle Security - Searches through git repositories for
secrets, digging deep into commit history and branches.
Static Analysis
Static Analysis Security Testing (SAST) tools scan software for
vulnerabilities without executing the target software. Typically, static
analysis will scan the source code for security flaws such as the use of
unsafe functions, hard-coded secrets and configuration issues. SAST
tools often come in the form of IDE plugins and CLIs that can be
integrated into CI/CD pipelines.
Multi-Language Support
DevSkim -
Microsoft - A set of IDE plugins, CLIs and other tools that
provide security analysis for a number of programming languages.
Graudit -
Eldar Marcussen - Grep source code for potential security flaws
with custom or pre-configured regex signatures.
Hawkeye -
Hawkeyesec - Modularised CLI tool for project security,
vulnerability and general risk highlighting.
LGTM - Semmle - Scan and
monitor code for security vulnerabilities using custom or built-in
CodeQL queries.
RIPS - RIPS
Technologies - Automated static analysis for PHP, Java and Node.js
projects.
SemGrep - r2c - Semgrep
is a fast, open-source, static analysis tool that finds bugs and
enforces code standards at editor, commit, and CI time.
SonarLint -
SonarSource - An IDE plugin that highlights potential security
security issues, code quality issues and bugs.
SonarQube -
SonarSource - Scan code for security and quality issues with
support for a wide variety of languages.
C / C++
FlawFinder -
David Wheeler - Scan C / C++ code for potential security
weaknesses.
C
Puma Scan -
Puma Security - A Visual Studio plugin to scan .NET projects
for potential security flaws.
Configuration Files
Conftest -
Instrumenta - Create custom tests to scan any configuration
file for security flaws.
Selefra -
Selefra - An open-source policy-as-code software that provides
analytics for multi-cloud and SaaS.
Java
Deep Dive -
Discotek.ca - Static analysis for JVM deployment units
including Ear, War, Jar and APK.
Find
Security Bugs - OWASP - SpotBugs plugin for security audits
of Java web applications. Supports Eclipse, IntelliJ, Android Studio and
SonarQube.
SpotBugs -
SpotBugs - Static code analysis for Java applications.
JavaScript
ESLint - JS Foundation -
Linting tool for JavaScript with multiple security linting rules
available.
Bandit - Python
Code Quality Authority - Find common security vulnerabilities in
Python code.
Ruby
Brakeman -
Justin Collins - Static analysis tool which checks Ruby on
Rails applications for security vulnerabilities.
DawnScanner -
Paolo Perego - Security scanning for Ruby scripts and web
application. Supports Ruby on Rails, Sinatra and Padrino
frameworks.
Supply Chain Security
Supply chain attacks come in different forms, targeting parts of the
SDLC that are inherently 3rd party: tools in CI, external code that’s
been executed, and more. Supply chain security tooling can defend
against these kinds of attacks.
Harden
Runner GitHub Action - StepSecurity - installs a security
agent on the GitHub-hosted runner (Ubuntu VM) to prevent exfiltration of
credentials, detect compromised dependencies and build tools, and detect
tampering of source code during the build.
Overlay -
SCAR - a browser extension helping developers evaluate open
source packages before picking them.
Preflight -
Spectral - helps you verify scripts and executables to mitigate
supply chain attacks in your CI and other systems, such as in the recent
Codecov
hack.
Sigstore - sigstore is a set
of free to use and open source tools, including fulcio, cosign and rekor, handling digital
signing, verification and checks for provenance needed to make it safer
to distribute and use open source software.
Syft -
Anchore - A CLI tool for generating a Software Bill of
Materials (SBOM) from container images and filesystems.
Threat Modelling
Threat modelling is an engineering exercise that aims to identify
threats, vulnerabilities and attack vectors that represent a risk to
something of value. Based on this understanding of threats, we can
design, implement and validate security controls to mitigate threats.
The following list of tools assist the threat modelling process.