# DevSecOps 检查清单

由 [@hylerrix](https://github.com/hylerrix)提供，基于：[中文版](https://mp.weixin.qq.com/s/s6P7Ucv1V2oWknfkvucMOw)和 [英文版](https://www.synopsys.com/blogs/software-security/devsecops-pipeline-checklist/)

```checklist
- DevSecOps 检查清单
  - 关键目标
    - 让开发人员专注于修复缺陷
    - 通过在开发人员的 IDE 中使用预提交检查，在开发发布周期的早期阶段匹配源代码分析策略
    - 激发开发组织的预防意识
    - 使安全团队能够维护合规并集中的持续跟踪残余风险
    - 允许 DevSecOps 团队集成 SAST 工具，同时不增加生产前置时间
  - 预提交检查：将源码更改提交到源码库之前查找并修复常见的安全问题
    - 触发威胁建模
    - 触发 ARA：架构风险分析
    - 触发手动代码审查
    - 电子邮件通知：钩子程序发送给应用程序安全团队或软件安全组（SSG）
    - 配置审查
  - 提交时检查：生成并执行基本的自动化应用测试，测试结果快速反馈给提交变更的开发人员
    - 编译并构建代码
    - 运行 SAST 工具：静态应用程序安全检测（SAST）
    - 自动化安全测试
    - 自动化安全测试并收集指标
    - 构建被破坏时发出警报
  - 构建时检查：对应用程序执行高阶自动化测试
    - 配置更全面的 SAST 规则集：应包括常见的严重和高严重性问题，例如 OWASP Top 10
    - SCA
    - 基于风险的安全测试
    - 自动化安全测试并收集指标
    - 构建被破坏时发出警报
  - 测试时检查：从制品库中选择最新的“好的”构建，并将其部署到类生产或测试环境
    - 配置更广泛的 SAST 规则集：应包括常见的严重和高严重性问题，例如 OWASP Top 10
    - 配置运行 DAST 工具
    - 恶意代码检测
    - 进行模糊测试：给程序的输入参数灌入随机数据，以期引起错误状态
    - 自动化安全测试并收集指标
    - 构建被破坏时发出警报
  - 部署时检查：提供持续的保障，确保对生产环境的更改不会引起安全问题
    - 自动化配置管理：部署前
    - 自动配置运行时环境：部署前
    - 持续监控，自动收集应用级别安全指标：部署后
    - 安排安全扫描：部署后
    - 执行漏洞扫描：部署后
    - 协助漏洞扫描：部署后
    - 创建事件响应计划：部署后
    - 向 DevSecOps 团队提供洞察力以推动威胁情报活动：部署后
```
