Detection rules › Sigma

CloudTrail Logging Stopped

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

A user successfully disabled CloudTrail logging. Sample command line: aws cloudtrail stop-logging --name TrailName

MITRE ATT&CK coverage

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: CloudTrail Logging Stopped
id: da90c11e-e3d4-411e-aaf7-06d02e0c5c23
status: test
description: |
    A user successfully disabled CloudTrail logging.
    Sample command line: aws cloudtrail stop-logging --name TrailName
references:
    - https://securitylabs.datadoghq.com/cloud-security-atlas/attacks/stopping-cloudtrail-trail/
    - https://research.splunk.com/cloud/8a2f3ca2-4eb5-4389-a549-14063882e537/
    - https://logrhythm.com/blog/aws-defense-evasion-and-centralized-multi-account-logging/
    - https://medium.com/daniel-grzelak/disrupting-aws-logging-a42e437d6594
    - https://pages.awscloud.com/rs/112-TZM-766/images/Visibility_detect_respond_AWS_SANS_whitepaper.pdf
    - https://traildiscover.cloud/#CloudTrail-StopLogging
author: Zach Mathis (@yamatosecurity)
date: 2025-04-23
modified: 2025-04-23
tags:
    - attack.defense-evasion
    - attack.t1562.008 # Impair Defenses: Disable or Modify Cloud Logs
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: 'cloudtrail.amazonaws.com'
        eventName: 'StopLogging'
    filter:
        errorCode: 'AccessDenied'
    condition: selection and not filter
falsepositives:
    - Admins turning off unneeded logging
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
    eventSource: 'cloudtrail.amazonaws.com'
    eventName: 'StopLogging'

Stage 2: not filter

filter:
    errorCode: 'AccessDenied'

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
errorCodeeqAccessDenied

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
  • StopLogging
eventSourceeq
  • cloudtrail.amazonaws.com