Detection rules › Elastic

Suspicious File Rename from Unbacked Memory

Time window
30s
Sequence by
process.entity_id
Source
github.com/elastic/protections-artifacts

Identifies a suspicious file rename operation from an unbacked memory region. This may indicate Ransomware behavior from an injected trusted process.

MITRE ATT&CK coverage

Rule body

[rule]
description = """
Identifies a suspicious file rename operation from an unbacked memory region. This may indicate Ransomware behavior from
an injected trusted process.
"""
id = "adc08f95-6a12-441a-be30-0443d6ccae52"
license = "Elastic License v2"
name = "Suspicious File Rename from Unbacked Memory"
os_list = ["windows"]
version = "1.0.7"

query = '''
sequence by process.entity_id with maxspan=30s
[file where event.action : "rename" and
  process.code_signature.status : "trusted" and
  not process.code_signature.subject_name :
                          ("LEAP SOFTWARE DEVELOPMENTS PTY. LIMITED", "KASEYA US LLC",
                           "Chocolatey Software, Inc.", "Quadient Industrie France", "ACTIFILE LTD") and
  file.extension != null and file.Ext.entropy >= 7 and
  file.Ext.original.name : ("*.jpg", "*.bmp", "*.png", "*.pdf", "*.doc", "*.docx", "*.xls", "*.xlsx", "*.ppt", "*.pptx") and
  not file.extension : ("tmp", "~tmp", "diff", "gz", "download", "bak", "bck", "lnk", "part", "save", "url", "jpg",
                        "bmp", "png", "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx") and
  process.thread.Ext.call_stack_summary :
                     ("ntdll.dll|kernelbase.dll|Unbacked",
                      "ntdll.dll|kernelbase.dll|kernel32.dll|Unbacked",
					  "ntdll.dll|kernelbase.dll|Unknown|kernel32.dll|ntdll.dll",
					  "ntdll.dll|kernelbase.dll|Unknown|kernel32.dll|ntdll.dll",
					  "ntdll.dll|kernelbase.dll|kernel32.dll|Unknown|kernel32.dll|ntdll.dll",
                      "ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked",
                      "ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked|kernel32.dll|ntdll.dll",
                      "ntdll.dll|Unbacked",
                      "Unbacked",
					  "Unknown")]
[file where event.action : "rename" and
  process.code_signature.status : "trusted" and
  not process.code_signature.subject_name : ("LEAP SOFTWARE DEVELOPMENTS PTY. LIMITED", "KASEYA US LLC", "Chocolatey Software, Inc.") and
  file.extension != null and file.Ext.entropy >= 7 and
  file.Ext.original.name : ("*.jpg", "*.bmp", "*.png", "*.pdf", "*.doc", "*.docx", "*.xls", "*.xlsx", "*.ppt", "*.pptx") and
  not file.extension : ("tmp", "~tmp", "diff", "gz", "download", "bak", "bck", "lnk", "part", "save", "url", "jpg",
                        "bmp", "png", "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx") and
  process.thread.Ext.call_stack_summary :
                     ("ntdll.dll|kernelbase.dll|Unbacked",
                      "ntdll.dll|kernelbase.dll|kernel32.dll|Unbacked",
					  "ntdll.dll|kernelbase.dll|Unknown|kernel32.dll|ntdll.dll",
					  "ntdll.dll|kernelbase.dll|Unknown|kernel32.dll|ntdll.dll",
					  "ntdll.dll|kernelbase.dll|kernel32.dll|Unknown|kernel32.dll|ntdll.dll",
                      "ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked",
                      "ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked|kernel32.dll|ntdll.dll",
                      "ntdll.dll|Unbacked",
                      "Unbacked",
					  "Unknown")]
'''

min_endpoint_version = "8.7.0"
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0

[[optional_actions]]
action = "rollback"
field = "process.entity_id"
state = 0

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1486"
name = "Data Encrypted for Impact"
reference = "https://attack.mitre.org/techniques/T1486/"

[[threat.technique]]
id = "T1490"
name = "Inhibit System Recovery"
reference = "https://attack.mitre.org/techniques/T1490/"


[threat.tactic]
id = "TA0040"
name = "Impact"
reference = "https://attack.mitre.org/tactics/TA0040/"

[internal]
min_endpoint_version = "8.7.0"

Stages and Predicates

Ordered sequence: each step below must occur in order within 30s, correlated by process.entity_id.

Stage 1: file

