Skip to content

Commit cc889e3

Browse files
w0rk3rAegrah
andauthored
[Rule Tuning] Linux 3rd Party EDR Support - Crowdstrike and S1 - 4 (#4345)
* [Rule Tuning] Linux 3rd Party EDR Support - Crowdstrike and S1 - 4 * Apply suggestions from code review Co-authored-by: Ruben Groenewoud <[email protected]> --------- Co-authored-by: Ruben Groenewoud <[email protected]>
1 parent 0fc83fe commit cc889e3

10 files changed

+83
-43
lines changed

rules/linux/command_and_control_linux_tunneling_and_port_forwarding.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/08/23"
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/07"
68

79
[transform]
810
[[transform.osquery]]
@@ -39,7 +41,7 @@ and gain unauthorized access to internal resources, facilitating data exfiltrati
3941
control.
4042
"""
4143
from = "now-9m"
42-
index = ["logs-endpoint.events.*", "endgame-*"]
44+
index = ["logs-endpoint.events.*", "endgame-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
4345
language = "eql"
4446
license = "Elastic License v2"
4547
name = "Potential Linux Tunneling and/or Port Forwarding"
@@ -145,12 +147,14 @@ tags = [
145147
"Tactic: Command and Control",
146148
"Data Source: Elastic Defend",
147149
"Data Source: Elastic Endgame",
150+
"Data Source: Crowdstrike",
151+
"Data Source: SentinelOne",
148152
]
149153
timestamp_override = "event.ingested"
150154
type = "eql"
151155

152156
query = '''
153-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and (
157+
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start", "ProcessRollup2") and (
154158
(
155159
// gost & pivotnacci - spawned without process.parent.name
156160
(process.name == "gost" and process.args : ("-L*", "-C*", "-R*")) or (process.name == "pivotnacci")) or (

rules/linux/credential_access_credential_dumping.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/02/27"
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/07"
68

79
[rule]
810
author = ["Elastic"]
@@ -14,7 +16,7 @@ password-cracking utilities or prepare themselves for future operations by gathe
1416
victim.
1517
"""
1618
from = "now-9m"
17-
index = ["logs-endpoint.events.*", "endgame-*"]
19+
index = ["logs-endpoint.events.*", "endgame-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
1820
language = "eql"
1921
license = "Elastic License v2"
2022
name = "Potential Linux Credential Dumping via Unshadow"
@@ -54,12 +56,14 @@ tags = [
5456
"Tactic: Credential Access",
5557
"Data Source: Elastic Defend",
5658
"Data Source: Elastic Endgame",
59+
"Data Source: Crowdstrike",
60+
"Data Source: SentinelOne",
5761
]
5862
timestamp_override = "event.ingested"
5963
type = "eql"
6064

6165
query = '''
62-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and
66+
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start", "ProcessRollup2") and
6367
process.name == "unshadow" and process.args_count >= 3
6468
'''
6569

rules/linux/credential_access_gdb_init_process_hooking.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/08/30"
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/07"
68

79
[rule]
810
author = ["Elastic"]
@@ -12,7 +14,7 @@ dumping techniques to attempt secret extraction from privileged processes. Tools
1214
"truffleproc" and "bash-memory-dump". This behavior should not happen by default, and should be investigated thoroughly.
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 = "Linux init (PID 1) Secret Dump via GDB"
@@ -52,12 +54,14 @@ tags = [
5254
"Tactic: Credential Access",
5355
"Data Source: Elastic Defend",
5456
"Data Source: Elastic Endgame",
57+
"Data Source: Crowdstrike",
58+
"Data Source: SentinelOne",
5559
]
5660
timestamp_override = "event.ingested"
5761
type = "eql"
5862

5963
query = '''
60-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and
64+
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start", "ProcessRollup2") and
6165
process.name == "gdb" and process.args in ("--pid", "-p") and process.args == "1"
6266
'''
6367

rules/linux/credential_access_gdb_process_hooking.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/08/30"
3-
integration = ["endpoint", "auditd_manager"]
3+
integration = ["endpoint", "auditd_manager", "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/07"
68

79
[rule]
810
author = ["Elastic"]
@@ -12,7 +14,7 @@ secret extraction from privileged processes. Tools that display this behavior in
1214
"bash-memory-dump". This behavior should not happen by default, and should be investigated thoroughly.
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 = "Linux Process Hooking via GDB"
@@ -28,12 +30,14 @@ tags = [
2830
"Data Source: Elastic Defend",
2931
"Data Source: Elastic Endgame",
3032
"Data Source: Auditd Manager",
33+
"Data Source: Crowdstrike",
34+
"Data Source: SentinelOne",
3135
]
3236
timestamp_override = "event.ingested"
3337
type = "eql"
3438

3539
query = '''
36-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "executed", "process_started")
40+
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start", "ProcessRollup2", "executed", "process_started")
3741
and process.name == "gdb" and process.args in ("--pid", "-p") and
3842
/* Covered by d4ff2f53-c802-4d2e-9fb9-9ecc08356c3f */
3943
process.args != "1"

rules/linux/credential_access_proc_credential_dumping.toml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2023/04/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/07"
68

79
[rule]
810
author = ["Elastic"]
@@ -13,7 +15,7 @@ known vulnerability CVE-2018-20781. Malicious actors can exploit the cleartext c
1315
process and extracting lines that have a high probability of containing cleartext passwords.
1416
"""
1517
from = "now-9m"
16-
index = ["logs-endpoint.events.*"]
18+
index = ["logs-endpoint.events.*", "logs-sentinel_one_cloud_funnel.*", "endgame-*"]
1719
language = "eql"
1820
license = "Elastic License v2"
1921
name = "Potential Linux Credential Dumping via Proc Filesystem"
@@ -56,14 +58,16 @@ tags = [
5658
"Tactic: Credential Access",
5759
"Use Case: Vulnerability",
5860
"Data Source: Elastic Defend",
61+
"Data Source: SentinelOne",
62+
"Data Source: Elastic Endgame",
5963
]
6064
type = "eql"
6165

6266
query = '''
6367
sequence by host.id, process.parent.name with maxspan=1m
64-
[process where host.os.type == "linux" and process.name == "ps" and event.action == "exec"
68+
[process where host.os.type == "linux" and process.name == "ps" and event.action in ("exec", "start", "exec_event")
6569
and process.args in ("-eo", "pid", "command")]
66-
[process where host.os.type == "linux" and process.name == "strings" and event.action == "exec"
70+
[process where host.os.type == "linux" and process.name == "strings" and event.action in ("exec", "start", "exec_event")
6771
and process.args : "/tmp/*"]
6872
'''
6973

rules/linux/defense_evasion_acl_modification_via_setfacl.toml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
[metadata]
22
creation_date = "2024/08/23"
3-
integration = ["endpoint", "auditd_manager"]
3+
integration = ["endpoint", "auditd_manager", "crowdstrike", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/10/18"
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/07"
68

79
[rule]
810
author = ["Elastic"]
911
description = """
1012
This rule detects Linux Access Control List (ACL) modification via the setfacl command.
1113
"""
1214
from = "now-9m"
13-
index = ["logs-endpoint.events.*", "endgame-*", "auditbeat-*", "logs-auditd_manager.auditd-*"]
15+
index = ["logs-endpoint.events.*", "endgame-*", "auditbeat-*", "logs-auditd_manager.auditd-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
1416
language = "eql"
1517
license = "Elastic License v2"
1618
name = "Access Control List Modification via setfacl"
@@ -26,12 +28,14 @@ tags = [
2628
"Data Source: Elastic Defend",
2729
"Data Source: Elastic Endgame",
2830
"Data Source: Auditd Manager",
31+
"Data Source: Crowdstrike",
32+
"Data Source: SentinelOne",
2933
]
3034
timestamp_override = "event.ingested"
3135
type = "eql"
3236
query = '''
3337
process where host.os.type == "linux" and event.type == "start" and
34-
event.action in ("exec", "exec_event", "executed", "process_started") and
38+
event.action in ("exec", "exec_event", "start", "ProcessRollup2", "executed", "process_started") and
3539
process.name == "setfacl" and not (
3640
process.command_line == "/bin/setfacl --restore=-" or
3741
process.args == "/var/log/journal/"

rules/linux/defense_evasion_attempt_to_disable_auditd_service.toml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2024/08/28"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "crowdstrike", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/08/28"
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/07"
68

79
[rule]
810
author = ["Elastic"]
@@ -12,7 +14,7 @@ provides system auditing and logging. Disabling the Auditd service can prevent t
1214
security events, which can be used to detect malicious activity.
1315
"""
1416
from = "now-9m"
15-
index = ["logs-endpoint.events.process*", "endgame-*"]
17+
index = ["logs-endpoint.events.process*", "endgame-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
1618
language = "eql"
1719
license = "Elastic License v2"
1820
name = "Attempt to Disable Auditd Service"
@@ -51,11 +53,13 @@ tags = [
5153
"Tactic: Defense Evasion",
5254
"Data Source: Elastic Defend",
5355
"Data Source: Elastic Endgame",
56+
"Data Source: Crowdstrike",
57+
"Data Source: SentinelOne",
5458
]
5559
timestamp_override = "event.ingested"
5660
type = "eql"
5761
query = '''
58-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and (
62+
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start", "ProcessRollup2") and (
5963
(process.name == "service" and process.args == "stop") or
6064
(process.name == "chkconfig" and process.args == "off") or
6165
(process.name == "systemctl" and process.args in ("disable", "stop", "kill"))

rules/linux/defense_evasion_attempt_to_disable_iptables_or_firewall.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/02/22"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/09/23"
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/07"
68

79
[rule]
810
author = ["Elastic"]
@@ -11,7 +13,7 @@ Adversaries may attempt to disable the iptables or firewall service in an attemp
1113
receive or send network traffic.
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 = "Attempt to Disable IPTables or Firewall"
@@ -51,12 +53,13 @@ tags = [
5153
"Tactic: Defense Evasion",
5254
"Data Source: Elastic Defend",
5355
"Data Source: Elastic Endgame",
56+
"Data Source: SentinelOne",
5457
]
5558
timestamp_override = "event.ingested"
5659
type = "eql"
5760

5861
query = '''
59-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event") and
62+
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "start") and
6063
(
6164
/* disable FW */
6265
(

rules/linux/defense_evasion_attempt_to_disable_syslog_service.toml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2020/04/27"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "crowdstrike", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/09/23"
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/07"
68

79
[rule]
810
author = ["Elastic"]
@@ -11,7 +13,7 @@ Adversaries may attempt to disable the syslog service in an attempt to an attemp
1113
detection by security controls.
1214
"""
1315
from = "now-9m"
14-
index = ["auditbeat-*", "logs-endpoint.events.*", "endgame-*"]
16+
index = ["auditbeat-*", "logs-endpoint.events.*", "endgame-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
1517
language = "eql"
1618
license = "Elastic License v2"
1719
name = "Attempt to Disable Syslog Service"
@@ -63,16 +65,18 @@ tags = [
6365
"Tactic: Defense Evasion",
6466
"Data Source: Elastic Endgame",
6567
"Data Source: Elastic Defend",
68+
"Data Source: Crowdstrike",
69+
"Data Source: SentinelOne",
6670
]
6771
timestamp_override = "event.ingested"
6872
type = "eql"
6973

7074
query = '''
71-
process where host.os.type == "linux" and event.action in ("exec", "exec_event") and
75+
process where host.os.type == "linux" and event.action in ("exec", "exec_event", "start", "ProcessRollup2") and
7276
( (process.name == "service" and process.args == "stop") or
7377
(process.name == "chkconfig" and process.args == "off") or
7478
(process.name == "systemctl" and process.args in ("disable", "stop", "kill"))
75-
) and process.args in ("syslog", "rsyslog", "syslog-ng")
79+
) and process.args in ("syslog", "rsyslog", "syslog-ng", "syslog.service", "rsyslog.service", "syslog-ng.service")
7680
'''
7781

7882

rules/linux/defense_evasion_base16_or_base32_encoding_or_decoding_activity.toml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2020/04/17"
3-
integration = ["endpoint", "auditd_manager"]
3+
integration = ["endpoint", "auditd_manager", "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/07"
68

79
[rule]
810
author = ["Elastic"]
@@ -14,7 +16,7 @@ false_positives = [
1416
""",
1517
]
1618
from = "now-9m"
17-
index = ["logs-endpoint.events.*", "endgame-*", "auditbeat-*", "logs-auditd_manager.auditd-*"]
19+
index = ["logs-endpoint.events.*", "endgame-*", "auditbeat-*", "logs-auditd_manager.auditd-*", "logs-crowdstrike.fdr*", "logs-sentinel_one_cloud_funnel.*"]
1820
language = "eql"
1921
license = "Elastic License v2"
2022
name = "Base16 or Base32 Encoding/Decoding Activity"
@@ -66,13 +68,16 @@ tags = [
6668
"Data Source: Elastic Endgame",
6769
"Data Source: Elastic Defend",
6870
"Data Source: Auditd Manager",
71+
"Data Source: Crowdstrike",
72+
"Data Source: SentinelOne",
6973
]
7074
timestamp_override = "event.ingested"
7175
type = "eql"
7276

7377
query = '''
74-
process where host.os.type == "linux" and event.type == "start" and event.action in ("exec", "exec_event", "executed", "process_started")
75-
and process.name in ("base16", "base32", "base32plain", "base32hex") and
78+
process where host.os.type == "linux" and event.type == "start" and
79+
event.action in ("exec", "exec_event", "start", "ProcessRollup2", "executed", "process_started") and
80+
process.name in ("base16", "base32", "base32plain", "base32hex") and
7681
not process.args in ("--help", "--version")
7782
'''
7883

0 commit comments

Comments
 (0)