将软件组合分析检查集成到管道中

已完成

安全扫描以前被视为这样一种活动:它由专门的安全团队对每次发布完成一次,而该团队的成员几乎不参与其他组。

这种做法带来了一种危险的模式:正当开发人员处在发布软件产品的压力最大的时刻,安全专家发现了大批量的问题。

这种压力通常会导致在包含安全漏洞的情况下部署软件,需要在产品发布后解决这些安全漏洞,在开发路径上的多个位点将扫描集成到团队的工作流中。 安全型 DevOps 有助于让所有质量保证活动(包括安全性)变得持续和自动化。

拉取请求代码扫描分析集成。

DevOps 团队可以使用拉取请求 (PR) 将建议的更改提交到应用程序的(主要)代码库。 为了避免引入新问题,开发人员需要在创建 PR 之前验证代码更改的影响。 在 DevOps 过程中,通常会对每个小更改使用 PR。 更改持续与主要代码库合并,使主要代码库保持最新。 理想情况下,开发人员应在创建 PR 前检查是否存在安全问题。

有助于在 PR 期间集成扫描的 Azure 市场扩展包括:

  • Mend。 帮助验证依赖项及其二进制指纹。
  • Checkmarx。 提供对更改的增量扫描。
  • Veracode。 实现开发人员沙盒的概念。
  • Black Duck by Synopsis。 用于帮助识别、修复和管理符合性的开源代码审核工具。

通过这些扩展,开发人员可以在将更改作为 PR 提交之前对其进行试验。

生成和发布定义代码扫描、分析和集成

开发人员需要优化 CI 以提升速度,获得有关生成问题的直接反馈。 可以足够快地执行代码扫描以集成 CI 生成定义,从而防止生成中断。 它使开发人员可以立即修复潜在问题,将生成的状态还原为就绪/绿色。

同时,CD 需要是全面的。 在 Azure DevOps 中,通常通过发布定义(它跨环境处理生成输出)或其他生成定义管理 CD。

生成定义可以按计划(每天)触发,或在每次提交时触发。 无论是哪种情况,生成定义都可以执行更长的静态分析扫描(如下图所示)。

你可以扫描完整的代码项目并离线查看任何错误或警告,而不阻塞 CI 流。

显示工作流的关系图,其中概述了生成定义如何能够触发源代码的静态分析扫描。