网络取证 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

网络取证

通过进行简短的调查来影响 AWS 安全参考架构 (AWS SRA) 的未来。

在 AWS SRA 的上下文中,我们使用美国国家标准与技术研究院(NIST)提供的以下取证定义:“将科学应用于识别、收集、检查和分析数据,同时保持信息的完整性并对数据保持严格的监管链”(来源:NIST Special Publication 800-86 – Guide to Integrating Forensic Techniques into Incident Response)。

安全事件响应上下文中的取证

本节中的事件响应(IR)指南仅在取证以及不同的服务和解决方案如何改进 IR 流程的上下文中提供。

AWS 安全事件响应指南根据 AWS 客户事件响应团队(AWS CIRT)的经验,列出了响应 AWS Cloud 中安全事件的最佳实践。有关 AWS CIRT 的其他指导,请参阅 AWS CIRT 研习会来自 AWS CIRT 的经验教训

美国国家标准与技术研究院网络安全框架(NIST CSF)定义了 IR 生命周期中的四个步骤:准备;检测和分析;遏制、根除和恢复;以及事后活动。这些步骤可以按顺序实施。但是,该顺序通常是周期性的,因为某些步骤在进入循环的下一步之后必须重复。例如,在遏制和根除之后,您需要再次进行分析,以确认您已成功将攻击者从环境中移除。

这种重复的分析、遏制、根除和再次返回分析的循环使您每次检测到新的危害指标 (IoCs) 时都能收集更多信息。从许多角度来看,这些 IoCs 都是有用的。它们可让您了解攻击者为了破坏您的环境而采取的步骤。此外,通过进行适当的事后审查,您可以提高防御和检测能力,以便防止将来发生事件,或者更快地检测到攻击者的行动,从而减少事件的影响。

虽然这个 IR 流程不是取证的主要目标,但许多工具、技术和最佳实践都与 IR 共享(尤其是分析步骤)。例如,在检测到事件后,取证收集过程会收集证据。接下来,证据检查和分析可以帮助提取 IoCs。最后,取证报告可以为 IR 后的活动提供帮助。

我们建议您尽可能自动化取证过程,以加快响应速度并减轻 IR 利益相关者的负担。此外,在取证收集过程完成并且证据已安全存储以避免污染之后,您可以添加更多自动化分析。有关更多信息,请参阅 AWS Prescriptive Guidance 网站上的“自动化事件响应和取证”模式。

设计注意事项

要改善您的安全 IR 准备,请执行以下操作:

  • 启用并安全存储调查或事件响应期间可能需要的日志。

  • 为已知场景预建查询,并提供自动搜索日志的方法。考虑使用 Amazon Detective。

  • 通过运行模拟来准备 IR 工具。

  • 定期测试备份和恢复流程,确保它们成功。

  • 使用基于场景的行动手册,从基于 Amazon 发现的与 AWS 相关的常见潜在事件开始。 GuardDuty 有关如何构建自己的行动手册的信息,请参阅《AWS Security Incident Response Guide》的 Playbook resources 部分。

取证账户

免责声明

以下对 AWS 取证账户的描述只能由组织作为起点,让组织在法律顾问的指导下发展自己的取证能力。

我们没有说本指南适用于侦查或调查犯罪,也没有说通过应用本指南捕获的数据或取证证据能够在法庭上使用。您应该独立评估此处描述的最佳实践是否适合您的用例。

下图说明了可以在专用取证账户中配置的 AWS 安全服务。作为背景介绍,该图显示的安全工具账户用于描述用来在取证账户中提供检测或通知的 AWS 服务。

AWS 上的取证账户

取证账户是一种单独的专用安全工具账户,位于安全 OU 中。取证账户的目的是提供一个标准、预先配置且可重复的洁净室,让组织的取证团队能够实施取证过程的所有阶段:收集、检查、分析和报告。另外,此账户还包括对范围内资源的隔离和分离流程。

