Thoughtworks|探讨下云原生安全的5个支柱

由于云已成为许多组织的技术基础设施的首选方法,攻击者不可避免地把注意力投向了它。虽然云可以提供一些安全优势,但它仍然需要引起高度重视;云打开了攻击面,为攻击者提供了更多的成功攻击机会,而且共享责任模型的复杂性——供应商和客户拥有基于云的堆栈的不同部分——会造成混淆,这很容易被被恶意行为者利用。

克服保护云的挑战需要系统的战略方法。一种方法是关注我们所说的云安全的五个支柱:

  1. 身份和访问管理
  2. 数据安全和隐私
  3. 网络基础设施和安全
  4. 应用安全
  5. 操作安全

尽管它们各自涉及非常不同的技术资产——并且可能由具有不同类型专业知识的不同团队拥有——将它们结合在您的安全方法中将确保您正在做保护您的基于云的系统所需的一切。

此外,在三个关键原则的支持下,这些支柱得到加强:

  1. 零信任架构
  2. 左移安全
  3. 安全即代码

支柱指导您应该关注什么,而原则概述了正确保护云所需的实践。在这篇博文中,我们将探讨这是如何完成的。

将云安全的五个支柱付诸实践

让我们首先看看我们如何应对我们通常在五个支柱中的每一个支柱中面临的一些挑战。

身份和访问管理 (IAM)

身份和访问管理是迁移到云时要考虑的最重要的事情之一。您可以在此处定义谁可以访问您的技术资产中的内容,以及何时需要何种授权。谁可以访问特定的 API、服务器或数据库?系统如何确定他们是他们所说的人?

这并不简单,有许多挑战需要解决。例如,虽然访问密钥是管理资源访问的有用方法,但如果这些密钥没有得到妥善保护,攻击者就很容易获得对敏感信息的访问权限。

解决这个问题的一种方法是使用秘密或密钥管理软件(例如 Hashicorp Vault)。通过使用这些工具,没有人需要访问密钥——相反,应用程序可以直接从 Vault 加载/访问所需的密钥。对于临时访问请求,应使用临时的一次性密钥。这样就不会有密钥被盗和被恶意使用的可能性。

统一身份管理也很重要。不一致和漏洞可以使攻击者很容易欺骗或冒充他人来获得对资源的访问权限。解决此问题的最佳方法是使用单点登录 (SSO) 访问云基础设施。

数据安全和隐私

从多个角度来看,数据安全和隐私至关重要:主要是法规(如 GDPR 和 CCPA)和客户信任。云可以使这些问题变得特别具有挑战性;与身份和访问管理一样,在谁拥有什么、存储什么东西方面通常存在差异。

存储在云端的数据本身并不安全;它需要适当配置。有时出于调试目的授予开发人员访问权限,从而引发潜在的安全和隐私问题,但即使是只读访问也可能存在问题:事实上,这是许多数据泄露的原因。确保数据安全的一种方法是采用领先的特权访问,并在调试场景中推广使用一次性访问和 2FA。设置正确的工具,例如审计、中央日志记录和可观察性,也很有帮助。

另一个常见问题是存储介质暴露。有时,当存储组件(如 S3 存储桶)配置错误时,不应该访问数据的人可能会访问数据。解决这个问题的一种方法是使用“云上的租户模型”来确保数据隔离。云原生加密服务不仅可以用来保护所有这些静态数据,还可以用来保护跨系统共享的数据。您还应该使用 S3 安全扫描工具;它们可以非常有效地发现常见的错误配置。

网络和基础设施安全

迁移到云端的另一个挑战是网络边界不可避免地变得模糊。虽然应该提供一组广泛的控制和防火墙选项,但必须谨慎启用它们并优先考虑不安全的默认设置。

其他挑战也可能出现。其中包括云库存的可见性、临时配置、不安全的数据交换渠道和不充分的分段。当我们急于建立我们的云并且没有为这样做定义明确的过程时,就会发生许多这样的事情。

