AWS S3 存储桶策略被添加以与外部账户共享

编辑

AWS S3 存储桶策略被添加以与外部账户共享

编辑

识别 AWS S3 存储桶策略的更改,以与外部账户共享权限。攻击者可能会尝试通过与外部账户共享 S3 存储桶来植入后门。这可以用于泄露数据或提供对其他攻击者的访问权限。此规则通过 PutBucketPolicy API 调用来识别存储桶策略的更改,其中该策略包含不包含存储桶所有者的 AWS 账户 ID 的 Effect=Allow 语句。

规则类型: eql

规则索引:

  • filebeat-*
  • logs-aws.cloudtrail-*

严重性: 中

风险评分: 47

运行频率: 5 分钟

搜索索引起始时间: 无 (日期数学格式,另请参阅 额外回溯时间)

每次执行的最大警报数: 100

参考:

标签:

  • 域:云
  • 数据源:AWS
  • 数据源:亚马逊 Web 服务
  • 数据源:AWS S3
  • 用例:威胁检测
  • 战术:数据渗漏

版本: 2

规则作者:

  • Elastic

规则许可证: Elastic License v2

调查指南

编辑

分类和分析

调查 AWS S3 存储桶策略更改以与外部账户共享

此规则检测何时更改 AWS S3 存储桶策略以与外部账户共享权限。攻击者可能会尝试通过与外部账户共享 S3 存储桶来植入后门,以泄露数据或提供对其他攻击者的访问权限。此规则通过 PutBucketPolicy API 调用来识别存储桶策略的更改,其中该策略包含不包含存储桶所有者的 AWS 账户 ID 的 Effect=Allow 语句。

可能的调查步骤

  • 识别参与者:查看 aws.cloudtrail.user_identity.arnaws.cloudtrail.user_identity.access_key_id 字段,以识别进行更改的人员。验证此参与者是否通常执行此类操作,以及他们是否具有必要的权限。
  • 查看请求详细信息:检查 aws.cloudtrail.request_parameters 以了解对存储桶策略所做的具体更改。查找任何可能表明未经授权或恶意修改的异常参数。
  • 分析请求来源:调查 source.ipsource.geo 字段,以确定请求的地理来源。外部或意外的位置可能表明凭据已泄露或存在未经授权的访问。
  • 使用时间戳关联:使用 @timestamp 字段检查更改发生的时间。在非工作时间或常规维护窗口之外进行的修改可能需要进一步审查。
  • 与其他活动关联:在此更改之前和之后搜索相关的 CloudTrail 事件,以查看同一参与者或 IP 地址是否参与了其他潜在的可疑活动。

误报分析

  • 合法的管理操作:确认存储桶策略更改是否与变更管理系统中记录的计划更新、开发活动或合法管理任务一致。
  • 一致性检查:将操作与用户或组织内执行的类似操作的历史数据进行比较。如果该操作与过去合法的活动一致,则可能表明是误报。
  • 通过结果验证:检查 aws.cloudtrail.response_elementsevent.outcome,以确认更改是否成功,并且是否符合策略的预期。

响应和补救

  • 如有必要,立即审查和撤销:如果更改未经授权,请更新存储桶策略以删除任何未经授权的权限,并将其恢复到之前的状态。
  • 加强监控和警报:调整监控系统,以对类似的操作发出警报,特别是那些涉及敏感数据或权限的操作。
  • 教育和培训:为具有管理权限的用户提供额外的培训,让他们了解有关存储桶策略管理和共享权限的安全最佳实践的重要性。
  • 审核存储桶策略和权限:对所有存储桶策略和相关权限进行全面审核,以确保它们遵守最小权限原则。
  • 事件响应:如果存在恶意意图或安全漏洞的迹象,请启动事件响应协议,以减轻任何损害并防止未来发生此类事件。

其他信息

有关管理 S3 存储桶策略和保护 AWS 环境的更多指导,请参阅 AWS S3 文档和 AWS 安全最佳实践。

设置

编辑

设置

必须在 AWS CloudTrail 日志中收集 S3 数据事件类型。请参阅 AWS 文档以获取更多信息。

规则查询

编辑
any where event.dataset == "aws.cloudtrail"
    and event.provider == "s3.amazonaws.com"
    and event.action == "PutBucketPolicy" and event.outcome == "success"
    and stringContains(aws.cloudtrail.request_parameters, "Effect=Allow")
    and not stringContains(aws.cloudtrail.request_parameters, aws.cloudtrail.recipient_account_id)

框架: MITRE ATT&CKTM