Detection rules › Sigma

Many Recon Events

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

Detects multiple reconnaissance events, which may indicate an attacker attempting to gather information about the target environment. For each user ARN, it will look for three or more different reconnaissance events within a one minute timespan. If you are getting too many false positives, you can lower the timespan or increase the number of events required to trigger an alert.

MITRE ATT&CK coverage

TacticTechniques
ReconnaissanceNo specific technique

Event coverage

Rules detecting the same action

Other rules on this platform that filter on the same API call or operation.

Rule body yaml


title: Many Recon Events
id: 08d8b077-cc1c-4b74-8e9c-e07f84b203f0
status: test
description: |
    Detects multiple reconnaissance events, which may indicate an attacker attempting to gather information about the target environment.
    For each user ARN, it will look for three or more different reconnaissance events within a one minute timespan.
    If you are getting too many false positives, you can lower the timespan or increase the number of events required to trigger an alert.
references:
author: Zach Mathis (@yamatosecurity)
date: 2025-08-02
modified: 2025-08-02
tags:
    - attack.reconnaissance
logsource:
    product: aws
    service: cloudtrail
correlation:
    type: value_count
    rules:
        - Recon Event
    group-by:
        - userIdentity.arn
    timespan: 1m
    condition:
        gte: 3
        field: eventName
    generate: false
level: high
---
title: Recon Event
id: 33ecb0d0-389f-4954-ae8e-7b62f9e369b8
status: test
description: Detects reconnaissance activity.
references:
author: Zach Mathis (@yamatosecurity)
date: 2025-08-02
modified: 2025-08-02
tags:
    - attack.reconnaissance
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: 'iam.amazonaws.com'
    selection_recon:
          eventName:
            - ListUsers
            - ListRoles
            - ListGroups
            - ListAttachedRolePolicies
            - ListAttachedUserPolicies
            - ListUserPolicies
            - ListAccessKeys
            - GetCredentialReport
            - GetAccountAuthorizationDetails
            - GetCallerIdentity
            - GetPolicy
            - GetPolicyVersion
            - GetRole
            - GetRolePolicy
            - GetUser
            - GetUserPolicy
            - DescribeRegions
            - DescribeAvailabilityZones
            - DescribeVpcs
            - DescribeSubnets
            - DescribeSecurityGroups
            - DescribeInstances
            - DescribeVolumes
            - DescribeImages
            - DescribeNetworkInterfaces
            - ListServiceQuotas
            - ListServices
            - ListBuckets
            - GetBucketAcl
            - GetBucketPolicy
            - ListTables
            - DescribeTable
            - ListRepositories
            - DescribeRepositories
            - GetSessionToken
            - LookupEvents
            - DescribeTrails
            - GetTrailStatus
            - ListTrails
            - ListFunctions
            - ListTopics   
            - ListQueues   
            - ListClusters 
            - DescribeCluster
    condition: all of selection*
level: low

Stages and Predicates

Stage 0: condition

all of selection*

Stage 1: selection

selection:
    eventSource: 'iam.amazonaws.com'

Stage 2: selection_recon

selection_recon:
      eventName:
        - ListUsers
        - ListRoles
        - ListGroups
        - ListAttachedRolePolicies
        - ListAttachedUserPolicies
        - ListUserPolicies
        - ListAccessKeys
        - GetCredentialReport
        - GetAccountAuthorizationDetails
        - GetCallerIdentity
        - GetPolicy
        - GetPolicyVersion
        - GetRole
        - GetRolePolicy
        - GetUser
        - GetUserPolicy
        - DescribeRegions
        - DescribeAvailabilityZones
        - DescribeVpcs
        - DescribeSubnets
        - DescribeSecurityGroups
        - DescribeInstances
        - DescribeVolumes
        - DescribeImages
        - DescribeNetworkInterfaces
        - ListServiceQuotas
        - ListServices
        - ListBuckets
        - GetBucketAcl
        - GetBucketPolicy
        - ListTables
        - DescribeTable
        - ListRepositories
        - DescribeRepositories
        - GetSessionToken
        - LookupEvents
        - DescribeTrails
        - GetTrailStatus
        - ListTrails
        - ListFunctions
        - ListTopics
        - ListQueues
        - ListClusters
        - DescribeCluster

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
eventNameeq
  • DescribeAvailabilityZones
  • DescribeCluster
  • DescribeImages
  • DescribeInstances
  • DescribeNetworkInterfaces
  • DescribeRegions
  • DescribeRepositories
  • DescribeSecurityGroups
  • DescribeSubnets
  • DescribeTable
  • DescribeTrails
  • DescribeVolumes
  • DescribeVpcs
  • GetAccountAuthorizationDetails
  • GetBucketAcl
  • GetBucketPolicy
  • GetCallerIdentity
  • GetCredentialReport
  • GetPolicy
  • GetPolicyVersion
  • GetRole
  • GetRolePolicy
  • GetSessionToken
  • GetTrailStatus
  • GetUser
  • GetUserPolicy
  • ListAccessKeys
  • ListAttachedRolePolicies
  • ListAttachedUserPolicies
  • ListBuckets
  • ListClusters
  • ListFunctions
  • ListGroups
  • ListQueues
  • ListRepositories
  • ListRoles
  • ListServiceQuotas
  • ListServices
  • ListTables
  • ListTopics
  • ListTrails
  • ListUserPolicies
  • ListUsers
  • LookupEvents
eventSourceeq
  • iam.amazonaws.com