Awesome devsecops

> 策划最好的 DevSecOps 资源和工具.
DevSecOps 是的延伸 DevOps 旨在通过以开发人员为中心的安全工具和流程将安全实践带入开发生命周期的运动.
欢迎投稿. 通过拉取请求添加链接或创建问题以开始讨论.
Resources¶
Articles¶
- Our Approach to Employee Security Training - Pager Duty - 在组织内开展安全培训的指南.
Books¶
- Alice and Bob Learn Application Security - Tanya Janca - 任何寻求从系统开发生命周期开始就纳入软件开发最佳安全实践的人都可以访问的全面资源.
Communities¶
- MyDevSecOps - Snyk - 一个运行会议、博客、播客和专用于 DevSecOps 的 Slack 工作区的社区.
Conferences¶
- AppSec Day - OWASP - 由 OWASP 举办的澳大利亚应用程序安全会议.
- DevSecCon - Snyk - 由 Snyk 运行的 DevSecOps 会议网络.
Newsletters¶
- Shift Security Left - Cossack Labs - 面向具有安全意识的开发人员的免费双周通讯,内容涵盖应用程序安全、安全架构、DevSecOps、密码学、事件等,对构建者和(在较小程度上)破坏者都有用.
Podcasts¶
- Absolute AppSec - Seth Law 和 Ken Johnson - 讨论与应用程序安全相关的当前事件和特定主题.
- Application Security Podcast - 安全之旅 - 就特定应用程序安全概念采访行业专家.
- BeerSecOps - Aqua Security - 打破 Dev、Sec 和 Ops 的孤岛,讨论跨越这些主题领域的主题.
- DevSecOps Podcast Series - OWASP - 与思想领袖和从业者讨论将安全性集成到开发生命周期中.
- The Secure Developer - Snyk - 讨论软件开发人员的安全工具和最佳实践.
Secure Development Guidelines¶
- Application Security Verification Standard - OWASP - 一个安全要求和控制框架,可帮助开发人员设计和开发安全的 Web 应用程序.
- Coding Standards - CERT - 用于 C、C++、Java 和 Android 开发的安全开发标准集合.
- Fundamental Practices for Secure Software Development - SAFECode - 在整个 SDLC 中实施关键安全开发实践的指南.
- Proactive Controls - OWASP - OWASP 列出了每个软件开发项目中应实施的十大控制措施.
- Secure Coding Guidelines - Mozilla - 包含用于安全 Web 应用程序开发的特定安全开发标准的指南.
- Secure Coding Practices Quick Reference Guide - OWASP - 用于验证是否已遵循安全开发标准的清单.
Secure Development Lifecycle Framework¶
- Building Security In Maturity Model (BSIMM) - Synopsys - 通过观察和分析来自领先软件安全计划的数据创建的软件安全框架.
- Secure Development Lifecycle - Microsoft - 用作安全开发生命周期框架的工具和实践的集合.
- Secure Software Development Framework - NIST - 一个由安全开发生命周期的实践、任务和实施示例组成的框架.
- Software Assurance Maturity Model - OWASP - 衡量和改进安全开发生命周期成熟度的框架.
Toolchains¶
- Cloud Security and DevSecOps Best Practices and Securing Web Application Technologies (SWAT) Checklist - SANS - 包含安全 Web 应用程序技术 (SWAT) 清单、SANS 云安全课程、云安全前 10 名、前 12 名 Kubernetes 威胁和安全 DevOps 工具链的海报.
- Periodic Table of DevOps Tools - XebiaLabs - 按工具功能分类的 DevSecOps 工具集合.
Training¶
- Application Security Education - Duo Security - 由 Duo 应用程序安全团队创建的培训材料,包括介绍性和高级培训演示以及动手实验室.
- Cybrary - Cybrary - 基于订阅的在线课程,具有网络安全和 DevSecOps 的专门类别.
- PentesterLab - PentesterLab - 通过动手实验来了解和利用简单和高级的 Web 漏洞.
- Practical DevSecOps - 实用 DevSecOps - 使用最先进的基于浏览器的实验室,通过实用的 DevSecOps 从行业专家那里学习 DevSecOps 概念、工具和技术.
- SafeStack - SafeStack - 针对软件开发团队的安全培训,旨在供个人和小型团队以及大型组织使用.
- Secure Code Warrior - Secure Code Warrior - 游戏化和实践安全开发培训,支持课程、评估和锦标赛.
- SecureFlag - OWASP - 面向开发人员和构建/发布工程师的安全编码实践培训.
- Security Training for Engineers - Pager Duty - 由 PagerDuty 创建并开源的演示文稿,旨在为软件工程师提供安全培训.
- Security Training for Everyone - Pager Duty - 由 PagerDuty 创建并开源的演示文稿,旨在为员工提供安全培训.
- Web Security Academy - PortSwigger - 一组用于学习和利用常见 Web 漏洞的材料和实验室.
- WeHackPuple - WeHackPurple - 教授应用程序安全理论和实践技术课程的在线课程.
Wikis¶
- DevSecOps Hub - Snyk - 关键 DevSecOps 概念、流程和技术的介绍.
- SecureFlag Knowledge Base - OWASP - 有关软件漏洞及其预防方法的信息库.
Tools¶
Dependency Management¶
开源软件包允许开发人员无需编写所有代码即可实现功能,从而加快开发过程. 然而,随着开源代码而来的还有开源漏洞. 依赖管理工具通过识别和更新具有已知漏洞的包来帮助管理开源包中的漏洞.
- Deepfence ThreatMapper - Apache v2,强大的运行时漏洞扫描器,适用于 kubernetes、虚拟机和无服务器.
- Dependabot - GitHub - 自动扫描 GitHub 存储库中的漏洞并创建拉取请求以合并修补的依赖项.
- Dependency-Check - OWASP - 使用 CLI 或构建服务器插件扫描依赖项以查找公开披露的漏洞.
- Dependency-Track - OWASP - Monitor the volume and severity of vulnerable dependencies across multiple projects over time.
- JFrog XRay - JFrog - 存储在 JFrog Artifactory 中的工件的安全性和合规性分析.
- NPM Audit - NPM - 对 npm CLI 中内置的节点包进行易受攻击的包审计.
- Renovate - WhiteSource - 使用 CLI 或 git 存储库应用程序自动监控和更新多种框架和语言的软件依赖关系.
- Requires.io - Olivier Mansion 和 Alexis Tabary - Python 项目的自动化易受攻击的依赖项监控和升级.
- Snyk Open Source - Snyk - 使用 Snyk 的专用漏洞数据库自动进行易受攻击的依赖项监控和升级.
Dynamic Analysis¶
动态分析安全测试 (DAST) 是一种黑盒安全测试形式,其中安全扫描器与应用程序的运行实例交互,模拟恶意活动以查找常见漏洞. DAST工具常用于渗透测试的初始阶段,可以发现跨站脚本、SQL注入、跨站请求伪造和信息泄露等漏洞.
- Automatic API Attack Tool - Imperva - 根据 API 规范对 API 执行自动安全扫描.
- BurpSuite Enterprise Edition - PortSwigger - BurpSuite 的 Web 应用程序漏洞扫描器被渗透测试人员广泛使用,通过 CI/CD 集成和对多个 Web 应用程序的持续监控进行了修改.
- Gauntlt - Gauntlt - 一个行为驱动开发框架,使用通用安全工具和测试输出运行安全扫描,使用 Gherkin 语法定义.
- Netz - Spectral - 使用 zgrab2 和其他工具发现互联网范围内的错误配置.
- SSL Labs Scan - SSL 实验室 - 自动扫描 SSL/TLS 配置问题.
- Zed Attack Proxy (ZAP) - OWASP - 一种开源 Web 应用程序漏洞扫描程序,包括用于 CI/CD 集成的 API.
Infrastructure as Code Analysis¶
基础架构即代码允许将应用程序可靠地部署到一致的环境中. 这不仅可以确保基础设施始终如一地得到强化,而且还提供了一个机会来静态和动态地分析基础设施定义,以发现易受攻击的依赖项、硬编码的秘密、不安全的配置和安全配置中的意外更改. 以下工具有助于此分析.
Multi-Platform¶
- Checkov - Bridgecrew - 扫描 Terraform、AWS CloudFormation 和 Kubernetes 模板以进行不安全配置.
- KICS - Checkmarx - 在开发周期的早期发现安全漏洞、合规性问题和基础设施配置错误.
- Spectral DeepConfig - Spectral - 尽早在提交时发现基础架构和应用程序中的错误配置.
- Terrascan - Accurics - 检测跨基础设施即代码的合规性和安全违规行为,以在配置云原生基础设施之前降低风险.
Cloud Formation¶
- Cfn Nag - Stelligent - 扫描 AWS CloudFormation 模板以查找不安全的配置.
Containers¶
- Anchore Engine - Anchore, Inc - 深入检查 Docker 图像的 CVE 并检查自定义策略. 他们的企业产品背后的引擎与注册表、编排器和 CI/CD 产品集成.
- Clair - Quay - 扫描 App Container 和 Docker 容器以查找公开披露的漏洞.
- Dagda - Elías Grande - 将 Docker 容器中安装的操作系统和软件依赖版本与公共漏洞数据库进行比较,并执行病毒扫描.
- Docker-Bench-Security - Docker - Docker Bench for Security 是一个脚本,用于检查有关在生产中部署 Docker 容器的数十种常见最佳实践.
- Hadolint - Hadolint - 根据已知规则检查 Dockerfile 并验证 RUN 语句中的内联 bash 代码.
- Snyk Container - Snyk - 在 CI/CD 期间或通过持续监控扫描 Docker 和 Kubernetes 应用程序以查找安全漏洞.
- Trivy - Aqua Security - 简单而全面的容器漏洞扫描器.
Terraform¶
- Regula - Fugue - 在部署之前评估 Terraform 基础设施即代码是否存在潜在的安全配置错误和合规性违规行为.
- Terraform Compliance - terraform-compliance - 针对 terraform 的轻量级、安全性和合规性重点测试框架,可为您的基础设施即代码启用负面测试功能.
- Tfsec - Liam Galvin - 扫描 Terraform 模板以查找安全配置错误和不符合 AWS、Azure 和 GCP 安全最佳实践的情况.
Kubernetes¶
- Kube-Score - Gustav Westling - 扫描 Kubernetes 对象定义以了解安全性和性能配置错误.
- Kubectrl Kubesec - ControlPlane - kubesec.io 的插件,用于对 Kubernetes 资源执行安全风险分析.
Ansible¶
- Ansible-Lint - Ansible Community - 检查剧本中是否有可能改进的做法和行为. 作为社区支持的项目,ansible-lint 仅支持 Ansible 的最后两个主要版本.
Intentionally Vulnerable Applications¶
在开发安全测试和工具以提供一个可以运行测试并确保它们正确失败的地方时,故意易受攻击的应用程序通常很有用. 这些应用程序还有助于了解常见漏洞是如何引入应用程序的,并让您练习利用这些漏洞的技能.
- Bad SSL - Chromium 项目 - 一个容器,运行许多 SSL / TLS 配置不佳的网络服务器. 用于测试工具.
- Cfngoat - Bridgecrew - Cloud Formation 模板,用于在 AWS 中创建故意不安全的服务堆栈. 作为上述代码分析工具测试 Cloud Formation 基础设施的理想选择.
- Damn Vulnerable Web App - Ryan Dewhurst - 一个 Web 应用程序,它提供了一个安全的环境来理解和利用常见的 Web 漏洞.
- Juice Shop - OWASP - 包含 OWASP 十大安全漏洞等的 Web 应用程序.
- NodeGoat - OWASP - 一个 Node.js Web 应用程序,演示并提供解决常见安全漏洞的方法.
- Terragoat - Bridgecrew - Terraform 模板,用于在 AWS、Azure 和 GCP 中创建故意不安全的服务堆栈. 非常适合将 Terraform 基础设施作为上述代码分析工具进行测试.
- Vulnerable Web Apps Directory - OWASP - 一组用于学习目的的易受攻击的 Web 应用程序.
Monitoring¶
在发布之前测试和强化我们的软件是不够的. 我们还必须监控我们的生产软件的使用情况、性能和错误,以捕获我们可能需要响应或解决的恶意行为和潜在的安全漏洞. 有多种工具可用于监控生产软件和基础设施的不同方面.
- Csper - Csper - 一组内容安全策略工具,可以测试策略、监控 CSP 报告并提供指标和警报.
Secrets Management¶
我们编写的软件需要使用秘密(密码、API 密钥、证书、数据库连接字符串)来访问资源,但我们不能将秘密存储在代码库中,因为这会使它们容易受到损害. 秘密管理工具提供了一种安全存储、访问和管理秘密的方法.
- Ansible Vault - Ansible - 在 Ansible 管道中安全地存储秘密.
- AWS Key Management Service (KMS) - Amazon AWS - 在 AWS 中创建和管理加密密钥.
- AWS Secrets Manager - Amazon AWS - 在 AWS 中安全地存储可检索的应用程序机密.
- Azure Key Vault - Microsoft Azure - 在 Azure 中安全地存储秘密.
- BlackBox - StackExchange - 在您的代码存储库中加密凭据.
- Chef Vault - Chef - 在 Chef 中安全地存储秘密.
- CredStash - Fugue - 使用 KMS 和 DynamoDB 在 AWS 中安全地存储秘密.
- CyberArk Application Access Manager - CyberArk - 应用程序的秘密管理,包括秘密轮换和审计.
- Docker Secrets - Docker - 在 Docker 群中存储和管理对秘密的访问.
- Git Secrets - Amazon AWS - 扫描 git 存储库以查找在代码或提交消息中提交的秘密.
- Gopass - Gopass - 依赖 Git 和 gpg 的团队的密码管理器. 管理加密文件和存储库中的秘密.
- Google Cloud Key Management Service (KMS) - Google Cloud Platform - 在 GCP 中安全地存储秘密.
- HashiCorp Vault - HashiCorp - 通过 UI、CLI 或 HTTP API 安全地存储秘密.
- Keyscope - Spectral - Keyscope 是一个用 Rust 构建的开源密钥和秘密工作流工具(验证、失效等).
- Pinterest Knox - Pinterest - 安全存储、轮换和审核机密.
- Secrets Operations (SOPS) - Mozilla - 加密存储在 YAML、JSON、ENV、INI 和 BINARY 文件中的密钥.
- Teller - Spectral - 开发人员的秘密管理工具 - 永远不要离开你的秘密命令行.
Secrets Scanning¶
源代码控制不是存储凭证、API 密钥或令牌等秘密的安全场所,即使存储库是私有的. 秘密扫描工具可以扫描和监控 git 存储库和秘密拉取请求,并可用于防止秘密被提交,或查找和删除已经提交到源代码控制的秘密.
- CredScan - Microsoft - 可以作为 Azure DevOps 管道中的任务运行的凭据扫描工具.
- Detect Secrets - Yelp - 一个恰当命名的模块,用于(惊喜,惊喜)检测代码库中的秘密.
- GitGuardian - GitGuardian - A web-based solution that scans and monitors public and private git repositories for secrets.
- Gitleaks - Zachary Rice - Gitleaks 是一种 SAST 工具,用于检测 git 存储库中的硬编码秘密,如密码、api 密钥和令牌.
- git-secrets - AWS 实验室 - 扫描提交、提交消息和合并以查找秘密. 本机支持 AWS 秘密模式,但可以配置为支持其他模式.
- Nightfall - Nightfall - 一个基于网络的平台,用于监控多个 SDLC 工具(包括 GitHub 存储库)中敏感数据的泄露.
- Repo-supervisor - Auth0 - 可以作为 CLI、Docker 容器或 AWS Lambda 运行的秘密扫描工具.
- SpectralOps - Spectral - 自动代码安全、机密、令牌和敏感数据扫描.
- truffleHog - Truffle Security - 通过 git 存储库搜索秘密,深入挖掘提交历史和分支.
Static Analysis¶
静态分析安全测试 (SAST) 工具在不执行目标软件的情况下扫描软件中的漏洞. 通常,静态分析会扫描源代码以查找安全漏洞,例如使用不安全函数、硬编码机密和配置问题. SAST 工具通常以 IDE 插件和 CLI 的形式出现,可以集成到 CI/CD 管道中.
Multi-Language Support¶
- DevSkim - Microsoft - 一组 IDE 插件、CLI 和其他工具,可为多种编程语言提供安全分析.
- Graudit - Eldar Marcussen - Grep 源代码,用于使用自定义或预配置的正则表达式签名寻找潜在的安全漏洞.
- Hawkeye - Hawkeyesec - 用于项目安全、漏洞和一般风险突出显示的模块化 CLI 工具.
- LGTM - Semmle - 使用自定义或内置 CodeQL 查询扫描和监控代码中的安全漏洞.
- RIPS - RIPS Technologies - PHP、Java 和 Node.js 项目的自动静态分析.
- SemGrep - r2c - Semgrep 是一种快速、开源的静态分析工具,可在编辑器、提交和 CI 时发现错误并强制执行代码标准.
- SonarLint - SonarSource - 一个 IDE 插件,突出显示潜在的安全安全问题、代码质量问题和错误.
- SonarQube - SonarSource - 扫描代码以查找安全和质量问题,支持多种语言.
C / C++¶
- FlawFinder - David Wheeler - 扫描 C/C++ 代码以查找潜在的安全漏洞.
C¶
- Puma Scan - Puma Security - 用于扫描 .NET 项目潜在安全漏洞的 Visual Studio 插件.
Configuration Files¶
- Conftest - Instrumenta - 创建自定义测试以扫描任何配置文件中的安全漏洞.
Java¶
- Deep Dive - Discotek.ca - JVM 部署单元的静态分析,包括 Ear、War、Jar 和 APK.
- Find Security Bugs - OWASP - 用于 Java Web 应用程序安全审计的 SpotBugs 插件. 支持 Eclipse、IntelliJ、Android Studio 和 SonarQube.
- SpotBugs - SpotBugs - Java 应用程序的静态代码分析.
JavaScript¶
- ESLint - JS Foundation - 适用于 JavaScript 的 Linting 工具,具有多个可用的安全 linting 规则.
Go¶
- Golang Security Checker - securego - 用于扫描 Go 代码以查找潜在安全漏洞的 CLI 工具.
.NET¶
- Security Code Scan - Security Code Scan - Static code analysis for C# and VB.NET applications.
PHP¶
- Phan - Phan - 对 PHP 应用程序进行广泛的静态分析,并支持一些安全扫描功能.
- PHPCS Security Audit - Floe - 使用 PHP、Drupal 7 和 PHP 相关 CVE 规则的 PHP 静态分析.
- Progpilot - Design Security - PHP 源代码的静态分析.
Python¶
- Bandit - Python Code Quality Authority - 查找 Python 代码中的常见安全漏洞.
Ruby¶
- Brakeman - Justin Collins - 静态分析工具,用于检查 Ruby on Rails 应用程序是否存在安全漏洞.
- DawnScanner - Paolo Perego - Ruby 脚本和 Web 应用程序的安全扫描. 支持 Ruby on Rails、Sinatra 和 Padrino 框架.
Supply Chain Security¶
供应链攻击有不同的形式,针对 SDLC 中固有的第 3 方部分:CI 中的工具、已执行的外部代码等等. 供应链安全工具可以抵御这些类型的攻击.
- Harden Runner GitHub Action - StepSecurity - 在 GitHub 托管的运行器(Ubuntu VM)上安装安全代理,以防止凭据泄露,检测受损的依赖项和构建工具,并检测构建期间源代码的篡改.
- Preflight - Spectral - 帮助您验证脚本和可执行文件以减轻 CI 和其他系统中的供应链攻击,例如最近 Codecov hack.
- Sigstore - sigstore 是一套免费使用的开源工具,包括 fulcio, cosign and rekor,处理数字签名、验证和来源检查,以使其更安全地分发和使用开源软件.
Threat Modelling¶
威胁建模是一项工程实践,旨在识别威胁、漏洞和攻击向量,这些威胁、漏洞和攻击向量代表了对有价值的东西的风险. 基于对威胁的这种理解,我们可以设计、实施和验证安全控制以减轻威胁. 以下工具列表有助于威胁建模过程.
- Awesome Threat Modelling - Practical DevSecOps - 威胁建模资源的精选列表.
- SecuriCAD - Forseeti - 处理 IT 基础设施的建模和攻击模拟.
- IriusRisk - IriusRisk - 绘制威胁模型并捕获威胁和对策并管理风险.
- Raindance Project - DevSecOps - 使用攻击图来识别可能导致妥协的攻击面和对手策略.
- SD Elements - Security Compass - 识别威胁并对其进行排名,生成可操作的任务并跟踪相关票证.
- Threat Dragon - OWASP - 威胁模型图表工具.
- Threat Modelling Tool - Microsoft - 威胁模型图表工具.
- Threatspec - Threatspec - 将威胁建模定义为代码.
Related Lists¶
- Awesome Dynamic Analysis - Matthias Endler - 动态分析工具和代码质量检查器的集合.
- Awesome Static Analysis - Matthias Endler - 静态分析工具和代码质量检查器的集合.
- Awesome Threat Modelling - Practical DevSecOps - 威胁建模资源的精选列表.
- Vulnerable Web Apps Directory - OWASP - 一组用于学习目的的易受攻击的 Web 应用程序.
