<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>AWS S3 — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/aws-s3/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 01 May 2026 19:43:38 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/aws-s3/feed.xml" rel="self" type="application/rss+xml"/><item><title>Rapid Enumeration of AWS S3 Buckets</title><link>https://feed.craftedsignal.io/briefs/2024-01-aws-s3-bucket-discovery/</link><pubDate>Fri, 01 May 2026 19:43:38 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-aws-s3-bucket-discovery/</guid><description>An AWS principal rapidly enumerates S3 bucket posture using read-only APIs, indicative of reconnaissance, scanning, or post-compromise activity.</description><content:encoded><![CDATA[<p>This threat brief covers suspicious activity related to the rapid enumeration of AWS S3 buckets. The activity is characterized by an AWS principal invoking read-only S3 control-plane APIs from the same source IP address within a short timeframe. This pattern is often associated with reconnaissance efforts, security scanning tools, or post-compromise enumeration activities. The behavior is similar to that observed with CSPM tools and by threat actors like Team PCP. The detection specifically excludes AWS service principals and requires programmatic-style sessions (i.e., not Management Console credentials). It focuses on scenarios where resource and identity fields are populated to avoid skewed results from null values. The detection threshold is set to greater than 15 distinct <code>aws.cloudtrail.resources.arn</code> values within a 10-second window.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker gains initial access to an AWS environment using compromised credentials or through an exposed IAM role. (T1530)</li>
<li>The attacker authenticates to AWS using the obtained credentials, creating a programmatic session.</li>
<li>The attacker issues a series of <code>GetBucketAcl</code>, <code>GetBucketPublicAccessBlock</code>, <code>GetBucketPolicy</code>, <code>GetBucketPolicyStatus</code>, and <code>GetBucketVersioning</code> API calls to S3.</li>
<li>These API calls are directed towards multiple distinct S3 buckets within a short timeframe (10 seconds).</li>
<li>The attacker collects information about the bucket&rsquo;s access control lists (ACLs), public access blocks, policies, versioning status, and other metadata. (T1526, T1580, T1619)</li>
<li>The collected information is analyzed to identify publicly accessible buckets, misconfigurations, or sensitive data storage locations.</li>
<li>The attacker uses identified vulnerabilities to exfiltrate data.</li>
<li>The attacker attempts lateral movement within the AWS environment, leveraging the discovered information to compromise other resources.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful enumeration of S3 buckets can lead to the discovery of sensitive data, misconfigurations, and publicly accessible resources. This can result in data breaches, unauthorized access, and further compromise of the AWS environment. The enumeration allows an attacker to map out the S3 storage landscape, identifying targets for data exfiltration or privilege escalation. The rapid nature of the enumeration suggests automated scanning or reconnaissance, potentially indicating a larger attack campaign.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the following Sigma rule to detect rapid S3 bucket enumeration activity based on AWS CloudTrail logs, adjusting the threshold of 15 distinct buckets to suit your environment.</li>
<li>Investigate any alerts generated by the Sigma rule, focusing on the source IP address (<code>source.ip</code>), AWS principal ARN (<code>aws.cloudtrail.user_identity.arn</code>), and the list of accessed buckets (<code>aws.cloudtrail.resources.arn</code>).</li>
<li>Review IAM policies associated with the identified principal to ensure least privilege for S3 read APIs.</li>
<li>Monitor CloudTrail logs for related events, such as <code>ListBuckets</code>, <code>GetObject</code>, <code>PutBucketPolicy</code>, <code>AssumeRole</code>, or IAM changes, occurring within ±30 minutes of the detected enumeration activity.</li>
<li>Implement network-level restrictions on the source IP address if it is not authorized to perform S3 enumeration.</li>
<li>Document approved scanning accounts and add user agent filters to the provided Sigma rule to reduce noise from those identities.</li>
</ul>
]]></content:encoded><category domain="severity">low</category><category domain="type">advisory</category><category>aws</category><category>s3</category><category>cloudtrail</category><category>discovery</category><category>enumeration</category><category>reconnaissance</category></item><item><title>S3Browser IAM Policy Creation with Default Bucket Name</title><link>https://feed.craftedsignal.io/briefs/2024-01-26-s3browser-iam-policy/</link><pubDate>Fri, 26 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-26-s3browser-iam-policy/</guid><description>An AWS IAM policy is created by the S3Browser utility with the default S3 bucket name placeholder, potentially indicating unauthorized access or misconfiguration.</description><content:encoded><![CDATA[<p>The S3Browser utility is being used to create Inline IAM policies within AWS. This activity is flagged as suspicious when the policy includes the default S3 bucket name placeholder value of <code>&lt;YOUR-BUCKET-NAME&gt;</code>. This could indicate that the user has not properly configured the policy or is unaware of the implications of using a generic placeholder, potentially granting unintended access to S3 resources. This behavior was observed being used by the threat actor Guivil. The use of S3Browser in this manner poses a risk of privilege escalation, persistence, and unauthorized access to sensitive data stored in S3 buckets.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker gains initial access to an AWS account, possibly through compromised credentials or misconfigured IAM roles (T1078.004).</li>
<li>The attacker utilizes the S3Browser utility to interact with AWS S3 buckets.</li>
<li>The attacker attempts to create an Inline IAM policy using S3Browser.</li>
<li>The attacker fails to replace the default bucket name placeholder <code>&lt;YOUR-BUCKET-NAME&gt;</code> with a specific bucket ARN.</li>
<li>The attacker saves the IAM policy with the default bucket name placeholder, leading to a broad or unintended scope of permissions.</li>
<li>The poorly configured policy is applied to a user, role, or group.</li>
<li>The attacker potentially escalates privileges or gains unauthorized access to S3 resources.</li>
<li>The attacker persists in the environment with the newly created or modified IAM policy.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Creation of an IAM policy with the default bucket name placeholder leaves S3 buckets open to potential unauthorized access. A successful attack could lead to data exfiltration, data modification, or denial of service. The scope of the impact depends on the specific permissions granted within the policy and the resources accessible through the affected IAM user, role, or group.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Deploy the Sigma rule &ldquo;AWS IAM S3Browser Templated S3 Bucket Policy Creation&rdquo; to your SIEM and tune for your environment to detect this specific activity.</li>
<li>Investigate any instances where <code>PutUserPolicy</code> events are associated with the S3Browser user agent (logsource: aws/cloudtrail).</li>
<li>Review existing IAM policies for the presence of the default bucket name placeholder <code>arn:aws:s3:::&lt;YOUR-BUCKET-NAME&gt;/*</code> (logsource: aws/cloudtrail).</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>aws</category><category>iam</category><category>s3browser</category><category>s3</category><category>policy</category><category>cloudtrail</category></item></channel></rss>