企业如何实现基础架构即代码的安全保护

时间:2023-12-08 10:21:34 发布人:myadmin 来源:派拓网络PANW 点击量:
基础打牢的重要性无需赘述,基础不牢,地动山摇。不论是底层软件还是网安系统,基础架构的重要性都不可忽视。

根深才能叶茂,只有稳定的基础架构才能搭建安全强大的软件系统。本期【网安必读】为您分享《基础架构即代码的DevSec指南》,探讨利用DevSecOps来保护云的挑战,以及基础架构即代码如何实现这一切。

基础架构即代码简介

基础架构即代码是指用于使用代码管理和配置基础架构的技术和流程。它支持DevOps流程,如版本控制、同行评审、自动测试、标记、持续集成和持续交付。

IaC
的兴起

DevOps公司Puppet于2009年首次引入基础架构即代码(也称为IaC),以改善部署和管理基础架构的传统方法。根据Puppet的说法:
“旧的基础架构管理方法,包括手动流程和文档记录、薄弱的单用途脚本和基于图形用户界面的工具,在过去都有自身的价值。然而,如今,随着需要不断扩展基础架构、采用短暂的基础架构和更高的应用系统复杂性,需要新的方法来控制局面。”

从那时起,IaC就已经成为Ansible、Chef、Salt等多家公司的基础。近年来,IaC的流行是在Terraform的推动下实现的,Terraform是Hashi Corp流行的开源IaC框架,主要用于定义公有云服务中的资源。Terraform使IaC不受限地可自定义和可访问,为周围的IaC生态系统铺平了道路。

同时,云提供商创建了自己的配置框架,以帮助简化和自动化基础架构编排和管理。AWS Cloud Formation、Azure Resource Manager(ARM)和Google的Cloud Deployment Manager都使基础架构工程师更容易构建可重复的环境。

工作原理

IaC可以是声明性的,这意味着它定义了将要设置的内容;也可以是命令式的,这意味着它定义了设置方式。
Terraform和Cloud Formation都是声明性框架的示例,而AWS Cloud Development Kit(CDK)是命令式IaC框架的示例。Kubernetes也与IaC紧密结合,因为它的配置可以以代码的形式定义。

每个特定的框架都有自己的约定和语法,但IaC通常由资源声明、输入变量、输出值、配置设置和其他参数组成。IaC通常是基于JSON、HCL或YAML的,包含启用基础设施所需的所有配置,如计算、网络、存储、安全、身份和访问管理(IAM)等。

基础架构即代码优势
由于IaC使用代码定义启动和运行资源所需的内容,因此它能够自动化和扩展云配置,并提高可重复性。

自动化
如今的企业每天部署的应用不计其数,基础架构需求也在不断变化以满足这些需求。

可扩展性
IaC使团队更容易、更简单地大规模配置云资源,同时减少错误配置的风险,而不必花费不必要的时间和资源。自动化和代码配置使得每次都以相同的方式部署云服务变得更加容易。

可重复性
一致性是云基础架构的关键。借助IaC,每次都以相同的方式部署计算、存储和网络服务,因此您可以跨资源甚至跨多云环境保持一致性。

安全性
IaC为跨团队协作提供了重要的机会。通过使用统一、通用的语言跨环境和云配置云资源,开发人员和操作人员可以更轻松地保持同步,共同工作以确保云原生应用的安全。

基础架构即代码风险
尽管IaC具有灵活性和优势,但它也存在一些缺点,团队应该注意这些缺点,尤其是在安全性及合规性方面。

采用缺口
就像引入一个新的开源库或SaaS平台一样,IaC有能力提高效率,但需要适当级别的认同和意识。由于IaC仍然属于相对较新的事物,所以团队在采用IaC时面临的最大挑战之一是将新框架与现有基础架构准确集成。

不可改变的漂移
有了IaC,您就不用在特定的控制台中管理基础架构,而是有另一个并行运行的框架,这应该是您的真实信息之源。

安全性掉队
错误配置是云数据泄露的主要源头。根据一些消息来源,99%的企业的错误配置没有引起注意。云安全工具提供了必要的可视性和监控,以应对该统计数据,但提供的反馈可能与IaC不一致。

开源IaC安全挑战
尽管IaC支持现成的开源模板或模块,但重要的是要了解这些组件通常不是以安全第一的原则共享的。

