为 Root 添加的 AWS IAM 登录配置文件
编辑为 Root 添加的 AWS IAM 登录配置文件
编辑检测何时为 root 用户账户添加了 AWS IAM 登录配置文件,且该配置文件是自行分配的。攻击者在临时访问 root 账户的情况下,可能会为 root 用户账户添加登录配置文件,以维持访问权限,即使原始访问密钥被轮换或禁用。
规则类型: esql
规则索引: 无
严重性: 高
风险评分: 73
运行频率: 5 分钟
搜索索引时间范围: now-9m (日期数学格式,另请参阅 额外回溯时间
)
每次执行的最大告警数: 100
参考: 无
标签:
- 域:云
- 数据源:AWS
- 数据源:Amazon Web Services
- 数据源:AWS IAM
- 用例:身份和访问审计
- 策略:持久化
- 资源:调查指南
版本: 1
规则作者:
- Elastic
规则许可证: Elastic License v2
调查指南
编辑调查为 Root 添加的 AWS IAM 登录配置文件
此规则检测何时为 AWS root 账户添加了登录配置文件。为 root 账户添加登录配置文件,尤其是自行分配的情况下,高度可疑,因为它可能表明攻击者试图在环境中建立持久性。
可能的调查步骤
- 识别操作的来源和上下文:
- 检查
source.address
字段,以识别请求的来源 IP 地址。 - 检查地理位置 (
source.address
) 以确定访问是否来自预期或非预期的区域。 - 查看
user_agent.original
字段,以识别用于此操作的工具或浏览器。 - 例如,类似
Mozilla/5.0
的用户代理可能表示交互式访问,而aws-cli
或 SDK 则表示脚本活动。 - 确认 Root 用户和请求详细信息:
- 通过
aws.cloudtrail.user_identity.arn
验证 root 用户的身份,并确保此活动符合合法的管理操作。 - 查看
aws.cloudtrail.user_identity.access_key_id
,以识别操作是否使用临时或永久凭据执行。此访问密钥可用于转到其他操作。 - 分析登录配置文件的创建:
- 查看
aws.cloudtrail.request_parameters
和aws.cloudtrail.response_elements
字段,以了解创建的登录配置文件的详细信息。 - 例如,确认配置文件的
userName
以及是否将passwordResetRequired
设置为true
。 - 将此事件的
@timestamp
与 root 账户的其它近期操作进行比较,以识别潜在的权限提升或滥用。 - 与其他事件关联:
- 调查相关的 IAM 活动,例如:
-
针对 root 账户的
CreateAccessKey
或AttachUserPolicy
事件。 - 不寻常的数据访问、权限提升或管理控制台登录。
- 检查环境中涉及相同
source.address
或aws.cloudtrail.user_identity.access_key_id
的任何异常情况。 - 评估策略和权限:
- 验证 root 账户的当前安全策略
- 确保密码策略强制执行复杂性和轮换要求。
- 检查是否在 root 账户上强制执行 MFA。
- 评估更广泛的 IAM 配置是否偏离最小权限原则。
误报分析
- 例行管理任务:在某些管理流程中,添加登录配置文件可能是合法的操作。与相关的 AWS 管理员核实此事件是否符合例行账户维护或紧急恢复场景。
- 自动化:如果该操作是已批准的自动化流程(例如,账户恢复工作流程)的一部分,请考虑使用特定的用户代理、IP 地址或会话属性将这些活动从告警中排除。
响应和补救
- 立即访问审查:
- 如果确定新建的登录配置文件未经授权,则禁用该配置文件 (
aws iam delete-login-profile
)。 - 轮换或禁用与 root 账户关联的凭据,以防止进一步滥用。
- 加强监控和告警:
- 启用涉及 root 账户的 IAM 操作的实时监控和告警。
- 增加 root 账户活动的日志详细程度。
- 审查和更新安全策略:
- 对所有管理操作强制执行 MFA,包括 root 账户的使用。
- 限制对 root 账户的编程访问,除非绝对必要,否则禁用访问密钥。
- 进行事件后分析:
- 调查 root 账户的凭据是如何被泄露或滥用的。
- 通过实施特定于账户的防护措施和持续监控来加强安全态势。
其它资源
- 关于 登录配置文件管理 的 AWS 文档。
规则查询
编辑from logs-aws.cloudtrail* metadata _id, _version, _index | where // filter for CloudTrail logs from IAM event.dataset == "aws.cloudtrail" and event.provider == "iam.amazonaws.com" // filter for successful CreateLoginProfile API call and event.action == "CreateLoginProfile" and event.outcome == "success" // filter for Root member account and aws.cloudtrail.user_identity.type == "Root" // filter for an access key existing which sources from AssumeRoot and aws.cloudtrail.user_identity.access_key_id IS NOT NULL // filter on the request parameters not including UserName which assumes self-assignment and NOT TO_LOWER(aws.cloudtrail.request_parameters) LIKE "*username*" | keep @timestamp, aws.cloudtrail.request_parameters, aws.cloudtrail.response_elements, aws.cloudtrail.user_identity.type, aws.cloudtrail.user_identity.arn, aws.cloudtrail.user_identity.access_key_id, cloud.account.id, event.action, source.address
框架:MITRE ATT&CKTM
-
策略
- 名称:持久化
- ID: TA0003
- 参考 URL:https://attack.mitre.org/tactics/TA0003/
-
技术
- 名称:有效账户
- ID: T1078
- 参考 URL:https://attack.mitre.org/techniques/T1078/
-
子技术
- 名称:云账户
- ID: T1078.004
- 参考 URL:https://attack.mitre.org/techniques/T1078/004/
-
技术
- 名称:账户操控
- ID: T1098
- 参考 URL:https://attack.mitre.org/techniques/T1098/