如何检测有人擦除 Cloudtrail 日志

How to Detect Someone Erasing Cloudtrail Logs

我想监控是否有人试图从我的 CloudTrail 的 S3 存储桶中删除日志。

我尝试用我自己的 IAM 用户删除自己在这个存储桶上的日志之一,但 CloudTrail 本身似乎没有注意到我从它的存储桶中删除了一个对象。

是否有我必须激活的特定监控来检查这些日志是否被可能的攻击者删除?

还有一个好处:Guard Duty 是否可以通过任何方式检测我的环境中的此类行为?

提前致谢。

您可以为此使用 CloudTrail log validation,它可以在控制台或通过 AWS CLI 启用:

To validate the integrity of CloudTrail log files, you can use the AWS CLI or create your own solution. The AWS CLI will validate files in the location where CloudTrail delivered them.

您可以使用 CloudTrail 日志验证,但请注意它不会自动提醒您。相反,它会留下痕迹,您可以根据需要验证完整性。有关详细信息,请参阅 this link

如果您将这些日志提取到日志聚合器(如 Splunk 或 Elk)中,那么您可以定义警报,其中 cloudtrail 操作会从包含您的日志的 S3 存储桶中删除日志文件。如果没有,您可以使用 cloudwatch 警报触发 events from CloudTrail,但请注意,这是一个相当钝的工具,您可能无法获得所需的搜索粒度。

我认为 GuardDuty 不会对此类行为发出警报,但我可能错了。

  1. 启用 cloudtrail 以监控管理和 Data Events。当您启用数据事件监控时,所有与 S3 相关的数据事件也将由 cloudtrail 监控。

  2. 在 cloudtrail 中启用 log file integrity validation。 CloudTrail 为其传送的每个日志文件创建一个散列。每隔一小时,CloudTrail 还会创建并传送一个文件,该文件引用上一小时的日志文件并包含每个日志文件的哈希值。该文件称为摘要文件。 CloudTrail 使用 public 和私钥对的私钥对每个摘要文件进行签名。 validating log file integrity.

  3. 此外,为 S3 删除事件设置 lambda 函数以在需要时通过 SNS 触发通知。

  4. 作为最佳实践,如果您管理多个 AWS 账户,请使用 AWS Organizations 管理 cloudtrail,并将 cloudtrail 记录在专门用于访问受限日志记录的专用 AWS 账户中。此外,考虑启用跨区域 replication/versioning of S3 Bucket 和 Enable MFA delete 以在删除对象版本时要求多重身份验证 (MFA)。