使用 Google Cloud 缓解勒索软件攻击的最佳实践

Last reviewed 2023-08-03 UTC

由第三方创建来侵入系统以非法操作、加密和窃取数据的代码称为勒索软件。为了保护您的企业资源和数据免受勒索软件攻击,您必须在本地和云环境中实施多层控制措施。本文档介绍了一些最佳实践,可帮助您的组织识别、预防、检测和应对勒索软件攻击。

本文档是面向安全架构师和管理员的系列文章中的一篇。其中介绍了 Google Cloud 如何帮助您的组织缓解勒索软件攻击的危害。

本系列文章包含以下部分:

识别您的风险和资产

如需确定您的组织是否遭受勒索软件攻击,您必须了解您的系统、人员、资产、数据和功能的风险。为了帮助您,Google Cloud 提供了以下功能:

使用 Cloud Asset Inventory 管理资产

为了帮助缓解勒索软件攻击,您需要了解贵组织在 Google Cloud 以及本地或其他云环境中的资产、状态和用途。对于静态资源,请在单独的位置维护上一个已知良好配置的基准。

使用 Cloud Asset Inventory 可以获取 Google Cloud 资源在五周内的历史记录。设置 Monitoring Feed,以便在资源发生特定更改或存在政策偏差时收到通知。如需跟踪更改,以便观察较长时间段内的攻击,请导出 Feed。如需创建导出,您可以使用 Terraform 等工具。对于此类分析,您可以将库存导出到 BigQuery 表Cloud Storage 存储桶

评估和管理风险

使用现有风险评估框架可帮助您对风险进行编目,并确定您的组织检测和对抗勒索软件攻击的能力。这些评估会检查一些因素,例如您是否具有恶意软件防护控制、正确配置的访问权限控制、数据库保护和备份。

例如,云安全联盟 (CSA) 提供了 Cloud Controls Matrix (CCM) 来协助组织进行云风险评估。如需了解特定于 Google Cloud 的 CCM 信息,请参阅适用于 Google Cloud Computing Platform 的新 CIS 基准

如需识别潜在的应用缺口并采取措施加以修复,您可以使用 OWASP 应用威胁建模等威胁模型。如需详细了解如何使用 Google Cloud 缓解 10 大 OWASP 安全风险,请参阅 Google Cloud 上的 OWASP 10 大缓解选项

为风险编目后,确定如何应对风险,以及是否要接受、避免、转移或缓解风险。Risk Protection Program 可提供对 Risk Manager 和网络保险的访问权限。使用 Risk Manager 扫描 Google Cloud 上的工作负载,并实施安全建议,以帮助降低与勒索软件相关的风险。

配置敏感数据保护

借助 Sensitive Data Protection,您可以检查 Google Cloud 组织中的数据和来自外部来源的数据。配置 Sensitive Data Protection,以使用去标识化技术对机密数据进行分类和保护。对数据进行分类有助于您将监控和检测工作重点放在对您的组织最重要的数据上。

将 Sensitive Data Protection 与其他产品(例如 Security Command Center)或第三方 SIEM 结合使用,以帮助确保对数据的任何意外更改进行适当的监控和提醒。

管理供应链的风险

勒索软件攻击的关键攻击途径是供应链中的漏洞。这种攻击途径的挑战是大多数组织都必须跟踪许多供应商,每个供应商都有自己的供应商列表。

如果您要创建并部署应用,请使用软件架构的供应链级别 (SLSA) 等框架。这些框架有助于定义您的企业可以用来保护您的源代码和构建流程的要求和最佳实践。使用 SLSA,您可以通过四个安全级别来提高您生产的软件的安全性。

如果您在应用中使用开源软件包,请考虑使用安全统计信息摘要自动生成特定开源软件包的安全得分。在开发者将开源软件包与您的系统集成之前,安全统计信息摘要是一种费用低廉、易于使用的评估方法。

如需了解可用于验证 Google Cloud 安全性的资源,请参阅供应商安全风险评估

控制对资源和数据的访问权限

当您的组织将工作负载移出本地网络时,您必须在托管资源和数据的所有环境中管理对这些工作负载的访问权限。Google Cloud 支持多种控制措施,帮助您设置适当的访问权限。以下部分重点介绍其中一些方法。

