ci cd 敏捷_如何将安全性纳入敏捷开发和CI / CD

本文强调了DevOps文化中安全性的重要性,指出软件安全性始于开发人员,提倡在开发早期阶段就引入安全要求、架构和编码实践的协作。通过在CI/CD管道中进行自动化安全测试,利用监控和AIOps关闭安全回路,确保敏捷团队能够在频繁发布的同时保持应用的安全性。
摘要由CSDN通过智能技术生成

ci cd 敏捷

之所以出现Devops,是因为想要频繁发布的开发团队与需要维护可靠性和稳定性的运营团队之间存在文化,功能和技术上的隔walls。 Devops文化致力于实现目标和devops实践的思想,协作和实践,包括持续集成和交付(CI / CD)基础设施即代码(IaC)AIOps ,它们在应用程序监视中利用机器学习来实现,实施。

随着越来越多的人和组织采用devops ,很明显,“ devops”一词无法描述运动的全部范围,实践和要求。 我曾经指出需要DevQaOps ,并且在可行的情况下建议使用左移测试方法

[ 也在InfoWorld上:如何通过左移测试改善CI / CD ]

同样重要的是,即使不是更重要的,也需要使每个人对安全负责 。 将安全性转移到开发和运营(或DevSecOps)中可以帮助您实现这一目标。

软件安全性始于开发人员

在进行开发之前,开发团队通常在应用程序发布过程的最后阶段实施安全实践,通常是变更咨询委员会(CAB)所要求的步骤。 因为安全团队是在流程的后期才加入的,所以他们只有有限的时间来学习业务需求,了解技术变更,评估风险以及运行安全测试。 当安全团队升级问题时,在不影响时间表的情况下修复问题的时间很有限,并且需要实质性代码更改的问题使开发团队难以选择。

在发布过程中后期测试安全性可能是对增加发布频率或投资微服务的devop团队的重大风险。 在DORA和Google Cloud发布的`` 加速:DevOps状况2019年报告''中 ,有43%的受访者被确定为每天或每周发布应用程序的高绩效或精英企业。 这是生产部署的显着增加,这种速率要求采用集成方法来频繁地在开发过程中早期实施安全最佳实践。

敏捷开发团队和Infosec之间需要在以下方面进行协作:

  • 审查安全要求,体系结构和编码实践
  • 在CI / CD管道中检测自动化安全测试
  • 监视应用程序中的威胁并解决安全问题

在以下各节中,我将提供一些解决这些问题的指南。

[ 同样在InfoWorld上:启动devops程序的3种方法 ]

在安全性要求,架构和编码实践方面进行协作

开发团队和infosec必须在敏捷开发过程的早期(甚至在编码开始之前)就安全性进行合作。 在Puppet,CircleCI和Splunk发布的2019年DevOps状态报告中 ,作者确定了开发和信息安全团队应如何协作的几种最佳实践:

  • 安全和开发团队应在威胁模型上进行协作。
  • 功能和非功能安全要求应在产品待办事项列表中优先考虑。
  • 安全要求应视为设计约束。

敏捷开发团队可以通过标记更高的安全风险要求和实施以进行安全审查来实施这些实践。 开发应与infosec合作,以捕获用户信息,管理授权或处理敏感数据的应用程序各部分的需求,体系结构,设计和实现。

对于风险较小的编码更改,敏捷团队应编写用户故事接受标准,以解决infosec的安全要求和约束。

敏捷开发人员还应该按照设计原则来审查OWASP的安全性 ,其中包括一些最佳实践:

  • 在密码老化等领域建立安全性驱动的默认策略
  • 在定义角色和授权对业务流程的访问时实施最小特权原则
  • 了解安全原则,例如职责分离,“不信任”服务,最小化攻击面以及通过模糊避免安全
  • 通过了解根本原因并实施整体修复,快速修复安全问题

最后,开发和信息安全团队应共同建立编码最佳实践的参考。 一些良好的起点包括卡内基梅隆大学的编码实践 ,密歇根大学安全计算的最佳实践以及所用编程语言和平台的最佳安全编码实践。

如果要将应用程序部署到公共云,则还应查看最佳实践,例如按设计的AWS安全性, 在Azure设计安全应用程序的站点以及Google Cloud安全性概述

[ 同样在InfoWorld上:如何将测试自动化与敏捷和devop结合使用 ]

在CI / CD管道中进行安全性测试

