D006F1
Credential
🎫 Honeytoken Access Key
Fake IAM access keys/SAS tokens seeded in repos, CI/CD, SSM.
What it is
A real cloud access key for an identity that holds no permissions, planted where real keys leak: environment files, credential files on build hosts, CI/CD variables and parameter stores. Attackers harvest keys because one valid key can open a whole account. The key grants nothing, but every call made with it, including a denied one, is logged under its key ID, so any use at all is the alert.
Implementation requirements
- AWS: create an IAM user with no policies attached, then
aws iam create-access-key. Azure: a client secret for an app registration with no role assignments. GCP: a key for a service account with no IAM bindings - Seed where real keys leak:
.envfiles,~/.aws/credentialson build hosts, CI/CD variables, Parameter Store, internal repositories. Use one key per location, so the alert says which location was read - Monitoring: every AWS call signed with the key, including denied calls, is recorded in CloudTrail with the key's access key ID. Alert on any event for that ID, not on a threshold. Azure: service principal sign-in logs for the app. GCP: Cloud Audit Logs naming the service account; enable Data Access logs so reads are recorded too
- Known limit: anyone holding the key ID can learn its AWS account ID with
sts:GetAccessKeyInfowithout ever using the key. The owning account must look like one of yours - Do not publish these keys on public sites: AWS can attach
AWSCompromisedKeyQuarantineV3to exposed keys and open a support case. Public lures belong to D055 - Safety: the identity grants nothing. OPSEC: rotate decoy keys on the same schedule as real ones, because a key years older than all others stands out
- Rollback: Deactivate, then delete the access key and the decoy IAM user (or the service-account key or app secret). Remove every planted copy, using the per-location record kept at deployment.
- Upkeep: Rotate on the same schedule as real keys and re-plant. Monthly proof-of-life: one call with the key from a test host.
Technologies
AWSCI/CDAzureGCP
ATT&CK coverage 19
| Technique | Tactic | Status | Confidence | Tier |
|---|---|---|---|---|
| T1213.003 Code Repositories |
Collection | confirmed | strong | T2 |
| ↳ Detection point: the decoy fires at a later step of the attack | ||||
↳ Evidence (4 sources)
| ||||
| T1040 Network Sniffing |
Credential Access | theoretical | moderate | T2 |
| ↳ Detection point: the decoy fires at a later step of the attack | ||||
↳ Evidence (3 sources)
| ||||
| T1110 Brute Force |
Credential Access | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1552 Unsecured Credentials |
Credential Access | confirmed | strong | T2 |
| ↳ Detection point: the decoy fires at a later step of the attack | ||||
↳ Evidence (4 sources)
| ||||
| T1552.001 Credentials In Files |
Credential Access | confirmed | strong | T2 |
| ↳ Detection point: the decoy fires at a later step of the attack | ||||
↳ Evidence (5 sources)
| ||||
| T1552.004 Private Keys |
Credential Access | theoretical | moderate | T4 |
| ↳ Detection point: the decoy fires at a later step of the attack | ||||
↳ Evidence (2 sources)
A decoy private key fires when used to log in to a honeypot; no source covers decoy keys specifically. | ||||
| T1552.005 Cloud Instance Metadata API |
Credential Access | theoretical | moderate | T2 |
| ↳ Detection point: the decoy fires at a later step of the attack | ||||
↳ Evidence (2 sources)
Not specifically through the metadata service. | ||||
| T1649 Steal or Forge Authentication Certificates |
Credential Access | confirmed | strong | T4 |
| ↳ Detection point: the decoy fires at a later step of the attack | ||||
↳ Evidence (3 sources)
| ||||
| T1496 Resource Hijacking |
Impact | confirmed | strong | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (4 sources)
| ||||
| T1496.001 Compute Hijacking |
Impact | confirmed | strong | T3 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (4 sources)
| ||||
| T1078 Valid Accounts |
Initial Access | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (5 sources)
| ||||
| T1078.001 Default Accounts |
Initial Access | theoretical | moderate | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (2 sources)
No source covers decoy default accounts specifically. | ||||
| T1078.004 Cloud Accounts |
Initial Access | confirmed | strong | T4 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (4 sources)
| ||||
| T1550 Use Alternate Authentication Material |
Lateral Movement | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (4 sources)
| ||||
| T1078 Valid Accounts |
Persistence | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (5 sources)
| ||||
| T1098.001 Additional Cloud Credentials |
Persistence | theoretical | moderate | T4 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (3 sources)
| ||||
| T1098.004 SSH Authorized Keys |
Persistence | confirmed | strong | T2 |
| ↳ Detection point: seen once the attacker is working inside a high-fidelity decoy | ||||
↳ Evidence (2 sources)
| ||||
| T1078 Valid Accounts |
Privilege Escalation | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (5 sources)
| ||||
| T1078 Valid Accounts |
Stealth | confirmed | strong | T2 |
| ↳ Detection point: the attack step itself touches the decoy | ||||
↳ Evidence (5 sources)
| ||||
Evidence
- Decoy User Credential (D3-DUC) — MITRE D3FEND standard
- CloudKeys in the Air: Tracking Malicious Operations of Exposed IAM Keys — Palo Alto Networks Unit 42 2023 industry
- AWS API Keys token — Canarytokens documentation — Thinkst Applied Research industry
- 2023 Honeypotting in the Cloud Report — Orca Security 2023 industry
- MITRE Engage — adversary engagement matrix and ATT&CK mapping — MITRE 2022 standard
- MITRE ATT&CK Enterprise v20.0 — MITRE 2026 standard
- GitGuardian Honeytoken — core concepts — GitGuardian industry
- Tracebit for AWS — canary resources and credentials — Tracebit industry