自动执行事件响应和取证 - AWS Prescriptive Guidance

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

自动执行事件响应和取证

由卢卡斯·考夫曼 (AWS) 和 Tomek Jakubowski () 创作 AWS

摘要

此模式部署了一组使用 Lambd AWS a 函数的进程来提供以下内容:

  • 一种以最少知识启动事件响应流程的方法

  • 符合《AWS安全事件响应指南》的自动化、可重复的流程

  • 分离账户来操作自动化步骤、存储构件并创建取证环境

自动事件响应和取证框架遵循标准数字取证流程,包括以下阶段:

  1. 遏制

  2. 收购

  3. 检查

  4. 分析

您可对静态数据(例如采集的内存或磁盘映像)以及独立系统上的实时动态数据进行调查。

有关更多详细信息,请参阅其他信息部分。

先决条件和限制

先决条件

  • 两个AWS账户:

    • 安全账户,可以是现有账户,但最好是新账户

    • 取证账户,最好是新账号

  • AWS组织成立

  • 在 Organizations 的成员账户中:

    • 亚马逊弹性计算云 (AmazonEC2) 角色必须具有亚马逊简单存储服务 (Amazon S3) 的 “获取和列出” 权限,并且可以由 Systems AWS Manager 访问。我们建议使用AmazonSSMManagedInstanceCoreAWS托管角色。请注意,启动事件响应时,此角色将自动附加到EC2实例。响应完成后,Ident AWS ity and Access Management (IAM) 将删除该实例的所有权限。

    • AWS成员账户和事件响应和分析中的虚拟私有云 (VPC) 端点VPCs。这些端点是:S3 网关SSM、EC2消息和SSM消息。

  • AWSEC2实例上安装了命令行界面 (AWSCLI)。如果尚未AWSCLI安装EC2实例,则需要访问互联网才能正常进行磁盘快照和内存采集。在这种情况下,脚本将通过互联网下载AWSCLI安装文件并将其安装在实例上。

限制

  • 该框架无意生成可被视为可在法庭上提交的电子证据的构件。

  • 目前,此模式仅支持在 x86 架构运行的基于 Linux 的实例。

架构

目标技术堆栈

  • AWS CloudFormation

  • AWS CloudTrail

  • AWS Config

  • IAM

  • Lambda

  • Amazon S3

  • AWS密钥管理系统 (AWSKMS)

  • AWS Security Hub

  • 亚马逊简单通知服务(亚马逊SNS)

  • AWS Step Functions

目标架构

除成员账户外,目标环境还包含两个主要账户:安全账户和取证账户。使用两个账户的原因如下:

  • 将它们与任何其他客户账户分开,以减少取证分析失败时的影响范围

  • 帮助确保隔离和保护正在分析的构件的完整性

  • 为调查保密

  • 为了避免威胁行为者可能通过达到服务配额,从而阻止您实例化 Ama EC2 zon 实例来执行调查,从而使用了您被盗AWS账户的所有可立即使用的资源。 

此外,拥有单独的安全和取证账户允许创建单独的角色 - 用于获取证据的响应者和用于分析证据的调查者。每个角色都可访问其单独的账户。

下图仅展示了账户之间的交互。每个账户的详细信息将在后续图表中显示,并附上完整的图表。

成员、安全和取证账户与用户、互联网和 Slack 之间的交互。

下图显示了会员账户。

拥有AWSKMS密钥、IAM角色、Lambda 函数、终端节点和两个EC2实例VPC的成员账户。

1. 将向 Slack Amazon SNS 主题发送一个事件。

下图显示了安全账户。

事件响应VPC和 LiMe 内存模块EC2DdCopyInstance中的安全账户。

2. 安全账户中的SNS主题启动取证事件。

下图显示了取证账户。

包含取证和受害者EC2实例VPC、分析和维护的取证账户。VPC

安全账户是为内存和磁盘映像采集创建两个主要的 AWS Step Functions 工作流程的地方。工作流程运行后,他们会访问事件中涉及EC2实例的成员账户,然后启动一组 Lambda 函数来收集内存转储或磁盘转储。然后,这些构件将存储在取证账户中。

取证账户将在分析构件 S3 存储桶中保存 Step Functions 工作流收集的项目。取证账户还将有一个 I EC2 mage Builder 管道,用于生成取证实例的亚马逊系统映像 (AMI)。目前,该映像基于SANSSIFT工作站。 

构建过程使用维护VPC,该维护可以连接到互联网。稍后可以使用该图像来旋转EC2实例,以便在分析中分析收集到的工件VPC。 

该分析VPC没有互联网连接。默认情况下,该模式创建三个私有分析子网。您最多可以创建 200 个子网,这是中子网数量的配额,但是VPC端点需要添加这些子网VPC,S AWS ystems Manager Sessions Manager 才能在其中自动运行命令。

从最佳实践的角度来看,我们建议使用AWS CloudTrail 和 AWS Config 来执行以下操作: 

  • 跟踪您的取证账户的变更

  • 监控存储和分析的构件的访问权限和完整性

Workflow (工作流程)

下图显示了工作流的关键步骤,其中包括从实例受损到分析和控制实例的过程和决策树。

  1. SecurityIncidentStatus 标签是否已设置为分析值? 如果是,则执行以下操作:

    1. 附上 S AWS ystems Manager 和 Amazon S3 的正确IAM配置文件。

    2. 在 Slack 中向亚马逊SNS队列发送一条亚马逊SNS消息。

    3.  SecurityIncident队列发送 Amazon SNS 消息。

    4. 调用内存和磁盘采集状态机。

  2. 是否已获取内存和磁盘? 如否,则存在错误。

  3. 使用标签Contain标记EC2实例。

  4. 附加IAM角色和安全组以完全隔离实例。

