就个人而言,我喜欢 DevSecOps(安全团队在 Dev 和 Ops 正在执行的整个过程中编织安全性)。由于我的热情,客户经常询问我何时、如何以及在何处注入各种类型的测试和其他安全活动。下面是我为客户提供的用于自动化测试的选项列表(在 DevOps 中有更多的安全工作要做——这只是自动化测试)。他们一起分析列表并根据他们当前的状态决定哪些地方最有意义,并根据他们当前的关注点选择工具。
自动化测试的七个地方
1.在集成开发环境中:
- 几乎像拼写检查器一样检查代码的工具(不确定这叫什么,有时称为 SAST)
- 代理管理和依赖工具,只允许您下载安全包
- API 和其他 linting 工具,解释您在哪里没有遵循定义文件
- 软件组合分析告诉你,也许这些软件包不是那么安全使用
2.预提交挂钩:
Secret scanning——让我们在安全事件发生之前将其阻止。
3.在代码存储库级别:
- 每周任务表:SCA 和 SAST
- Linting
- IAC扫描
4.在管道中:必须快速准确(几乎没有误报)
- Secret scanning - 再来一次!
- 基础架构即代码扫描 (IaC)
- 带有来自 Selenium 的 HAR 文件的 DAST,或者只是被动扫描(无模糊测试)
- SCA(如果你愿意,最好使用与第一次不同的工具)
- 容器和基础扫描,以及它们的依赖关系
- 将基础架构扫描为代码以查找不良策略、配置和缺失的补丁
5.管道外:
- DAST 和模糊测试——每周自动运行!
- VA 扫描/基础设施——应每周进行一次
- IAST — 在 QA 测试和渗透测试期间安装,如果您有信心,也可以在产品中安装。
- SAST——测试每个主要版本或每次大更改后的所有内容,然后对结果进行人工审查。
6.单元测试:
- 进行开发人员的测试并将其转化为负面测试/滥用案例。
- 根据渗透测试结果创建单元测试,以确保我们不会重蹈覆辙。
7.持续:
漏洞管理。您应该将所有扫描数据上传到某种系统中,以寻找模式、趋势和(最重要的)改进。
您不需要做所有这些,甚至不需要做其中的一半。本文的目的是向您展示几种可能性,希望您能利用其中的一些。