将整个取证过程包含在单独的账户中,您便可对收集和存储的取证数据应用额外的访问控制。我们建议您将取证和安全工具账户分开,原因如下:

  • 取证和安全资源可能属于不同的团队或具有不同的权限。

  • 安全工具账户可能具有自动化功能,侧重于响应 AWS 控制面板的安全事件,例如,为 S3 存储桶启用 Amazon S3 屏蔽公共访问权限,而取证账户还包括客户可能负责的 AWS 数据面板构件,例如 EC2 实例中的操作系统(OS)或特定于应用程序的数据。

  • 根据您的组织或监管要求,您可能需要实施额外的访问限制或法律保留。

  • 取证分析过程可能需要根据 AWS 服务条款,在安全环境中对恶意代码(例如恶意软件)进行分析。

取证账户应包括自动化功能,以加快大规模证据收集,同时最大限度地减少取证收集过程中的人际互动。此账户还将包括自动响应和隔离资源,以简化跟踪和报告机制。

本节所述的取证功能应部署到每个可用的 AWS 区域,即使您的组织并未积极使用这些功能,也是如此。如果您不打算使用特定的 AWS 区域,则应该应用服务控制策略(SCP)来限制预置 AWS 资源。此外,在同一区域内对取证构件进行调查和存储,有助于避免数据驻留和所有权监管环境不断变化的问题。

本指南使用前面概述的日志归档账户来记录通过 AWS API 在环境中采取的操作,包括您在取证账户中运行的 API。拥有此类日志可以帮助避免有人指控构件处理不当或被篡改。根据您启用的详细程度(请参阅 AWS CloudTrail 文档中的日志管理事件和记录数据事件),日志可以包含有关用于收集工件的账户、收集工件的时间以及收集数据所采取的步骤的信息。通过将构件存储在 Amazon S3 中,您还可以使用高级访问控制并记录有关谁有权访问对象的信息。其他人可以稍后根据需要使用详细的操作日志重复该过程(假设范围内的资源仍然可用)。

设计注意事项
  • 如果您有许多并发事件,则自动化会很有用,因为它有助于加快重要证据的收集速度并扩大收集范围。但是,您应谨慎考虑这些好处。例如,如果发生误报事件,全自动取证响应可能会对范围内 AWS 工作负载支持的业务流程产生负面影响。有关更多信息,请参阅以下各节中的 AWS GuardDuty、AWS Security Hub 和 AWS Step Functions 的设计注意事项。

  • 我们建议将安全工具账户和取证账户分开,即使组织的取证和安全资源属于同一个团队,并且所有职能均可由团队中的任何成员执行,也要这样做。将职能拆分到单独的账户中,可为最低权限提供进一步支持,帮助避免持续的安全事件分析造成污染,并有助于确保收集到的构件的完整性。

  • 如果您想进一步强调职责分离、最低权限和限制性防护机制,则可以创建单独的取证 OU 来托管此账户。

  • 如果您的组织使用不可变的基础设施资源,则在检测到安全事件之前,如果某个资源被自动删除(例如,在缩减事件期间),则具有取证价值的信息可能会丢失。为避免这种情况,请考虑对每个此类资源运行取证收集过程。要减少收集的数据量,您可以考虑环境、工作负载的业务关键性、处理的数据类型等因素。

  • 考虑使用 Amazon WorkSpaces 来启动干净的工作站。这有助于在调查期间区分利益相关者的操作。

亚马逊 GuardDuty

Amazon GuardDuty 是一项检测服务,可持续监控恶意活动和未经授权的行为,以保护您的 AWS 账户和工作负载。有关 AWS SRA 的一般指南,请参阅 Amazon GuardDuty 的 “安全工具账户” 部分。

您可以使用 GuardDuty 调查结果来启动取证工作流程,捕获可能受损的 EC2 实例的磁盘和内存映像。这减少了人际互动,并可显著提高取证数据的收集速度。您可以 GuardDuty 与 Amazon 集成 EventBridge ,自动回复新 GuardDuty 发现

GuardDuty 发现类型的列表越来越多。您应该考虑哪些调查发现类型(例如 Amazon EC2、Amazon EKS、恶意软件防护等)应启动取证工作流。

