WWW
Leaked AKID
Leaked AKID
Discovery API
Discovery API
Launch Template 1
Launch Template 1
Launch Template 2
Launch Template 2
14 ASGs
14 ASGs
ECS Cluster
ECS Cluster
Anti-Cleanup
Anti-Cleanup
SBRMiner-MULTI
SBRMiner-MULTI
SCN-002 / Leaked AKID + 14 ASGs + ECS Cluster / 2025

Cryptomining 2025

A single leaked AWS access key was used to spin up 14 Auto Scaling Groups and an ECS cluster mining XMR for hours before billing anomaly detection triggered. Termination protection slowed the cleanup crew.
14
ASGs spun up
$50K+
documented bill
<10m
leak to compute
ongoing
campaign status
AWS-disclosed campaign · Nov 2025+
A single leaked IAM key turned into 10,000+ vCPU of crypto mining in ten minutes - and the attacker enabled termination protection to make cleanup harder.
10K+ vCPU
Exposure
AWS-quantified customer cost not disclosed; attacker spun up 14 ASGs × 999 instances + ECS Fargate tasks
10 min
Time to detect
leaked IAM key to active compute; Nov 2 2025 start, AWS disclosure Dec 16
1 SCP cap
Fix complexity
cap max EC2 ASG desired-capacity + ECS Fargate task CPU units per region
Ask your team this Friday
Do our SCPs cap maximum EC2 Auto Scaling Group capacity and ECS Fargate task CPU units per region?
Audit my environment
BASH
STEP 01 Scanner picks up a leaked AWS key
TruffleHog catches an AKID in a public commit
1# Automated scanner watching github.com/<org>/* commits
2$ trufflehog github --org=any --json | jq 'select(.DetectorName=="AWS")'
3
4{
5  "DetectorName": "AWS",
6  "Raw": "AKIAIOSFODNN7EXAMPLE",
7  "Repository": "github.com/example/infra",
8  "Commit": "a72f1c0",
9  "Verified": true
10}
External scanner · the same automation that catches keys also validates them within seconds.
1 / 7
← back
demo state
Export

Generate audit report

Self-contained snapshot of this scenario - step-by-step chain, fixes, ATT&CK mappings, threat actor context.
Click to highlight toxic edges
What if…
node label
Remove this node
Strip outgoing permissions
Reset to original R
REMOVING NODE - saves 0 nodes Esc · R
Right-click any node to test a fix
BREAK POINT
Cut this edge → -- nodes unreachable
Fix: --