DevSecOps 不是一个工具,而是一个检查场所
“我们需要 DevSecOps”这句话通常意味着“我们需要扫描仪”。他们会购买一台扫描仪,它会发现四千条评论,开发人员会忽略它们,六个月后该项目将因失败而关闭。错误不在工具中: 在与之前相同的位置寻找缺陷 - 最后,只是更快。
DevSecOps 的实际意义是相同的:检查是在其结果应用起来仍然便宜的时候执行的。提交中发现的秘密是三十秒的工作。在产品中发现了同样的秘密 - 密钥轮换、访问分析和与客户的解释。区别不在于搜索的质量,而在于搜索的时刻。
传送带图:在哪里检查什么
每一类检查都会发现其自己的缺陷类别。了解哪个阶段涵盖了什么内容,就无需尝试使用一种工具解决所有问题。
| 阶段 | 检查班级 | 它发现了什么 | 反应 |
|---|---|---|---|
| 提交之前先提交 | 寻找秘密,本地短绒 | 代码和配置中的密钥、密码、令牌 | 块:修复成本最小 |
| Pull request | 修改文件上的 SAST | 注入、不安全的反序列化、使用密码学时的错误 | 仅阻止新的高危缺陷 |
| 集会 | SCA和SBOM | 易受攻击且与许可证不兼容的依赖项、交付内容 | 根据关键性阈值进行阻止,其余的进入积压 |
| 构建图像 | 扫描容器和基础层 | 操作系统包漏洞、不必要的实用程序、以 root 身份运行 | 在当前基础镜像上重建 |
| 基础设施即代码 | 清单验证 | 开放端口、公共存储桶、特权容器、无加密 | 块:在同一 PR 中更正 |
| 测试环境 | DAST、API 检查 | 授权错误、业务逻辑绕过、Web 服务器配置 | 向通用开发跟踪器添加缺陷 |
| 发布前 | 手动分析、渗透测试 | 逻辑漏洞、自动化看不到的链条 | 与架构师一起审查,决定发布 |
| 运营 | 监控、漏洞管理 | 已安装的新 CVE,访问异常 | 计划的版本轮换,根据 SLA 进行响应 |
我们在方向范围内部署检查类 DevSecOps 和应用程序安全;操作部分是 漏洞管理.
实施顺序:从速效到昂贵
如果开发已经在进行中,您无法立即引入所有内容 - 传送带将停止。事实证明,以下顺序可以确保每个步骤在下一个步骤开始之前产生可测量的结果。
步骤 1. 库存(1-2 周)
存储库、管道、环境和退出点的列表。谁是所有者,什么部署在哪里,开放哪些外部地址。如果没有这张地图,任何自动化都会覆盖一个随机子集。周边外侧部分方便拆卸 外部资产审计 — 被遗忘的阵地经常出现战斗数据。
第 2 步:秘密(2-3 周)
最快的胜利。立即在所有存储库上启用秘密搜索,在单独的运行中扫描历史记录,轮换找到的密钥,并将存储移动到秘密管理器。在这里,我们还把事情整理在传送带本身的账户中:装配代理商几乎总是拥有过多的权利 - 一个话题 IDM/PAM 和访问控制.
步骤 3. 交付内容(3-4 周)
SCA 和 SBOM:您开始了解产品是由什么制成的。这同时也是安全性、许可纯度和进口替代的基础——没有供应的构成,谈论技术独立是没有意义的(进口替代和技术独立).
步骤 4. 代码分析和动态(1-2 个月)
SAST 在“仅新缺陷”模式下启用,DAST 在测试环境上启用。阻止构建和 SLA 进行更正的规则也显示在此处。手动分析和 渗透测试 它们是最后连接的:当自动化已经消除了噪音时,它们既昂贵又有意义。
如何不阻碍发展
失败的主要原因是无法处理的发现流。工作技术:
- Baseline. 第一次运行中发现的所有内容都被记录为已知债务并且不会被冻结。仅阻止新的缺陷,即先前版本中不存在的缺陷。否则,团队会在第一天得到一个旋塞。
- 阈值基于重要性,而不是数量。 “评论不得超过10条”是一条毫无意义的规则。 “修改后的代码中没有新的严重漏洞”-可执行。
- SLA 用于纠正而不是立即阻止。 严重 - 3 天,高 - 14 天,中等 - 在计划的发布中。延误是升级而不是停止管道。
- 一个追踪器。 安全缺陷与其他开发任务存在于同一位置。除了维护它的人之外,没有人会读取单独的“漏洞登记册”。
- 处理误报。 团队应该有一种简单的方法来将发现标记为不适用并有理由,并且应该在运行之间维持该决定。如果没有这一点,人们将在两周内失去对该工具的信心。
- 球队的安全,而不是高于球队。 开发团队中的安全冠军可以当场解决 80% 的问题。
显示运动情况的指标
- 涂层: 启用检查的存储库和管道的份额是第一年最诚实的指标。
- 修正前的时间 按严重程度等级,分别针对新缺陷和继承缺陷。
- 测试环境前发现的缺陷比例 - 随着支票向左移动而增长。
- 误报率 ——如果超过三分之一,则需要调整规则,而不是要求纪律。
- 最古老的关键发现的年龄 - 一个比任何仪表板更诚实地显示 SLA 是否有效的数字。
- 构建时间 — 检查不应将十分钟的传送带变成长达一小时的传送带,否则它们将开始被关闭。
俄语背景
- GOST R 56939 “开发安全软件”设定了流程框架:安全需求分析、威胁建模、静态分析、测试、配置管理。对于许多客户来说,遵守此标准是接受的条件。
- 重要的 CII 对象。 如果软件在重要设施内运行,则 187-FZ 下的要求将添加到开发过程中 - 请参阅。 「KII/187-FZ 的保护」.
- 俄罗斯软件注册。 要启用它,您需要确认供应和依赖性控制 - SBOM 在步骤 3 中提供的内容。
- 测试环境中的个人数据。 看台上的战斗基地副本是典型的、严重违反152-FZ的行为。正在决定中 掩饰和人格解体,而不是禁止测试。
前 90 天的清单
第 1-30 天
- 已编制了一份包含所有者的存储库、管道和环境的登记册。
- 在所有存储库上都启用了秘密搜索,并且已扫描历史记录。
- 找到的密钥被轮换,存储转移到秘密管理器。
- 集会代理人的权利已被修改和限制。
第 31-60 天
- SCA 在每个构建上运行,SBOM 保存为发布工件。
- 确定关键性阻塞阈值并记录基线。
- 安全缺陷包含在通用开发跟踪器中。
- 修复 SLA 和升级程序已达成一致。
第 61–90 天
- SAST 在关键存储库上以“仅新缺陷”模式启用。
- 容器扫描和基础设施清单检查内置于管道中。
- DAST 至少在外部服务的测试环境上工作。
- 安全冠军已经任命,第一份指标摘要也已收集。
我们在哪里连接
RESTART实践涵盖了流程的构建及其操作:
- DevSecOps 和应用程序安全 — 设计检查流程、制定规则、处理结果流程。
- DevOps、DevSecOps 与生产支持 — 如果您需要的不是一次性设置,而是一个能够进一步推进流程的团队。
- 漏洞管理 和 渗透测试 — 运算环境和独立验证。
- 网络安全实验室 — 分析复杂的发现并检验假设。
- Private Dev AI — 如果您想使用 AI 助手加快开发速度,而不需要将代码带到外部;材料中讨论了如何围绕它建立控制 关于安全的企业人工智能.
我们需要对特定管道进行分析,而不是一般图表 - 写信给我们.
让我们讨论一下您的环境
描述任务、当前系统、约束和预期结果。我们将提供实用的第一步:诊断、试点、审计、路线图或项目团队。