使用 BeyondCorp Enterprise 设置零信任安全性

当您将工作负载从本地环境迁移到云端时,网络信任模型会发生变化。零信任安全意味着没有人受到隐含信任,无论他们是在组织网络内部还是外部。

与 VPN 不同,零信任安全机制会将访问权限控制从网络边界转移至用户及其设备。零信任安全性意味着系统会在身份验证期间考虑用户的身份和上下文。此安全控制机制提供了一种重要的防御策略,用于防范仅在攻击者入侵您的网络后才会成功实施的勒索软件攻击。

使用 BeyondCorp Enterprise 在 Google Cloud 中设置零信任安全性。BeyondCorp Enterprise 提供威胁和数据保护以及访问权限控制。如需了解如何进行设置,请参阅 BeyondCorp Enterprise 使用入门

如果您的工作负载同时位于本地和 Google Cloud 中,请配置 Identity-Aware Proxy (IAP)。借助 IAP,您可以在两个位置为应用扩展零信任安全性。它使用访问权限控制政策向访问您的应用和资源的用户提供身份验证和授权。

配置最小权限

最小权限可确保用户和服务仅拥有执行其特定任务所需的访问权限。最小权限会减慢勒索软件在整个组织中传播的能力,因为攻击者无法轻易提升他们的权限。

如需满足贵组织的特定需求,请使用 Identity and Access Management (IAM) 中的精细政策、角色和权限。此外,定期使用角色 RecommenderPolicy Analyzer 分析您的权限。Role Recommender 使用机器学习来分析您的设置,并提供建议来帮助确保您的角色设置符合最小权限原则。政策分析器可让您查看哪些账号有权访问您的云资源。

如需详细了解最小权限,请参阅安全使用 IAM

使用 Titan 安全密钥配置多重身份验证

多重身份验证 (MFA) 可确保用户在访问资源之前先提供密码和生物识别要素或所有权要素(如令牌)。由于密码可能相对容易被发现或被盗,因此 MFA 有助于防止勒索软件攻击者盗用账号。

考虑为 MFA 设置 Titan 安全密钥,以帮助防范账号盗用和钓鱼式攻击。Titan 安全密钥具有防篡改功能,可与任何支持 Fast IDentity Online (FIDO) 联盟标准的服务搭配使用。

为应用、Google Cloud 管理员虚拟机的 SSH 连接(通过使用 OS Login)以及需要对敏感信息进行特权访问的任何人启用 MFA。

使用 Cloud Identity 为您的资源配置 MFA。如需了解详情,请参阅对访问公司资源的用户统一执行多重身份验证

保护您的服务账号

服务账号是特权身份,可提供对 Google Cloud 资源的访问权限,因此攻击者认为它们具有价值。如需了解有关保护服务账号的最佳实践,请参阅使用服务账号的最佳实践

保护您的关键数据

勒索软件攻击的主要目标通常如下:

  • 使您的关键数据在您支付赎金之前无法访问。
  • 使您的数据渗漏。

为了保护关键数据免受攻击,请结合各种安全控制措施以根据数据敏感性来控制对数据的访问。以下部分介绍了一些有助于保护数据并有效缓解恶意软件攻击的最佳实践。

配置数据冗余

Google Cloud 拥有全球级基础架构,旨在提供弹性、可扩缩性和高可用性。云弹性可帮助 Google Cloud 恢复并适应各种事件。如需了解详情,请参阅 Google Cloud 基础架构可靠性指南

除了 Google Cloud 中的默认弹性功能外,还可以在用于存储数据的云存储选项上配置冗余 (N+2)。冗余有助于减轻勒索软件攻击的影响,因为它消除了单点故障并为您的主系统提供备份,以防它们受到损害。

如果您使用 Cloud Storage,则可以启用对象版本控制存储桶锁定功能。通过存储桶锁定功能,您可以为 Cloud Storage 存储桶配置数据保留政策。

如需详细了解 Google Cloud 中的数据冗余,请参阅以下内容:

备份数据库和 Filestore

备份可让您保留数据的副本以用于灾难恢复,以便创建复制环境。以所需格式存储备份,并尽可能以原始源形式存储备份。为避免损坏您的备份数据,请将这些副本存储在远离生产区域的单独、隔离区域中。此外,将二进制文件和可执行文件与您的数据分开备份。

在规划复制环境时,请确保在镜像环境中应用相同(或更强大的)安全控制措施。确定重新创建环境和重新创建所需的任何新管理员账号所需的时间。

如需查看 Google Cloud 中的备份的一些示例,请参阅以下内容:

除了这些备份选项之外,还请考虑使用 Backup and DR Service 将本地数据备份到 Google Cloud。通过 Backup and DR,您可以在 Google Cloud 中为虚拟机和数据库设置灾难恢复环境。如需了解详情,请参阅备份和灾难恢复解决方案

保护和备份数据加密密钥

为防止攻击者访问您的数据加密密钥,请定期轮替密钥监控与密钥相关的活动。实现密钥备份策略,即考虑密钥位置以及密钥是否由 Google 管理(软件或 HSM),或者您是否向 Google 提供密钥。如果您提供自己的密钥,请使用外部密钥管理系统中的控件配置备份和密钥轮替。

如需了解详情,请参阅使用 Cloud Key Management Service 管理加密密钥

保护您的网络和基础架构

为了保护您的网络,您必须确保攻击者无法轻松遍历网络以访问敏感数据。以下部分介绍了规划和部署网络时要考虑的一些事项。

自动执行基础架构预配

自动化是针对勒索软件攻击者的重要控制措施,因为自动化为您的运营团队提供了已知的良好状态、快速回滚和问题排查功能。自动化需要各种工具,例如 Terraform、Jenkins、Cloud Build 等。

使用企业基础蓝图部署安全的 Google Cloud 环境。如有必要,使用其他蓝图构建安全基础蓝图,或设计自己的自动化机制。

如需详细了解自动化,请参阅使用 CI/CD 流水线处理数据处理工作流。 如需了解更多安全指导,请参阅 Cloud 安全措施最佳实践中心

细分网络

网络细分和边界有助于减慢攻击者在您的环境中实施攻击的进度。

为了细分服务和数据并帮助保护边界,Google Cloud 提供了以下工具:

  • 如需定向和保护流量,请将 Cloud Load Balancing防火墙规则搭配使用。
  • 如需在组织中设置边界以细分资源和数据,请使用 VPC Service Controls
  • 如需与其他工作负载(无论是在本地还是在其他云环境中)建立连接,请使用 Cloud VPNCloud Interconnect
  • 如需限制对 IP 地址和端口的访问权限,请配置组织政策,例如“限制 Cloud SQL 实例的公共 IP 访问权限”和“停用虚拟机串行端口访问权限”。
  • 如需强化网络上的虚拟机安全,请配置组织政策,例如“安全强化型虚拟机”。

自定义网络安全控制以匹配不同资源和数据的风险。

保护您的工作负载

Google Cloud 包含可让您构建、部署和管理代码的服务。使用这些服务可防止偏移和快速检测并修补错误配置以及漏洞等问题。为了保护您的工作负载,请构建一个封闭部署流程,以防止勒索软件攻击者通过未修补的漏洞和错误配置进行初始访问。以下部分介绍了可以用来帮助保护工作负载的一些最佳实践。

例如,如需在 GKE Enterprise 中部署工作负载,请执行以下操作:

如需详细了解 GKE Enterprise 安全性,请参阅强化集群的安全性

使用安全的软件开发生命周期

开发软件开发生命周期 (SDLC) 时,请使用 DevSecOps 等行业最佳实践。DevOps 研究和评估 (DORA) 研究计划介绍了 DevSecOps 的许多技术、流程、衡量和文化能力。DevSecOps 有助于缓解恶意软件攻击,因为它有助于确保在开发生命周期的每个步骤中都包含安全注意事项,并使您的组织可以快速部署修复程序。

如需详细了解如何将 SDLC 与 Google Kubernetes Engine (GKE) 搭配使用,请参阅 Software Delivery Shield 概览

使用安全的持续集成和持续交付流水线