[file where event.action : "rename" and
  process.code_signature.status : "trusted" and
  not process.code_signature.subject_name :
                          ("LEAP SOFTWARE DEVELOPMENTS PTY. LIMITED", "KASEYA US LLC",
                           "Chocolatey Software, Inc.", "Quadient Industrie France", "ACTIFILE LTD") and
  file.extension != null and file.Ext.entropy >= 7 and
  file.Ext.original.name : ("*.jpg", "*.bmp", "*.png", "*.pdf", "*.doc", "*.docx", "*.xls", "*.xlsx", "*.ppt", "*.pptx") and
  not file.extension : ("tmp", "~tmp", "diff", "gz", "download", "bak", "bck", "lnk", "part", "save", "url", "jpg",
                        "bmp", "png", "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx") and
  process.thread.Ext.call_stack_summary :
                     ("ntdll.dll|kernelbase.dll|Unbacked",
                      "ntdll.dll|kernelbase.dll|kernel32.dll|Unbacked",
					  "ntdll.dll|kernelbase.dll|Unknown|kernel32.dll|ntdll.dll",
					  "ntdll.dll|kernelbase.dll|Unknown|kernel32.dll|ntdll.dll",
					  "ntdll.dll|kernelbase.dll|kernel32.dll|Unknown|kernel32.dll|ntdll.dll",
                      "ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked",
                      "ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked|kernel32.dll|ntdll.dll",
                      "ntdll.dll|Unbacked",
                      "Unbacked",
					  "Unknown")]

Stage 2: file

[file where event.action : "rename" and
  process.code_signature.status : "trusted" and
  not process.code_signature.subject_name : ("LEAP SOFTWARE DEVELOPMENTS PTY. LIMITED", "KASEYA US LLC", "Chocolatey Software, Inc.") and
  file.extension != null and file.Ext.entropy >= 7 and
  file.Ext.original.name : ("*.jpg", "*.bmp", "*.png", "*.pdf", "*.doc", "*.docx", "*.xls", "*.xlsx", "*.ppt", "*.pptx") and
  not file.extension : ("tmp", "~tmp", "diff", "gz", "download", "bak", "bck", "lnk", "part", "save", "url", "jpg",
                        "bmp", "png", "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx") and
  process.thread.Ext.call_stack_summary :
                     ("ntdll.dll|kernelbase.dll|Unbacked",
                      "ntdll.dll|kernelbase.dll|kernel32.dll|Unbacked",
					  "ntdll.dll|kernelbase.dll|Unknown|kernel32.dll|ntdll.dll",
					  "ntdll.dll|kernelbase.dll|Unknown|kernel32.dll|ntdll.dll",
					  "ntdll.dll|kernelbase.dll|kernel32.dll|Unknown|kernel32.dll|ntdll.dll",
                      "ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked",
                      "ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked|kernel32.dll|ntdll.dll",
                      "ntdll.dll|Unbacked",
                      "Unbacked",
					  "Unknown")]

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
file.extensioneqtmp, ~tmp, diff, gz, download, bak, bck, lnk, part, save, url, jpg, bmp, png, pdf, doc, docx, xls, xlsx, ppt, pptxexcludes:file.extension
process.code_signature.subject_nameeqLEAP SOFTWARE DEVELOPMENTS PTY. LIMITED, KASEYA US LLC, Chocolatey Software, Inc., Quadient Industrie France, ACTIFILE LTDexcludes:process.code_signature.subject_name
process.code_signature.subject_nameeqLEAP SOFTWARE DEVELOPMENTS PTY. LIMITED, KASEYA US LLC, Chocolatey Software, Inc.excludes:process.code_signature.subject_name field:"process.code_signature.subject_name" value:"LEAP SOFTWARE DEVELOPMENTS PTY. LIMITED" field:"process.code_signature.subject_name" value:"KASEYA US LLC" field:"process.code_signature.subject_name" value:"Chocolatey Software, Inc."

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
event.actionwildcard
  • rename corpus 22 (elastic 21, sigma 1)
field:"EventType" kind:wildcard value:"rename"
file.Ext.entropyge
  • 7 transforms: number corpus 4 (elastic 4)
field:"file.Ext.entropy" kind:ge value:"7"
file.Ext.original.namewildcard
  • *.bmp corpus 6 (elastic 6)
  • *.doc corpus 6 (elastic 6)
  • *.docx corpus 6 (elastic 6)
  • *.jpg corpus 6 (elastic 6)
  • *.pdf corpus 6 (elastic 6)
  • *.png corpus 6 (elastic 6)
  • *.ppt corpus 6 (elastic 6)
  • *.pptx corpus 6 (elastic 6)
  • *.xls corpus 6 (elastic 6)
  • *.xlsx corpus 6 (elastic 6)
field:"file.Ext.original.name" kind:wildcard
file.extensionis_not_null
  • (no value, null check)
field:"file.extension" kind:is_not_null
process.code_signature.statuswildcard
  • trusted corpus 6 (elastic 6)
field:"SignatureStatus" kind:wildcard value:"trusted"
process.thread.Ext.call_stack_summarywildcard
  • Unbacked
  • Unknown
  • ntdll.dll|Unbacked corpus 6 (elastic 6)
  • ntdll.dll|kernelbase.dll|Unbacked corpus 6 (elastic 6)
  • ntdll.dll|kernelbase.dll|Unknown|kernel32.dll|ntdll.dll
  • ntdll.dll|kernelbase.dll|kernel32.dll|Unbacked corpus 4 (elastic 4)
  • ntdll.dll|kernelbase.dll|kernel32.dll|Unknown|kernel32.dll|ntdll.dll
  • ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked corpus 5 (elastic 5)
  • ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|Unbacked|kernel32.dll|ntdll.dll corpus 4 (elastic 4)
field:"process.thread.Ext.call_stack_summary" kind:wildcard