自动化:DevSecOps的关键之一

作者:新思科技软件质量与安全部门产品市场经理Steve Cohen

世界在不断变化,APPSec应用亦是如此,自动化是推动APPSec持续、有效地发展的关键之一。许多企业已经迈出了第一步,整合其开发和运营团队,以推动更加高效的应用程序交付和市场创新。他们相互协调,朝着共同的目标奋进 —— 快速推出稳定性能、高质量的软件,并取得了很大的进展。自动化是高效达到成果的方法之一。

DevOps中的自动化

通过将手动流程自动化,并且将工具构建为持续集成和持续交付(CI/CD)管道,开发和运营团队提高了工作流程效率和团队之间的信任,这一点至关重要。因为这些曾经不同的团队现在合并成为一个新的团队来解决关键问题。我们看到在集成工具中自动化的使用和扩展,例如GitLab用于版本控制, Jenkins用于 CI, Jira用于缺陷跟踪以及 Docker用于工具链中的容器集成。这些工具协同工作,创建一个紧密的自动化环境,旨在使企业能够专注于更快地向市场交付高质量的创新产品。

DevSecOps中的自动化

企业也意识到通过在软件开发生命周期(SDLC)早期阶段融入安全原则来应用和共享自动化的价值意义重大。这样可以缩短反馈回路并减少冲突,从而使工程师能够更快、更顺利地检测和修复安全性和合规性问题,成为软件开发工作流程的一部分。

点击了解更多关于DevSecOps。DevSecOps中的自动化是共性。它使统一的DevSecOps 团队中的开发、安全和运维角色都能够在SDLC上协作和扩展视野,无论部署框架是本地部署、私有云、公有云还是混合云。通过使其成为企业新文化中无摩擦的一部分,从而加速了安全性部署。

如何在DevSecOps中使Sec自动化

根据BSIMM9报告,自动化将安全性成功集成到DevOps中发挥关键作用。以下是BSIMM中支持DevSecOps的一些关键活动和实践:

  • 软件环境 3.5:对容器和虚拟化环境使用编排功能。通过容器或其他虚拟化环境的编排来应用和提供可重复的最佳安全实践。
  • 软件环境 3.6:通过运营物料清单来增强应用库存盘点。在物料清单中清点你的应用程序和组件。识别所有正在使用的开源,无论是整个组件还是代码片段。
  • 软件环境 3.7:确保具备云安全基础能力。如果您在云中,请确保应用云安全功能和控制(其中一些可能是内置的)。
  • 标准和要求。将安全标准和指南集成到开发环境中(例如,将它们用于集成开发环境IDE)。指南可以明确地链接到代码示例甚至容器,以使它们更具可操作性和相关性。
  • 代码审查。定义代码审查流程,使代码审查更加有效和一致,并为非安全专家的审核人员提供安全专业知识。
  • 安全测试 2.5:在质量保证QA自动化中包含安全测试。作为自动回归测试的一部分,将这些测试与功能测试一起运行。

自动化只是DevSecOps的因素之一

尽管自动化在DevSecOps中非常关键,但它并不能替代所有手动操作。你仍然需要专注于应用程序的设计以及应用程序和安全控制的基础架构支持。找出可能增加系统易受攻击的潜在弱点非常重要,包括设计违反安全设计模式、系统忽略安全控制或者安全控制遭到错误配置、弱点或误用的情况。

随着许多企业在使用DevSecOps团队替代“企业信息孤岛”和实施CI/CD工作流程方面取得了重大进展,DevSecOps中自动化的优势包括简化、协作开发、安全和操作方法显而易见:它们帮助企业更快地将高质量、安全的性能和增强功能推向市场。