From a72dbb80dca0217887dbb793bb018edb7d4e7f5c Mon Sep 17 00:00:00 2001 From: terrancedejesus Date: Wed, 3 Dec 2025 09:49:23 -0500 Subject: [PATCH 1/8] [Rule Tuning] Node.js Pre or Post-Install Script Execution to Cross-Platform Fixes #5402 --- ..._pre_or_post_install_script_execution.toml | 123 ++++++++++++++++++ ..._pre_or_post_install_script_execution.toml | 58 +++++---- 2 files changed, 159 insertions(+), 22 deletions(-) create mode 100644 rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml diff --git a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml new file mode 100644 index 00000000000..7cd8ee4d07a --- /dev/null +++ b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml @@ -0,0 +1,123 @@ +[metadata] +creation_date = "2025/09/18" +integration = ["endpoint", "crowdstrike"] +maturity = "production" +updated_date = "2025/12/03" + +[rule] +author = ["Elastic"] +description = """ +This rule detects the execution of Node.js pre or post-install scripts. These scripts are executed +by the Node.js package manager (npm) during the installation of packages. Adversaries may abuse +this technique to execute arbitrary commands on the system and establish persistence. This activity +was observed in the wild as part of the Shai-Hulud worm. +""" +from = "now-9m" +index = ["logs-endpoint.events.process*", "logs-crowdstrike.fdr*"] +language = "eql" +license = "Elastic License v2" +name = "Node.js Pre or Post-Install Script Execution" +references = [ + "https://www.elastic.co/blog/shai-hulud-worm-npm-supply-chain-compromise", + "https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack" +] +risk_score = 47 +rule_id = "0871a5d8-6b5f-4a12-a568-fd7bc05bd8db" +setup = """## Setup + +This rule requires data coming in from Elastic Defend. + +### Elastic Defend Integration Setup +Elastic Defend is integrated into the Elastic Agent using Fleet. Upon configuration, the integration allows the Elastic Agent to monitor events on your host and send data to the Elastic Security app. + +#### Prerequisite Requirements: +- Fleet is required for Elastic Defend. +- To configure Fleet Server refer to the [documentation](https://www.elastic.co/guide/en/fleet/current/fleet-server.html). + +#### The following steps should be executed in order to add the Elastic Defend integration on a Linux System: +- Go to the Kibana home page and click "Add integrations". +- In the query bar, search for "Elastic Defend" and select the integration to see more details about it. +- Click "Add Elastic Defend". +- Configure the integration name and optionally add a description. +- Select the type of environment you want to protect, either "Traditional Endpoints" or "Cloud Workloads". +- Select a configuration preset. Each preset comes with different default settings for Elastic Agent, you can further customize these later by configuring the Elastic Defend integration policy. [Helper guide](https://www.elastic.co/guide/en/security/current/configure-endpoint-integration-policy.html). +- We suggest selecting "Complete EDR (Endpoint Detection and Response)" as a configuration setting, that provides "All events; all preventions" +- Enter a name for the agent policy in "New agent policy name". If other agent policies already exist, you can click the "Existing hosts" tab and select an existing policy instead. +For more details on Elastic Agent configuration settings, refer to the [helper guide](https://www.elastic.co/guide/en/fleet/8.10/agent-policy.html). +- Click "Save and Continue". +- To complete the integration, select "Add Elastic Agent to your hosts" and continue to the next section to install the Elastic Agent on your hosts. +For more details on Elastic Defend refer to the [helper guide](https://www.elastic.co/guide/en/security/current/install-endpoint.html). +""" +severity = "medium" +tags = [ + "Domain: Endpoint", + "OS: Linux", + "OS: macOS", + "Use Case: Threat Detection", + "Tactic: Persistence", + "Tactic: Execution", + "Tactic: Defense Evasion", + "Data Source: Elastic Defend", + "Resources: Investigation Guide", + "Data Source: Crowdstrike", +] +type = "eql" +query = ''' +sequence by host.id with maxspan=10s + [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.name == "node" and process.args == "install"] by process.entity_id + [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.parent.name == "node"] by process.parent.entity_id +''' + +[[rule.threat]] +framework = "MITRE ATT&CK" + +[[rule.threat.technique]] +id = "T1543" +name = "Create or Modify System Process" +reference = "https://attack.mitre.org/techniques/T1543/" + +[[rule.threat.technique]] +id = "T1574" +name = "Hijack Execution Flow" +reference = "https://attack.mitre.org/techniques/T1574/" + +[rule.threat.tactic] +id = "TA0003" +name = "Persistence" +reference = "https://attack.mitre.org/tactics/TA0003/" + +[[rule.threat]] +framework = "MITRE ATT&CK" + +[[rule.threat.technique]] +id = "T1059" +name = "Command and Scripting Interpreter" +reference = "https://attack.mitre.org/techniques/T1059/" + +[[rule.threat.technique.subtechnique]] +id = "T1059.004" +name = "Unix Shell" +reference = "https://attack.mitre.org/techniques/T1059/004/" + +[[rule.threat.technique]] +id = "T1204" +name = "User Execution" +reference = "https://attack.mitre.org/techniques/T1204/" + +[[rule.threat.technique.subtechnique]] +id = "T1204.005" +name = "Malicious Library" +reference = "https://attack.mitre.org/techniques/T1204/005/" + +[rule.threat.tactic] +id = "TA0002" +name = "Execution" +reference = "https://attack.mitre.org/tactics/TA0002/" + +[[rule.threat]] +framework = "MITRE ATT&CK" + +[rule.threat.tactic] +id = "TA0005" +name = "Defense Evasion" +reference = "https://attack.mitre.org/tactics/TA0005/" diff --git a/rules/linux/persistence_nodejs_pre_or_post_install_script_execution.toml b/rules/linux/persistence_nodejs_pre_or_post_install_script_execution.toml index 7ec8d9e8dc2..4a67064fdaa 100644 --- a/rules/linux/persistence_nodejs_pre_or_post_install_script_execution.toml +++ b/rules/linux/persistence_nodejs_pre_or_post_install_script_execution.toml @@ -2,22 +2,24 @@ creation_date = "2025/09/18" integration = ["endpoint", "crowdstrike"] maturity = "production" -updated_date = "2025/10/17" +updated_date = "2025/12/03" [rule] author = ["Elastic"] description = """ -This rule detects the execution of Node.js pre or post-install scripts. These scripts are executed -by the Node.js package manager (npm) during the installation of packages. Adversaries may abuse -this technique to execute arbitrary commands on the system and establish persistence. This activity -was observed in the wild as part of the Shai-Hulud worm. +This rule detects the execution of Node.js pre or post-install scripts. These scripts are executed by the Node.js +package manager (npm) during the installation of packages. Adversaries may abuse this technique to execute arbitrary +commands on the system and establish persistence. This activity was observed in the wild as part of the Shai-Hulud worm. """ from = "now-9m" index = ["logs-endpoint.events.process*", "logs-crowdstrike.fdr*"] language = "eql" license = "Elastic License v2" name = "Node.js Pre or Post-Install Script Execution" -references = ["https://www.elastic.co/blog/shai-hulud-worm-npm-supply-chain-compromise"] +references = [ + "https://www.elastic.co/blog/shai-hulud-worm-npm-supply-chain-compromise", + "https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack", +] risk_score = 47 rule_id = "0871a5d8-6b5f-4a12-a568-fd7bc05bd8db" setup = """## Setup @@ -47,26 +49,28 @@ For more details on Elastic Defend refer to the [helper guide](https://www.elast """ severity = "medium" tags = [ - "Domain: Endpoint", - "OS: Linux", - "Use Case: Threat Detection", - "Tactic: Persistence", - "Tactic: Execution", - "Tactic: Defense Evasion", - "Data Source: Elastic Defend", - "Resources: Investigation Guide", - "Data Source: Crowdstrike", + "Domain: Endpoint", + "OS: Linux", + "OS: macOS", + "Use Case: Threat Detection", + "Tactic: Persistence", + "Tactic: Execution", + "Tactic: Defense Evasion", + "Data Source: Elastic Defend", + "Resources: Investigation Guide", + "Data Source: Crowdstrike", ] type = "eql" + query = ''' sequence by host.id with maxspan=10s - [process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.name == "node" and process.args == "install"] by process.entity_id - [process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.parent.name == "node"] by process.parent.entity_id + [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.name == "node" and process.args == "install"] by process.entity_id + [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.parent.name == "node"] by process.parent.entity_id ''' + [[rule.threat]] framework = "MITRE ATT&CK" - [[rule.threat.technique]] id = "T1543" name = "Create or Modify System Process" @@ -77,29 +81,38 @@ id = "T1574" name = "Hijack Execution Flow" reference = "https://attack.mitre.org/techniques/T1574/" + [rule.threat.tactic] id = "TA0003" name = "Persistence" reference = "https://attack.mitre.org/tactics/TA0003/" - [[rule.threat]] framework = "MITRE ATT&CK" - [[rule.threat.technique]] id = "T1059" name = "Command and Scripting Interpreter" reference = "https://attack.mitre.org/techniques/T1059/" - [[rule.threat.technique.subtechnique]] id = "T1059.004" name = "Unix Shell" reference = "https://attack.mitre.org/techniques/T1059/004/" + +[[rule.threat.technique]] +id = "T1204" +name = "User Execution" +reference = "https://attack.mitre.org/techniques/T1204/" +[[rule.threat.technique.subtechnique]] +id = "T1204.005" +name = "Malicious Library" +reference = "https://attack.mitre.org/techniques/T1204/005/" + + + [rule.threat.tactic] id = "TA0002" name = "Execution" reference = "https://attack.mitre.org/tactics/TA0002/" - [[rule.threat]] framework = "MITRE ATT&CK" @@ -107,3 +120,4 @@ framework = "MITRE ATT&CK" id = "TA0005" name = "Defense Evasion" reference = "https://attack.mitre.org/tactics/TA0005/" + From 1b7941b97adccabfa6ae4336c39bc0bd47e70a8a Mon Sep 17 00:00:00 2001 From: terrancedejesus Date: Wed, 3 Dec 2025 09:51:43 -0500 Subject: [PATCH 2/8] removed rule from Linux directory --- ..._pre_or_post_install_script_execution.toml | 123 ------------------ 1 file changed, 123 deletions(-) delete mode 100644 rules/linux/persistence_nodejs_pre_or_post_install_script_execution.toml diff --git a/rules/linux/persistence_nodejs_pre_or_post_install_script_execution.toml b/rules/linux/persistence_nodejs_pre_or_post_install_script_execution.toml deleted file mode 100644 index 4a67064fdaa..00000000000 --- a/rules/linux/persistence_nodejs_pre_or_post_install_script_execution.toml +++ /dev/null @@ -1,123 +0,0 @@ -[metadata] -creation_date = "2025/09/18" -integration = ["endpoint", "crowdstrike"] -maturity = "production" -updated_date = "2025/12/03" - -[rule] -author = ["Elastic"] -description = """ -This rule detects the execution of Node.js pre or post-install scripts. These scripts are executed by the Node.js -package manager (npm) during the installation of packages. Adversaries may abuse this technique to execute arbitrary -commands on the system and establish persistence. This activity was observed in the wild as part of the Shai-Hulud worm. -""" -from = "now-9m" -index = ["logs-endpoint.events.process*", "logs-crowdstrike.fdr*"] -language = "eql" -license = "Elastic License v2" -name = "Node.js Pre or Post-Install Script Execution" -references = [ - "https://www.elastic.co/blog/shai-hulud-worm-npm-supply-chain-compromise", - "https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack", -] -risk_score = 47 -rule_id = "0871a5d8-6b5f-4a12-a568-fd7bc05bd8db" -setup = """## Setup - -This rule requires data coming in from Elastic Defend. - -### Elastic Defend Integration Setup -Elastic Defend is integrated into the Elastic Agent using Fleet. Upon configuration, the integration allows the Elastic Agent to monitor events on your host and send data to the Elastic Security app. - -#### Prerequisite Requirements: -- Fleet is required for Elastic Defend. -- To configure Fleet Server refer to the [documentation](https://www.elastic.co/guide/en/fleet/current/fleet-server.html). - -#### The following steps should be executed in order to add the Elastic Defend integration on a Linux System: -- Go to the Kibana home page and click "Add integrations". -- In the query bar, search for "Elastic Defend" and select the integration to see more details about it. -- Click "Add Elastic Defend". -- Configure the integration name and optionally add a description. -- Select the type of environment you want to protect, either "Traditional Endpoints" or "Cloud Workloads". -- Select a configuration preset. Each preset comes with different default settings for Elastic Agent, you can further customize these later by configuring the Elastic Defend integration policy. [Helper guide](https://www.elastic.co/guide/en/security/current/configure-endpoint-integration-policy.html). -- We suggest selecting "Complete EDR (Endpoint Detection and Response)" as a configuration setting, that provides "All events; all preventions" -- Enter a name for the agent policy in "New agent policy name". If other agent policies already exist, you can click the "Existing hosts" tab and select an existing policy instead. -For more details on Elastic Agent configuration settings, refer to the [helper guide](https://www.elastic.co/guide/en/fleet/8.10/agent-policy.html). -- Click "Save and Continue". -- To complete the integration, select "Add Elastic Agent to your hosts" and continue to the next section to install the Elastic Agent on your hosts. -For more details on Elastic Defend refer to the [helper guide](https://www.elastic.co/guide/en/security/current/install-endpoint.html). -""" -severity = "medium" -tags = [ - "Domain: Endpoint", - "OS: Linux", - "OS: macOS", - "Use Case: Threat Detection", - "Tactic: Persistence", - "Tactic: Execution", - "Tactic: Defense Evasion", - "Data Source: Elastic Defend", - "Resources: Investigation Guide", - "Data Source: Crowdstrike", -] -type = "eql" - -query = ''' -sequence by host.id with maxspan=10s - [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.name == "node" and process.args == "install"] by process.entity_id - [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.parent.name == "node"] by process.parent.entity_id -''' - - -[[rule.threat]] -framework = "MITRE ATT&CK" -[[rule.threat.technique]] -id = "T1543" -name = "Create or Modify System Process" -reference = "https://attack.mitre.org/techniques/T1543/" - -[[rule.threat.technique]] -id = "T1574" -name = "Hijack Execution Flow" -reference = "https://attack.mitre.org/techniques/T1574/" - - -[rule.threat.tactic] -id = "TA0003" -name = "Persistence" -reference = "https://attack.mitre.org/tactics/TA0003/" -[[rule.threat]] -framework = "MITRE ATT&CK" -[[rule.threat.technique]] -id = "T1059" -name = "Command and Scripting Interpreter" -reference = "https://attack.mitre.org/techniques/T1059/" -[[rule.threat.technique.subtechnique]] -id = "T1059.004" -name = "Unix Shell" -reference = "https://attack.mitre.org/techniques/T1059/004/" - - -[[rule.threat.technique]] -id = "T1204" -name = "User Execution" -reference = "https://attack.mitre.org/techniques/T1204/" -[[rule.threat.technique.subtechnique]] -id = "T1204.005" -name = "Malicious Library" -reference = "https://attack.mitre.org/techniques/T1204/005/" - - - -[rule.threat.tactic] -id = "TA0002" -name = "Execution" -reference = "https://attack.mitre.org/tactics/TA0002/" -[[rule.threat]] -framework = "MITRE ATT&CK" - -[rule.threat.tactic] -id = "TA0005" -name = "Defense Evasion" -reference = "https://attack.mitre.org/tactics/TA0005/" - From 225a8a4d097388df054e3858c09e646d599e9d93 Mon Sep 17 00:00:00 2001 From: terrancedejesus Date: Wed, 3 Dec 2025 09:59:01 -0500 Subject: [PATCH 3/8] adjusted mitre for unit tests --- ..._pre_or_post_install_script_execution.toml | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml index 7cd8ee4d07a..84d8060230f 100644 --- a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml +++ b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml @@ -71,24 +71,6 @@ sequence by host.id with maxspan=10s [[rule.threat]] framework = "MITRE ATT&CK" -[[rule.threat.technique]] -id = "T1543" -name = "Create or Modify System Process" -reference = "https://attack.mitre.org/techniques/T1543/" - -[[rule.threat.technique]] -id = "T1574" -name = "Hijack Execution Flow" -reference = "https://attack.mitre.org/techniques/T1574/" - -[rule.threat.tactic] -id = "TA0003" -name = "Persistence" -reference = "https://attack.mitre.org/tactics/TA0003/" - -[[rule.threat]] -framework = "MITRE ATT&CK" - [[rule.threat.technique]] id = "T1059" name = "Command and Scripting Interpreter" @@ -117,6 +99,24 @@ reference = "https://attack.mitre.org/tactics/TA0002/" [[rule.threat]] framework = "MITRE ATT&CK" +[[rule.threat.technique]] +id = "T1543" +name = "Create or Modify System Process" +reference = "https://attack.mitre.org/techniques/T1543/" + +[[rule.threat.technique]] +id = "T1574" +name = "Hijack Execution Flow" +reference = "https://attack.mitre.org/techniques/T1574/" + +[rule.threat.tactic] +id = "TA0003" +name = "Persistence" +reference = "https://attack.mitre.org/tactics/TA0003/" + +[[rule.threat]] +framework = "MITRE ATT&CK" + [rule.threat.tactic] id = "TA0005" name = "Defense Evasion" From d1ac0d396b503e46e51487ef1a7f1a4c32135693 Mon Sep 17 00:00:00 2001 From: Terrance DeJesus <99630311+terrancedejesus@users.noreply.github.com> Date: Wed, 3 Dec 2025 10:01:18 -0500 Subject: [PATCH 4/8] Update rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml Co-authored-by: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com> --- .../execution_nodejs_pre_or_post_install_script_execution.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml index 84d8060230f..95d3f1a7a85 100644 --- a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml +++ b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml @@ -19,7 +19,8 @@ license = "Elastic License v2" name = "Node.js Pre or Post-Install Script Execution" references = [ "https://www.elastic.co/blog/shai-hulud-worm-npm-supply-chain-compromise", - "https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack" + "https://www.wiz.io/blog/shai-hulud-2-0-ongoing-supply-chain-attack", + "https://www.elastic.co/blog/shai-hulud-worm-2-0-updated-response", ] risk_score = 47 rule_id = "0871a5d8-6b5f-4a12-a568-fd7bc05bd8db" From 29115c070037ae4e1173cbad810aafa6a9e7903d Mon Sep 17 00:00:00 2001 From: terrancedejesus Date: Wed, 3 Dec 2025 10:06:59 -0500 Subject: [PATCH 5/8] expanding to S1 --- .../execution_nodejs_pre_or_post_install_script_execution.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml index 95d3f1a7a85..ba7380f0ed3 100644 --- a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml +++ b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml @@ -13,7 +13,7 @@ this technique to execute arbitrary commands on the system and establish persist was observed in the wild as part of the Shai-Hulud worm. """ from = "now-9m" -index = ["logs-endpoint.events.process*", "logs-crowdstrike.fdr*"] +index = ["logs-endpoint.events.process*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"] language = "eql" license = "Elastic License v2" name = "Node.js Pre or Post-Install Script Execution" From 39c8e219bb00becd08ded6ac797936bbc18ae238 Mon Sep 17 00:00:00 2001 From: terrancedejesus Date: Wed, 3 Dec 2025 10:07:42 -0500 Subject: [PATCH 6/8] adding integration metadata --- .../execution_nodejs_pre_or_post_install_script_execution.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml index ba7380f0ed3..0eab787a3c9 100644 --- a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml +++ b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml @@ -1,6 +1,6 @@ [metadata] creation_date = "2025/09/18" -integration = ["endpoint", "crowdstrike"] +integration = ["endpoint", "crowdstrike", "sentinel_one_cloud_funnel"] maturity = "production" updated_date = "2025/12/03" From 9fc0c8375d0179bc05c7a5e929e5a19fff0b6f47 Mon Sep 17 00:00:00 2001 From: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com> Date: Wed, 3 Dec 2025 16:09:47 +0100 Subject: [PATCH 7/8] Add 'start' action to Node.js install script detection --- .../execution_nodejs_pre_or_post_install_script_execution.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml index 0eab787a3c9..b2506594b70 100644 --- a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml +++ b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml @@ -61,11 +61,12 @@ tags = [ "Data Source: Elastic Defend", "Resources: Investigation Guide", "Data Source: Crowdstrike", + "Data Source: SentinelOne", ] type = "eql" query = ''' sequence by host.id with maxspan=10s - [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.name == "node" and process.args == "install"] by process.entity_id + [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2", "start") and process.name == "node" and process.args == "install"] by process.entity_id [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.parent.name == "node"] by process.parent.entity_id ''' From 447e3213d839f5b1629f623e6aac54501033d9b1 Mon Sep 17 00:00:00 2001 From: Ruben Groenewoud <78494512+Aegrah@users.noreply.github.com> Date: Wed, 3 Dec 2025 16:13:39 +0100 Subject: [PATCH 8/8] Update rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml --- .../execution_nodejs_pre_or_post_install_script_execution.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml index b2506594b70..13869c98f9b 100644 --- a/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml +++ b/rules/cross-platform/execution_nodejs_pre_or_post_install_script_execution.toml @@ -67,7 +67,7 @@ type = "eql" query = ''' sequence by host.id with maxspan=10s [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2", "start") and process.name == "node" and process.args == "install"] by process.entity_id - [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2") and process.parent.name == "node"] by process.parent.entity_id + [process where host.os.type in ("linux", "macos") and event.type == "start" and event.action in ("exec", "ProcessRollup2", "start") and process.parent.name == "node"] by process.parent.entity_id ''' [[rule.threat]]