Skip to content

Commit 7eeca00

Browse files
authored
[Rule Tuning] Linux 3rd Party EDR Support - Crowdstrike and S1 - 8 (#4355)
1 parent e66bca7 commit 7eeca00

10 files changed

+102
-58
lines changed

rules/linux/execution_interpreter_tty_upgrade.toml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2023/09/20"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "crowdstrike", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/05/21"
5+
min_stack_version = "8.13.0"
6+
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
7+
updated_date = "2025/01/08"
68

79
[rule]
810
author = ["Elastic"]
@@ -12,7 +14,7 @@ simple reverse shell to a fully interactive tty after obtaining initial access t
1214
stable connection.
1315
"""
1416
from = "now-9m"
15-
index = ["logs-endpoint.events.*", "endgame-*"]
17+
index = ["logs-endpoint.events.*", "endgame-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
1618
language = "eql"
1719
license = "Elastic License v2"
1820
name = "Potential Upgrade of Non-interactive Shell"
@@ -51,16 +53,20 @@ tags = [
5153
"Tactic: Execution",
5254
"Data Source: Elastic Endgame",
5355
"Data Source: Elastic Defend",
56+
"Data Source: Crowdstrike",
57+
"Data Source: SentinelOne",
5458
]
5559
timestamp_override = "event.ingested"
5660
type = "eql"
5761

5862
query = '''
59-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and (
60-
(process.name == "stty" and process.args == "raw" and process.args == "-echo" and process.args_count >= 3) or
61-
(process.name == "script" and process.args in ("-qc", "-c") and process.args == "/dev/null" and
62-
process.args_count == 4)
63-
)
63+
process where host.os.type == "linux" and event.type == "start" and
64+
event.action in ("exec", "exec_event", "start", "ProcessRollup2") and
65+
(
66+
(process.name == "stty" and process.args == "raw" and process.args == "-echo" and process.args_count >= 3) or
67+
(process.name == "script" and process.args in ("-qc", "-c") and process.args == "/dev/null" and
68+
process.args_count == 4)
69+
)
6470
'''
6571

6672

rules/linux/execution_nc_listener_via_rlwrap.toml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2023/09/22"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "crowdstrike", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/05/21"
5+
min_stack_version = "8.13.0"
6+
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
7+
updated_date = "2025/01/08"
68

79
[rule]
810
author = ["Elastic"]
@@ -19,7 +21,7 @@ false_positives = [
1921
""",
2022
]
2123
from = "now-9m"
22-
index = ["logs-endpoint.events.*", "endgame-*"]
24+
index = ["logs-endpoint.events.*", "endgame-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
2325
language = "eql"
2426
license = "Elastic License v2"
2527
name = "Netcat Listener Established via rlwrap"
@@ -59,14 +61,17 @@ tags = [
5961
"Tactic: Execution",
6062
"Data Source: Elastic Defend",
6163
"Data Source: Elastic Endgame",
64+
"Data Source: Crowdstrike",
65+
"Data Source: SentinelOne",
6266
]
6367
timestamp_override = "event.ingested"
6468
type = "eql"
6569

6670
query = '''
67-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and
68-
process.name == "rlwrap" and process.args in ("nc", "ncat", "netcat", "nc.openbsd", "socat") and
69-
process.args : "*l*" and process.args_count >= 4
71+
process where host.os.type == "linux" and event.type == "start" and
72+
event.action in ("exec", "exec_event", "start", "ProcessRollup2") and
73+
process.name == "rlwrap" and process.args in ("nc", "ncat", "netcat", "nc.openbsd", "socat") and
74+
process.args : "*l*" and process.args_count >= 4
7075
'''
7176

7277

rules/linux/execution_potential_hack_tool_executed.toml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2023/09/22"
3-
integration = ["endpoint", "auditd_manager"]
3+
integration = ["endpoint", "auditd_manager", "crowdstrike", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/10/22"
5+
min_stack_version = "8.13.0"
6+
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
7+
updated_date = "2025/01/08"
68

79
[rule]
810
author = ["Elastic"]
@@ -12,7 +14,7 @@ this rule should be investigated further, as hack tools are commonly used by blu
1214
well.
1315
"""
1416
from = "now-9m"
15-
index = ["logs-endpoint.events.*", "endgame-*", "auditbeat-*", "logs-auditd_manager.auditd-*"]
17+
index = ["logs-endpoint.events.*", "endgame-*", "auditbeat-*", "logs-auditd_manager.auditd-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
1618
language = "eql"
1719
license = "Elastic License v2"
1820
name = "Potential Linux Hack Tool Launched"
@@ -53,12 +55,14 @@ tags = [
5355
"Data Source: Elastic Endgame",
5456
"Data Source: Elastic Defend",
5557
"Data Source: Auditd Manager",
58+
"Data Source: Crowdstrike",
59+
"Data Source: SentinelOne",
5660
]
5761
timestamp_override = "event.ingested"
5862
type = "eql"
5963
query = '''
6064
process where host.os.type == "linux" and event.type == "start" and
61-
event.action in ("exec", "exec_event", "executed", "process_started") and
65+
event.action in ("exec", "exec_event", "start", "ProcessRollup2", "executed", "process_started") and
6266
process.name in~ (
6367
// exploitation frameworks
6468
"crackmapexec", "msfconsole", "msfvenom", "sliver-client", "sliver-server", "havoc",

rules/linux/execution_python_tty_shell.toml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2020/04/15"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/05/21"
5+
min_stack_version = "8.13.0"
6+
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
7+
updated_date = "2025/01/08"
68

79
[rule]
810
author = ["Elastic"]
@@ -11,7 +13,7 @@ Identifies when a terminal (tty) is spawned via Python. Attackers may upgrade a
1113
interactive tty after obtaining initial access to a host.
1214
"""
1315
from = "now-9m"
14-
index = ["logs-endpoint.events.*", "endgame-*"]
16+
index = ["logs-endpoint.events.*", "endgame-*", "logs-sentinel_one_cloud_funnel.*"]
1517
language = "eql"
1618
license = "Elastic License v2"
1719
name = "Interactive Terminal Spawned via Python"
@@ -50,12 +52,13 @@ tags = [
5052
"Tactic: Execution",
5153
"Data Source: Elastic Endgame",
5254
"Data Source: Elastic Defend",
55+
"Data Source: SentinelOne",
5356
]
5457
timestamp_override = "event.ingested"
5558
type = "eql"
5659

5760
query = '''
58-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and
61+
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start") and
5962
(
6063
(process.parent.name : "python*" and process.name in ("bash", "dash", "ash", "sh", "tcsh", "csh", "zsh", "ksh",
6164
"fish") and process.parent.args_count >= 3 and process.parent.args : "*pty.spawn*" and process.parent.args : "-c") or

rules/linux/execution_python_webserver_spawned.toml

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2024/11/04"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "crowdstrike", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/11/04"
5+
min_stack_version = "8.13.0"
6+
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
7+
updated_date = "2025/01/08"
68

79
[rule]
810
author = ["Elastic"]
@@ -11,7 +13,7 @@ This rule identifies when a web server is spawned via Python. Attackers may use
1113
exfiltrate/infiltrate data or to move laterally within a network.
1214
"""
1315
from = "now-9m"
14-
index = ["logs-endpoint.events.*"]
16+
index = ["logs-endpoint.events.*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*", "endgame-*"]
1517
language = "eql"
1618
license = "Elastic License v2"
1719
name = "Web Server Spawned via Python"
@@ -49,17 +51,22 @@ tags = [
4951
"Use Case: Threat Detection",
5052
"Tactic: Execution",
5153
"Data Source: Elastic Defend",
54+
"Data Source: Crowdstrike",
55+
"Data Source: SentinelOne",
56+
"Data Source: Elastic Endgame",
5257
]
5358
timestamp_override = "event.ingested"
5459
type = "eql"
5560
query = '''
56-
process where host.os.type == "linux" and event.type == "start" and event.action == "exec" and (
57-
(process.name like "python*" and process.args in ("http.server", "SimpleHTTPServer")) or
61+
process where host.os.type == "linux" and event.type == "start" and
62+
event.action in ("exec", "exec_event", "start", "ProcessRollup2") and
5863
(
59-
process.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and
60-
process.command_line like~ "*python* -m http.server*"
64+
(process.name like "python*" and process.args in ("http.server", "SimpleHTTPServer")) or
65+
(
66+
process.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and
67+
process.command_line like~ "*python* -m http.server*"
68+
)
6169
)
62-
)
6370
'''
6471

6572
[[rule.threat]]

rules/linux/execution_shell_openssl_client_or_server.toml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2024/07/30"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/10/17"
5+
min_stack_version = "8.13.0"
6+
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
7+
updated_date = "2025/01/08"
68

79
[rule]
810
author = ["Elastic"]
@@ -12,7 +14,7 @@ establish a secure connection to a remote server or to create a secure server to
1214
may be used to exfiltrate data or establish a command and control channel.
1315
"""
1416
from = "now-9m"
15-
index = ["logs-endpoint.events.*", "endgame-*"]
17+
index = ["logs-endpoint.events.*", "endgame-*", "logs-sentinel_one_cloud_funnel.*"]
1618
language = "eql"
1719
license = "Elastic License v2"
1820
name = "Openssl Client or Server Activity"
@@ -51,17 +53,18 @@ tags = [
5153
"Use Case: Threat Detection",
5254
"Tactic: Execution",
5355
"Data Source: Elastic Defend",
54-
"Data Source: Elastic Endgame"
56+
"Data Source: Elastic Endgame",
57+
"Data Source: SentinelOne"
5558
]
5659
timestamp_override = "event.ingested"
5760
type = "eql"
5861
query = '''
59-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and
60-
process.name == "openssl" and (
61-
(process.args == "s_client" and process.args : ("-connect", "*:*") and not process.args == "-showcerts") or
62-
(process.args == "s_server" and process.args == "-port")
63-
) and
64-
not process.parent.executable in ("/pro/xymon/client/ext/awsXymonCheck.sh", "/opt/antidot-svc/nrpe/plugins/check_cert")
62+
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start") and
63+
process.name == "openssl" and (
64+
(process.args == "s_client" and process.args : ("-connect", "*:*") and not process.args == "-showcerts") or
65+
(process.args == "s_server" and process.args == "-port")
66+
) and
67+
not process.parent.executable in ("/pro/xymon/client/ext/awsXymonCheck.sh", "/opt/antidot-svc/nrpe/plugins/check_cert")
6568
'''
6669

6770
[[rule.threat]]

rules/linux/execution_shell_via_background_process.toml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2023/09/20"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "crowdstrike", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/05/21"
5+
min_stack_version = "8.13.0"
6+
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
7+
updated_date = "2025/01/08"
68

79
[rule]
810
author = ["Elastic"]
@@ -11,7 +13,7 @@ Monitors for the execution of background processes with process arguments capabl
1113
channel. This may indicate the creation of a backdoor reverse connection, and should be investigated further.
1214
"""
1315
from = "now-9m"
14-
index = ["logs-endpoint.events.*", "endgame-*"]
16+
index = ["logs-endpoint.events.*", "endgame-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
1517
language = "eql"
1618
license = "Elastic License v2"
1719
name = "Potential Reverse Shell via Background Process"
@@ -50,14 +52,17 @@ tags = [
5052
"Tactic: Execution",
5153
"Data Source: Elastic Defend",
5254
"Data Source: Elastic Endgame",
55+
"Data Source: Crowdstrike",
56+
"Data Source: SentinelOne",
5357
]
5458
timestamp_override = "event.ingested"
5559
type = "eql"
5660

5761
query = '''
58-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and
59-
process.name in ("setsid", "nohup") and process.args : "*/dev/tcp/*0>&1*" and
60-
process.parent.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish")
62+
process where host.os.type == "linux" and event.type == "start" and
63+
event.action in ("exec", "exec_event", "start", "ProcessRollup2") and
64+
process.name in ("setsid", "nohup") and process.args : "*/dev/tcp/*0>&1*" and
65+
process.parent.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish")
6166
'''
6267

6368

rules/linux/execution_sus_extraction_or_decrompression_via_funzip.toml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2023/06/26"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/05/21"
5+
min_stack_version = "8.13.0"
6+
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
7+
updated_date = "2025/01/08"
68

79
[rule]
810
author = ["Elastic"]
@@ -13,7 +15,7 @@ output from tail can be piped to funzip in order to decompress malicious code be
1315
consistent with malware families such as Bundlore.
1416
"""
1517
from = "now-9m"
16-
index = ["logs-endpoint.events.*", "endgame-*"]
18+
index = ["logs-endpoint.events.*", "endgame-*", "logs-sentinel_one_cloud_funnel.*"]
1719
language = "eql"
1820
license = "Elastic License v2"
1921
name = "Suspicious Content Extracted or Decompressed via Funzip"
@@ -53,12 +55,13 @@ tags = [
5355
"Tactic: Execution",
5456
"Data Source: Elastic Endgame",
5557
"Data Source: Elastic Defend",
58+
"Data Source: SentinelOne",
5659
]
5760
timestamp_override = "event.ingested"
5861
type = "eql"
5962

6063
query = '''
61-
process where host.os.type == "linux" and event.action in ("exec", "exec_event") and
64+
process where host.os.type == "linux" and event.action in ("exec", "exec_event", "start") and
6265
((process.args == "tail" and process.args == "-c" and process.args == "funzip")) and
6366
not process.args : "/var/log/messages" and
6467
not process.parent.executable : ("/usr/bin/dracut", "/sbin/dracut", "/usr/bin/xargs") and

rules/linux/execution_tc_bpf_filter.toml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2022/07/11"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/05/21"
5+
min_stack_version = "8.13.0"
6+
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
7+
updated_date = "2025/01/08"
68

79
[rule]
810
author = ["Elastic"]
@@ -13,7 +15,7 @@ A threat actor can utilize tc to set a bpf filter on an interface for the purpos
1315
This technique is not at all common and should indicate abnormal, suspicious or malicious activity.
1416
"""
1517
from = "now-9m"
16-
index = ["logs-endpoint.events.*", "endgame-*"]
18+
index = ["logs-endpoint.events.*", "endgame-*", "logs-sentinel_one_cloud_funnel.*"]
1719
language = "eql"
1820
license = "Elastic License v2"
1921
name = "BPF filter applied using TC"
@@ -57,6 +59,7 @@ tags = [
5759
"Threat: TripleCross",
5860
"Data Source: Elastic Endgame",
5961
"Data Source: Elastic Defend",
62+
"Data Source: SentinelOne",
6063
]
6164
timestamp_override = "event.ingested"
6265
type = "eql"

0 commit comments

Comments
 (0)