ca821414a4
* [New Rule] AWS S3 Rapid Bucket Posture API Calls from a Single Principal Detects the same principal (`aws.cloudtrail.user_identity.arn`) from the same `source.ip` successfully calling a tight set of read-only S3 management APIs: ``` GetBucketAcl, GetBucketPublicAccessBlock, GetBucketPolicy, GetBucketPolicyStatus, GetBucketVersioning ``` against more than 15 distinct buckets (`aws.cloudtrail.resources.arn`) within a 10-second window. The idea is grounded in cloud reconnaissance and scanner-style behavior discussed in Kudelski Security’s analysis of the Trivy supply chain story and related cloud activity. It explicitly called out automated assessment tooling and posture-oriented API use across ~24 buckets in a short time. It also highlighted the user's blind spot in telemetry with no Data events captured for S3 buckets. So would need to rely on management APIs for detection. All our existing detections related to S3 rely on Data events and we have no explicit detections for scanner style recon sweeps as described in this threat report. ### Rule Design - ES|QL with date_trunc(10 seconds, …) and count_distinct(aws.cloudtrail.resources.arn) grouped by time bucket, identity ARN, and source.ip. - Management level API calls that are commonly used to identify bucket posture including public accessibility status and whether or not versioning is enabled (necessary info for ransomeware objectives) - Excludes AWSService, requires source.ip, non-null aws.cloudtrail.resources.arn and user_identity.arn, and session_credential_from_console IS NULL to capture programmatic sessions over console behavior. - Threshold 15 after evaluating rule in production environment to reduce noise from benign scanners and automation. - low severity as this rule is FP prone until users add exclusions for known scanner behaviors specific to their environment * correcting highlighted fields --------- Co-authored-by: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com>