Detection rules › Sigma

Windows Event Log Access Tampering Via Registry

Status
experimental
Severity
high
Log source
category registry_set, product windows
Author
X__Junior
Source
github.com/SigmaHQ/sigma

Detects changes to the Windows EventLog channel permission values. It focuses on changes to the Security Descriptor Definition Language (SDDL) string, as modifications to these values can restrict access to specific users or groups, potentially aiding in defense evasion by controlling who can view or modify a event log channel. Upon execution, the user shouldn't be able to access the event log channel via the event viewer or via utilities such as "Get-EventLog" or "wevtutil".

Known false positives

  • Administrative activity, still unlikely

MITRE ATT&CK coverage

Telemetry coverage

Rule body

title: Windows Event Log Access Tampering Via Registry
id: ba226dcf-d390-4642-b9af-b534872f1156
status: experimental
description: |
    Detects changes to the Windows EventLog channel permission values. It focuses on changes to the Security Descriptor Definition Language (SDDL) string, as modifications to these values can restrict access to specific users or groups, potentially aiding in defense evasion by controlling who can view or modify a event log channel. Upon execution, the user shouldn't be able to access the event log channel via the event viewer or via utilities such as "Get-EventLog" or "wevtutil".
references:
    - https://www.atomicredteam.io/atomic-red-team/atomics/T1562.002#atomic-test-8---modify-event-log-channel-access-permissions-via-registry---powershell
    - https://www.youtube.com/watch?v=uSYvHUVU8xY
    - https://learn.microsoft.com/en-us/windows/win32/secauthz/security-descriptor-definition-language
author: X__Junior
date: 2025-01-16
modified: 2025-08-16
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.defense-impairment
    - attack.t1547.001
    - attack.t1112
logsource:
    category: registry_set
    product: windows
detection:
    # O:SYG:SYD:(D;;0x1;;;WD)
    # O:BAG:SYD:(A;;0x2;;;S-1-15-2-1)(D;;0x1;;;WD)
    selection_key_1:
        TargetObject|contains: '\SYSTEM\CurrentControlSet\Services\EventLog\'
        TargetObject|endswith: '\CustomSD'
    selection_key_2:
        TargetObject|contains:
            - '\Policies\Microsoft\Windows\EventLog\'
            - '\Microsoft\Windows\CurrentVersion\WINEVT\Channels'
        TargetObject|endswith: '\ChannelAccess'
    selection_details:
        - Details|contains: 'D:(D;'
        - Details|contains|all:
              - 'D:('
              - ')(D;'
    filter_main_trustedinstaller:
        Image: 'C:\Windows\servicing\TrustedInstaller.exe'
    filter_main_tiworker:
        Image|startswith: 'C:\Windows\WinSxS\'
        Image|endswith: '\TiWorker.exe'
    filter_optional_empty:
        Image: ''
    filter_optional_null:
        Image: null
    condition: 1 of selection_key_* and selection_details and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Administrative activity, still unlikely
level: high

Stages and Predicates

Stage 0: condition

1 of selection_key_* and selection_details and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection_key_1

selection_key_1:
    TargetObject|contains: '\SYSTEM\CurrentControlSet\Services\EventLog\'
    TargetObject|endswith: '\CustomSD'

Stage 2: selection_key_2

selection_key_2:
    TargetObject|contains:
        - '\Policies\Microsoft\Windows\EventLog\'
        - '\Microsoft\Windows\CurrentVersion\WINEVT\Channels'
    TargetObject|endswith: '\ChannelAccess'

Stage 3: selection_details

selection_details:
    - Details|contains: 'D:(D;'
    - Details|contains|all:
          - 'D:('
          - ')(D;'

Stage 4: not filter_main_*

filter_main_trustedinstaller:
    Image: 'C:\Windows\servicing\TrustedInstaller.exe'
filter_main_tiworker:
    Image|startswith: 'C:\Windows\WinSxS\'
    Image|endswith: '\TiWorker.exe'

Stage 5: not filter_optional_*

filter_optional_empty:
    Image: ''
filter_optional_null:
    Image: null

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_with\TiWorker.exeexcludes:Image field:"Image" value:"\TiWorker.exe"
Imagestarts_withC:\Windows\WinSxS\excludes:Image field:"Image" value:"C:\Windows\WinSxS\"
ImageeqC:\Windows\servicing\TrustedInstaller.exeexcludes:Image field:"Image" value:"C:\Windows\servicing\TrustedInstaller.exe"
Imageis_null(no value, null check)excludes:Image

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Detailsmatch
  • )(D;
  • D:(
  • D:(D;
field:"Details" kind:match
TargetObjectends_with
  • \ChannelAccess corpus 2 (sigma 2)
  • \CustomSD
field:"TargetObject" kind:ends_with
TargetObjectmatch
  • \Microsoft\Windows\CurrentVersion\WINEVT\Channels
  • \Policies\Microsoft\Windows\EventLog\
  • \SYSTEM\CurrentControlSet\Services\EventLog\ corpus 2 (sigma 2)
field:"TargetObject" kind:match