DevSecOps 是一种以自动化方式将安全工具集成到 DevOps 流程中的方法。这种多文化、多学科的自动化安全环境使安全成为每个人的关注点,而不仅仅是安全团队的关注点。公司需要大量投资于自动化安全工具来实施 DevSecOps 管道,有时他们可能没有足够的预算来购买所有这些工具的许可证。如果您的组织正在开始 DevSecOps 之旅,那么建议之一是尝试使用开源工具来创建 POC,然后转向许可版本。
DevSecOps 不仅涉及工具,还涉及使用这些工具所需的知识。这会导致 DevOps 正常运行的文化变化,需要培训员工并要求他们提高自身技能。这使他们能够更有效地协作,从而创造一种“安全文化”。在这篇博客中,我将列出开源安全工具,这些工具将帮助您开始 DevSecOps 之旅。
以下是 DevSecOps 流程的典型阶段
现在让我们看看如何在每个阶段添加安全性并使您的管道成为 DevSecOps 管道。
设计阶段
威胁建模是一种评估风险的主动策略。它涉及识别潜在威胁并开发测试或程序来检测和应对这些威胁。这涉及了解威胁如何影响系统、对威胁进行分类以及应用适当的安全控制。
威胁建模工具
· OWASP Threat Dragon
· Microsoft 威胁建模工具
· pytm:用于威胁建模的 Pythonic 框架
开发阶段
预提交钩子— 由于意外的 git 提交,敏感信息(例如访问密钥、访问令牌、AWS 密钥、SSH 密钥等)经常通过公共源代码存储库被错误泄露。可以使用预提交钩子来避免这种情况,该钩子会在提交或推送活动之前检查文件中的敏感信息。开发人员可以轻松绕过此步骤,因此可以将其用作纵深防御,但不要完全依赖它。
预提交钩子工具
· Talisman
· Crass
· Git Hooks
· Git Secrets
· Pre Commit
· Detect Secrets
· Git Hound
· Truffle Hog
机密管理— DevOps 自动化要求将密码、ssh 密钥、身份验证令牌、证书等敏感信息存储在配置文件中,这可能会导致凭据暴露给非预期受众。机密管理允许在单独的级别上隔离凭据,并且每个环境都可以从特定环境中提取凭据并以编程方式使用它。
机密管理工具
· Hashicorp
· Torus
· Keywhiz
· EnvKey
· Confidant
· AWS Secrets Manager
构建阶段
软件组成分析 (SCA) — 识别第三方组件中的已知漏洞、许可证风险以及过时的库,并内置对主要包管理生态系统的支持。
SCA 工具
· Dependency Track
· Retire.js:查找易受攻击的 JavaScript 组件+
· SonaType
· Snyk(免费开源)
· Bunder Audit
· Rubysec
静态应用程序安全测试 (SAST) — 使用自动化工具进行安全代码审查的白盒安全测试,可清除许多容易出现的漏洞,如 SQL 注入、跨站点脚本、反序列化漏洞等。默认情况下,SAST 工具配置了通用设置,可能需要人工监督来管理误报。
SAST 工具
· Semgrep
· SonarQube 社区
· Graudit
· FindSecBugs for Java
· Bandit for Python · OWASP 还维护着源代码分析工具
列表
分期阶段
动态分析安全测试 (DAST) — 使用自动化工具进行黑盒/灰盒安全测试。如果没有应用程序部署,SAST 可能无法获得完整的信息,因此 DAST 在挑选特定于部署的问题方面非常有用。可以比较 DAST 和 SAST 的结果以消除误报。DAST 工具可能还需要预先设置配置设置才能获得良好的结果
DAST 工具
· OWASP ZAP
· Arachni
· Nikto
性能监控——在对应用程序进行测试时,DevOps 团队需要确保错误没有出现在其配置中并且应用程序性能没有下降。
性能监控工具
· Threat Mapper
· Anchore Engine
· Clair
漏洞评估 (VA) — 这是一种识别给定服务器上运行的各种服务的技术,探测已识别的服务以检查是否存在任何漏洞。在生产系统上执行漏洞评估以识别环境中运行的各种服务及其相关漏洞是一种常见做法。但是,我建议在将代码移动到生产环境之前,在准备阶段进行 VA 以识别任何漏洞。
VA工具
· OpenVAS
· DockScan
生产阶段
合规性即代码 (CaC) — 组织需要对其 IT 基础设施应用合规性控制,以遵守行业最佳实践和各种法规,如 PCI DSS、HIPAA、SOX 等。使用 DevOps 中的“基础设施即代码”,生产环境永远不会被保留,它总是被拆除并重新创建,因此在设置更新/新创建的环境后,强烈要求对其进行测试。
CaC 工具
· Inspec
· Serverspec
· DevSec 强化框架
· Kitchen CI
漏洞管理 (VM) — 我们用于创建 DevSecOps 管道的工具将生成大量漏洞,并且每个工具都有自己独立的格式。管理这些数据变得非常困难,更不用说跟踪和修复漏洞了。因此,漏洞管理解决方案是 DevSecOps 流程的核心,所有工具都需要将其数据汇集到这些解决方案中,以便可以集中管理、分类、跟踪和修复。
VM 工具
· ArcherySec
· DefectDojo
· Faraday
监控阶段
修改和监控— 生产应用程序总是面临来自未知和不可预见的载体的新威胁。这可以通过采用主动入侵监控和预防解决方案来缓解。一种这样的开源解决方案是 Web 应用程序防火墙 (WAF),它可以检测针对应用程序的 OWASP Top 10 漏洞,如 SQL 注入、跨站点脚本等。
监控工具
· ModSecurity
· Shadown Daemon
· NAXSI
· Ironbee
开源能走多远?
虽然其中一些工具并非完全是开源的,但每个工具都有一个免费版本,可以按原样使用或根据您的特定要求进行修改。根据您的 DevOps 团队的成熟度和,开源工具可以满足许多需求。但对于需要支持、更深入地覆盖威胁和漏洞或能够扩展到数千个系统的团队来说,商业安全工具或开源产品的商业版本是必不可少的。开源至少可以为您提供帮助,但是当您处理复杂性和规模问题时,您就必须切换。
原文始发于微信公众号(星空网络安全):使用开源工具设置 DevSecOps 管道
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论