幸运的是,可以遵循一些实践来减轻常见的攻击场景。这些包括:

  • 拒绝服务 (DoS) 和攻击面/边界安全:在云中解决这个问题并不难——可以使用 DoS 保护、WAF、网络策略和防火墙等控制来防止常见的网络威胁。
  • 网络入侵:不足以保护云上的边界。一旦攻击者进入网络内部,他们就可以默认获得访问权限。解决此问题的最有效方法之一是对网络进行分段,以允许最低权限并尽可能防止或减轻(攻击者的)横向移动。另一种方法可能是设置 V** 并在那里部署关键工作负载以确保访问受限。内部通信也应得到端到端的保护。
应用安全

如果您正处于计划将现有应用程序移动到云端的阶段,那么在迁移数据和授予对API支持和数据存储的访问权限时,安全性至关重要。

考虑保护无服务器组件、容器、集群以及最重要的供应链的棘手任务也很重要。考虑到大量用户和动态变化的环境,这些可能特别容易被利用。

云上应用程序的一些特别脆弱的方面需要通过以下方式处理:

  • 供应链攻击:保护云上的软件供应链需要您确保供应链每一步的完整性。您还需要将相关的供应链事件绑定到本地云 IAM,并将权限限制为仅授权活动。
  • 容器逃逸漏洞:如今的容器运行时(例如 containerd 和 CRI-O)非常健壮。但是,仍然存在诸如 CVE 2022-0185 等问题,允许攻击者代码逃离容器并在主机上运行。缓解这种情况的最佳方法是使用具有连续图像扫描功能的安全基线图像。您应该确保图像定期更新并避免使用特权容器。
安全运营

安全运营可以通过在云上进行统一、持续的监控和响应,帮助您抵御不断扩大的威胁环境。然而,主要障碍之一是收集相关安全和审计事件并及时理解它们的能力。

虽然这些对于任何安全团队来说都是少数,但您仍然可以遵循一些基本实践来确保安全操作顺利进行:

  • 加密挖掘和机器人攻击:攻击者可以破坏云组件(当暴露在外时)并使用计算资源来挖掘加密硬币或运行 DoS 攻击。通过使用 Datadog 和 Splunk 等工具,您可以确保对云和多云工作负载进行统一管理。通过利用此类控制,您不仅可以为应用程序带来可观察性,还可以为基础设施和更广泛的业务带来可观察性。
  • 配置漂移:当配置的频繁更改导致较低和较高环境之间的不一致时,就会发生这种情况。将较低的环境视为较小的安全风险是一个特别大的错误。为了解决这个问题,重要的是您将每个盒子都视为生产。保护基线配置并持续扫描和审查所有环境变得至关重要。

支持五个支柱的原则

云安全的五个支柱是必不可少的,但要有效地管理它们,遵循三个指导原则非常重要。它们将共同帮助您完成上面讨论的所有事情,以便您可以采取稳固的云安全态势。

零信任架构

您必须确保您不会退回到隐式信任边界;相反,您应该使验证成为一种规范。无论是参与者还是服务,都必须经过身份验证和授权才能访问它所请求的资源。在修改配置或代码时遵循相同的规则很重要。例如,为安全组建立安全默认值并遵循基于白名单的出口方法,以最大限度地减少潜在的爆炸半径并避免数据泄露。

左移安全

无论您是迁移到云端还是从头开始,都应尽早从安全要求着手。云的安全策略应该从您的初始需求集开始,然后随着技术和业务的发展而发展。这意味着它应该出现在每个事件中 - 从小到大 - 例如签署工件的正确权限,在开发早期定义粒度访问以使用通过 IAM 规则路由的应用程序和数据库等组件之间的访问,一旦构建发生,就开始扫描镜像。

安全即代码

最后,当涉及到云安全时,您不仅要尽早开始,而且要对其进行全面编纂。例如,您应该首先将策略定义为代码以涵盖安全性和合规性,并使用安全工具扫描云实例。您还应该使用基础设施即代码来保护您的配置。这将最终确保安全性能够跟上云上的发展步伐,并且不会成为阻碍因素,而是成为支持持续安全交付的推动者。

概括

当范围很大时,云安全性很复杂。以结构化的方式处理问题可以帮助我们正确有效地解决问题。此外,遵循循序渐进的过程可以更轻松地控制复杂性。遵循云安全的五个支柱以及三个基本原则将确保您可以为组织制定云安全策略。