避免云配置错误遭受攻击的七种方法

文章正文
发布时间:2024-09-11 18:24

  云计算工程团队和安全团队需要就云计算运营环境的安全性提出一些重要问题,而且他们必须超越运营环境是否通过合规性审核的范畴。

  例如,人们在将新端点添加到互联网几分钟之后,网络攻击者就可能会对其进行扫描并评估其可利用性。单一的云配置错误可能会使企业的数据面临风险。

  假设网络攻击者发现其中一个漏洞并在其运营环境中获得立足点,那么将具有什么样的破坏性?能造成什么样的损害?网络攻击者发现有关运营环境以及存储敏感数据位置的技术有多容易?他们能否利用云资源API密钥和过于宽松的IAM(身份和访问管理)设置来破坏企业的云控制平台,并获得对其他资源和数据的访问权限?他们是否能够在不被检测的情况下将这些数据提取到自己的云帐户中,例如使用存储桶同步命令?

  如果深入研究的话,会发现自己的云配置有很多漏洞,而在黑客利用这些漏洞之前,需要迅速采取行动修补云安全中的这些漏洞。并且还要认识到云配置“漂移”一直在发生,即使使用自动化持续集成(CI)/持续交付(CD)管道也是如此,因此需要保持警惕。

  云安全就是配置安全

  云计算本质上是一台巨大的可编程计算机,云计算操作的重点是云计算资源的配置,包括IAM等安全敏感资源、安全组、数据库和对象存储的访问策略等。企业需要确保云计算资源的配置在第一天就是正确和安全的,并且在以后仍保持这种状态。

  行业分析人士称之为云安全态势管理。而这正是云计算客户经常出错的地方,有时会带来毁灭性的后果。如果看到涉及AWS、微软Azure或谷歌云的数据泄露,可以肯定的是,这些网络攻击是由于云计算用户自己的错误而发生的。

  人们往往非常注重避免对单个云资源的错误配置,例如对象存储服务(如Amazon S3、Azure Blob)和虚拟网络(如AWS VPC、Azure VNet),这样做绝对至关重要。

  但认识到云安全取决于身份也很重要。在云中,许多服务通过API调用相互连接,需要IAM服务来实现安全性,而不是基于IP的网络规则、防火墙等。

  例如,从AWS Lambda函数到Amazon S3存储桶的连接是使用附加到Lambda函数承担的角色(其服务身份)的策略来完成的。IAM和类似的服务很复杂且功能丰富,而且很容易为了让事情正常工作而过于宽容,这意味着过度宽容IAM配置是常态,而这通常是危险的。

  Cloud IAM是新的网络,但由于Cloud IAM服务是通过配置创建和管理的,所以云安全仍然与如何避免错误配置有关。

  云配置错误和安全事件

  与数据中心相比,云计算基础设施的种类要多得多,所有这些资源都是完全可配置的。考虑到可用的不同类型的云资源,以及它们可以组合在一起以支持应用程序的方式,云配置的方式实际上是无限的。

  在调研机构2021年的调查中,36%的云计算专业人士表示,他们所在的企业在过去一年中遭受了严重的云安全漏洞或网络攻击,这些事件有多种发生的方式。

  需要记住的是,对象存储和IAM服务等资源的配置在横向扩展的运行环境中可能会变得极其复杂,而且人们知道每一次云泄露都涉及一系列错误配置漏洞。与其只关注单一资源的错误配置,还不如彻底了解其用例,并批判性地思考如何在运营环境的完整场景中保护这些服务。

  例如,人们可能认为Amazon S3存储桶已经安全配置,因为启用了“阻止公共访问”,此时恶意行为者可能能够通过在同一环境中利用过度特权的IAM资源来访问其内容。了解其破坏程序的风险可能是一个难以解决的问题,但这是一个不容忽视的问题。

  云配置错误的规模

  云配置错误漏洞与应用程序和操作系统漏洞的不同之处在于,即使修复了它们,也会不断出现。企业可能在开发管道中设置了控制措施,以确保开发人员不会将已知的应用程序或操作系统漏洞部署到生产环境中。一旦这些部署得到保护,这通常是一个已解决的问题。

  云配置错误是不同的,而同样的错误配置漏洞反复出现也是司空见惯的。允许不受限制的SSH访问的安全组规则(例如端口22上的0.0.0.0/0)只是日常发生的错误配置的一个示例,通常在批准的部署管道之外。而使用这个例子是因为大多数工程师都熟悉它(并且很可能在他们职业生涯的某个阶段做出这种令人震惊的行为)。

  因为云计算基础设施非常灵活,可以使用API随意更改它,所以倾向于这样做。这是一件好事,因为一直在不断创新和改进应用程序,并且需要修改基础设施以支持这种创新。但是,如果在这一过程中没有防范错误配置,那么预计会在运营环境中引入大量错误配置。一半的云计算工程和安全团队表示,每天可能要处理50次或更多的错误配置事件。

  为什么会发生云配置错误

  如果成功地使用了云计算服务,那么云计算环境唯一不变的就是变化,因为这意味着企业正在快速创新并不断改进其应用程序。但每一次变化都会带来风险。

  根据调研机构Gartner公司的研究,到2023年,99%以上的云安全故障都是客户自己犯的错误。考虑到云配置错误是云安全故障的一种发生方式,而错误配置则完全是人为错误的结果。

  但为什么云计算工程师如此频繁地犯下这样严重的错误呢?

  缺乏对云安全和策略的认识是过去一年报告的云配置错误的主要原因之一。如果将所有的合规规则和内部安全策略汇编在一起,其内容可能会像长篇小说那样多。没有人能记住这些规则,也不应该期望他们能记住。

  因此,需要适当的控制措施来防止配置错误。但31%的受访者表示,他们所在的企业缺乏足够的控制和监督来防止云配置错误。

  部分原因是有太多API和云接口供团队有效管理。使用多个云平台(45%的受访者报告)只会加剧问题,因为每个云平台都有自己的资源类型、配置属性、管理接口、策略和控制。企业的团队需要能够有效解决所有正在使用的云平台的专业知识。

  如果企业的团队采用了云服务提供商的云原生安全工具,多云安全挑战会更加复杂,这在多云环境中不起作用。

  七条战略性建议

  由于云安全主要涉及在错误配置错误被黑客利用之前对其进行预防、检测和修复,因此在开发生命周期的每个阶段都需要部署有效的基于策略的自动化,从基础设施即代码(IaC)到持续集成(CI)/持续交付(CD)。

  以下列出了云计算专业人士为实现这一目标提出的七条建议。

  (1) 建立对环境的可见性

  云安全与企业的数据有关,并拒绝网络攻击者和竞争对手获取这些数据和知识。如果不了解云计算环境的完整状态,包括每个资源、配置和关系,那么将面临严重的风险。企业需要跨云平台建立并保持对云计算环境的全面可见性,并持续评估每次更改的安全影响,其中包括潜在的破坏风险。

  企业不仅会获得更好的安全态势,还要让其开发人员更快地行动,合规性专业人员也会从企业提供主动审计证据而受益。

  (2) 尽可能使用基础设施即代码

  除了少数例外,企业没有理由构建和修改基础设施之外的任何云计算基础设施即代码(IaC)和自动化持续集成(CI)/持续交付(CD)管道,尤其是对于任何新事物。使用IaC不仅为云计算运营带来了效率、规模和可预测性,还提供了一种检查云计算基础设施预部署安全性的机制。当开发人员使用IaC时,可以为他们提供在部署之前检查其基础设施安全性所需的工具。

  如果企业正在采用多云,那么像Terraform这样被广泛采用的开源IaC工具可能是其最好的选择。云计算服务提供商(即AWS CloudFormation、Azure资源管理器和谷歌部署云管理器)提供的IaC产品是免费的,如果不需要多云支持,则值得考虑采用这样的产品。

  (3) 尽可能使用基于策略的自动化

  无论在哪里使用人类语言表达云计算策略,都会在解释错误方面产生差异。适用于企业的云计算环境的每个云安全和法规遵从性策略都应该作为可执行代码来表达和实施。有了策略即代码,云安全变得具有确定性。这样可以有效地管理和实施安全策略,并帮助开发人员在开发过程的早期获得安全性。

  避免使用专有的供应商策略即代码工具,并选择开源策略引擎,如Open Policy Agent(OPA)。OPA可以应用于任何可以产生JSON或YAML输出的东西,这几乎涵盖了所有的云用例。

  企业可以优先考虑不需要针对IaC和运行云计算基础设施使用不同工具和策略的解决方案。

  (4) 使开发人员能够安全地构建

  对于云计算,安全性是一个软件工程问题,而不是数据分析问题。云安全专业人员需要工程技能并了解整个软件开发生命周期(SDLC)的工作原理,从开发到持续集成(CI)/持续交付和运行时。开发人员需要工具来帮助他们在软件开发生命周期(SDLC)的早期获得安全性。让安全成为发展的先见之明和密切的伙伴,而不是只关注部署之后事后考虑的问题。

  对安全团队进行云工程实践培训,不仅能让他们更好地掌握防御云计算网络威胁所需的技能,还能获得宝贵的技能和经验,帮助他们在职业生涯方面的发展。企业将提高团队保留率,并更好地为其企业提供理想的工作场所。

  云安全系列课程旨在帮助云计算和安全工程师了解云计算风险,以及如何批判性地思考保护其独特用例的安全。

  (5) 锁定访问策略

  如果企业还没有正式的访问和管理云计算环境的策略,那么现在是创建的时候了。使用虚拟专用网络(VPN)强制与关键网络空间(例如Amazon Virtual PrivateCloud或Azure Virtual Network)进行安全通信。使VPN访问可用,以便团队可以访问企业资源,即使它们位于不太受信任的Wi-Fi网络上。

  工程师倾向于创建新的安全组规则或IP白名单,以便他们可以访问云中的共享团队资源。频繁的审计可以证明虚拟机或其他云计算基础设施不会面临额外的风险。监督创建堡垒主机,锁定源IP范围,并监控不受限制的SSH访问。

  在AWS、Azure、GCP和其他公有云中,IAM充当一个无处不在的网络。遵循最少许可原则,并利用Fugue最佳实践框架等工具来识别合规检查可能遗漏的漏洞。让IAM更改成为企业的更改管理流程的一部分,并利用特权身份和会话管理工具。

  因此,需要采用“默认拒绝”的心态。

  (6) 标记所有云资源

  在整个云足迹中实施资源标记并建立有效的标记约定。使用标记是帮助企业跟踪和管理云资源的最佳方式之一,但需要建立标记约定并强制执行。使用人类可读的资源名称,并包括每个资源的联系人、项目名称和部署日期等。

  如果未正确标记云资源,则应将其视为高度可疑并终止。例如Microsoft Azure在云资源标记约定方面有很好的资源。

  (7) 确定平均修复时间

  衡量风险和云安全的有效性就是企业如何确定其立场和目标。最重要的衡量标准是平均修复时间。企业可能不知道当前的安全关键云资源配置错误的平均修复时间是多少(很少有云客户会这样做),那么应该改变它。为以分钟为单位的平均修复时间设定目标,如果自动修复对企业的团队和环境来说并不是一个可行的选择,需要调整其流程以确保团队能够在黑客发现关键漏洞之前检测和修复它们。

  展望未来

  随着云计算应用的增长,企业的运营环境的复杂性以及保持其安全的挑战将会增加。黑客可以使用自动化技术在几分钟内识别和利用云错误配置,因此首先避免配置错误至关重要。通过为企业的开发人员配备基于策略即代码的自动化工具,将能够扩展其安全工作以应对这些新挑战,而无需增加安全人员。而且,企业的数据在云中的移动速度将比在数据中心中的移动速度更快。