Detection rules › Splunk

Windows Non-System Process Querying Definition Update

Status
production
Severity
low
Group by
QueryName, QueryResults, QueryStatus, answer, answer_count, computer_name, dvc, process_guid, process_name, query, query_count, reply_code_id, signature, signature_id, src, user_id, vendor_product
Author
Raven Tait, Splunk
Source
github.com/splunk/security_content

Detects DNS queries to definitionupdates.microsoft.com or the go.microsoft.com fwlink redirect used for WD update downloads, when the querying process is not a Windows system component. BlueHammer utilizes these definition updates as part of its exploit chain.

Known false positives

  • Legitimate third-party applications or security tools may query these update domains for Windows Defender updates. Filter alerts for trusted software and verified update mechanisms.

MITRE ATT&CK coverage

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 22: DNSEvent (DNS query)

Rule body

name: Windows Non-System Process Querying Definition Update
id: 9d375cfd-c9a5-48ff-b875-9bcaf6b63265
version: 1
creation_date: '2026-04-27'
modification_date: '2026-04-27'
author: Raven Tait, Splunk
status: production
type: Anomaly
description: |-
    Detects DNS queries to definitionupdates.microsoft.com or the go.microsoft.com fwlink redirect used for WD update downloads, when the querying process is not a Windows system component. BlueHammer utilizes these definition updates as part of its exploit chain.
data_source:
    - Sysmon EventID 22
search: |-
    `sysmon`
    EventID="22"
    QueryName="*definitionupdates.microsoft.com*"
    NOT Image IN (
        "*:\\Program Files\\Microsoft Office\\*",
        "*:\\Program Files\\Windows Defender\\*",
        "*:\\ProgramData\\Microsoft\\Windows Defender\\*",
        "*:\\Windows\\System32\\*",
        "*:\\Windows\\SysWOW64\\*"
    )
    | stats count min(_time) as firstTime max(_time) as lastTime BY answer answer_count dvc Computer process_exec process_guid process_name query query_count reply_code_id signature signature_id src user_id vendor_product QueryName QueryResults QueryStatus
    | `security_content_ctime(firstTime)`
    | `security_content_ctime(lastTime)`
    | rename Computer as dest
    | `windows_non_system_process_querying_definition_update_filter`
how_to_implement: |-
    The detection is based on data that originates from Endpoint Detection and Response (EDR) agents. These agents are designed to provide security-related telemetry from the endpoints where the agent is installed. To implement this search, you must ingest logs that contain the process GUID, process name, and parent process. Additionally, you must ingest complete command-line executions. These logs must be processed using the appropriate Splunk Technology Add-ons that are specific to the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint` data model. Use the Splunk Common Information Model (CIM) to normalize the field names and speed up the data modeling process.
known_false_positives: |-
    Legitimate third-party applications or security tools may query these update domains for Windows Defender updates. Filter alerts for trusted software and verified update mechanisms.
references:
    - https://github.com/Nightmare-Eclipse/BlueHammer
intermediate_findings:
    entities:
        - field: dest
          type: system
          score: 20
          message: Non-System process $Image$ queried Windows Defender Definition Updates domain $QueryName$ on $dest$.
threat_objects:
    - field: process_name
      type: process_name
analytic_story:
    - Windows Privilege Escalation
    - BlueHammer
    - RedSun
asset_type: Endpoint
mitre_attack_id:
    - T1068
    - T1071.001
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: endpoint
security_domain: endpoint
cve:
    - CVE-2026-33825

Stages and Predicates

Stage 1: search

`sysmon`
EventID="22"
QueryName="*definitionupdates.microsoft.com*"
NOT Image IN (
    "*:\\Program Files\\Microsoft Office\\*",
    "*:\\Program Files\\Windows Defender\\*",
    "*:\\ProgramData\\Microsoft\\Windows Defender\\*",
    "*:\\Windows\\System32\\*",
    "*:\\Windows\\SysWOW64\\*"
)

Stage 2: stats

| stats count min(_time) as firstTime max(_time) as lastTime BY answer answer_count dvc Computer process_exec process_guid process_name query query_count reply_code_id signature signature_id src user_id vendor_product QueryName QueryResults QueryStatus

Stage 3: search

| `security_content_ctime(firstTime)`

Stage 4: search

| `security_content_ctime(lastTime)`

Stage 5: rename

| rename Computer as dest

Stage 6: search

| `windows_non_system_process_querying_definition_update_filter`

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imagein"*:\\Program Files\\Microsoft Office\\*", "*:\\Program Files\\Windows Defender\\*", "*:\\ProgramData\\Microsoft\\Windows Defender\\*", "*:\\Windows\\SysWOW64\\*", "*:\\Windows\\System32\\*"excludes:Image

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventIDeq
  • "22" corpus 17 (splunk 17)
field:"EventID" kind:eq
QueryNameeq
  • "*definitionupdates.microsoft.com*"
field:"QueryName" kind:eq