aws-samples/sample-mad-user-disable-guardduty-anomalies

GitHub: aws-samples/sample-mad-user-disable-guardduty-anomalies

该项目提供 CloudFormation 模板,在 GuardDuty 检测到 EC2 可疑运行时活动后自动禁用关联的 Active Directory 用户账户,实现威胁检测到身份遏制的自动化闭环。

Stars: 1 | Forks: 0

# 根据 GuardDuty Findings 自动禁用 Active Directory 用户 此仓库托管了伴随发布在 [AWS Security Blog](https://aws.amazon.com/blogs/security/) 频道上的 AWS 安全博客文章“[使用 AWS Directory Service API 实现身份生命周期和安全的自动化](https://aws.amazon.com/blogs/security/automating-identity-lifecycle-and-security-with-aws-directory-service-apis/)”提供的 CloudFormation 模板。 ## 概述 当 [Amazon GuardDuty](https://aws.amazon.com/guardduty/) 在加入域的 EC2 实例上检测到可疑的运行时活动时,此解决方案会自动禁用 [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) 用户账户。它消除了将 Linux 进程所有者映射回目录身份的人工步骤,从而缩短了检测与遏制之间的时间。该解决方案可帮助您: - **更快地遏制威胁**:在出现匹配的 GuardDuty finding 后几秒钟内,在 Active Directory 中禁用受影响的用户,无需等待值班响应人员进行调查。 - **将进程活动映射到目录身份**:Systems Manager Run Command 文档会将 finding 中的 Linux 有效用户 ID 解析为底层 AD 的 `sAMAccountName`。 - **随时向响应人员通报情况**:每当有用户被禁用时,系统都会通过 Amazon SNS 发送电子邮件通知,其中包含用户名、源 IP 以及用于审计的完整 CloudTrail 事件。 ![架构图](/Images/ArchitecturalDiagram.png) 该解决方案使用 [Amazon EventBridge](https://aws.amazon.com/eventbridge/) 来匹配 GuardDuty findings,使用 [AWS Step Functions](https://aws.amazon.com/step-functions/) 来编排响应,使用 [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) Run Command 和 Automation 来解析用户名并调用 [AWS Directory Service Data API](https://docs.aws.amazon.com/directoryservicedata/latest/DirectoryServiceDataAPIReference/Welcome.html) 的 `DisableUser` 操作,以及使用 [Amazon SNS](https://aws.amazon.com/sns/) 和 [AWS KMS](https://aws.amazon.com/kms/) 客户托管密钥来进行加密通知。 ## 部署 ### CloudFormation ### 前置条件 要部署该解决方案,您需要具备以下条件: * 一个处于激活状态的 AWS 账户,且拥有部署 CloudFormation 堆栈的权限 * 在目标区域启用了 [Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_settingup.html),并为 EC2 启用了 [Runtime Monitoring](https://docs.aws.amazon.com/guardduty/latest/ug/runtime-monitoring.html) * 一个包含您要保护的用户账户的 [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) 目录 * 一个或多个已加入该目录并由 [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html) 管理的 Linux EC2 实例(已安装 SSM Agent 且处于正常上报状态) * 一个可以接收 SNS 通知的电子邮件地址 ### 开始使用 1. 下载部署模板。对于此解决方案,我们使用 [guardduty-ad-user-auto-disable.yaml](/Templates/CloudFormation/guardduty-ad-user-auto-disable.yaml) CloudFormation 模板。 2. [从 AWS CloudFormation 控制台创建堆栈](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。CloudFormation 模板将创建博客文章中描述的所有资源。 3. 确认发送至您所提供地址的 SNS 订阅电子邮件,以便在用户被禁用时接收通知。 ### 模板参数 堆栈模板包含以下参数: | 参数 | 必需 | 描述 | | --- | --- | --- | | DirectoryID | 必需 | 将要禁用用户的 AWS Managed Microsoft AD 目录 ID。必须符合 `d-xxxxxxxxxx` 格式。 | | NotificationEmail | 必需 | 每当 Active Directory 中的用户被禁用时,将接收 SNS 通知的电子邮件地址。 | ### 清理 要清理资源: 1. 打开 AWS CloudFormation 控制台。 2. 选择您创建的堆栈。 3. 选择 **Delete stack**。 4. 确认删除。 或者,使用 AWS CLI: ``` aws cloudformation delete-stack --stack-name ``` 堆栈删除后,任何被自动化禁用的 AD 用户仍将保持禁用状态。如有需要,请从目录中重新启用他们。 ## 安全 有关更多信息,请参阅 [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications)。 ## 许可证 本库采用 MIT-0 许可证授权。请参阅 LICENSE 文件。
标签:Active Directory, AWS, DPI, Plaso, 威胁响应, 自动化防御, 身份与访问管理