持续集成和持续交付 (CI/CD) 提供了一种快速向客户交付最新功能的机制。为了防止您的流水线遭受勒索软件攻击,您必须执行适当的代码分析,并监控您的流水线是否存在恶意攻击。

为了保护 Google Cloud 上的 CI/CD 流水线,请在代码通过 CI/CD 流水线的过程中使用访问权限控制、隔离职责和加密代码验证。使用 Cloud Build 跟踪构建步骤,并使用 Artifact Registry 完成容器映像的漏洞扫描。使用 Binary Authorization 验证您的映像是否符合标准。

构建流水线时,请确保具有应用二进制文件和可执行文件的备份。将它们与机密数据分开备份。

保护已部署的应用

攻击者可以通过在部署的应用中查找第 7 层漏洞来尝试访问您的网络。为了帮助缓解这些攻击,请完成威胁建模活动以发现潜在威胁。在最大限度地减少攻击面后,请配置 Google Cloud Armor,这是一个使用第 7 层过滤和安全政策的 Web 应用防火墙 (WAF)。

WAF 规则可帮助您保护应用免受众多 OWASP 十大问题的影响。如需了解详情,请参阅 Google Cloud 上的 OWASP 10 大缓解措施

如需了解如何使用全球外部应用负载均衡器部署 Google Cloud Armor 以保护跨多个区域的应用,请参阅了解 Google Cloud Armor - 为面向互联网的服务大规模防御。如需了解如何将 Google Cloud Armor 与在 Google Cloud 外部运行的应用搭配使用,请参阅将 Google Cloud Armor 与其他 Google 产品集成

快速修补漏洞

勒索软件的关键攻击途径是开源软件漏洞。为了缓解勒索软件可能造成的影响,您必须能够在整个舰队中快速部署修复程序。

根据共担责任模型,您负责消除您应用中的任何软件漏洞,而 Google 则负责维护底层基础架构的安全性。

如需查看与虚拟机运行的操作系统相关的漏洞并管理修补过程,请使用 Compute Engine 中的 OS Patch Management。对于 GKE 和 GKE Enterprise,Google 会自动修补漏洞,但您可以控制 GKE 维护窗口

如果您使用的是 Cloud Build,则每当开发者将更改提交到源代码库时,就会自动构建。确保您的 build 配置文件包含适当的验证检查,例如漏洞扫描和完整性检查

如需了解如何修补 Cloud SQL,请参阅Cloud SQL 实例的维护

检测攻击

检测攻击的能力取决于您的检测能力、监控和提醒系统,以及准备运营团队在发生攻击时进行识别的活动。本部分介绍检测攻击的一些最佳实践。

配置监控和提醒

启用 Security Command Center 可集中了解 Google Cloud 环境中的任何安全问题和风险。自定义信息中心,确保对组织最重要的事件是可见的。

使用 Cloud Logging 管理和分析 Google Cloud 服务中的日志。如需进行其他分析,您可以选择与 Google Security Operations 集成或将日志导出到组织的 SIEM。

此外,使用 Cloud Monitoring 来衡量服务和资源的性能,并设置提醒。例如,您可以监控您的环境中运行的虚拟机数量的突然变化,这可能表明您的环境中存在恶意软件。

将所有这些信息集中提供给安全运营中心。

构建检测功能

在 Google Cloud 中构建与您的风险和工作负载需求相对应的检测功能。这些功能可让您更深入地了解高级威胁,并帮助您更好地监控合规性要求。

如果您有 Security Command Center 高级方案,请使用 Event Threat DetectionGoogle SecOps。Event Threat Detection 会在日志中搜索潜在的安全攻击,并在 Security Command Center 中记录其发现结果。Event Threat Detection 可让您同时监控 Google Cloud 和 Google Workspace。它会根据已知的错误网域和已知的不良 IP 地址检查恶意软件。如需了解详情,请参阅使用 Event Threat Detection

