Detection rules › Splunk

Windows Service Stop Win Updates

Status
production
Severity
low
Group by
Error_Code, computer_name, param1, param2, param3, param4, service_name, start_mode
Author
Teoderick Contreras, Splunk
Source
github.com/splunk/security_content

The following analytic detects the disabling of Windows Update services, such as "Update Orchestrator Service for Windows Update," "WaaSMedicSvc," and "Windows Update." It leverages Windows System Event ID 7040 logs to identify changes in service start modes to 'disabled.' This activity is significant as it can indicate an adversary's attempt to evade defenses by preventing critical updates, leaving the system vulnerable to exploits. If confirmed malicious, this could allow attackers to maintain persistence and exploit unpatched vulnerabilities, compromising the integrity and security of the affected host.

Known false positives

  • Network administrator may disable this services as part of its audit process within the network. Filter is needed.

MITRE ATT&CK coverage

TacticTechniques
Impact

Telemetry coverage

Rule body

name: Windows Service Stop Win Updates
id: 0dc25c24-6fcf-456f-b08b-dd55a183e4de
version: 9
creation_date: '2023-05-02'
modification_date: '2026-05-13'
author: Teoderick Contreras, Splunk
status: production
type: Anomaly
description: The following analytic detects the disabling of Windows Update services, such as "Update Orchestrator Service for Windows Update," "WaaSMedicSvc," and "Windows Update." It leverages Windows System Event ID 7040 logs to identify changes in service start modes to 'disabled.' This activity is significant as it can indicate an adversary's attempt to evade defenses by preventing critical updates, leaving the system vulnerable to exploits. If confirmed malicious, this could allow attackers to maintain persistence and exploit unpatched vulnerabilities, compromising the integrity and security of the affected host.
data_source:
    - Windows Event Log System 7040
search: |-
    `wineventlog_system` EventCode=7040 (service_name IN ("Update Orchestrator Service for Windows Update", "WaaSMedicSvc", "Windows Update") OR param1 IN ("UsoSvc", "WaaSMedicSvc", "wuauserv")) AND (param3=disabled OR start_mode = disabled)
      | stats count min(_time) as firstTime max(_time) as lastTime
        BY Computer Error_Code service_name
           start_mode param1 param2
           param3 param4
      | rename Computer as dest
      | `security_content_ctime(firstTime)`
      | `security_content_ctime(lastTime)`
      | `windows_service_stop_win_updates_filter`
how_to_implement: To successfully implement this search, you need to be ingesting logs with the Service name, Service File Name Service Start type, and Service Type from your endpoints (like Windows system.log Event ID 7040)
known_false_positives: Network administrator may disable this services as part of its audit process within the network. Filter is needed.
references:
    - https://malpedia.caad.fkie.fraunhofer.de/details/win.redline_stealer
intermediate_findings:
    entities:
        - field: dest
          type: system
          score: 20
          message: Windows update services $service_name$ was being disabled on $dest$
analytic_story:
    - CISA AA23-347A
    - RedLine Stealer
asset_type: Endpoint
mitre_attack_id:
    - T1489
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: endpoint
security_domain: endpoint

Stages and Predicates

Stage 1: search

`wineventlog_system` EventCode=7040 (service_name IN ("Update Orchestrator Service for Windows Update", "WaaSMedicSvc", "Windows Update") OR param1 IN ("UsoSvc", "WaaSMedicSvc", "wuauserv")) AND (param3=disabled OR start_mode = disabled)

Stage 2: stats

| stats count min(_time) as firstTime max(_time) as lastTime
    BY Computer Error_Code service_name
       start_mode param1 param2
       param3 param4

Stage 3: rename

| rename Computer as dest

Stage 4: search

| `security_content_ctime(firstTime)`

Stage 5: search

| `security_content_ctime(lastTime)`

Stage 6: search

| `windows_service_stop_win_updates_filter`

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventCodeeq
  • 7040 corpus 3 (splunk 3)
field:"EventID" kind:eq value:"7040"
param1in
  • "UsoSvc"
  • "WaaSMedicSvc"
  • "wuauserv"
field:"param1" kind:in
param3eq
  • disabled
field:"param3" kind:eq value:"disabled"
service_namein
  • "Update Orchestrator Service for Windows Update"
  • "WaaSMedicSvc"
  • "Windows Update"
field:"service_name" kind:in
start_modeeq
  • disabled
field:"start_mode" kind:eq value:"disabled"