Detection rules › Sigma

Windows Event Log Access Tampering Via Registry

Status
experimental
Severity
high
Log source
product windows, category registry_set
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".

MITRE ATT&CK coverage

Event coverage

ProviderEventTitle
SysmonEvent ID 13RegistryEvent (Value Set)

Rule body yaml

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

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

FieldKindExcluded values
Imageends_with\TiWorker.exe
Imagestarts_withC:\Windows\WinSxS\
ImageeqC:\Windows\servicing\TrustedInstaller.exe
Imageis_null(no value, null check)

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
Detailsmatch
  • )(D;
  • D:(
  • D:(D;
TargetObjectends_with
  • \ChannelAccess corpus 2 (sigma 2)
  • \CustomSD
TargetObjectmatch
  • \Microsoft\Windows\CurrentVersion\WINEVT\Channels
  • \Policies\Microsoft\Windows\EventLog\
  • \SYSTEM\CurrentControlSet\Services\EventLog\ corpus 2 (sigma 2)