思考
基础架构即代码(IaC)对于部署到云上的DevOps团队至关重要,但在搭建包含可能会产生意外攻击向量的安全弱点或合规性缺陷的云环境之前,为开发人员实现实时反馈同样重要。在安全错误配置到达开发环境之前就能够捕获安全错误配置的能力是现代AppSec(application security,应用程序安全)的一个关键优势。
当组织实现IaC安全时,DevOps团队必须要考虑被扫描的基础设施工件的范围。仅仅扫描实际的脚本代码或仅查看源代码库中的基础设施文件是远远不够的,因为DevOps管道中可能包含多种不同类型的IaC代码工件,例如HashiCorp配置语言 (HCL)、AWS CloudFormation、K8s和其他配置文件,需要对其进行扫描才能全面了解IaC的暴露情况,因此IaC安全解决方案需要能够扫描整个DevOps管道中的多种不同类型的IaC代码工件,并且还必须能够协调源代码中所需的基础架构配置与开发过程中实际运行的配置,以便能够识别和解决配置漂移的问题。
在大型企业中,编写应用程序代码和IaC的角色可能是不同的,但这两种类型的代码通常驻留在同一个代码存储库中,因此,改善IaC治理的最有效方法是将其存储在应用最小特权策略的专用存储库中,其他安全控制还包括多因素身份验证、分支保护规则和职责分离等。
此外,IaC扫描应无缝运行,扫描过程中不会对开发人员和DevOps管道造成破坏。图1显示了开发人员对安全工具的接受程度对于扩展DevSecOps至关重要。
图1 开发人员对安全工具的接受程度
近64%的调查受访者认为,要想扩展DevSecOps,开发人员接受安全工具是非常重要的。并且现代DevOps和开发团队都有很多工作要做,安全工具必须易于使用并提供准确的结果,从而减少误 。因此,理想的IaC解决方案应该与源代码控制管理系统本地集成,以便工作流成为开发人员体验的无缝部分,提供可以依赖和采取行动的准确结果。
需要注意的是,确保软件供应链安全需要考虑多个软件供应链攻击区域,而IaC扫描只是软件供应链安全的一部分,需要关注的一些基本供应链问题,包括:
DevOps和开发人员对工具的可见性。安全团队通常对构成软件供应链的许多工具几乎没有可见性。很多时候,这些工具都是由开发人员自己部署和管理的,开发人员通常认为其工具的安全性过于严格,往往会随着时间的推移消除其安全限制。
横向移动。随着现代软件供应链整体复杂性和DevOps自动化程度的提高,一旦攻击者成功实施攻击,便可以隐藏自己的攻击活动并在整个供应链中横向移动,以渗透关键数据、系统和资源。攻击者可以使用受感染的开发人员帐户,甚至创建一个类似于合法开发人员帐户的虚假帐户,篡改破坏应用程序软件包的代码。
未能保护一个攻击入口点,就相当于锁上你的房子的前门,而让后门大开着。现代DevOps团队需要认识到并努力从多个维度确保软件供应链安全。当攻击入口点与横向移动的便利性相结合时,在许多组织中进入软件供应链的许多入口点就构成了无法解释的重大风险。所有软件供应链攻击向量都是相互关联和依赖的,所以仅仅关注IaC安全是不够的。
主要趋势
攻击者认识到软件供应链是一个软目标,因此,他们不断地寻找新方法来渗透软件供应链,以获取对关键业务系统和数据的访问权限。不幸的是,渗透软件供应链比以往任何时候都容易,因为黑客工具和技术在 络上很容易获得,并且不再需要高级编程技能。未来,这些攻击者将继续在攻击软件供应链方面变得更加老练,并在尝试每个潜在的切入点时 变得更加足智多谋。因此,组织不得不更加全面地看待软件供应链安全,因为手动的安全流程和一维方法,例如仅关注IaC安全,既不可扩展也不充分。
总结
各组织正在拥抱DevOps和云平台,利用虚拟化的软件定义基础设施进行应用程序的快速开发和更新,以满足消费者的需求。使用DevOps开发模式的应用程序的快速开发和更新以及云平台的增长,使得现代应用程序成为一个诱人的攻击面,增加了对采用DevSecOps以提高应用程序安全性的需求。尽管DevSecOps很重要,但并不能确保软件供应链中供应过程的安全,这种不足推动了新软件供应链安全解决方案的采用,例如用以确保运行现代应用程序的基础设施的供应和配置IaC安全。然而,软件供应链安全有多个向量需要考虑,而IaC安全只是软件供应链安全的一部分。因此,DevOps团队需要从多个维度认识并努力保护软件供应链。由于攻击者是机会主义,并且软件供应链 络攻击的风险正在增加,不幸的是,他们只需要赢一次,企业就会受到损害。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!