您可以将控制和取证数据收集过程与调查 GuardDuty 结果完全自动集成,以捕获对磁盘和内存工件的调查并隔离 EC2 实例。例如,如果从安全组中删除了所有入口和出口规则,则可以应用网络 ACL 来中断现有连接,并附加 IAM policy 以拒绝所有请求。

设计注意事项
  • 根据 AWS 服务的不同,客户的共同责任可能有所不同。例如,只能在实例本身上捕获 EC2 实例上的易失性数据,并且可能包括可用作取证证据的宝贵数据。相反,回应和调查 Amazon S3 的调查结果主要涉及 CloudTrail 数据或 Amazon S3 访问日志。应根据客户的共同责任、一般流程以及需要保护的捕获构件,在安全工具账户和取证账户中组织响应自动化。

  • 在隔离 EC2 实例之前,请权衡其整体业务影响和关键性。考虑建立一个流程,其中,在使用自动化功能控制 EC2 实例之前,先征求相关利益相关者的意见。

AWS Security Hub

AWS Security Hub 可让您全面了解 AWS 平台的安全状况,并帮助检查您的环境是否符合安全行业标准和最佳实践。Security Hub 会从 AWS 集成服务、支持的第三方产品以及您可能使用的其他自定义安全产品中收集安全数据。它可以帮助您持续监控和分析安全趋势,并确定最高优先级的安全问题。有关 AWS SRA 的一般指南,请参阅安全工具账户部分中的 AWS Security Hub

除了监控您的安全状况外,Security Hub 还支持与 Amazon 集成, EventBridge 以自动修复特定发现。例如,您可以定义自定义操作,这些操作可以编程为运行 AWS Lambda 函数或 AWS Step Functions 工作流来实施取证过程。

Security Hub 自定义操作为授权的安全分析师或资源提供一种标准化机制,以实现遏制和取证自动化。这样可减少在遏制和取证证据捕获过程中的人际互动。您可以在自动化过程中添加手动检查点,以确认是否确实需要进行取证收集。

设计注意事项
  • Security Hub 可以与许多服务集成,包括 AWS 合作伙伴解决方案。如果组织使用的侦测性安全控制措施未经过全面微调,有时会导致误报提醒,则完全自动化取证收集过程将导致不必要地运行该过程。

亚马逊 EventBridge

Amazon EventBridge 是一项无服务器事件总线服务,可以直接将您的应用程序与来自各种来源的数据连接起来。它经常用于安全自动化。有关 AWS SRA 的一般指南,请参阅 Amazon EventBridge 的 “安全工具账户” 部分。

例如,您可以 EventBridge 将其用作在 Step Functions 中启动取证工作流程的机制,以根据安全监控工具(例如)的检测结果捕获磁盘和内存映像。 GuardDuty或者你可以用更手动的方式使用它: EventBridge可以检测中的标签更改事件 CloudTrail,这可以在 Step Functions 中启动取证工作流程。

AWS Step Functions

AWS Step Functions 是一项无服务器编排服务,可让您与 AWS Lambda 函数和其他 AWS 服务集成,以构建业务关键型应用程序。在 Step Functions 图形控制台上,您可以将应用程序的工作流视为一系列事件驱动的步骤。Step Functions 基于状态机和任务。在 Step Functions 中,工作流被称为状态机,是一系列由事件驱动的步骤。工作流中的每个步骤都称为状态。任务状态代表其他 AWS 服务(例如 Lambda)执行的工作单元。任务状态可以调用任何 AWS 服务或 API。您可以使用 Step Functions 中的内置控件来检查工作流中每个步骤的状态,确保每个步骤都如预期按正确顺序运行。根据您的用例,您可以让 Step Functions 调用 AWS 服务(例如 Lambda)来执行任务。您还可以为需要人际互动的应用程序创建长时间运行的自动化工作流。

Step Functions 非常适合与取证过程一起使用,因为它支持一组可重复的、自动化的预定义步骤,这些步骤可通过 AWS 日志进行验证。这可以帮助您排除任何人为参与,并避免在取证过程中出现错误。

