您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 开发技术 > 正文

在DevOps中整合“安全即代码”文化

发表于:2020-12-30 作者:泽阳 来源:DevOps云学堂

最近,DevOps的采用导致了企业计算的重大转变。除无服务器计算,动态配置和即付即用成本模型之类的功能外,DevOps的实践对于组织可以发挥一些增值效益,例如提高敏捷性,速度和降低成本,也非常有用。

尽管DevOps广受欢迎,但在需要安全交付代码的情况下,人们却发现DevOps是有需要的。这导致了一种新的开发方法,该方法促进了信息安全与DevOps的共存,通常将其称为DevSecOps。

对DevSecOps的需求

通过DevOps协调开发和运营团队,DevOps使得在更快的时间内开发定制软件和业务应用程序成为可能。但是,在大多数情况下,在DevOps实施中并未将安全性放在首位,并且通常被视为快速发展的障碍。

尽管组织越来越专注于打破开发,测试和运营团队之间的传统孤岛,但许多组织尚未将安全性集成到他们的开发过程中,因此容易受到漏洞的威胁。

这是DevSecOps Services的来源。DevSecOps方法包括将安全性纳入DevOps实践的重要组成部分。通过持续的监视,评估和分析,DevSecOps确保在开发过程的早期发现任何漏洞和弱点并立即予以补救。

在DevOps中整合“安全即代码”文化

DevOps和DevSecOps之间的区别

DevOps是指开发,测试和运营团队之间的协作环境,以实现持续交付,而DevSecOps涉及将安全组件集成到DevOps流程中DevSecOps专注于解决DevOps Automation安全问题,例如配置管理,组件分析等。

DevSecOps到底是什么?

DevOps通常被理解为流程和工具的组合,可促进软件工程和基础架构团队之间的持续协作。反过来,这些功能可自动在整个组织中快速可靠地交付应用程序和服务。DevOps包括多个重点领域,包括自动配置,持续集成,持续监视和测试驱动的开发。

作为DevOps思维方式的扩展,DevSecOps将安全控件和流程嵌入到DevOps工作流程中,并自动执行核心安全任务。这些安全性原则是在开发过程的早期引入的,并在整个开发生命周期中得到实施。

除了为DevOps团队提供安全知识和实践外,DevSecOps还将应用程序开发知识和流程整合到安全团队中,以实现团队之间的高效协作。在IT领域中,关于DevSecOps一词的用法没有一致意见,DevSecOps一词有时被称为DevOpsSec,SecDevOps或 Rugged DevOps。

DevSecOps方法的主要组成部分

组织需要在其开发DevSecOps的方法中纳入文化和技术上的转变,以更有效地应对实时安全威胁。实际的DevSecOps方法需要考虑六个主要组成部分。这些包括:

  • 代码分析通过小块代码交付,可以快速识别漏洞。
  • 变更管理这样,用户不仅可以提交高速度和高效率的变更,还可以确定变更的影响是正面还是负面。
  • 监视合规性组织应遵守通用数据保护法规(GDPR)和支付卡行业数字安全标准(PCI DSS)之类的法规,并随时准备由监管机构进行审核。
  • 调查威胁每次代码更新都会伴随潜在的新兴威胁。尽早识别这些威胁并立即做出反应至关重要。
  • 漏洞评估涉及对新漏洞的分析以及对新漏洞的响应。
  • 培训组织需要让他们的软件IT工程师参与安全性相关的培训,并为他们配备确定例程的准则。
在DevOps中整合“安全即代码”文化

采用DevSecOps策略

从DevOps迁移到DevSecOps并不是一个简单的提议,但可以通过适当计划的分阶段成功实现。组织在采用DevSecOps时需要考虑三个关键步骤:

  • 当前安全措施的评估安全团队执行威胁建模并进行风险评估,以帮助他们分析组织资产的敏感度水平及其潜在威胁。此外,他们可以了解当前的安全控制并确定需要修改的优先级。
  • 将安全性集成到DevOps中将安全性措施集成到开发过程中涉及检查开发工作流程,并确保将安全性实践和自动化相结合,从而将干扰降到最低。
  • 将DevSecOps与安全运营集成只有开发,安全和运营团队致力于协调并将安全流程和控件嵌入整个DevOps工作流程中,DevSecOps实施才能被视为成功。在开发过程中持续监视任何安全问题并确保快速响应,对于将安全操作与DevSecOps方法集成在一起至关重要。

在DevOps中整合“安全即代码”文化

重要的DevSecOps工具

DevSecOps的采用涉及评估应用程序安全风险和代码测试,而专用工具是必不可少的。集成开发环境(IDE)中自动测试工具的使用使开发人员能够将安全性纳入DevOps工作流程中,而无需每次都启动新的环境来测试代码。

已经开发了多种工具来促进DevSecOps实施的各个方面。这些包括:

  • 可视化工具 Kibana和Grafana之类的工具可帮助识别,发展安全信息并与操作共享。
  • 自动化工具每当发现安全缺陷时,StackStorm之类的工具都可以帮助提供脚本化的补救措施。
  • 搜寻工具这些工具有助于检测安全异常。一些示例包括Mirador,OSSEC,MozDef和GRR等。
  • 测试工具测试是DevSecOps的关键要素,为此目的使用了广泛的工具,例如GauntIt,Spyk,Chef Inspec,Hakiri,Infer和Lynis。
  • 警报工具 Elastalert,Alerta和411等工具会在发现需要修复的安全缺陷时提供警报和通知。
  • 威胁情报工具这些工具可捕获和整理威胁情报,包括OpenTPX,关键堆栈和被动总计。
  • 攻击建模工具这些有助于实施攻击建模和安全防御。

如何实现DevSecOps?

DevSecOps通过在代码级别合并安全性,将它们组合为一个简化的流程,从而确保了流程链所有级别的应用程序和过程的安全。

成功实现DevSecOps的五个功能:

  • 每个阶段的强制性安全
  • 安全前进行彻底评估
  • 在代码级别进行与安全相关的更改
  • 自动化所有可能的过程
  • 通过警报和仪表板进行持续监控

DevSecOps的商业利益

通过从DevOps过渡到DevSecOps方法,组织可以转变其对开发管道的处理方式。开发,安全和运营团队之间加强协作,可以确保在早期阶段就发现漏洞并最大程度地减少安全威胁。

DevSecOps为企业提供了其他一些优势:安全团队的敏捷性和速度更快,团队之间的通信和协作得到增强,以及代码漏洞的识别。除提供质量保证测试和自动化构建的机会外,DevSecOps还使组织能够快速响应变更。

通过采用DevSecOps还可以带来一些其他好处,包括:

  • 自动保护代码 DevSecOps通过自动执行测试来降低由于人为错误而引入安全漏洞的风险,并实现更出色的覆盖范围,一致性和可预测的过程。此外,在开发过程中,只要发现任何问题,就可以对其进行跟踪和修复。
  • 持续的安全支持通过使用自动化工具,组织可以创建一个用于测试和报告的闭环流程,从而确保立即解决所有安全问题。
  • 利用安全资源 DevOps可以自动执行大多数需要较少动手时间的标准安全过程和任务,例如事件监视,帐户管理,代码安全性和漏洞评估。这使安全专业人员可以将注意力集中在威胁补救和消除战略风险上。