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 事件。

该解决方案使用 [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, 威胁响应, 自动化防御, 身份与访问管理