浅析DevSecOps落地的最佳实践及工具

本文探讨了DevSecOps的含义及其在软件安全性中的重要性。介绍了将安全实践融入DevOps流程的关键步骤,包括漏洞扫描、运行时保护、云服务商的安全功能、标准与政策制定以及容器和服务管理。通过自动化和集成,DevSecOps旨在实现快速且安全的代码交付。

在过去的几年中,DevSecOps已成为DevOps生态系统中最热门的流行语之一。简而言之,很容易理解DevSecOps的含义以及人们对其关心的原因:这是一种将DevOps效率扩展到软件安全性的策略。

在这里插入图片描述
但是,当组织开始实际实施DevSecOps时,可能会发现一些棘手的问题。这时,组织可能需要一系列的工具以便实现DevSecOps。

让我们看一下组织如何才能实现DevSecOps,并逐步了解典型组织为了实现DevSecOps必须解决的主要问题。

什么是DevSecOps?

基本上,DevSecOps从一开始就是内置安全性的DevOps。这意味着将安全性纳入需求,设计,代码和部署阶段,简单来说,就是将其纳入整个DevOps管道。

较早的安全实践往往会降低开发团队的速度,并且每年上市时间越来越短时,软件开发团队必须找到一种在不影响安全性的前提下加快其软件开发过程的方法。这就是DevSecOps的启动方式。

企业最终目标是在安全团队和开发人员之间架起桥梁,同时确保快速,安全地交付代码。孤岛思维被不同团队之间的通信和应用程序安全性的共同责任所取代。

在这里插入图片描述
DevSecOps最佳实践和工具

组织如何将这些目标转化为实践?且可以自动化哪些特定的安全过程并将其集成到CI / CD管道的其余部分中,以及如何做到这一点?
让我们根据DevSecOps工具和实践的当前状态来探索这些问题并寻找一些答案。

1、漏洞扫描

扫描代码中的漏洞是保护产品安全的基本第一步。将漏洞扫描集成到CI / CD流程中是显而易见的开始实施DevSecOps的地方。

这意味着要确保在交付管道的每个主要阶段都检查代码是否存在漏洞-从编写代码到部署到生产中。为了达到这种集成水平,组织需要确保负责管道各个阶段的各方都具有他们所需的培训和工具,以检测代码中的漏洞。

相关技术包括用于检测专有代码中的漏洞的SAST和用于检测具有已知漏洞的开源组件的SCA工具。许多SAST和SCA供应商都提供与CI服务器,构建工具,存储库的集成,还提供与IDE的集成,以帮助开发人员尽早发现问题。

2.运行时保护

运行时保护是另一个至关重要的安全流程,应将其作为DevSecOps策略的一部分跨整个CI / CD管道进行集成。

运行时保护意味着保护软件免受应用程序开始运行时可能出现的威胁的影响。尽管有关运行时安全性的讨论传统上只在软件投入生产后才进行保护,但运行时威胁也可能在管道的早期阶段存在,在交付过程中尽早考虑运行时安全性也有助于确保当进行部署时,已经缓解了运行时威胁。这就是为什么应在CI/CD管道之间集成运行时安全性而不是仅限于生产环境的原因。

用于运行时检测的特定工具和策略将根据组织的特定需求而有所不同。但是,至少要确保正在监视应用程序中是否存在异常信号,这些异常信号可能表明存在违规行为。同样重要的是,组织应该知道哪些环境变量或配置设置可能会在运行时创建安全漏洞,并有适当的流程来识别那些风险。

3、云服务商

将安全性集成到应用程序交付过程中的另一个重要策略是利用云服务提供商提供的安全性功能。这些工具中的许多工具都位于DevOps链的部署和部署后末端,因此类似于更传统的事后安全服务。但是它们仍然是应用程序外部防御的一部分,起着重要的功能,并且由于它们是云基础架构的一部分,因此它们通常易于自动化和系统化。

请注意,组织的CSP安全性功能可能在默认情况下未启用,并且它们可能需要进行一些配置,因此组织需要采取有效措施以充分利用它们。

4、标准与政策

设置安全性标准和策略在很大程度上是一项需要实际操作的工作,组织虽然可以扫描源代码和基础结构中的漏洞,但是确定安全优先级以及如何实现这些优先级的过程仍然需要人员认真考虑。在设计和代码级别建立安全标准也是如此。

欧盟方面的《通用数据保护条例》(GDPR)的实施使得在设计级别明确制定和实施安全标准显得尤为重要。

另一方面,通过使用编排工具/服务网格功能(例如RBAC)来以高度粒度实施策略,可以在很大程度上自动化在运营级别上建立此类标准。基于角色的访问策略的设计应与应用程序源代码中的安全标准的设计一样受到重视,且它们都应被视为高优先级任务。

5、容器和服务管理

在部署大型的,基于容器的应用程序时,诸如Kubernetes之类的容器编排工具已成为必需品。可以与编排工具一起使用并管理诸如服务发现和访问以及用户,基于容器的应用程序和外部服务之间的关系之类的服务网格本身就变得越来越重要。

在部署级别,此类工具是DevSecOps的关键元素。它们充当容器和外部世界之间的高度可伸缩的隔离层(因此,用户和潜在的攻击者只能访问隐藏在代理之后的服务,而不能访问单个容器),并且它们可以处理诸如身份验证之类的任务、授权和加密。它们是专为自动化而设计的。

但是,除了使用CSP安全工具之外,您还需要了解编排工具和服务网格所提供的安全功能,并且需要启用(如有必要)并对其进行配置。例如,在大多数情况下,Kubernetes基于角色的访问配置(RBAC)应该是DevSecOps的关键元素,但默认情况下未启用它。

从DevOps大规模转换到DevSecOps

尽管DevOps应用程序在速度,规模和功能方面取得了飞速的发展,但它们通常缺乏可靠的安全性和合规性。因此,DevSecOps被引入到软件开发生命周期中,将开发,操作和安全性整合在一起。

DevSecOps将传统的安全参与促进到SDLC的活跃过程,引入持续集成(CI)和持续交付(CD)之类的流程可以确保在敏捷开发过程中主动测试和验证代码的正确性。同样,DevSecOps将主动安全审核和渗透测试注入敏捷开发,提倡将安全性内置到产品中,而不是应用于成品。

若组织需要实施DevSecOps则要对组织现有的IT资源和DevOps流程进行广泛的评估,然后建立将更强的安全性集成到其中的整体策略。

                     扫码关注我们,了解最新行业动态~

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值