开源IaC经济目前在Git Hub等地方以及Terraform Registry和Artifact Hub等专门构建的存储库中获得发展动力。虽然开源IaC让开发人员更容易、更快地启动和运行云服务,但安全性往往是事后考虑的问题。

Terraform Registry中大约一半的开源Terraform模块和Artifact Hub中的Helmchart包含错误配置。这项研究突显了云安全问题解决方式和解决位置的缺口。它还显示了安全性滞后的程度,以及DevSecOps对云基础架构安全的影响有多大。
图1:Bridgecrew的开源Helm安全研究的概括性结果(左)
Bridgecrew开源Terraform安全现状报告的概括性结果(右)

IaC对DevSecOps的挑战
如果没有正确的方法、策略和工具,采用DevSecOps来保护云可能会在团队之间造成更多的瓶颈和阻碍。

开发人员的动机和安全性经常不能一致,这已经不是什么秘密。DevOps希望快速移动并以迭代方式工作,安全性上不相称的反应式反馈会成为阻碍。

DevSecOps旨在将安全性纳入DevOps的范畴,以避免可能使云原生应用易受攻击的错误配置或薄弱实现。如果没有正确的方法,纳入DevSecOps战略会带来一系列的挑战——特别是当涉及到保护云的安全。

这可能与两个主要原因相关。首先,基础架构环境正在快速变化,而企业内部可能并不总是具备跟上这些变化所需的经验和专业知识。其次,许多现有流程和工具在设计时没有考虑到云安全,因此可能会为云原生工程和安全团队造成瓶颈。

不一致的治理
由于缺乏开发可扩展基础架构的流程,云中的DevSecOps很难实现。IaC就是对这一问题的回应,它缓解了大规模部署基础设施所带来的性能和成本方面的挑战。

技能和访问缺口
自动化工具非常擅长处理从关键安全问题到违反信息性最佳实践的所有问题。但即使是最新、最出色的工具,也无法替代可靠的云DevSecOps流程和工作流。

采纳云DevSecOps和IaC的技巧
到目前为止,我们已经解决了在云中接近DevSecOps的潜在挑战。以下是克服这些挑战可以采取的三个行动:

1.将一切自动化
2.利用现有流程
3.代码即安全

DevOps生命周期中的云安全
虽然没有适合每个组织的万能解决方案,但鼓励采用云DevSecOps的关键是在IaC早期实施防护措施,并在整个DevOps生命周期中收获有价值的反馈。
图2:在开发生命周期的每个阶段识别云错误配置的利弊

IDE扫描
尽快发出信号是“左移”安全性的要义,还有什么反馈时机优于开发人员实际编写代码的时间和地点?

提交前钩连点
提交前单元和集成测试是公认的最佳实践。现在,也应该进行提交前IaC安全扫描。

拉取/合并请求检查
对于完全依靠版本控制系统(VCS)的团队来说,将安全性嵌入经批准的代码审查过程有很多好处。根据触发CI/CD构建的因素,此方法可以与CI/CD扫描一起使用,也可以代替通过CI/CD扫描。

CI/CD作业
CI/CD管道在编译基础架构和在部署编译后的代码之前对其进行测试方面至关重要。此抽象级别的扫描对于揭示即将配置的核心资源、变量和依赖模块中的错误配置非常重要。

运行时安全
请务必记住,开发者优先安全性并不排除“传统”云安全方法,即监控运行的云资源的安全性和合规性错误配置。

IaC使基础设施的部署和管理更加高效,对于实现云DevSecOps至关重要。尽管IaC引入一系列挑战,但它可以保护您的基础架构。通过在整个DevOps生命周期中嵌入IaC扫描和安全即代码修复程序,您可以采用更现代的云安全方法。

Prisma Cloud团队还将IaC视为弥合基础架构工程、DevOps和安全之间缺口的关键。通过利用IaC的优势,团队可以自动化云安全并将其嵌入DevOps生命周期。我们的编码云安全平台通过将IaC扫描和安全即代码修复程序与开发人员已在使用的工具和工作流集成,实现了此类协作。

友情链接

总部/北区

地址:北京市海淀区高梁桥斜街42号院1号楼融汇国际大厦-3A层信亦宏达
电话:400-650-6601(9:00-18:00)
服务热线:13522376611(7*24h)
传真:+86 010-62260557-666
Email: service@sinynet.com

售前咨询热线 400-650-6601

关注信亦宏达

微信

微博

2012-2020 版权所有©信亦宏达网络存储技术(北京)有限公司 京ICP备09114115号-1

京公网安备 11010802032893号