将软件组合分析检查集成到管道中
安全扫描过去被视为每次发布时由专门的安全团队完成的工作,这些团队的成员几乎不与其他团队合作。
这种做法创造了一种危险的模式,即当开发人员面临发布软件产品的最大压力时,安全专家会发现大量问题。
压力往往导致软件在部署时存在一些安全漏洞,这些漏洞需要在产品发布后进行解决,因此需要在开发流程的多个阶段将扫描集成到团队的工作流中。 安全 DevOps 可帮助进行所有质量保证活动,包括安全性、持续和自动化。
拉取请求代码扫描分析集成。
DevOps 团队可以使用拉取请求(PR)将建议的更改提交到应用程序的(主)代码库。 为了避免引入新问题,开发人员需要在创建 PR 之前验证代码更改的影响。 对于 DevOps 流程中的每个小更改,通常都会进行 PR。 更改将持续与主代码库合并,以使主代码库保持最新。 理想情况下,开发人员应在创建 PR 之前检查安全问题。
有助于在 PR 期间集成扫描的 Azure 市场扩展包括:
- 门德 使用二进制指纹帮助验证依赖项。
- Checkmarx。 提供对更改的增量扫描。
- Veracode。 实现开发者沙盒的概念。
- Black Duck by Synopsis。 用于开源代码的审核工具,可帮助识别、修复和管理合规性。
这些扩展允许开发人员在将更改提交为 PR 之前对其进行试验。
生成和发布定义代码扫描、分析和集成
开发人员需要优化 CI 的速度,以获得有关构建问题的即时反馈。 可以快速执行代码扫描,以集成 CI 生成定义,从而防止生成中断。 它使开发人员能够立即修复潜在问题,将生成状态还原为就绪/绿色。
同时,CD 需要是全面的。 在 Azure DevOps 中,CD 通常通过发布定义(用于在不同环境间推进构建输出)或其他构建定义进行管理。
生成定义可以按计划(每天)触发,或在每次提交时触发。 无论哪种情况,生成定义都可以执行更长的静态分析扫描(如下图所示)。
可以扫描完整的代码项目,并脱机查看任何错误或警告,而不会阻止 CI 流。