使用 Google SecOps 在一个位置存储和分析您的安全数据。Google SecOps 通过向 Security Command Center 高级方案添加调查功能,帮助增强在 Google Cloud 中处理威胁的过程。您可以使用 Google SecOps 创建检测规则,设置失陷指标匹配,以及执行威胁搜寻活动。Google SecOps 具有以下功能:

  • 当您映射日志时,Google SecOps 会丰富日志并将日志关联到时间轴中,以便您查看整个攻击过程。
  • Google SecOps 会持续根据 Google Cloud Threat Intelligence for Google Security Operations 团队收集的威胁情报重新评估日志活动。当情报发生变化时,Google SecOps 会自动将其重新应用于所有历史活动。
  • 您可以编写自己的 YARA 规则来改进威胁检测功能。

(可选)您可以联系 Google Cloud 合作伙伴来进一步增强检测功能。

针对勒索软件攻击进行规划

为了准备好应对勒索软件攻击,请完成业务连续性灾难恢复计划,创建勒索软件突发事件响应 playbook,并执行桌面演练。

对于突发事件响应 playbook,请考虑适用于每项服务的功能。例如,如果您将 GKE 与 Binary Authorization 搭配使用,则可以添加 Breakglass 流程。

确保您的突发事件响应 playbook 帮助您快速包含受感染的资源和账号,并转移到健康状况良好的辅助来源和备份上。如果您使用 Backup and DR 等备份服务,请定期练习从 Google Cloud 到本地环境的恢复过程。

构建网络弹性程序和备份策略,以便为恢复受勒索软件突发事件影响的核心系统或资产做好准备。网络弹性对于支持恢复时间轴和减少攻击的影响很重要,有助于您恢复业务运营。

根据攻击范围以及适用于贵组织的法规,您可能需要向相应机构报告攻击。确保在突发事件响应方案中准确捕获联系信息。

应对攻击并在遭受攻击后进行恢复

发生攻击时,您需要遵循突发事件响应方案。您的响应可能经历四个阶段,即:

  • 突发事件识别
  • 突发事件协调和调查
  • 突发事件解决
  • 突发事件结束

以下各部分进一步介绍了与突发事件响应相关的最佳实践。

如需了解 Google 如何管理突发事件,请参阅数据突发事件响应流程

激活突发事件响应方案

检测到勒索软件攻击时,请激活您的方案。在确认突发事件不是误报并且它会影响 Google Cloud 服务后,请打开 P1 Google 支持服务工单Google 支持按照 Google Cloud:技术支持服务准则中的说明进行响应。

如果您的组织有 Google 技术支持客户经理 (TAM) 或其他 Google 代表,请同时与他们联系。

协调突发事件调查

激活方案后,请收集您组织中需要参与突发事件协调和解决流程的团队。确保落实这些工具和流程,以便调查和解决突发事件。

继续监控您的 Google 支持服务工单,并与 Google 代表联系。回复任何请求以获取更多信息。记录有关活动的详细说明。

解决突发事件

完成调查后,请按照突发事件响应方案移除突发事件,并将环境恢复为正常运行状态。根据攻击的严重程度以及已启用的安全控制措施,您的方案可以包含如下活动:

  • 隔离受感染的系统。
  • 使用健康的备份进行恢复。
  • 使用 CI/CD 流水线将基础架构恢复到之前已知良好的状态。
  • 验证漏洞是否已移除。
  • 修补可能容易受到类似攻击的所有系统。
  • 实现所需的控制措施,以避免类似的攻击。

在您完成解决阶段的过程中,请继续监控您的 Google 支持服务工单。Google 支持在 Google Cloud 内采取适当的措施,以包含、清除和(可能的话)恢复您的环境。

继续记录活动的详细说明。

关闭突发事件

在您的环境恢复到健康状态并且您确认勒索软件已从环境中清除后,您可以关闭突发事件。

在突发事件解决且环境恢复后,请通知 Google 支持团队。如果已安排,请与 Google 代表联系。

确保捕获从突发事件中吸取的任何经验,并设置所需的控制措施,以避免类似的攻击。根据攻击的性质,您可以考虑执行以下操作:

  • 编写检测规则和提醒,以便在攻击再次发生时自动触发。
  • 更新突发事件响应 playbook,纳入所有经验教训。
  • 根据回顾性的发现结果改善安全状况。

后续步骤