Skip to content

Commit 250e58d

Browse files
w0rk3rgithub-actions[bot]
authored andcommitted
[Rule Tuning] 3rd Party EDR Compatibility - 16 (#4041)
* [Rule Tuning] 3rd Party EDR Compatibility - 16 * Update rules/windows/privilege_escalation_printspooler_suspicious_file_deletion.toml * min_stack for merge, bump updated_date --------- Co-authored-by: Ruben Groenewoud <[email protected]> (cherry picked from commit 7385f9d)
1 parent b83128c commit 250e58d

10 files changed

+77
-79
lines changed

rules/windows/persistence_webshell_detection.toml

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[metadata]
22
creation_date = "2021/08/24"
3-
integration = ["endpoint", "windows", "system", "sentinel_one_cloud_funnel"]
3+
integration = ["endpoint", "windows", "system", "sentinel_one_cloud_funnel", "m365_defender"]
44
maturity = "production"
55
min_stack_comments = "Breaking change at 8.13.0 for SentinelOne Integration."
66
min_stack_version = "8.13.0"
7-
updated_date = "2024/08/07"
7+
updated_date = "2024/10/10"
88

99
[rule]
1010
author = ["Elastic"]
@@ -16,7 +16,7 @@ false_positives = [
1616
""",
1717
]
1818
from = "now-9m"
19-
index = ["winlogbeat-*", "logs-endpoint.events.process-*", "logs-windows.*", "endgame-*", "logs-system.security*", "logs-sentinel_one_cloud_funnel.*"]
19+
index = ["winlogbeat-*", "logs-endpoint.events.process-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-system.security*", "logs-sentinel_one_cloud_funnel.*", "logs-m365_defender.event-*"]
2020
language = "eql"
2121
license = "Elastic License v2"
2222
name = "Web Shell Detection: Script Process Child of Common Web Processes"
@@ -70,16 +70,8 @@ references = [
7070
]
7171
risk_score = 73
7272
rule_id = "2917d495-59bd-4250-b395-c29409b76086"
73-
setup = """## Setup
74-
75-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
76-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
77-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
78-
`event.ingested` to @timestamp.
79-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
80-
"""
8173
severity = "high"
82-
tags = ["Domain: Endpoint", "OS: Windows", "Use Case: Threat Detection", "Tactic: Persistence", "Tactic: Initial Access", "Tactic: Execution", "Resources: Investigation Guide", "Data Source: Elastic Endgame", "Data Source: Elastic Defend", "Data Source: SentinelOne", "Data Source: System"]
74+
tags = ["Domain: Endpoint", "OS: Windows", "Use Case: Threat Detection", "Tactic: Persistence", "Tactic: Initial Access", "Tactic: Execution", "Resources: Investigation Guide", "Data Source: Elastic Endgame", "Data Source: Elastic Defend", "Data Source: SentinelOne", "Data Source: System", "Data Source: Microsoft Defender for Endpoint", "Data Source: Sysmon"]
8375
timestamp_override = "event.ingested"
8476
type = "eql"
8577

rules/windows/persistence_werfault_reflectdebugger.toml

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

79
[rule]
810
author = ["Elastic"]
@@ -11,7 +13,7 @@ Identifies the registration of a Werfault Debugger. Attackers may abuse this mec
1113
every time the utility is executed with the "-pr" parameter.
1214
"""
1315
from = "now-9m"
14-
index = ["logs-endpoint.events.registry-*", "endgame-*"]
16+
index = ["logs-endpoint.events.registry-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*", "logs-windows.sysmon_operational-*"]
1517
language = "eql"
1618
license = "Elastic License v2"
1719
name = "Werfault ReflectDebugger Persistence"
@@ -26,6 +28,9 @@ tags = [
2628
"Tactic: Persistence",
2729
"Data Source: Elastic Endgame",
2830
"Data Source: Elastic Defend",
31+
"Data Source: Microsoft Defender for Endpoint",
32+
"Data Source: SentinelOne",
33+
"Data Source: Sysmon",
2934
]
3035
timestamp_override = "event.ingested"
3136
type = "eql"
@@ -34,7 +39,8 @@ query = '''
3439
registry where host.os.type == "windows" and event.type == "change" and
3540
registry.path : (
3641
"HKLM\\Software\\Microsoft\\Windows\\Windows Error Reporting\\Hangs\\ReflectDebugger",
37-
"\\REGISTRY\\MACHINE\\Software\\Microsoft\\Windows\\Windows Error Reporting\\Hangs\\ReflectDebugger"
42+
"\\REGISTRY\\MACHINE\\Software\\Microsoft\\Windows\\Windows Error Reporting\\Hangs\\ReflectDebugger",
43+
"MACHINE\\Software\\Microsoft\\Windows\\Windows Error Reporting\\Hangs\\ReflectDebugger"
3844
)
3945
'''
4046

rules/windows/privilege_escalation_disable_uac_registry.toml

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

79
[rule]
810
author = ["Elastic"]
@@ -13,7 +15,7 @@ administrator-level access to the system. This rule identifies registry value ch
1315
(UAC) protection.
1416
"""
1517
from = "now-9m"
16-
index = ["winlogbeat-*", "logs-endpoint.events.registry-*", "logs-windows.sysmon_operational-*", "endgame-*"]
18+
index = ["winlogbeat-*", "logs-endpoint.events.registry-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
1719
language = "eql"
1820
license = "Elastic License v2"
1921
name = "Disabling User Account Control via Registry Modification"
@@ -72,14 +74,6 @@ references = [
7274
]
7375
risk_score = 47
7476
rule_id = "d31f183a-e5b1-451b-8534-ba62bca0b404"
75-
setup = """## Setup
76-
77-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
78-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
79-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
80-
`event.ingested` to @timestamp.
81-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
82-
"""
8377
severity = "medium"
8478
tags = [
8579
"Domain: Endpoint",
@@ -90,6 +84,8 @@ tags = [
9084
"Data Source: Elastic Endgame",
9185
"Data Source: Elastic Defend",
9286
"Data Source: Sysmon",
87+
"Data Source: Microsoft Defender for Endpoint",
88+
"Data Source: SentinelOne",
9389
]
9490
timestamp_override = "event.ingested"
9591
type = "eql"
@@ -103,7 +99,10 @@ registry where host.os.type == "windows" and event.type == "change" and
10399
"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\PromptOnSecureDesktop",
104100
"\\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\EnableLUA",
105101
"\\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\ConsentPromptBehaviorAdmin",
106-
"\\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\PromptOnSecureDesktop"
102+
"\\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\PromptOnSecureDesktop",
103+
"MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\EnableLUA",
104+
"MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\ConsentPromptBehaviorAdmin",
105+
"MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\PromptOnSecureDesktop"
107106
) and
108107
registry.data.strings : ("0", "0x00000000")
109108
'''

rules/windows/privilege_escalation_exploit_cve_202238028.toml

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

79
[rule]
810
author = ["Elastic"]
911
description = "Identifies a privilege escalation attempt via exploiting CVE-2022-38028 to hijack the print spooler service execution.\n"
1012
from = "now-9m"
11-
index = ["logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*", "winlogbeat-*"]
13+
index = ["logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*", "winlogbeat-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
1214
language = "eql"
1315
license = "Elastic License v2"
1416
name = "Potential privilege escalation via CVE-2022-38028"
@@ -27,6 +29,8 @@ tags = [
2729
"Data Source: Elastic Endgame",
2830
"Data Source: Elastic Defend",
2931
"Data Source: Sysmon",
32+
"Data Source: Microsoft Defender for Endpoint",
33+
"Data Source: SentinelOne",
3034
]
3135
timestamp_override = "event.ingested"
3236
type = "eql"

rules/windows/privilege_escalation_gpo_schtask_service_creation.toml

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

79
[rule]
810
author = ["Elastic"]
@@ -12,20 +14,12 @@ legitimate system administration, but can also be abused by an attacker with dom
1214
malicious payload remotely on all or a subset of the domain joined machines.
1315
"""
1416
from = "now-9m"
15-
index = ["winlogbeat-*", "logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*"]
17+
index = ["winlogbeat-*", "logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
1618
language = "eql"
1719
license = "Elastic License v2"
1820
name = "Creation or Modification of a new GPO Scheduled Task or Service"
1921
risk_score = 21
2022
rule_id = "c0429aa8-9974-42da-bfb6-53a0a515a145"
21-
setup = """## Setup
22-
23-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
24-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
25-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
26-
`event.ingested` to @timestamp.
27-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
28-
"""
2923
severity = "low"
3024
tags = [
3125
"Domain: Endpoint",
@@ -36,14 +30,18 @@ tags = [
3630
"Data Source: Elastic Endgame",
3731
"Data Source: Elastic Defend",
3832
"Data Source: Sysmon",
33+
"Data Source: Microsoft Defender for Endpoint",
34+
"Data Source: SentinelOne",
3935
]
4036
timestamp_override = "event.ingested"
4137
type = "eql"
4238

4339
query = '''
44-
file where host.os.type == "windows" and event.type != "deletion" and
45-
file.path : ("?:\\Windows\\SYSVOL\\domain\\Policies\\*\\MACHINE\\Preferences\\ScheduledTasks\\ScheduledTasks.xml",
46-
"?:\\Windows\\SYSVOL\\domain\\Policies\\*\\MACHINE\\Preferences\\Services\\Services.xml") and
40+
file where host.os.type == "windows" and event.type != "deletion" and file.name : "ScheduledTasks.xml" and
41+
file.path : (
42+
"?:\\Windows\\SYSVOL\\domain\\Policies\\*\\MACHINE\\Preferences\\ScheduledTasks\\ScheduledTasks.xml",
43+
"?:\\Windows\\SYSVOL\\domain\\Policies\\*\\MACHINE\\Preferences\\Services\\Services.xml"
44+
) and
4745
not process.name : "dfsrs.exe"
4846
'''
4947

rules/windows/privilege_escalation_lsa_auth_package.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[metadata]
22
creation_date = "2021/01/21"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "m365_defender"]
44
maturity = "production"
5-
updated_date = "2024/05/21"
5+
updated_date = "2024/10/10"
66

77
[rule]
88
author = ["Elastic"]
@@ -12,7 +12,7 @@ privilege escalation or persistence by placing a reference to a binary in the Wi
1212
executed by SYSTEM when the authentication packages are loaded.
1313
"""
1414
from = "now-9m"
15-
index = ["logs-endpoint.events.registry-*", "endgame-*"]
15+
index = ["logs-endpoint.events.registry-*", "endgame-*", "logs-m365_defender.event-*"]
1616
language = "eql"
1717
license = "Elastic License v2"
1818
name = "Potential LSA Authentication Package Abuse"
@@ -26,6 +26,7 @@ tags = [
2626
"Tactic: Privilege Escalation",
2727
"Data Source: Elastic Endgame",
2828
"Data Source: Elastic Defend",
29+
"Data Source: Microsoft Defender for Endpoint",
2930
]
3031
timestamp_override = "event.ingested"
3132
type = "eql"

rules/windows/privilege_escalation_named_pipe_impersonation.toml

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

79
[transform]
810
[[transform.osquery]]
@@ -40,9 +42,12 @@ from = "now-9m"
4042
index = [
4143
"winlogbeat-*",
4244
"logs-endpoint.events.process-*",
43-
"logs-windows.*",
45+
"logs-windows.forwarded*",
46+
"logs-windows.sysmon_operational-*",
4447
"endgame-*",
4548
"logs-system.security*",
49+
"logs-m365_defender.event-*",
50+
"logs-sentinel_one_cloud_funnel.*",
4651
]
4752
language = "eql"
4853
license = "Elastic License v2"
@@ -104,14 +109,6 @@ references = [
104109
]
105110
risk_score = 73
106111
rule_id = "3ecbdc9e-e4f2-43fa-8cca-63802125e582"
107-
setup = """## Setup
108-
109-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
110-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
111-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
112-
`event.ingested` to @timestamp.
113-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
114-
"""
115112
severity = "high"
116113
tags = [
117114
"Domain: Endpoint",
@@ -122,6 +119,9 @@ tags = [
122119
"Data Source: Elastic Endgame",
123120
"Data Source: Elastic Defend",
124121
"Data Source: System",
122+
"Data Source: Microsoft Defender for Endpoint",
123+
"Data Source: Sysmon",
124+
"Data Source: SentinelOne",
125125
]
126126
timestamp_override = "event.ingested"
127127
type = "eql"

rules/windows/privilege_escalation_port_monitor_print_pocessor_abuse.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[metadata]
22
creation_date = "2021/01/21"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "m365_defender"]
44
maturity = "production"
5-
updated_date = "2024/08/05"
5+
updated_date = "2024/10/10"
66

77
[rule]
88
author = ["Elastic"]
@@ -12,7 +12,7 @@ processors to run malicious DLLs during system boot that will be executed as SYS
1212
persistence, if permissions allow writing a fully-qualified pathname for that DLL.
1313
"""
1414
from = "now-9m"
15-
index = ["logs-endpoint.events.registry-*", "endgame-*"]
15+
index = ["logs-endpoint.events.registry-*", "endgame-*", "logs-m365_defender.event-*"]
1616
language = "eql"
1717
license = "Elastic License v2"
1818
name = "Potential Port Monitor or Print Processor Registration Abuse"
@@ -27,6 +27,7 @@ tags = [
2727
"Tactic: Privilege Escalation",
2828
"Data Source: Elastic Endgame",
2929
"Data Source: Elastic Defend",
30+
"Data Source: Microsoft Defender for Endpoint",
3031
]
3132
timestamp_override = "event.ingested"
3233
type = "eql"

rules/windows/privilege_escalation_printspooler_suspicious_file_deletion.toml

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

79
[rule]
810
author = ["Elastic"]
@@ -17,21 +19,13 @@ false_positives = [
1719
""",
1820
]
1921
from = "now-9m"
20-
index = ["winlogbeat-*", "logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*"]
22+
index = ["winlogbeat-*", "logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
2123
language = "eql"
2224
license = "Elastic License v2"
2325
name = "Suspicious Print Spooler File Deletion"
2426
references = ["https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527"]
2527
risk_score = 47
2628
rule_id = "c4818812-d44f-47be-aaef-4cfb2f9cc799"
27-
setup = """## Setup
28-
29-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
30-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
31-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
32-
`event.ingested` to @timestamp.
33-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
34-
"""
3529
severity = "medium"
3630
tags = [
3731
"Domain: Endpoint",
@@ -42,14 +36,16 @@ tags = [
4236
"Use Case: Vulnerability",
4337
"Data Source: Elastic Defend",
4438
"Data Source: Sysmon",
39+
"Data Source: Microsoft Defender for Endpoint",
40+
"Data Source: SentinelOne",
4541
]
4642
timestamp_override = "event.ingested"
4743
type = "eql"
4844

4945
query = '''
50-
file where host.os.type == "windows" and event.type : "deletion" and
51-
not process.name : ("spoolsv.exe", "dllhost.exe", "explorer.exe") and
52-
file.path : "?:\\Windows\\System32\\spool\\drivers\\x64\\3\\*.dll"
46+
file where host.os.type == "windows" and event.type == "deletion" and
47+
file.extension : "dll" and file.path : "?:\\Windows\\System32\\spool\\drivers\\x64\\3\\*.dll" and
48+
not process.name : ("spoolsv.exe", "dllhost.exe", "explorer.exe")
5349
'''
5450

5551

0 commit comments

Comments
 (0)