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

已完成

安全扫描过去被视为每次发布时由专门的安全团队完成的工作,这些团队的成员几乎不与其他团队合作。

这种做法创造了一种危险的模式,即当开发人员面临发布软件产品的最大压力时,安全专家会发现大量问题。

压力往往导致软件在部署时存在一些安全漏洞,这些漏洞需要在产品发布后进行解决,因此需要在开发流程的多个阶段将扫描集成到团队的工作流中。 安全 DevOps 可帮助进行所有质量保证活动,包括安全性、持续和自动化。

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

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

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

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

这些扩展允许开发人员在将更改提交为 PR 之前对其进行试验。

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

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

同时,CD 需要是全面的。 在 Azure DevOps 中,CD 通常通过发布定义(用于在不同环境间推进构建输出)或其他构建定义进行管理。

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

可以扫描完整的代码项目,并脱机查看任何错误或警告,而不会阻止 CI 流。

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