
<p align="center">
<a href="https://awesome.re">
<img alt="Awesome" src="https://yellow-cdn.veclightyear.com/0a4dffa0/aa8ecbef-f632-4206-831b-c225bdc3e228.svg">
</a>
</p>
<hr/>
精选最佳 DevSecOps 资源和工具。
DevSecOps 是 DevOps 运动的延伸,旨在通过以开发人员为中心的安全工具和流程,将安全实践引入开发生命周期。
欢迎贡献。通过拉取请求添加链接或创建议题以开始讨论。
目录
资源
文章
书籍
社区
- DevSecCon - Snyk - 一个运营会议、博客、播客和 Discord 的社区,专注于 DevSecOps。
- TAG 安全 - 云原生计算基金会 - TAG 安全促进合作,发现并产生资源,为云原生生态系统中的运营商、管理员、开发人员和最终用户提供安全访问、策略控制和安全保障。
会议
通讯
- Shift Security Left - Cossack Labs - 面向安全意识开发人员的免费双周刊,涵盖应用安全、安全架构、DevSecOps、密码学、事件等对构建者(在较小程度上也包括破坏者)有用的内容。
播客
安全开发指南
- 应用安全验证标准 - OWASP - 一个安全需求和控制框架,帮助开发人员设计和开发安全的 Web 应用程序。
- 编码标准 - CERT - 一套适用于 C、C++、Java 和 Android 开发的安全开发标准集合。
- 安全软件开发基本实践 - SAFECode - 在整个软件开发生命周期中实施关键安全开发实践的指南。
- 主动控制 - OWASP - OWASP 列出的每个软件开发项目中都应该实施的十大控制措施。
- 安全编码指南 - Mozilla - 包含安全 Web 应用程序开发的具体安全开发标准的指南。
- 安全编码实践快速参考指南 - OWASP - 用于验证是否遵循安全开发标准的清单。
安全开发生命周期框架
工具链
培训
- 应用安全教育 - Duo Security - 由 Duo 应用安全团队创建的培训材料,包括入门和高级培训演示以及实践实验。
- Cybrary - Cybrary - 基于订阅的在线课程,设有专门的网络安全和 DevSecOps 类别。
- PentesterLab - PentesterLab - 动手实验,用于理解和利用简单和高级的 Web 漏洞。
- 实用 DevSecOps - Practical DevSecOps - 通过最先进的基于浏览器的实验室,向行业专家学习 DevSecOps 概念、工具和技术。
- SafeStack - SafeStack - 为软件开发团队设计的安全培训,适合个人和小团队以及大型组织。
- Secure Code Warrior - Secure Code Warrior - 游戏化和动手实践的安全开发培训,支持课程、评估和竞赛。
- SecureFlag - OWASP - 为开发人员和构建/发布工程师提供的动手安全编码培训。
- 工程师安全培训 - Pager Duty - PagerDuty 创建并开源的演示文稿,为软件工程师提供安全培训。
- 面向所有人的安全培训 - Pager Duty - PagerDuty 创建并开源的演示文稿,为员工提供安全培训。
- Semgrep 学院 - Semgrep - 免费的点播课程,涵盖 API 安全、安全编码和应用安全等主题。
- Web 安全学院 - PortSwigger - 一套学习和利用常见 Web 漏洞的材料和实验。
- WeHackPuple - WeHackPurple - 教授应用安全理论和实践技术课程的在线课程。
维基
工具
依赖管理
开源软件包可以通过允许开发人员实现功能而无需编写所有代码来加快开发过程。然而,开源代码也带来了开源漏洞。依赖管理工具通过识别和更新具有已知漏洞的包来帮助管理开源包中的漏洞。
动态分析
动态分析安全测试(DAST)是一种黑盒安全测试形式,安全扫描器与应用程序的运行实例进行交互,模拟恶意活动以发现常见漏洞。DAST 工具通常用于渗透测试的初始阶段,可以发现跨站脚本、SQL 注入、跨站请求伪造和信息泄露等漏洞。
基础设施即代码分析
基础设施即代码允许应用程序可靠地部署到一致的环境中。这不仅确保基础设施得到一致的加固,还提供了静态和动态分析基础设施定义以检查易受攻击的依赖项、硬编码的秘密、不安全的配置和安全配置中的意外更改的机会。以下工具可以促进此分析。
多平台
- Checkov - Bridgecrew - 扫描 Terraform、AWS CloudFormation 和 Kubernetes 模板中的不安全配置。
- KICS - Checkmarx - 在开发周期的早期发现安全漏洞、合规性问题和基础设施配置错误。
- Spectral DeepConfig - Spectral - 在提交时就发现基础设施和应用程序中的错误配置。
- Terrascan - Accurics - 在预置云原生基础设施之前,检测基础设施即代码中的合规性和安全违规,以降低风险。
Cloud Formation
- Cfn Nag - Stelligent - 扫描 AWS CloudFormation 模板中的不安全配置。
容器
- Clair - Red Hat - 扫描应用容器和 Docker 容器中公开披露的漏洞。
- Dagda - Elías Grande - 比较 Docker 容器中安装的操作系统和软件依赖项版本与公共漏洞数据库,并执行病毒扫描。
- Docker-Bench-Security - Docker - Docker Bench for Security 是一个脚本,用于检查在生产环境中部署 Docker 容器时的数十种常见最佳实践。
- Grype - Anchore - 一个易于集成的开源漏洞扫描工具,用于容器镜像和文件系统。
- 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
- Kubescape - Cloud Native Computing Foundation - 一个开源的Kubernetes安全平台,适用于IDE、CI/CD流程和集群。
- Kube-Score - Gustav Westling - 扫描Kubernetes对象定义,检查安全和性能配置错误。
- Kubectrl Kubesec - ControlPlane - kubesec.io的插件,用于对Kubernetes资源进行安全风险分析。
Ansible
- Ansible-Lint - Ansible社区 - 检查playbook中可能需要改进的做法和行为。作为社区支持的项目,ansible-lint仅支持Ansible的最新两个主要版本。
故意存在漏洞的应用程序
故意存在漏洞的应用程序在开发安全测试和工具时常常很有用,它们提供了一个可以运行测试并确保测试正确失败的环境。这些应用程序还可以帮助理解常见漏洞是如何被引入应用程序的,让你可以练习利用这些漏洞的技能。
- Bad SSL - The Chromium Project - 运行多个配置不当的SSL/TLS Web服务器的容器。适用于测试工具。
- Cfngoat - Bridgecrew - 用于在AWS中创建故意不安全服务堆栈的Cloud Formation模板。适合测试上述Cloud Formation基础设施即代码分析工具。
- CI/CD Goat - Cider Security - 一个故意存在漏洞的CI/CD环境。通过多个挑战学习CI/CD安全。
- Damn Vulnerable Web App - Ryan Dewhurst - 一个提供安全环境的Web应用程序,用于理解和利用常见Web漏洞。
- Juice Shop - OWASP - 包含OWASP十大安全漏洞及更多漏洞的Web应用程序。
- Kubernetes Goat - Madhu Akula - 故意存在漏洞的集群环境,用于学习和练习Kubernetes安全。
- NodeGoat - OWASP - 一个Node.js Web应用程序,演示并提供解决常见安全漏洞的方法。
- Pentest-Ground - Pentest-Tools.com - Pentest-Ground是一个免费的游乐场,包含故意存在漏洞的Web应用程序和网络服务。
- Terragoat - Bridgecrew - 用于在AWS、Azure和GCP中创建故意不安全服务堆栈的Terraform模板。适合测试上述Terraform基础设施即代码分析工具。
- Vulnerable Web Apps Directory - OWASP - 用于学习目的的易受攻击的Web应用程序集合。
- WrongSecrets - OWASP - 存在漏洞的应用程序,展示了如何不正确使用密钥的示例。
监控
仅在发布前测试和加固我们的软件是不够的。我们还必须监控生产软件的使用、性能和错误,以捕捉恶意行为和可能需要响应或解决的潜在安全漏洞。有各种各样的工具可用于监控生产软件和基础设施的不同方面。
- Csper - Csper - 一套内容安全策略工具,可以测试策略、监控CSP报告并提供指标和警报。
- Streamdal - Streamdal - 在应用程序代码中嵌入隐私控制,以在个人身份信息进入和离开系统时检测和监控,防止其到达未预期的数据库、数据流或管道。
密钥管理
我们编写的软件需要使用密钥(密码、API密钥、证书、数据库连接字符串)来访问资源,但我们不能将密钥存储在代码库中,因为这会使它们容易受到泄露。密钥管理工具提供了一种安全存储、访问和管理密钥的方法。
机密扫描
源代码控制不是存储机密信息(如凭证、API密钥或令牌)的安全场所,即使仓库是私有的也不例外。机密扫描工具可以扫描和监控git仓库和拉取请求中的机密信息,可用于防止机密被提交,或查找和删除已经提交到源代码控制中的机密。
- CredScan - Microsoft - 可以作为Azure DevOps管道中的任务运行的凭证扫描工具。
- Detect Secrets - Yelp - 一个恰如其名的模块,用于(不出所料)检测代码库中的机密。
- GitGuardian - GitGuardian - 一个基于Web的解决方案,用于扫描和监控公共和私有git仓库中的机密。
- Gitleaks - Zachary Rice - Gitleaks是一个SAST工具,用于检测git仓库中硬编码的机密,如密码、API密钥和令牌。
- git-secrets - AWS Labs - 扫描提交、提交消息和合并中的机密。原生支持AWS机密模式,但可配置以支持其他模式。
- Nightfall - Nightfall - 一个基于Web的平台,可监控多个SDLC工具(包括GitHub仓库)中的敏感数据泄露。
- Repo-supervisor - Auth0 - 可以作为CLI 、Docker容器或在AWS Lambda中运行的机密扫描工具。
- SpectralOps - Spectral - 自动化代码安全、机密、令牌和敏感数据扫描。
- truffleHog - Truffle Security - 在git仓库中搜索机密,深入挖掘提交历史和分支。
静态分析
静态分析安全测试(SAST)工具在不执行目标软件的情况下扫描软件中的漏洞。通常,静态分析会扫描源代码中的安全缺陷,如使用不安全的函数、硬编码的机密和配置问题。SAST工具通常以IDE插件和CLI的形式出现,可以集成到CI/CD管道中。
多语言支持
- DevSkim - 微软 - 一套IDE插件、命令行工具和其他工具,为多种编程语言提供安全分析。
- Graudit - Eldar Marcussen - 使用自定义或预配置的正则表达式签名对源代码进行grep,查找潜在的安全漏洞。
- Hawkeye - Hawkeyesec - 模块化的命令行工具,用于项目安全、漏洞和一般风险突出显示。
- LGTM - Semmle - 使用自定义或内置的CodeQL查询来扫描和监控代码中的安全漏洞。
- RIPS - RIPS Technologies - 针对PHP、Java和Node.js项目的自动化静态分析。
- SemGrep - r2c - Semgrep是一个快速、开源的静态分析工具,可在编辑器、提交和CI时发现bug并强制执行代码标准。
- SonarLint - SonarSource - 一个IDE插件,可突出显示潜在的安全问题、代码质量问题和bug。
- SonarQube - SonarSource - 扫描代码中的安全和质量问题,支持多种编程语言。
C / C++
C#
- Puma Scan - Puma Security - 一个Visual Studio插件,用于扫描.NET项目中的潜在安全漏洞。
配置文件
- Conftest - Instrumenta - 创建自定义测试以扫描任何配置文件中的安全漏洞。
- Selefra - Selefra - 一个开源的策略即代码软件,为多云和SaaS提供分析。
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的代码检查工具,有多个安全检查规则可用。
Go
.NET
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框架。
供应链安全
供应链攻击以不同的形式出现,针对SDLC中本质上是第三方的部分:CI中的工具、已执行的外部代码等。供应链安全工具可以防御这些类型的攻击。
威胁建模
威胁建模是一种工程练习,旨在识别对有价值事物构成风险的威胁、漏洞和攻击途径。基于对威胁的理解,我们可以设计、实施和验证安全控制以减轻威胁。以下工具列表有助于威胁建模过程。
相关列表