考虑安全性的下一个阶段是CI / CD管道,在此管道中,自动代码和安全性验证可能会破坏构建并警告开发人员。 建立CI / CD管道标准时应考虑的一些较常见的安全做法和工具:

  • 诸如SonarQubeVeracodeSentinel SourceCheckmarx的静态应用程序安全测试(SAST)平台会扫描不同漏洞和模式的代码。 例如,SonarQube扫描不良输入(污点分析),跨站点脚本,敏感数据公开和已知漏洞。 Veracode指出,他们已经扫描了超过11万亿行代码,误报率低于5%。 Checkmark可使用20多种编程语言,并符合PCI-DSS,HIPAA,FISMA和其他法规标准。 所有这三个工具均可在许多IDE和CI / CD平台上运行。 还有一些开源的SAST工具选项,例如CodeWarriorNodeJsScan 。 OWASP列出了20多种SAST工具,并指出它们的弱点包括发现配置问题以及身份验证和访问控制中的漏洞。
  • 依赖项扫描工具将检查底层软件组件,包括开源库并报告漏洞。 GitLab Secure具有SAST和其他安全工具,包括依赖关系检查,并且可以与Java,JavaScript,PHP,Python,Ruby,Scala和Go一起使用。 OWASP Dependency Check具有Jenkins,CircleCI和SonarQube的集成。 Snyk开源安全管理器使开发人员可以查找和修复开源漏洞。 Microsoft最近发布了Application Inspector ,这是一种代码分析工具,可以针对400种模式进行报告,其中包括影响安全性的功能。
  • 渗透测试已经存在了一段时间,但是传统上,许多组织都有安全团队独立于代码运行这些测试,在软件开发生命周期(SDLC)中构建和部署流程。 OWASP Zed Attack Proxy或OWASP ZAP是最受欢迎的工具之一,可以插入JenkinsCI / CD工具并触发部署。 ZAP项目负责人Simon Bennetts 在10月关于ZAP的 全天DevOps系列指出:“使用得越早越好。 ZAP确实具有自动化的魅力。”
  • Devops,云和开发工具通常提供自己的安全性插件。 例如, JenkinsAzure DevOps都具有40多个安全性插件,而CircleCI列出了20多个 。 Microsoft Azure已发布了其持续的安全方法,而AWS为CodePipeline用户提供了DevSecOps准则 。 随着安全技术,集成和devops工具的发展日新月异,infosec和开发团队应定期检查这些工具以获取新的安全性插件。
  • 另一个重要的考虑因素是保护CI / CD管道本身 。 例如,保护键和参数对于安全性至关重要, CircleCIJenkinsAzure提供了锁定这些键和参数的工具和建议。

[ 也在InfoWorld上:如何停止讨厌吉拉 ]

使用监视和AIOps来关闭安全环路

还有其他一系列DevSecOps学科与代码保护基础架构,加固容器和配置云服务相关。 此外,还有专门的DevSecOps主题,涉及数据安全性,身份管理和物联网设备安全。 如果您的工程和开发项目涵盖基础架构,移动,网络,物联网或分析,则您还将在这些领域中找到专门的安全实践和工具。

超越基础架构和数据安全性,从事应用程序开发的任何人都必须对应用程序在生产环境中的性能有更好的了解。 审查事件,参与根本原因分析以及纠正缺陷都是应用程序开发的重要职责。 对于开发人员来说,这通常意味着改进应用程序监视工具的日志记录和查看分析。

AIOps是一种新兴的运营技术,它利用机器学习和自动化的优势来简化开发和应用程序监视。 运营团队通常使用许多不同的监视工具,但是使用多个工具可能会减慢解决事件的速度,尤其是在复杂的多云环境中,尤其是在开发团队频繁部署变更时。

AIOps工具聚合来自多个监视工具,应用程序日志文件或基础架构组件的运营数据。 然后,他们应用机器学习来帮助识别事件,触发自动响应并减少解决问题的时间。 这些工具还可以通过筛选纵向操作数据来帮助发现异常值和缓慢发展的问题。 使用这种类型的分析可以发现许多安全问题。

[ 通过InfoWorld Daily新闻通讯了解软件开发,云计算,数据分析和机器学习方面的最新发展 ]

审查安全问题的监视和AIOps工具是信息安全和开发团队如何将运营安全事件带回到敏捷开发流程中进行修复。 这是一种被动的安全态势,但是对于努力管理和提高其应用程序安全性的敏捷团队和开发组织而言,这是至关重要的实践。

解决软件安全问题需要在敏捷开发流程开始时采取积极主动的步骤,开发流程中的最佳实践和工具以及基于监视生产系统的被动措施。 安全威胁瞬息万变,因此敏捷团队和开发组织需要审查安全实践并不断验证新方法。

翻译自: https://www.infoworld.com/article/3520969/how-to-bring-security-into-agile-development-and-cicd.html

ci cd 敏捷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值