From 9eada018b81b962d4e5158b03cefb119769a8d56 Mon Sep 17 00:00:00 2001 From: Samirbous Date: Wed, 17 Dec 2025 10:14:19 +0000 Subject: [PATCH 1/5] [Tuning] Top Noisy Windows BBRS - Process Discovery Using Built-in Tools - System Service Discovery through built-in Windows Utilities --- .../discovery_generic_process_discovery.toml | 21 +++++++++----- .../discovery_system_service_discovery.toml | 28 +++++++++++++++---- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/rules_building_block/discovery_generic_process_discovery.toml b/rules_building_block/discovery_generic_process_discovery.toml index bafbf1c8680..6bcf3d9f9fe 100644 --- a/rules_building_block/discovery_generic_process_discovery.toml +++ b/rules_building_block/discovery_generic_process_discovery.toml @@ -3,7 +3,7 @@ bypass_bbr_timing = true creation_date = "2023/07/13" integration = ["endpoint"] maturity = "production" -updated_date = "2024/05/21" +updated_date = "2025/12/17" [rule] author = ["Elastic"] @@ -40,13 +40,20 @@ type = "eql" query = ''' process where host.os.type == "windows" and event.type == "start" and + not user.id in ("S-1-5-18", "S-1-5-19", "S-1-5-20") and process.parent.executable != null and ( - process.name :("PsList.exe", "qprocess.exe") or - (process.name : "powershell.exe" and process.args : ("*get-process*", "*Win32_Process*")) or - (process.name : "wmic.exe" and process.args : ("process", "*Win32_Process*")) or - (process.name : "tasklist.exe" and not process.args : ("pid eq*")) or - (process.name : "query.exe" and process.args : "process") - ) and not user.id : "S-1-5-18" + process.name :("PsList.exe", "qprocess.exe") or + + (process.name : "powershell.exe" and process.args : ("*get-process*", "*Win32_Process*") and not process.parent.name in ("openaev-agent.exe", "cmd.exe", "Miro.exe", "Granola.exe", "Wispr Flow.exe")) or + + (process.name : "wmic.exe" and process.args : ("process", "*Win32_Process*") and not process.parent.name in ("Code.exe", "node.exe", "javaw.exe", "java.exe", "asus_framework.exe", "Evernote.exe", "RingCentral.exe", "Avaya Cloud.exe", "Arduino IDE.exe")) or + + (process.name : "tasklist.exe" and process.args_count == 1 and process.parent.args != "tasklist | findstr consent.exe") or + + (process.name : "query.exe" and process.args : ("process", "imagename*", "csv", "/fi")) + ) and + not process.working_directory like ("?:\\Program Files*", "D:\\*", "E:\\*") and + not process.parent.executable like ("?:\\Program Files (x86)\\*.exe", "?:\\Program Files\\*.exe") ''' diff --git a/rules_building_block/discovery_system_service_discovery.toml b/rules_building_block/discovery_system_service_discovery.toml index 284105bfc7c..02a207a1795 100644 --- a/rules_building_block/discovery_system_service_discovery.toml +++ b/rules_building_block/discovery_system_service_discovery.toml @@ -3,7 +3,7 @@ bypass_bbr_timing = true creation_date = "2023/01/24" integration = ["windows", "endpoint"] maturity = "production" -updated_date = "2024/05/21" +updated_date = "2025/12/17" [rule] author = ["Elastic"] @@ -40,14 +40,30 @@ timestamp_override = "event.ingested" type = "eql" query = ''' -process where host.os.type == "windows" and event.type == "start" and +process where host.os.type == "windows" and event.type == "start" and process.parent.executable != null and ( ((process.name: "net.exe" or process.pe.original_file_name == "net.exe" or (process.name : "net1.exe" and - not process.parent.name : "net.exe")) and process.args : ("start", "use") and process.args_count == 2) or - ((process.name: "sc.exe" or process.pe.original_file_name == "sc.exe") and process.args: ("query", "q*")) or - ((process.name: "tasklist.exe" or process.pe.original_file_name == "tasklist.exe") and process.args: "/svc") or + not process.parent.name : "net.exe")) and process.args : ("start", "use") and process.args_count == 2 and + not process.parent.args : ("*.bat", "*netlogon*", "\\\\*")) or + ((process.name: "sc.exe" or process.pe.original_file_name == "sc.exe") and process.args: ("query", "q*") and not process.parent.args : "*.bat") or + ((process.name: "tasklist.exe" or process.pe.original_file_name == "tasklist.exe") and process.args: "/svc" and not process.command_line : "*\\Windows\\TEMP\\nessus_task_list*") or (process.name : "psservice.exe" or process.pe.original_file_name == "psservice.exe") - ) and not user.id : "S-1-5-18" + ) and + not user.id in ("S-1-5-18", "S-1-5-19", "S-1-5-20") and + not process.parent.executable in + ("C:\\Program Files\\AzureConnectedMachineAgent\\himds.exe", + "C:\\Program Files\\AzureConnectedMachineAgent\\azcmagent.exe", + "C:\\Program Files\\Varian\\DICOMServices\\VMS.DICOMServices.ServiceFW.GenericControlledServiceHost.exe", + "C:\\Senior\\HCM\\jdk-11.0.2\\bin\\java.exe", + "D:\\biomerieux\\programs\\ServiceMonitor\\bin\\MylaServiceMonitor.exe", + "C:\\ViewPowerPro\\openJDK\\bin\\javaw.exe", + "C:\\ServiceNow MID Server mid-server-autosports-prod\\agent\\jre\\bin\\java.exe") and + not process.command_line in ("sc queryex SCardSvr", + "sc query \"Axway_Integrator\" ", + "sc query \"Delta enteliVAULT PostgreSQL\" ", + "sc query \"WERMA-WIN-Connector\" ", + "sc query _EWSSynchronizationServer_JDE ", + "sc query SchneiderUPSMySQL") ''' From a1a8c979074fd27a38c78857df3d85599178a8cb Mon Sep 17 00:00:00 2001 From: Samirbous Date: Wed, 17 Dec 2025 10:20:18 +0000 Subject: [PATCH 2/5] Update discovery_generic_process_discovery.toml --- rules_building_block/discovery_generic_process_discovery.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules_building_block/discovery_generic_process_discovery.toml b/rules_building_block/discovery_generic_process_discovery.toml index 6bcf3d9f9fe..4b7cef90a58 100644 --- a/rules_building_block/discovery_generic_process_discovery.toml +++ b/rules_building_block/discovery_generic_process_discovery.toml @@ -40,7 +40,7 @@ type = "eql" query = ''' process where host.os.type == "windows" and event.type == "start" and - not user.id in ("S-1-5-18", "S-1-5-19", "S-1-5-20") and process.parent.executable != null and + not user.id in ("S-1-5-18", "S-1-5-19", "S-1-5-20") and process.parent.executable != null and ( process.name :("PsList.exe", "qprocess.exe") or From 5d0094c7d74b67005260613201c4509fcd612665 Mon Sep 17 00:00:00 2001 From: Samirbous <64742097+Samirbous@users.noreply.github.com> Date: Wed, 17 Dec 2025 10:30:31 +0000 Subject: [PATCH 3/5] Update discovery_generic_process_discovery.toml --- .../discovery_generic_process_discovery.toml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rules_building_block/discovery_generic_process_discovery.toml b/rules_building_block/discovery_generic_process_discovery.toml index 4e679a4ae07..c02bef00986 100644 --- a/rules_building_block/discovery_generic_process_discovery.toml +++ b/rules_building_block/discovery_generic_process_discovery.toml @@ -3,7 +3,7 @@ bypass_bbr_timing = true creation_date = "2023/07/13" integration = ["endpoint", "windows", "system"] maturity = "production" -updated_date = "2025/03/20" +updated_date = "2025/12/17" [rule] author = ["Elastic"] @@ -40,9 +40,8 @@ timestamp_override = "event.ingested" type = "eql" query = ''' -process where host.os.type == "windows" and event.type == "start" and +process where host.os.type == "windows" and event.type == "start" and process.args != null and not user.id in ("S-1-5-18", "S-1-5-19", "S-1-5-20") and process.parent.executable != null and -process where host.os.type == "windows" and event.type == "start" and process.args != null and ( process.name :("PsList.exe", "qprocess.exe") or From 49ad483608f3287b7b6b86577b8588c14ea121e6 Mon Sep 17 00:00:00 2001 From: Samirbous <64742097+Samirbous@users.noreply.github.com> Date: Wed, 17 Dec 2025 11:05:37 +0000 Subject: [PATCH 4/5] Update discovery_generic_process_discovery.toml --- rules_building_block/discovery_generic_process_discovery.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/rules_building_block/discovery_generic_process_discovery.toml b/rules_building_block/discovery_generic_process_discovery.toml index c02bef00986..7dda76c2fe6 100644 --- a/rules_building_block/discovery_generic_process_discovery.toml +++ b/rules_building_block/discovery_generic_process_discovery.toml @@ -14,7 +14,6 @@ enumerate processes to identify installed applications and security solutions. """ from = "now-9m" index = [ - "endgame-*", "logs-endpoint.events.process-*", "logs-system.security*", "logs-windows.*", From a10ba67c1990f4065bf27e70297e20e9c2a580d7 Mon Sep 17 00:00:00 2001 From: Samirbous <64742097+Samirbous@users.noreply.github.com> Date: Thu, 18 Dec 2025 15:32:42 +0000 Subject: [PATCH 5/5] Update discovery_generic_process_discovery.toml --- rules_building_block/discovery_generic_process_discovery.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/rules_building_block/discovery_generic_process_discovery.toml b/rules_building_block/discovery_generic_process_discovery.toml index 7dda76c2fe6..708d4037dd5 100644 --- a/rules_building_block/discovery_generic_process_discovery.toml +++ b/rules_building_block/discovery_generic_process_discovery.toml @@ -32,7 +32,6 @@ tags = [ "Tactic: Discovery", "Rule Type: BBR", "Data Source: Elastic Defend", - "Data Source: Elastic Endgame", "Data Source: Windows Security Event Logs", ] timestamp_override = "event.ingested"