设计注意事项
  • 您可以手动或自动启动 Step Functions 工作流程,以便在或 Security Hub 表明存在安全漏洞时 GuardDuty 捕获和分析安全数据。在发生影响许多资源的重大安全事件时,只需很少或无需人际互动的自动化功能让您的团队能够快速扩展。

  • 要限制全自动工作流,可以在自动化流程中加入相应步骤,以便进行一些手动干预。例如,您可能需要授权的安全分析师或团队成员来审查生成的安全调查发现,并确定是开始收集取证证据,还是隔离并遏制受影响的资源,或者两者兼而有之。

  • 如果您想在没有通过安全工具(例如 GuardDuty 或 Security Hub)创建的有效调查结果的情况下启动取证调查,则应实现其他集成以调用 Step Functions 取证工作流程。这可以通过创建查找特定 CloudTrail 事件(例如标签更改事件)的 EventBridge 规则,或者允许安全分析师或团队成员直接从控制台启动取证 Step Functions 工作流程来完成。您还可以使用 Step Functions 将其与组织的工单系统集成,以创建可操作的工单。

AWS Lambda

利用 AWS Lambda,您可以运行代码而无需预置或管理服务器。您只需按使用的计算时间付费。代码不运行时不会产生任何费用。Lambda 在可用性高的计算基础设施上运行您的代码,并管理所有计算资源,包括服务器和操作系统维护、容量预置和自动扩展以及日志记录。您可以使用 Lambda 支持的其中一种语言运行时系统提供代码,然后将您的代码整理到 Lambda 函数中。Lambda 服务仅在需要时运行函数并自动扩展。

在取证调查的上下文中,使用 Lambda 函数可帮助您通过 Lambda 代码中定义的可重复、自动和预定义的步骤获得稳定结果。当 Lambda 函数运行时,它会创建一个日志,帮助您验证是否实施了正确的流程。

设计注意事项
  • Lambda 函数的超时时间为 15 分钟,而收集相关证据的全面取证过程可能需要更长时间。因此,我们建议您使用集成在 Step Functions 工作流中的 Lambda 函数来编排取证过程。该工作流让您可以按正确顺序创建 Lambda 函数,并且每个 Lambda 函数都实现了单独的收集步骤。

  • 通过将取证 Lambda 函数整理到 Step Functions 工作流中,您可以并行运行部分取证收集过程以加快收集速度。例如,当范围内有多个卷时,您可以更快地收集有关创建磁盘映像的信息。

AWS KMS

AWS Key Management Service(AWS KMS)可帮助您创建和管理加密密钥,并控制其在各种 AWS 服务和应用程序中的使用。有关 AWS SRA 一般指南,请参阅安全工具账户部分中的 AWS KMS

作为取证过程的一部分,数据收集和调查应在隔离的环境中进行,以最大限度地减少对业务的影响。在此过程中,数据的安全性和完整性不会受到损害,因此需要制定一个流程,以允许在可能遭到入侵的账户和取证账户之间共享加密资源,例如快照和磁盘卷。为此,您的组织必须确保关联的 AWS KMS 资源策略支持读取加密数据,并通过使用取证账户中的 AWS KMS 密钥重新加密数据来保护数据。

设计注意事项
  • 组织的 KMS 密钥政策应允许授权的 IAM 取证主体使用该密钥解密来源账户中的数据,并在取证账户中对其进行重新加密。使用基础设施即代码(IaC)在 AWS KMS 中集中管理组织的所有密钥,帮助确保只有经过授权的 IAM 主体才具有适当且最低的访问权限。这些权限应存在于所有 KMS 密钥上,这些密钥可用于加密 AWS 平台上可能在取证调查期间收集的资源。如果您在安全事件发生后更新 KMS 密钥政策,则正在使用的 KMS 密钥的后续资源策略更新可能会影响您的业务。此外,权限问题可能会增加安全事件的总体平均响应时间(MTTR)。