Detection rules › Sigma

Many AccessDenied Errors from Single Source

Status
test
Severity
high
Time window
10m
Log source
product aws, service cloudtrail
Author
nishikawaakira (@nishikawaakira)
Source
github.com/Yamato-Security/suzaku-rules

Detects multiple authorization failure errors from the same source IP and access key within a short time window. This pattern indicates an attacker probing AWS APIs with stolen credentials that have restricted permissions. Covers both IAM-level AccessDenied and EC2-style Client.UnauthorizedOperation. Attackers who obtain credentials via SSRF, leaked .env files, or code repositories typically enumerate dozens of AWS APIs to discover what they can access.

MITRE ATT&CK coverage

TacticTechniques
DiscoveryT1580 Cloud Infrastructure Discovery

Rule body yaml

title: Many AccessDenied Errors from Single Source
id: 4a6b8c0d-2e3f-5a7b-9c1d-3e4f5a6b7c8d
status: test
description: |
    Detects multiple authorization failure errors from the same source IP and
    access key within a short time window. This pattern indicates an attacker
    probing AWS APIs with stolen credentials that have restricted permissions.
    Covers both IAM-level AccessDenied and EC2-style Client.UnauthorizedOperation.
    Attackers who obtain credentials via SSRF, leaked .env files, or code
    repositories typically enumerate dozens of AWS APIs to discover what they
    can access.
references:
    - https://attack.mitre.org/techniques/T1580/
    - https://hackingthe.cloud/aws/general-knowledge/using_stolen_iam_credentials/
author: nishikawaakira (@nishikawaakira)
date: 2026-05-03
modified: 2026-05-29
tags:
    - attack.discovery
    - attack.t1580
logsource:
    product: aws
    service: cloudtrail
correlation:
    type: event_count
    rules:
        - AccessDenied Error
    group-by:
        - sourceIPAddress
        - userIdentity.accessKeyId
    timespan: 10m
    condition:
        gte: 10
    generate: false
level: high
---
title: AccessDenied Error
id: 4a6b8c0d-2e3f-5a7b-9c1d-3e4f5a6b7c8e
status: test
description: Base rule for AccessDenied correlation.
references:
author: nishikawaakira (@nishikawaakira)
date: 2026-05-03
modified: 2026-05-29
tags:
    - attack.discovery
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        errorCode:
            - AccessDenied
            - Client.UnauthorizedOperation
    condition: selection
level: informational

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    errorCode:
        - AccessDenied
        - Client.UnauthorizedOperation

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
errorCodeeq
  • AccessDenied
  • Client.UnauthorizedOperation