Detection rules › Splunk

High Process Termination Frequency

Status
production
Severity
low
Group by
_time, dest, process_id, signature, signature_id, vendor_product
Author
Teoderick Contreras
Source
github.com/splunk/security_content

The following analytic identifies a high frequency of process termination events on a computer within a short period. It leverages Sysmon EventCode 5 logs to detect instances where 15 or more processes are terminated within a 3-second window. This behavior is significant as it is commonly associated with ransomware attempting to avoid exceptions during file encryption. If confirmed malicious, this activity could indicate an active ransomware attack, potentially leading to widespread file encryption and significant data loss.

Known false positives

  • admin or user tool that can terminate multiple process.

MITRE ATT&CK coverage

TacticTechniques
Impact

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 5: Process terminated

Rule body

name: High Process Termination Frequency
id: 17cd75b2-8666-11eb-9ab4-acde48001122
version: 14
creation_date: '2021-03-19'
modification_date: '2026-05-13'
author: Teoderick Contreras
status: production
type: Anomaly
description: The following analytic identifies a high frequency of process termination events on a computer within a short period. It leverages Sysmon EventCode 5 logs to detect instances where 15 or more processes are terminated within a 3-second window. This behavior is significant as it is commonly associated with ransomware attempting to avoid exceptions during file encryption. If confirmed malicious, this activity could indicate an active ransomware attack, potentially leading to widespread file encryption and significant data loss.
data_source:
    - Sysmon EventID 5
search: |-
    `sysmon` EventCode=5
      | bin _time span=3s
      | stats values(process) as process values(process_exec) as process_exec values(process_guid) as process_guid values(process_id) as process_id values(process_name) as process_name values(process_path) as process_path values(user_id) as user_id min(_time) as firstTime max(_time) as lastTime count
        BY _time dest EventCode
           ProcessID signature signature_id
           vendor_product
      | where count >= 15
      | `security_content_ctime(firstTime)`
      | `security_content_ctime(lastTime)`
      | `high_process_termination_frequency_filter`
how_to_implement: To successfully implement this search, you need to be ingesting logs with the Image (process full path of terminated process) from your endpoints. If you are using Sysmon, you must have at least version 6.0.4 of the Sysmon TA.
known_false_positives: admin or user tool that can terminate multiple process.
references:
    - https://www.mandiant.com/resources/fin11-email-campaigns-precursor-for-ransomware-data-theft
    - https://blog.virustotal.com/2020/11/keep-your-friends-close-keep-ransomware.html
intermediate_findings:
    entities:
        - field: dest
          type: system
          score: 20
          message: High frequency process termination (more than 15 processes within 3s) detected on host $dest$
analytic_story:
    - BlackByte Ransomware
    - Rhysida Ransomware
    - LockBit Ransomware
    - Medusa Ransomware
    - Crypto Stealer
    - Snake Keylogger
    - Clop Ransomware
    - Termite Ransomware
    - Interlock Ransomware
    - NailaoLocker Ransomware
    - Hellcat Ransomware
asset_type: Endpoint
mitre_attack_id:
    - T1486
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: endpoint
security_domain: endpoint

Stages and Predicates

Stage 1: search

`sysmon` EventCode=5

Stage 2: bucket

| bin _time span=3s

Stage 3: stats

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

Stage 4: where

| where count >= 15

Stage 5: search

| `security_content_ctime(firstTime)`

Stage 6: search

| `security_content_ctime(lastTime)`

Stage 7: search

| `high_process_termination_frequency_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"
countge
  • 15
field:"count" kind:ge value:"15"