Skip to content

Commit 14fab70

Browse files
w0rk3rgithub-actions[bot]
authored andcommitted
[Rule Tuning] 3rd Party EDR Compatibility - 13 (#4038)
* [Rule Tuning] 3rd Party EDR Compatibility - 13 * min_stack for merge, bump updated_date (cherry picked from commit 07c4535)
1 parent f631518 commit 14fab70

10 files changed

+98
-85
lines changed

rules/windows/lateral_movement_remote_file_copy_hidden_share.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/04"
3-
integration = ["endpoint", "windows"]
3+
integration = ["endpoint", "windows", "system", "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"]
@@ -14,24 +16,19 @@ from = "now-9m"
1416
index = [
1517
"logs-endpoint.events.process-*",
1618
"winlogbeat-*",
17-
"logs-windows.*",
19+
"logs-windows.forwarded*",
20+
"logs-windows.sysmon_operational-*",
1821
"endgame-*",
1922
"logs-system.security*",
23+
"logs-m365_defender.event-*",
24+
"logs-sentinel_one_cloud_funnel.*",
2025
]
2126
language = "eql"
2227
license = "Elastic License v2"
2328
name = "Remote File Copy to a Hidden Share"
2429
references = ["https://www.elastic.co/security-labs/hunting-for-lateral-movement-using-event-query-language"]
2530
risk_score = 47
2631
rule_id = "fa01341d-6662-426b-9d0c-6d81e33c8a9d"
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-
"""
3532
severity = "medium"
3633
tags = [
3734
"Domain: Endpoint",
@@ -41,6 +38,9 @@ tags = [
4138
"Data Source: Elastic Endgame",
4239
"Data Source: Elastic Defend",
4340
"Data Source: System",
41+
"Data Source: Microsoft Defender for Endpoint",
42+
"Data Source: Sysmon",
43+
"Data Source: SentinelOne",
4444
]
4545
timestamp_override = "event.ingested"
4646
type = "eql"

rules/windows/lateral_movement_unusual_dns_service_children.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/07/16"
3-
integration = ["endpoint", "windows"]
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"]
@@ -21,9 +23,12 @@ from = "now-9m"
2123
index = [
2224
"winlogbeat-*",
2325
"logs-endpoint.events.process-*",
24-
"logs-windows.*",
26+
"logs-windows.forwarded*",
27+
"logs-windows.sysmon_operational-*",
2528
"endgame-*",
2629
"logs-system.security*",
30+
"logs-m365_defender.event-*",
31+
"logs-sentinel_one_cloud_funnel.*",
2732
]
2833
language = "eql"
2934
license = "Elastic License v2"
@@ -72,14 +77,6 @@ references = [
7277
]
7378
risk_score = 73
7479
rule_id = "8c37dc0e-e3ac-4c97-8aa0-cf6a9122de45"
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-
"""
8380
severity = "high"
8481
tags = [
8582
"Domain: Endpoint",
@@ -91,6 +88,9 @@ tags = [
9188
"Use Case: Vulnerability",
9289
"Data Source: Elastic Defend",
9390
"Data Source: System",
91+
"Data Source: Microsoft Defender for Endpoint",
92+
"Data Source: Sysmon",
93+
"Data Source: SentinelOne",
9494
]
9595
timestamp_override = "event.ingested"
9696
type = "eql"

rules/windows/lateral_movement_via_startup_folder_rdp_smb.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/10/19"
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"]
@@ -11,7 +13,7 @@ Identifies suspicious file creations in the startup folder of a remote system. A
1113
laterally by dropping a malicious script or executable that will be executed after a reboot or user logon.
1214
"""
1315
from = "now-9m"
14-
index = ["logs-endpoint.events.file-*", "winlogbeat-*", "logs-windows.sysmon_operational-*", "endgame-*"]
16+
index = ["logs-endpoint.events.file-*", "winlogbeat-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
1517
language = "eql"
1618
license = "Elastic License v2"
1719
name = "Lateral Movement via Startup Folder"
@@ -21,14 +23,6 @@ references = [
2123
]
2224
risk_score = 73
2325
rule_id = "25224a80-5a4a-4b8a-991e-6ab390465c4f"
24-
setup = """## Setup
25-
26-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
27-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
28-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
29-
`event.ingested` to @timestamp.
30-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
31-
"""
3226
severity = "high"
3327
tags = [
3428
"Domain: Endpoint",
@@ -38,6 +32,8 @@ tags = [
3832
"Data Source: Elastic Endgame",
3933
"Data Source: Elastic Defend",
4034
"Data Source: Sysmon",
35+
"Data Source: Microsoft Defender for Endpoint",
36+
"Data Source: SentinelOne",
4137
]
4238
timestamp_override = "event.ingested"
4339
type = "eql"

rules/windows/persistence_app_compat_shim.toml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2020/09/02"
3-
integration = ["endpoint", "windows"]
3+
integration = ["endpoint", "windows", "m365_defender", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/08/05"
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 installation of custom Application Compatibility Shim databases.
1113
abused by attackers to stealthily gain persistence and arbitrary code execution in legitimate Windows processes.
1214
"""
1315
from = "now-9m"
14-
index = ["logs-endpoint.events.registry-*", "winlogbeat-*", "logs-windows.sysmon_operational-*"]
16+
index = ["logs-endpoint.events.registry-*", "winlogbeat-*", "logs-windows.sysmon_operational-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*", "endgame-*"]
1517
language = "eql"
1618
license = "Elastic License v2"
1719
name = "Installation of Custom Shim Databases"
@@ -25,13 +27,20 @@ tags = [
2527
"Tactic: Persistence",
2628
"Data Source: Elastic Defend",
2729
"Data Source: Sysmon",
30+
"Data Source: Microsoft Defender for Endpoint",
31+
"Data Source: SentinelOne",
32+
"Data Source: Elastic Endgame",
2833
]
2934
timestamp_override = "event.ingested"
3035
type = "eql"
3136

3237
query = '''
3338
registry where host.os.type == "windows" and event.type == "change" and
34-
registry.path : "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Custom\\*.sdb" and
39+
registry.path : (
40+
"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Custom\\*.sdb",
41+
"\\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Custom\\*.sdb",
42+
"MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Custom\\*.sdb"
43+
) and
3544
not process.executable :
3645
("?:\\Program Files (x86)\\DesktopCentral_Agent\\swrepository\\1\\swuploads\\SAP-SLC\\SAPSetupSLC02_14-80001954\\Setup\\NwSapSetup.exe",
3746
"?:\\$WINDOWS.~BT\\Sources\\SetupPlatform.exe",

rules/windows/persistence_appinitdlls_registry.toml

Lines changed: 9 additions & 13 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/08/05"
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]]
@@ -48,7 +50,7 @@ Attackers who add those DLLs to the registry locations can execute code with ele
4850
injection, and provide a solid and constant persistence on the machine.
4951
"""
5052
from = "now-9m"
51-
index = ["winlogbeat-*", "logs-endpoint.events.registry-*", "logs-windows.sysmon_operational-*", "endgame-*"]
53+
index = ["winlogbeat-*", "logs-endpoint.events.registry-*", "logs-windows.sysmon_operational-*", "endgame-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
5254
language = "eql"
5355
license = "Elastic License v2"
5456
name = "Registry Persistence via AppInit DLL"
@@ -107,16 +109,8 @@ This rule identifies modifications on the AppInit registry keys.
107109
"""
108110
risk_score = 47
109111
rule_id = "d0e159cf-73e9-40d1-a9ed-077e3158a855"
110-
setup = """## Setup
111-
112-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
113-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
114-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
115-
`event.ingested` to @timestamp.
116-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
117-
"""
118112
severity = "medium"
119-
tags = ["Domain: Endpoint", "OS: Windows", "Use Case: Threat Detection", "Tactic: Persistence", "Tactic: Defense Evasion", "Resources: Investigation Guide", "Data Source: Elastic Endgame", "Data Source: Elastic Defend", "Data Source: Sysmon"]
113+
tags = ["Domain: Endpoint", "OS: Windows", "Use Case: Threat Detection", "Tactic: Persistence", "Tactic: Defense Evasion", "Resources: Investigation Guide", "Data Source: Elastic Endgame", "Data Source: Elastic Defend", "Data Source: Sysmon", "Data Source: Microsoft Defender for Endpoint", "Data Source: SentinelOne"]
120114
timestamp_override = "event.ingested"
121115
type = "eql"
122116

@@ -126,7 +120,9 @@ registry where host.os.type == "windows" and event.type == "change" and
126120
"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows\\AppInit_Dlls",
127121
"HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Windows\\AppInit_Dlls",
128122
"\\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows\\AppInit_Dlls",
129-
"\\REGISTRY\\MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Windows\\AppInit_Dlls"
123+
"\\REGISTRY\\MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Windows\\AppInit_Dlls",
124+
"MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows\\AppInit_Dlls",
125+
"MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Windows\\AppInit_Dlls"
130126
) and
131127
not process.executable : (
132128
"?:\\Windows\\System32\\DriverStore\\FileRepository\\*\\Display.NvContainer\\NVDisplay.Container.exe",

rules/windows/persistence_browser_extension_install.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"]
@@ -11,7 +13,7 @@ Identifies the install of browser extensions. Malicious browser extensions can b
1113
masquerading as legitimate extensions, social engineering, or by an adversary that has already compromised a system.
1214
"""
1315
from = "now-9m"
14-
index = ["logs-endpoint.events.file-*"]
16+
index = ["logs-endpoint.events.file-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*", "logs-windows.sysmon_operational-*"]
1517
language = "eql"
1618
license = "Elastic License v2"
1719
name = "Browser Extension Install"
@@ -24,6 +26,9 @@ tags = [
2426
"Use Case: Threat Detection",
2527
"Tactic: Persistence",
2628
"Data Source: Elastic Defend",
29+
"Data Source: Microsoft Defender for Endpoint",
30+
"Data Source: Sysmon",
31+
"Data Source: SentinelOne",
2732
]
2833
timestamp_override = "event.ingested"
2934
type = "eql"

rules/windows/persistence_evasion_hidden_local_account_creation.toml

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2020/12/18"
3-
integration = ["endpoint", "windows"]
3+
integration = ["endpoint", "windows", "m365_defender", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2024/08/05"
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 @@ sometimes done by attackers to increase access to a system and avoid appearing i
1214
the net users command.
1315
"""
1416
from = "now-9m"
15-
index = ["winlogbeat-*", "logs-endpoint.events.registry-*", "logs-windows.sysmon_operational-*", "endgame-*"]
17+
index = ["winlogbeat-*", "logs-endpoint.events.registry-*", "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 of a Hidden Local User Account"
@@ -49,14 +51,6 @@ references = [
4951
]
5052
risk_score = 73
5153
rule_id = "2edc8076-291e-41e9-81e4-e3fcbc97ae5e"
52-
setup = """## Setup
53-
54-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
55-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
56-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
57-
`event.ingested` to @timestamp.
58-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
59-
"""
6054
severity = "high"
6155
tags = [
6256
"Domain: Endpoint",
@@ -67,6 +61,8 @@ tags = [
6761
"Data Source: Elastic Endgame",
6862
"Data Source: Elastic Defend",
6963
"Data Source: Sysmon",
64+
"Data Source: Microsoft Defender for Endpoint",
65+
"Data Source: SentinelOne",
7066
]
7167
timestamp_override = "event.ingested"
7268
type = "eql"
@@ -75,7 +71,8 @@ query = '''
7571
registry where host.os.type == "windows" and event.type == "change" and
7672
registry.path : (
7773
"HKLM\\SAM\\SAM\\Domains\\Account\\Users\\Names\\*$\\",
78-
"\\REGISTRY\\MACHINE\\SAM\\SAM\\Domains\\Account\\Users\\Names\\*$\\"
74+
"\\REGISTRY\\MACHINE\\SAM\\SAM\\Domains\\Account\\Users\\Names\\*$\\",
75+
"MACHINE\\SAM\\SAM\\Domains\\Account\\Users\\Names\\*$\\"
7976
)
8077
'''
8178

rules/windows/persistence_evasion_registry_ifeo_injection.toml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[metadata]
22
creation_date = "2020/11/17"
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"]
@@ -11,7 +13,7 @@ The Debugger and SilentProcessExit registry keys can allow an adversary to inter
1113
different process to be executed. This functionality can be abused by an adversary to establish persistence.
1214
"""
1315
from = "now-9m"
14-
index = ["logs-endpoint.events.registry-*", "endgame-*", "logs-windows.sysmon_operational-*", "winlogbeat-*"]
16+
index = ["logs-endpoint.events.registry-*", "endgame-*", "logs-windows.sysmon_operational-*", "winlogbeat-*", "logs-m365_defender.event-*", "logs-sentinel_one_cloud_funnel.*"]
1517
language = "eql"
1618
license = "Elastic License v2"
1719
name = "Image File Execution Options Injection"
@@ -30,6 +32,8 @@ tags = [
3032
"Data Source: Elastic Endgame",
3133
"Data Source: Elastic Defend",
3234
"Data Source: Sysmon",
35+
"Data Source: Microsoft Defender for Endpoint",
36+
"Data Source: SentinelOne",
3337
]
3438
timestamp_override = "event.ingested"
3539
type = "eql"
@@ -45,7 +49,11 @@ registry where host.os.type == "windows" and event.type == "change" and
4549
"\\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\*.exe\\Debugger",
4650
"\\REGISTRY\\MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\*\\Debugger",
4751
"\\REGISTRY\\MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\*\\MonitorProcess",
48-
"\\REGISTRY\\MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\*\\MonitorProcess"
52+
"\\REGISTRY\\MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\*\\MonitorProcess",
53+
"MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\*.exe\\Debugger",
54+
"MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\*\\Debugger",
55+
"MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\*\\MonitorProcess",
56+
"MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\*\\MonitorProcess"
4957
) and
5058
/* add FPs here */
5159
not registry.data.strings regex~ ("""C:\\Program Files( \(x86\))?\\ThinKiosk\\thinkiosk\.exe""", """.*\\PSAppDeployToolkit\\.*""")

0 commit comments

Comments
 (0)