Detection rules › Splunk

Windows Event Log Cleared

Status
production
Severity
medium
Group by
action, change_type, dest, dvc, object, object_category, signature_id, status, user, vendor_product
Author
Rico Valdez, Michael Haag, Splunk
Source
github.com/splunk/security_content

The following analytic detects the clearing of Windows event logs by identifying Windows Security Event ID 1102 or System log event 104. This detection leverages Windows event logs to monitor for log clearing activities. Such behavior is significant as it may indicate an attempt to cover tracks after malicious activities. If confirmed malicious, this action could hinder forensic investigations and allow attackers to persist undetected, making it crucial to investigate further and correlate with other alerts and data sources.

MITRE ATT&CK coverage

Event coverage

Rule body splunk

name: Windows Event Log Cleared
id: ad517544-aff9-4c96-bd99-d6eb43bfbb6a
version: 20
creation_date: '2019-10-16'
modification_date: '2026-05-13'
author: Rico Valdez, Michael Haag, Splunk
status: production
type: TTP
description: The following analytic detects the clearing of Windows event logs by identifying Windows Security Event ID 1102 or System log event 104. This detection leverages Windows event logs to monitor for log clearing activities. Such behavior is significant as it may indicate an attempt to cover tracks after malicious activities. If confirmed malicious, this action could hinder forensic investigations and allow attackers to persist undetected, making it crucial to investigate further and correlate with other alerts and data sources.
data_source:
    - Windows Event Log Security 1102
    - Windows Event Log System 104
search: |-
    (`wineventlog_security` EventCode=1102)
    OR
    (`wineventlog_system` EventCode=104)
    | stats count min(_time) as firstTime max(_time) as lastTime
      by action change_type dest dvc object_category signature_id status user vendor_product object EventCode
    | `security_content_ctime(firstTime)`
    | `security_content_ctime(lastTime)`
    | `windows_event_log_cleared_filter`
how_to_implement: To successfully implement this search, you need to be ingesting Windows event logs from your hosts. In addition, the Splunk Windows TA is needed.
known_false_positives: It is possible that these logs may be legitimately cleared by Administrators. Filter as needed.
references:
    - https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-1102
    - https://www.ired.team/offensive-security/defense-evasion/disabling-windows-event-logs-by-suspending-eventlog-service-threads
    - https://attack.mitre.org/techniques/T1070/001/
    - https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1070.001/T1070.001.md
drilldown_searches:
    - name: View the detection results for - "$dest$"
      search: '%original_detection_search% | search  dest = "$dest$"'
      earliest_offset: $info_min_time$
      latest_offset: $info_max_time$
    - name: View risk events for the last 7 days for - "$dest$"
      search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$") | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
      earliest_offset: 7d
      latest_offset: "0"
finding:
    title: Windows $object$ cleared on $dest$ via EventCode $EventCode$
    entity:
        field: dest
        type: system
        score: 50
analytic_story:
    - ShrinkLocker
    - Windows Log Manipulation
    - Ransomware
    - CISA AA22-264A
    - Compromised Windows Host
    - Clop Ransomware
asset_type: Endpoint
mitre_attack_id:
    - T1685.005
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: endpoint
security_domain: endpoint
tests:
    - name: True Positive Test - Security
      attack_data:
        - data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1070.001/windows_event_log_cleared/windows-security.log
          source: XmlWinEventLog:Security
          sourcetype: XmlWinEventLog
      test_type: unit
    - name: True Positive Test - System
      attack_data:
        - data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1070.001/windows_event_log_cleared/windows-system.log
          source: XmlWinEventLog:System
          sourcetype: XmlWinEventLog
      test_type: unit

Stages and Predicates

Stage 1: search

(`wineventlog_security` EventCode=1102)
OR
(`wineventlog_system` EventCode=104)

Stage 2: stats

| stats count min(_time) as firstTime max(_time) as lastTime
  by action change_type dest dvc object_category signature_id status user vendor_product object EventCode

Stage 3: search

| `security_content_ctime(firstTime)`

Stage 4: search

| `security_content_ctime(lastTime)`

Stage 5: search

| `windows_event_log_cleared_filter`

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
EventCodeeq
  • 104 corpus 2 (splunk 2)
  • 1102 corpus 4 (splunk 2, kusto 2)