[New Rule] AWS SES Identity Verified Then Deleted - #6658
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new AWS CloudTrail EQL sequence detection rule to identify a suspicious “verify SES identity → delete identity” pattern within 1 hour by the same AWS principal, aimed at catching SES abuse used for phishing/spam operations and subsequent cleanup.
Changes:
- Introduced a new EQL sequence rule for SES identity verification followed by deletion (maxspan 1h).
- Added investigation guide content, references, tags, and ATT&CK mappings for triage and classification.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Rule: New - GuidelinesThese guidelines serve as a reminder set of considerations when proposing a new rule. Documentation and Context
Rule Metadata Checks
New BBR Rules
Testing and Validation
|
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
| author = ["Elastic"] | ||
| description = """ | ||
| Detects the sequence of verifying an SES email identity and subsequently deleting it within | ||
| one hour, performed by the same AWS identity. Amazon SES requires email addresses and domains |
There was a problem hiding this comment.
| one hour, performed by the same AWS identity. Amazon SES requires email addresses and domains | |
| 30 minutes, performed by the same AWS identity. Amazon SES requires email addresses and domains |
| type = "eql" | ||
|
|
||
| query = ''' | ||
| sequence by aws.cloudtrail.user_identity.arn with maxspan=30m |
There was a problem hiding this comment.
maxspan of 30m is long for EQL. Consider changing to ESQL for performance.
| "https://docs.aws.amazon.com/ses/latest/APIReference/API_DeleteIdentity.html", | ||
| "https://permiso.io/blog/s/aws-ses-pionage-detecting-ses-abuse/", | ||
| ] | ||
| risk_score = 73 |
There was a problem hiding this comment.
| risk_score = 73 | |
| risk_score = 47 |
Would reduce here. Its plausible maintenance may be going on in which users are verified and deleted. Less likely, but not inherently malicious.
| risk_score = 73 | ||
| rule_id = "8e4bde35-125d-4eb3-9a2e-d7e77a053a08" | ||
| setup = "The AWS integration must be ingesting management events into `logs-aws.cloudtrail-*`. SES management APIs are logged by default." | ||
| severity = "high" |
There was a problem hiding this comment.
| severity = "high" | |
| severity = "medium" |
terrancedejesus
left a comment
There was a problem hiding this comment.
LGTM. Agreed on dropping this to medium, verify-then-delete can be maintenance. Also +1 on the 30m maxspan being long for EQL.
Pull Request
Issue link(s):
Summary - What I changed
Added an
eqlsequence rule that detects an SES email identity verified and then deleted by the same AWS identity within one hour — the verify-use-delete pattern used by adversaries to send phishing email from a victim account's SES capacity and then remove evidence of the sending domain.Why it matters
Amazon SES requires email addresses and domains to be verified before use as senders. An adversary who obtains SES write credentials can verify a domain they control, send bulk phishing email under the victim organization's SES reputation and sending quota, then delete the identity to remove it from
ListIdentitiesoutput — making post-incident attribution harder. The verify-then-delete sequence within a short window is a recognized attacker technique documented in SES abuse research, and has no common legitimate equivalent since test cleanup workflows typically operate on sandbox addresses over longer timeframes.How To Test
Query to verify in our TRaDE stack:
Checklist
Rule: NewContributor checklist