Detection rules › Sigma

Unsigned .node File Loaded

Severity
medium
Author
Jonathan Beierle (@hullabrian)
Source
upstream

Detects the loading of unsigned .node files. Adversaries may abuse a lack of .node integrity checking to execute arbitrary code inside of trusted applications such as Slack. .node files are native add-ons for Electron-based applications, which are commonly used for desktop applications like Slack, Discord, and Visual Studio Code. This technique has been observed in the DripLoader malware, which uses unsigned .node files to load malicious native code into Electron applications.

MITRE ATT&CK coverage

TacticTechniques
ExecutionT1129 Shared Modules
PersistenceT1574.001 Hijack Execution Flow: DLL
Privilege EscalationT1574.001 Hijack Execution Flow: DLL
Defense EvasionT1036.005 Masquerading: Match Legitimate Resource Name or Location, T1574.001 Hijack Execution Flow: DLL

Event coverage

ProviderEvent IDTitle
Sysmon7Image loaded

Stages and Predicates

Stage 1: all of selection_node_extension

ImageLoaded|endswith: .node

Stage 2: all of selection_status

or:
SignatureStatus: Unavailable
Signed: false

Stage 3: not 1 of filter_optional_vscode_jupyter

or:
ImageLoaded|endswith: '\electron.napi.node'
ImageLoaded|endswith: '\node.napi.glibc.node'
Image|endswith: '\Code.exe'
ImageLoaded|contains: '.vscode\extensions\ms-toolsai.jupyter-'

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
Imageends_with
  • \Code.exe
ImageLoadedends_with
  • .node
  • \electron.napi.node
  • \node.napi.glibc.node
ImageLoadedmatch
  • .vscode\extensions\ms-toolsai.jupyter-
SignatureStatuseq
  • Unavailable
Signedeq
  • false corpus 8 (sigma 4, splunk 4)