Skip to content

Commit 071407d

Browse files
w0rk3rtradebot-elastic
authored andcommitted
[Rule Tuning] Windows 3rd Party EDR Compatibility - Part 3 (#5018)
* [Rule Tuning] Windows 3rd Party EDR Compatibility - Part 3 * Apply suggestions from code review Co-authored-by: Samirbous <[email protected]> * Update rules/windows/defense_evasion_file_creation_mult_extension.toml * Update rules/windows/defense_evasion_file_creation_mult_extension.toml --------- Co-authored-by: Samirbous <[email protected]> (cherry picked from commit 0fbf57c)
1 parent 707013a commit 071407d

5 files changed

+67
-35
lines changed

rules/windows/defense_evasion_execution_suspicious_explorer_winword.toml

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[metadata]
22
creation_date = "2020/09/03"
3-
integration = ["endpoint", "windows", "m365_defender"]
3+
integration = ["endpoint", "windows", "m365_defender", "crowdstrike"]
44
maturity = "production"
5-
updated_date = "2025/04/16"
5+
updated_date = "2025/08/26"
66

77
[rule]
88
author = ["Elastic"]
@@ -18,6 +18,7 @@ index = [
1818
"logs-windows.sysmon_operational-*",
1919
"endgame-*",
2020
"logs-m365_defender.event-*",
21+
"logs-crowdstrike.fdr*",
2122
]
2223
language = "eql"
2324
license = "Elastic License v2"
@@ -59,14 +60,6 @@ DLL side-loading exploits the DLL search order to load malicious code into trust
5960
- Escalate the incident to the security operations center (SOC) or incident response team for further analysis and to determine if additional systems or data have been affected."""
6061
risk_score = 73
6162
rule_id = "1160dcdb-0a0a-4a79-91d8-9b84616edebd"
62-
setup = """## Setup
63-
64-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
65-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
66-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
67-
`event.ingested` to @timestamp.
68-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
69-
"""
7063
severity = "high"
7164
tags = [
7265
"Domain: Endpoint",
@@ -79,6 +72,7 @@ tags = [
7972
"Data Source: Sysmon",
8073
"Data Source: Microsoft Defender for Endpoint",
8174
"Resources: Investigation Guide",
75+
"Data Source: Crowdstrike",
8276
]
8377
timestamp_override = "event.ingested"
8478
type = "eql"
@@ -94,7 +88,23 @@ process where host.os.type == "windows" and event.type == "start" and
9488
"?:\\Windows\\SysWOW64\\Dism.exe",
9589
"?:\\Program Files (x86)\\Windows Kits\\10\\Assessment and Deployment Kit\\Deployment Tools\\amd64\\DISM\\dism.exe",
9690
"?:\\Windows\\System32\\inetsrv\\w3wp.exe",
97-
"?:\\Windows\\SysWOW64\\inetsrv\\w3wp.exe")
91+
"?:\\Windows\\SysWOW64\\inetsrv\\w3wp.exe") and
92+
/* Crowdstrike specific exclusion as it uses NT Object paths */
93+
not
94+
(
95+
data_stream.dataset == "crowdstrike.fdr" and
96+
process.executable : (
97+
"\\Device\\HarddiskVolume*\\Windows\\explorer.exe",
98+
"\\Device\\HarddiskVolume*\\Windows\\SysWOW64\\explorer.exe",
99+
"\\Device\\HarddiskVolume*\\Program Files\\Microsoft Office\\root\\Office*\\WINWORD.EXE",
100+
"\\Device\\HarddiskVolume*\\Program Files (x86)\\Microsoft Office\\root\\Office*\\WINWORD.EXE",
101+
"\\Device\\HarddiskVolume*\\Windows\\System32\\Dism.exe",
102+
"\\Device\\HarddiskVolume*\\Windows\\SysWOW64\\Dism.exe",
103+
"\\Device\\HarddiskVolume*\\Program Files (x86)\\Windows Kits\\10\\Assessment and Deployment Kit\\Deployment Tools\\amd64\\DISM\\dism.exe",
104+
"\\Device\\HarddiskVolume*\\Windows\\System32\\inetsrv\\w3wp.exe",
105+
"\\Device\\HarddiskVolume*\\Windows\\SysWOW64\\inetsrv\\w3wp.exe"
106+
)
107+
)
98108
'''
99109

100110

rules/windows/defense_evasion_execution_windefend_unusual_path.toml

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[metadata]
22
creation_date = "2021/07/07"
3-
integration = ["endpoint", "windows", "m365_defender"]
3+
integration = ["endpoint", "windows", "m365_defender", "crowdstrike"]
44
maturity = "production"
5-
updated_date = "2025/03/20"
5+
updated_date = "2025/08/26"
66

77
[rule]
88
author = ["Elastic", "Dennis Perto"]
@@ -19,6 +19,7 @@ index = [
1919
"logs-windows.sysmon_operational-*",
2020
"endgame-*",
2121
"logs-m365_defender.event-*",
22+
"logs-crowdstrike.fdr*",
2223
]
2324
language = "eql"
2425
license = "Elastic License v2"
@@ -61,14 +62,6 @@ references = [
6162
]
6263
risk_score = 73
6364
rule_id = "053a0387-f3b5-4ba5-8245-8002cca2bd08"
64-
setup = """## Setup
65-
66-
If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2,
67-
events will not define `event.ingested` and default fallback for EQL rules was not added until version 8.2.
68-
Hence for this rule to work effectively, users will need to add a custom ingest pipeline to populate
69-
`event.ingested` to @timestamp.
70-
For more details on adding a custom ingest pipeline refer - https://www.elastic.co/guide/en/fleet/current/data-streams-pipeline-tutorial.html
71-
"""
7265
severity = "high"
7366
tags = [
7467
"Domain: Endpoint",
@@ -80,6 +73,7 @@ tags = [
8073
"Data Source: Elastic Defend",
8174
"Data Source: Sysmon",
8275
"Data Source: Microsoft Defender for Endpoint",
76+
"Data Source: Crowdstrike",
8377
"Resources: Investigation Guide",
8478
]
8579
timestamp_override = "event.ingested"
@@ -89,12 +83,23 @@ query = '''
8983
process where host.os.type == "windows" and event.type == "start" and
9084
(
9185
(process.pe.original_file_name == "MsMpEng.exe" and not process.name : "MsMpEng.exe") or
92-
(process.name : "MsMpEng.exe" and not
93-
process.executable : ("?:\\ProgramData\\Microsoft\\Windows Defender\\*.exe",
94-
"?:\\Program Files\\Windows Defender\\*.exe",
95-
"?:\\Program Files (x86)\\Windows Defender\\*.exe",
96-
"?:\\Program Files\\Microsoft Security Client\\*.exe",
97-
"?:\\Program Files (x86)\\Microsoft Security Client\\*.exe"))
86+
(
87+
process.name : "MsMpEng.exe" and
88+
not process.executable : (
89+
"?:\\ProgramData\\Microsoft\\Windows Defender\\*.exe",
90+
"?:\\Program Files\\Windows Defender\\*.exe",
91+
"?:\\Program Files (x86)\\Windows Defender\\*.exe",
92+
"?:\\Program Files\\Microsoft Security Client\\*.exe",
93+
"?:\\Program Files (x86)\\Microsoft Security Client\\*.exe",
94+
95+
/* Crowdstrike specific exclusion as it uses NT Object paths */
96+
"\\Device\\HarddiskVolume*\\ProgramData\\Microsoft\\Windows Defender\\*.exe",
97+
"\\Device\\HarddiskVolume*\\Program Files\\Windows Defender\\*.exe",
98+
"\\Device\\HarddiskVolume*\\Program Files (x86)\\Windows Defender\\*.exe",
99+
"\\Device\\HarddiskVolume*\\Program Files\\Microsoft Security Client\\*.exe",
100+
"\\Device\\HarddiskVolume*\\Program Files (x86)\\Microsoft Security Client\\*.exe"
101+
)
102+
)
98103
)
99104
'''
100105

rules/windows/defense_evasion_file_creation_mult_extension.toml

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[metadata]
22
creation_date = "2021/01/19"
3-
integration = ["endpoint", "windows", "m365_defender", "sentinel_one_cloud_funnel"]
3+
integration = ["endpoint", "windows", "m365_defender", "sentinel_one_cloud_funnel", "crowdstrike"]
44
maturity = "production"
5-
updated_date = "2025/03/20"
5+
updated_date = "2025/08/26"
66

77
[rule]
88
author = ["Elastic"]
@@ -19,6 +19,7 @@ index = [
1919
"endgame-*",
2020
"logs-m365_defender.event-*",
2121
"logs-sentinel_one_cloud_funnel.*",
22+
"logs-crowdstrike.fdr*",
2223
]
2324
language = "eql"
2425
license = "Elastic License v2"
@@ -71,15 +72,27 @@ tags = [
7172
"Data Source: Microsoft Defender for Endpoint",
7273
"Data Source: SentinelOne",
7374
"Resources: Investigation Guide",
75+
"Data Source: Crowdstrike",
7476
]
7577
timestamp_override = "event.ingested"
7678
type = "eql"
7779

7880
query = '''
7981
file where host.os.type == "windows" and event.type == "creation" and file.extension : "exe" and
8082
file.name regex~ """.*\.(vbs|vbe|bat|js|cmd|wsh|ps1|pdf|docx?|xlsx?|pptx?|txt|rtf|gif|jpg|png|bmp|hta|txt|img|iso)\.exe""" and
81-
not (process.executable : ("?:\\Windows\\System32\\msiexec.exe", "C:\\Users\\*\\QGIS_SCCM\\Files\\QGIS-OSGeo4W-*-Setup-x86_64.exe") and
82-
file.path : "?:\\Program Files\\QGIS *\\apps\\grass\\*.exe")
83+
not (
84+
process.executable : (
85+
"?:\\Windows\\System32\\msiexec.exe",
86+
"\\Device\\HarddiskVolume*\\Windows\\System32\\msiexec.exe",
87+
"*\\Users\\*\\QGIS_SCCM\\Files\\QGIS-OSGeo4W-*-Setup-x86_64.exe"
88+
) and
89+
file.path : ("?:\\Program Files\\QGIS *\\apps\\grass\\*.exe", "\\Device\\HarddiskVolume*\\Program Files\\QGIS *\\apps\\grass\\*.exe")
90+
) and
91+
not process.executable :
92+
("C:\\Program Files\\dotnet\\dotnet.exe",
93+
"C:\\Program Files\\Microsoft Visual Studio\\*.exe",
94+
"\\Device\\HarddiskVolume*\\Program Files\\dotnet\\dotnet.exe",
95+
"\\Device\\HarddiskVolume*\\Program Files\\Microsoft Visual Studio\\*.exe")
8396
'''
8497

8598

rules/windows/defense_evasion_hide_encoded_executable_registry.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[metadata]
22
creation_date = "2020/11/25"
3-
integration = ["endpoint", "windows", "sentinel_one_cloud_funnel", "m365_defender"]
3+
integration = ["endpoint", "windows", "sentinel_one_cloud_funnel", "m365_defender", "crowdstrike"]
44
maturity = "production"
5-
updated_date = "2025/03/20"
5+
updated_date = "2025/08/26"
66

77
[rule]
88
author = ["Elastic"]
@@ -18,6 +18,7 @@ index = [
1818
"logs-sentinel_one_cloud_funnel.*",
1919
"winlogbeat-*",
2020
"logs-m365_defender.event-*",
21+
"logs-crowdstrike.fdr*",
2122
]
2223
language = "eql"
2324
license = "Elastic License v2"
@@ -69,6 +70,7 @@ tags = [
6970
"Data Source: Sysmon",
7071
"Data Source: SentinelOne",
7172
"Data Source: Microsoft Defender for Endpoint",
73+
"Data Source: Crowdstrike",
7274
"Resources: Investigation Guide",
7375
]
7476
timestamp_override = "event.ingested"

rules/windows/defense_evasion_installutil_beacon.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[metadata]
22
creation_date = "2020/09/02"
3-
integration = ["endpoint", "windows"]
3+
integration = ["endpoint", "windows", "sentinel_one_cloud_funnel"]
44
maturity = "production"
5-
updated_date = "2025/03/20"
5+
updated_date = "2025/08/26"
66

77
[rule]
88
author = ["Elastic"]
@@ -16,6 +16,7 @@ index = [
1616
"logs-endpoint.events.network-*",
1717
"winlogbeat-*",
1818
"logs-windows.sysmon_operational-*",
19+
"logs-sentinel_one_cloud_funnel.*",
1920
]
2021
language = "eql"
2122
license = "Elastic License v2"
@@ -66,6 +67,7 @@ tags = [
6667
"Data Source: Elastic Defend",
6768
"Data Source: Sysmon",
6869
"Resources: Investigation Guide",
70+
"Data Source: SentinelOne",
6971
]
7072
type = "eql"
7173

0 commit comments

Comments
 (0)