AWS S3 存储桶枚举或暴力破解
编辑AWS S3 存储桶枚举或暴力破解
编辑识别在短时间内来自单个来源和帐户(或匿名帐户)的大量 S3 操作失败。此活动可能表明试图增加帐户因过度随机操作而产生的账单,导致资源耗尽,或枚举存储桶名称以进行发现。
规则类型: esql
规则索引: 无
严重性: 低
风险评分: 21
每隔: 5 分钟运行
搜索索引自: now-6m (日期数学格式,另见 附加回溯时间
)
每次执行的最大告警数: 100
参考资料:
标签:
- 领域:云
- 数据源:AWS
- 数据源:Amazon Web Services
- 数据源:AWS S3
- 资源:调查指南
- 用例:日志审计
- 策略:影响
版本: 4
规则作者:
- Elastic
规则许可证: Elastic License v2
调查指南
编辑分类和分析
调查 AWS S3 存储桶枚举或暴力破解
AWS S3 存储桶可能会被暴力破解,从而对资源所有者造成经济损失。更危险的是,即使是私有的、锁定状态的存储桶仍然可能触发潜在的成本,即使是“访问被拒绝”,同时也能被未经身份验证的匿名帐户访问。这似乎也适用于多个或所有操作(GET、PUT、list-objects 等)。此外,只要知道存储桶名称,默认情况下存储桶很容易被发现,这使得它容易受到枚举以进行发现。
攻击者可能会尝试枚举名称,直到发现有效的存储桶,然后转向造成经济损失,枚举更多信息,或以其他方式进行暴力破解以尝试泄露数据。
可能的调查步骤
- 检查来自相同
source.address
和cloud.account.id
的操作请求的历史记录,以确定是否存在其他可疑活动。 - 查看类似的请求,并查看
user.agent
信息以确定请求的来源(但不要过度依赖此信息,因为它受请求者控制)。 - 查看对相同
aws.s3.object.key
的其他请求,以及由相同cloud.account.id
或source.address
访问的其他aws.s3.object.key
。 - 调查过去 48 小时内与用户帐户相关的其他告警。
- 验证活动是否与计划的补丁、更新或网络管理员活动无关。
- 检查请求参数。这些参数可能表明程序的来源或错误发生时正在执行的任务的性质。
- 检查错误是否与尝试枚举或访问对象、数据或密钥失败有关。
- 考虑发出命令的用户源 IP 地址和地理位置
- 对于调用用户来说,这些看起来正常吗?
- 如果源是 EC2 IP 地址,它是否与您帐户中的 EC2 实例相关联,或者源 IP 是否来自您无法控制的 EC2 实例?
- 如果是授权的 EC2 实例,该活动是否与实例角色的正常行为相关?此实例是否存在任何其他告警或可疑活动迹象?
- 考虑一天中的时间。如果用户是人(而不是程序或脚本),活动是否发生在一天中的正常时间?
- 如果可疑,请联系帐户所有者并确认他们是否知道此活动。
- 如果您怀疑帐户已被泄露,请通过跟踪帐户在过去 24 小时内访问的服务器、服务和数据来确定可能被泄露的资产。
误报分析
- 验证
source.address
和cloud.account.id
- AWS 内部的一些有效操作可能会导致失败和误报。此外,自动化失败也可能导致误报,但应该可以通过查看source.address
和cloud.account.id
来识别。
响应和补救
- 根据分类的结果启动事件响应流程。
- 在调查和响应期间禁用或限制帐户。
- 确定事件的可能影响并相应地进行优先级排序;以下操作可以帮助您获得上下文
- 确定云环境中的帐户角色。
- 评估受影响的服务和服务器的关键程度。
- 与您的 IT 团队合作,确定并最大限度地减少对用户的影响。
- 确定攻击者是否正在横向移动并入侵其他帐户、服务器或服务。
- 确定与该活动相关的任何法规或法律影响。
- 调查受攻击者入侵或使用的系统上的凭据泄露,以确保识别所有受攻击的帐户。根据需要重置密码或删除 API 密钥以撤销攻击者对环境的访问权限。与您的 IT 团队合作,最大限度地减少这些操作对业务运营的影响。
- 检查是否创建了未经授权的新用户,删除未经授权的新帐户,并为其他 IAM 用户请求密码重置。
- 考虑为用户启用多因素身份验证。
- 查看分配给相关用户的权限,以确保遵循最小权限原则。
- 实施 AWS 概述 的安全最佳实践。
- 采取必要的措施,使受影响的系统、数据或服务恢复到正常的运行级别。
- 确定攻击者滥用的初始载体,并采取措施防止通过相同的载体再次感染。
- 使用事件响应数据,更新日志记录和审计策略,以提高平均检测时间 (MTTD) 和平均响应时间 (MTTR)。
- 还要检查 PutBucketPolicy 事件操作,以查看它们是否已被篡改。虽然我们监控拒绝,但通过策略更新(无论他们如何获得权限)将后门添加到存储桶的单个成功操作可能对于在 TDIR 期间进行识别至关重要。
规则查询
编辑from logs-aws.cloudtrail* | where event.provider == "s3.amazonaws.com" and aws.cloudtrail.error_code == "AccessDenied" // keep only relevant fields | keep tls.client.server_name, source.address, cloud.account.id | stats failed_requests = count(*) by tls.client.server_name, source.address, cloud.account.id // can modify the failed request count or tweak time window to fit environment // can add `not cloud.account.id in (KNOWN)` or specify in exceptions | where failed_requests > 40
框架: MITRE ATT&CKTM
-
策略
- 名称:影响
- ID:TA0040
- 参考网址:https://attack.mitre.org/tactics/TA0040/
-
技术
- 名称:财务盗窃
- ID:T1657
- 参考网址:https://attack.mitre.org/techniques/T1657/
-
策略
- 名称:发现
- ID:TA0007
- 参考网址:https://attack.mitre.org/tactics/TA0007/
-
技术
- 名称:云基础设施发现
- ID:T1580
- 参考网址:https://attack.mitre.org/techniques/T1580/
-
策略
- 名称:收集
- ID:TA0009
- 参考网址:https://attack.mitre.org/tactics/TA0009/
-
技术
- 名称:来自云存储的数据
- ID:T1530
- 参考网址:https://attack.mitre.org/techniques/T1530/