之前列出的工作流程步骤。

自动化和扩缩

这种模式的目的是提供一种可扩展的解决方案,以便在单个 Organizations AWS 组织内的多个账户中执行事件响应和取证。

工具

AWS 服务

  • AWS CloudFormation帮助您设置AWS资源,快速一致地配置资源,并在各个AWS账户和地区的整个生命周期中对其进行管理。

  • AWS命令行接口 (AWSCLI) 是一个开源工具,用于通过命令行外壳中的命令与AWS服务进行交互。

  • AWSIdentity and Access Management (IAM) 通过控制谁经过身份验证并有权使用AWS资源,从而帮助您安全地管理对资源的访问权限。

  • AWS密钥管理服务 (AWSKMS) 可帮助您创建和控制加密密钥以保护您的数据。

  • AWSLambda 是一项计算服务,可帮助您运行代码,而无需预置或管理服务器。它仅在需要时运行您的代码,并且能自动扩缩,因此您只需为使用的计算时间付费。

  • Amazon Simple Storage Service (Amazon S3)是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。

  • AWSS@@ ecurity Hub 提供了您的安全状态的全面视图AWS。它还可以帮助您根据安全行业标准和最佳实践检查您的AWS环境。

  • 亚马逊简单通知服务 (AmazonSNS) 可帮助您协调和管理发布者与客户之间的消息交换,包括网络服务器和电子邮件地址。

  • AWSSt ep Functions 是一项无服务器编排服务,可帮助您组合 Lam AWS bda 函数和其他AWS服务来构建业务关键型应用程序。 

  • AWSSystems Manager 可帮助您管理在AWS云中运行的应用程序和基础架构。它简化了应用程序和资源管理,缩短了检测和解决操作问题的时间,并帮助您大规模安全地管理您的 AWS 资源。

代码

有关代码以及具体的实施和使用指南,请参阅 GitHub 自动事件响应和取证框架存储库。

操作说明

任务描述所需技能

部署 CloudFormation 模板。

CloudFormation 模板标记为 1 到 7,脚本名称的第一个单词表示需要在哪个帐户中部署模板。请注意,启动 CloudFormation 模板的顺序很重要。

  • 1-forensic-AnalysisVPCnS3Buckets.yaml:部署在取证账户中。它创建 S3 存储桶和分析VPC,然后激活 CloudTrail。

  • 2-forensic-MaintenanceVPCnEC2ImageBuilderPipeline.yaml:部署基于的维护VPC和映像生成器管道。SANS SIFT

  • 3-security_IR-Disk_Mem_automation.yaml:在安全账户中部署启用磁盘与内存采集的功能。

  • 4-security_LiME_Volatility_Factory.yaml:启动构建函数以开始基于给定AMIIDs内容创建内存模块。请注意,AMIIDs不同AWS地区的情况有所不同。每当你需要新的内存模块时,你可以用新的AMIIDs内存模块重新运行这个脚本。考虑将其与您的黄金映像AMI生成器管道集成(如果在您的环境中使用)。

  • 5-member-IR-automation.yaml:创建成员事件响应自动化功能,启动事件响应流程。它允许跨账户共享 Amazon Elastic Block Store (AmazonEBS) 卷,在事件响应过程中自动发布到 Slack 频道,启动取证流程,并在流程完成后隔离实例。

  • 6-forensic-artifact-s3-policies.yaml:部署所有脚本后,此脚本修复了所有跨账户交互所需权限。

  • 7-security-IR-vpc.yaml:配置VPC用于事件响应量处理的。

要为特定EC2实例启动事件响应框架,请使用密钥SecurityIncidentStatus和值创建一个标签Analyze。这将启动成员 Lambda 函数,该函数将自动启动隔离和内存以及磁盘获取。

AWS 管理员

操作框架。

Lambda 函数还将在Contain最后(或失败时)重新标记资产。这将启动遏制,从而使用不INBOUND/OUTBOUND安全组和不允许所有访问的IAM角色完全隔离实例。

按照GitHub 存储库中的步骤进行操作。

AWS 管理员
任务描述所需技能

使用 CloudFormation 模板部署自定义 Security Hub 操作。

要创建自定义操作以便您可以使用 Security Hub 中的下拉列表,请部署Modules/SecurityHub Custom Actions/SecurityHubCustomActions.yaml CloudFormation 模板。然后修改每个成员账户中的 IRAutomation 角色,以允许运行该操作的 Lambda 函数代入 IRAutomation 角色。有关更多信息,请参阅GitHub 存储库

AWS 管理员

相关资源

其他信息

通过使用此环境,安全运营中心 (SOC) 团队可以通过以下方式改进其安全事件响应流程:

  • 能够在隔离环境中进行取证,以避免生产资源的意外泄露

  • 拥有标准化、可重复、自动化的流程来进行遏制和分析。

  • 使任何账户所有者或管理员都能够在不了解如何使用标签的情况下启动事件响应流程

  • 拥有标准化、干净的环境来执行事件分析和取证,而不会受到更大环境的干扰

  • 能够并行创建多项分析环境

  • 将SOC资源集中在事件响应上,而不是云取证环境的维护和文档记录上

  • 从手动流程转向自动化流程,以实现可扩展性

  • 使用 CloudFormation 模板来保持一致性并避免可重复的任务

此外,您可避免使用永久基础设施,且可以在需要时为资源付费。

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip