Detection rules › Splunk

Windows Processes Killed By Industroyer2 Malware

Status
production
Severity
low
Group by
command_line, dest, process_guid, process_id, process_name, signature, signature_id, user_id, vendor_product
Author
Teoderick Contreras, Splunk
Source
github.com/splunk/security_content

The following analytic detects the termination of specific processes by the Industroyer2 malware. It leverages Sysmon EventCode 5 to identify when processes like "PServiceControl.exe" and "PService_PPD.exe" are killed. This activity is significant as it targets processes related to energy facility networks, indicating a potential attack on critical infrastructure. If confirmed malicious, this could lead to disruption of essential services, loss of control over energy systems, and significant operational impact. Immediate investigation is required to determine the cause and mitigate any potential threats.

Known false positives

  • False positives are possible if legitimate applications are allowed to terminate this process during testing or updates. Filter as needed based on paths that are used legitimately.

MITRE ATT&CK coverage

TacticTechniques
Impact

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 5: Process terminated

Rule body

name: Windows Processes Killed By Industroyer2 Malware
id: d8bea5ca-9d4a-4249-8b56-64a619109835
version: 10
creation_date: '2022-04-28'
modification_date: '2026-05-13'
author: Teoderick Contreras, Splunk
status: production
type: Anomaly
description: The following analytic detects the termination of specific processes by the Industroyer2 malware. It leverages Sysmon EventCode 5 to identify when processes like "PServiceControl.exe" and "PService_PPD.exe" are killed. This activity is significant as it targets processes related to energy facility networks, indicating a potential attack on critical infrastructure. If confirmed malicious, this could lead to disruption of essential services, loss of control over energy systems, and significant operational impact. Immediate investigation is required to determine the cause and mitigate any potential threats.
data_source:
    - Sysmon EventID 5
search: |-
    `sysmon` EventCode=5 process_name IN ("PServiceControl.exe", "PService_PPD.exe")
      | stats min(_time) as firstTime max(_time) as lastTime count
        BY dest process process_exec
           process_guid process_id process_name
           process_path signature signature_id
           user_id vendor_product
      | `security_content_ctime(firstTime)`
      | `security_content_ctime(lastTime)`
      | `windows_processes_killed_by_industroyer2_malware_filter`
how_to_implement: To successfully implement this search, you need to be ingesting Windows Security Event Logs with 4698 EventCode enabled. The Windows TA is also required.
known_false_positives: False positives are possible if legitimate applications are allowed to terminate this process during testing or updates. Filter as needed based on paths that are used legitimately.
references:
    - https://www.welivesecurity.com/2022/04/12/industroyer2-industroyer-reloaded/
intermediate_findings:
    entities:
        - field: dest
          type: system
          score: 20
          message: process was terminated $process_name$ on $dest$
analytic_story:
    - Data Destruction
    - Industroyer2
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

`sysmon` EventCode=5 process_name IN ("PServiceControl.exe", "PService_PPD.exe")

Stage 2: stats

| stats min(_time) as firstTime max(_time) as lastTime count
    BY dest process process_exec
       process_guid process_id process_name
       process_path signature signature_id
       user_id vendor_product

Stage 3: search

| `security_content_ctime(firstTime)`

Stage 4: search

| `security_content_ctime(lastTime)`

Stage 5: search

| `windows_processes_killed_by_industroyer2_malware_filter`

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventCodeeq
  • 5 corpus 4 (splunk 2, chronicle 2)
field:"EventID" kind:eq value:"5"
process_namein
  • "PServiceControl.exe"
  • "PService_PPD.exe"
field:"process_name" kind:in