Skip to content

Commit 14e381e

Browse files
w0rk3rgithub-actions[bot]
authored andcommitted
[Rule Tuning] 3rd Party EDR Compatibility - 14 (#4039)
* [Rule Tuning] 3rd Party EDR Compatibility - 14 * min_stack for merge, bump updated_date (cherry picked from commit 10a8cef)
1 parent 14fab70 commit 14e381e

10 files changed

+82
-75
lines changed

rules/windows/persistence_ms_office_addins_file.toml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,22 @@
11
[metadata]
22
creation_date = "2020/10/16"
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"]
911
description = "Detects attempts to establish persistence on an endpoint by abusing Microsoft Office add-ins."
1012
from = "now-9m"
11-
index = ["logs-endpoint.events.file-*", "winlogbeat-*", "logs-windows.sysmon_operational-*", "endgame-*"]
13+
index = ["logs-endpoint.events.file-*", "winlogbeat-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
1214
language = "eql"
1315
license = "Elastic License v2"
1416
name = "Persistence via Microsoft Office AddIns"
1517
references = ["https://labs.withsecure.com/publications/add-in-opportunities-for-office-persistence"]
1618
risk_score = 73
1719
rule_id = "f44fa4b6-524c-4e87-8d9e-a32599e4fb7c"
18-
setup = """## Setup
19-
20-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
21-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
22-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
23-
`event.ingested` to @timestamp.
24-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
25-
"""
2620
severity = "high"
2721
tags = [
2822
"Domain: Endpoint",
@@ -32,6 +26,8 @@ tags = [
3226
"Data Source: Elastic Endgame",
3327
"Data Source: Elastic Defend",
3428
"Data Source: Sysmon",
29+
"Data Source: Microsoft Defender for Endpoint",
30+
"Data Source: SentinelOne",
3531
]
3632
timestamp_override = "event.ingested"
3733
type = "eql"

rules/windows/persistence_ms_outlook_vba_template.toml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
[metadata]
22
creation_date = "2020/11/23"
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"]
911
description = "Detects attempts to establish persistence on an endpoint by installing a rogue Microsoft Outlook VBA Template."
1012
false_positives = ["A legitimate VBA for Outlook is usually configured interactively via OUTLOOK.EXE."]
1113
from = "now-9m"
12-
index = ["logs-endpoint.events.file-*", "winlogbeat-*", "logs-windows.sysmon_operational-*", "endgame-*"]
14+
index = ["logs-endpoint.events.file-*", "winlogbeat-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
1315
language = "eql"
1416
license = "Elastic License v2"
1517
name = "Persistence via Microsoft Outlook VBA"
@@ -19,14 +21,6 @@ references = [
1921
]
2022
risk_score = 47
2123
rule_id = "397945f3-d39a-4e6f-8bcb-9656c2031438"
22-
setup = """## Setup
23-
24-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
25-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
26-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
27-
`event.ingested` to @timestamp.
28-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
29-
"""
3024
severity = "medium"
3125
tags = [
3226
"Domain: Endpoint",
@@ -36,6 +30,8 @@ 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"

rules/windows/persistence_msoffice_startup_registry.toml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2023/08/22"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "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"]
@@ -12,7 +14,7 @@ specify a DLL which will be executed every time an MS Office application is star
1214
persistence on a compromised host.
1315
"""
1416
from = "now-9m"
15-
index = ["logs-endpoint.events.registry-*"]
17+
index = ["logs-endpoint.events.registry-*", "logs-m365_defender.event-*", "endgame-*", "logs-sentinel_one_cloud_funnel.*"]
1618
language = "eql"
1719
license = "Elastic License v2"
1820
name = "Office Test Registry Persistence"
@@ -29,6 +31,9 @@ tags = [
2931
"Tactic: Persistence",
3032
"Tactic: Defense Evasion",
3133
"Data Source: Elastic Defend",
34+
"Data Source: Elastic Endgame",
35+
"Data Source: Microsoft Defender for Endpoint",
36+
"Data Source: SentinelOne",
3237
]
3338
timestamp_override = "event.ingested"
3439
type = "eql"

rules/windows/persistence_netsh_helper_dll.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"]
@@ -12,7 +14,7 @@ functionality. Attackers may abuse this mechanism to execute malicious payloads
1214
which can be done by administrators or a scheduled task.
1315
"""
1416
from = "now-9m"
15-
index = ["logs-endpoint.events.registry-*", "endgame-*"]
17+
index = ["logs-endpoint.events.registry-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*", "logs-windows.sysmon_operational-*"]
1618
language = "eql"
1719
license = "Elastic License v2"
1820
name = "Netsh Helper DLL"
@@ -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\\netsh\\*",
37-
"\\REGISTRY\\MACHINE\\Software\\Microsoft\\netsh\\*"
42+
"\\REGISTRY\\MACHINE\\Software\\Microsoft\\netsh\\*",
43+
"MACHINE\\Software\\Microsoft\\netsh\\*"
3844
)
3945
'''
4046

rules/windows/persistence_powershell_exch_mailbox_activesync_add_device.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/12/15"
3-
integration = ["endpoint", "windows"]
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
[rule]
810
author = ["Elastic"]
@@ -15,9 +17,12 @@ from = "now-9m"
1517
index = [
1618
"logs-endpoint.events.process-*",
1719
"winlogbeat-*",
18-
"logs-windows.*",
20+
"logs-windows.forwarded*",
21+
"logs-windows.sysmon_operational-*",
1922
"endgame-*",
2023
"logs-system.security*",
24+
"logs-m365_defender.event-*",
25+
"logs-sentinel_one_cloud_funnel.*",
2126
]
2227
language = "eql"
2328
license = "Elastic License v2"
@@ -28,14 +33,6 @@ references = [
2833
]
2934
risk_score = 47
3035
rule_id = "ce64d965-6cb0-466d-b74f-8d2c76f47f05"
31-
setup = """## Setup
32-
33-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
34-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
35-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
36-
`event.ingested` to @timestamp.
37-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
38-
"""
3936
severity = "medium"
4037
tags = [
4138
"Domain: Endpoint",
@@ -46,6 +43,9 @@ tags = [
4643
"Data Source: Elastic Endgame",
4744
"Data Source: Elastic Defend",
4845
"Data Source: System",
46+
"Data Source: Microsoft Defender for Endpoint",
47+
"Data Source: Sysmon",
48+
"Data Source: SentinelOne",
4949
]
5050
timestamp_override = "event.ingested"
5151
type = "eql"

rules/windows/persistence_powershell_profiles.toml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2022/10/13"
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
[transform]
810
[[transform.osquery]]
@@ -38,7 +40,7 @@ PowerShell starts to customize the user environment, which can be abused by atta
3840
PowerShell is common.
3941
"""
4042
from = "now-9m"
41-
index = ["winlogbeat-*", "logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*"]
43+
index = ["winlogbeat-*", "logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
4244
language = "eql"
4345
license = "Elastic License v2"
4446
name = "Persistence via PowerShell profile"
@@ -111,6 +113,8 @@ tags = [
111113
"Data Source: Elastic Endgame",
112114
"Data Source: Elastic Defend",
113115
"Data Source: Sysmon",
116+
"Data Source: Microsoft Defender for Endpoint",
117+
"Data Source: SentinelOne",
114118
]
115119
timestamp_override = "event.ingested"
116120
type = "eql"

rules/windows/persistence_priv_escalation_via_accessibility_features.toml

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

77
[transform]
88
[[transform.osquery]]
@@ -38,7 +38,7 @@ adversary can modify the way these programs are launched to get a command prompt
3838
system.
3939
"""
4040
from = "now-9m"
41-
index = ["winlogbeat-*", "logs-endpoint.events.process-*", "logs-windows.sysmon_operational-*", "endgame-*"]
41+
index = ["winlogbeat-*", "logs-endpoint.events.process-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*"]
4242
language = "eql"
4343
license = "Elastic License v2"
4444
name = "Potential Modification of Accessibility Binaries"
@@ -99,14 +99,6 @@ This rule looks for the execution of supposed accessibility binaries that don't
9999
references = ["https://www.elastic.co/blog/practical-security-engineering-stateful-detection"]
100100
risk_score = 73
101101
rule_id = "7405ddf1-6c8e-41ce-818f-48bea6bcaed8"
102-
setup = """## Setup
103-
104-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
105-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
106-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
107-
`event.ingested` to @timestamp.
108-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
109-
"""
110102
severity = "high"
111103
tags = [
112104
"Domain: Endpoint",
@@ -117,6 +109,7 @@ tags = [
117109
"Data Source: Elastic Endgame",
118110
"Data Source: Elastic Defend",
119111
"Data Source: Sysmon",
112+
"Data Source: Microsoft Defender for Endpoint",
120113
]
121114
timestamp_override = "event.ingested"
122115
type = "eql"

rules/windows/persistence_services_registry.toml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2020/11/18"
3-
integration = ["endpoint"]
3+
integration = ["endpoint", "windows", "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
[rule]
810
author = ["Elastic"]
@@ -12,7 +14,7 @@ could be an indication of an adversary attempting to stealthily persist through
1214
modification of an existing service.
1315
"""
1416
from = "now-9m"
15-
index = ["logs-endpoint.events.registry-*", "endgame-*", "logs-windows.sysmon_operational-*", "winlogbeat-*"]
17+
index = ["logs-endpoint.events.registry-*", "endgame-*", "logs-windows.sysmon_operational-*", "winlogbeat-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
1618
language = "eql"
1719
license = "Elastic License v2"
1820
name = "Unusual Persistence via Services Registry"
@@ -28,6 +30,8 @@ tags = [
2830
"Data Source: Elastic Endgame",
2931
"Data Source: Elastic Defend",
3032
"Data Source: Sysmon",
33+
"Data Source: Microsoft Defender for Endpoint",
34+
"Data Source: SentinelOne",
3135
]
3236
timestamp_override = "event.ingested"
3337
type = "eql"
@@ -39,7 +43,9 @@ registry where host.os.type == "windows" and event.type == "change" and
3943
"HKLM\\SYSTEM\\ControlSet*\\Services\\*\\ServiceDLL",
4044
"HKLM\\SYSTEM\\ControlSet*\\Services\\*\\ImagePath",
4145
"\\REGISTRY\\MACHINE\\SYSTEM\\ControlSet*\\Services\\*\\ServiceDLL",
42-
"\\REGISTRY\\MACHINE\\SYSTEM\\ControlSet*\\Services\\*\\ImagePath"
46+
"\\REGISTRY\\MACHINE\\SYSTEM\\ControlSet*\\Services\\*\\ImagePath",
47+
"MACHINE\\SYSTEM\\ControlSet*\\Services\\*\\ServiceDLL",
48+
"MACHINE\\SYSTEM\\ControlSet*\\Services\\*\\ImagePath"
4349
) and not registry.data.strings : (
4450
"?:\\windows\\system32\\Drivers\\*.sys",
4551
"\\SystemRoot\\System32\\drivers\\*.sys",

rules/windows/persistence_startup_folder_file_written_by_suspicious_process.toml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2020/11/18"
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
[transform]
810
[[transform.osquery]]
@@ -37,7 +39,7 @@ Identifies files written to or modified in the startup folder by commonly abused
3739
technique to maintain persistence.
3840
"""
3941
from = "now-9m"
40-
index = ["winlogbeat-*", "logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*"]
42+
index = ["winlogbeat-*", "logs-endpoint.events.file-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
4143
language = "eql"
4244
license = "Elastic License v2"
4345
name = "Startup Persistence by a Suspicious Process"
@@ -103,14 +105,6 @@ references = [
103105
]
104106
risk_score = 47
105107
rule_id = "440e2db4-bc7f-4c96-a068-65b78da59bde"
106-
setup = """## Setup
107-
108-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
109-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
110-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
111-
`event.ingested` to @timestamp.
112-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
113-
"""
114108
severity = "medium"
115109
tags = [
116110
"Domain: Endpoint",
@@ -121,6 +115,8 @@ tags = [
121115
"Data Source: Elastic Endgame",
122116
"Data Source: Elastic Defend",
123117
"Data Source: Sysmon",
118+
"Data Source: Microsoft Defender for Endpoint",
119+
"Data Source: SentinelOne",
124120
]
125121
timestamp_override = "event.ingested"
126122
type = "eql"

0 commit comments

Comments
 (0)