<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Request: XQL query for filename + optional hash logic (single stream) in Cortex XDR Discussions</title>
    <link>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/request-xql-query-for-filename-optional-hash-logic-single-stream/m-p/1249434#M9179</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/924691441"&gt;@N.B238890&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Greetings for the day.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;To address your request, here is a comprehensive XQL query designed for Cortex XSIAM that unifies process and file telemetry while meeting your specific filtering, regex, and suppression requirements.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 data-end="150" data-start="107"&gt;Unified Process and File Detection Query:&lt;/H4&gt;
&lt;P data-end="251" data-start="152"&gt;This query uses the &lt;CODE data-end="182" data-start="172"&gt;xdr_data&lt;/CODE&gt; dataset and standard event enums to identify the specified activity.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV class="relative w-full my-4"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"&gt;
&lt;DIV class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="relative z-0 flex max-w-full"&gt;
&lt;DIV id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼ5 ͼj" dir="ltr"&gt;
&lt;DIV class="cm-scroller"&gt;
&lt;DIV class="cm-content q9tKkq_readonly"&gt;&lt;SPAN&gt;// Set case-insensitive searching for the entire query&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;config case_sensitive = false &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;| dataset = xdr_data&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Filter for Process Executions and File Create/Modify events&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| filter (&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; (event_type = ENUM.PROCESS and event_sub_type = ENUM.PROCESS_START) or &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; (event_type = ENUM.FILE and event_sub_type in (ENUM.FILE_CREATE_NEW, ENUM.FILE_WRITE, ENUM.FILE_RENAME))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Filter for specific filenames and the masquerade regex&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| filter (&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; action_process_image_name in ("svc.exe", "pwrautomate.exe", "mcs.bat", "cleanup.bat", "uri.bat", "p.zip") or&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; action_file_name in ("svc.exe", "pwrautomate.exe", "mcs.bat", "cleanup.bat", "uri.bat", "p.zip") or&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; action_process_image_name ~= "^filters_update_.*_at_abdata\.com\.exe$" or&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; action_file_name ~= "^filters_update_.*_at_abdata\.com\.exe$"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Unify results into consistent fields for Process and File events&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| alter &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; unified_name = coalesce(action_process_image_name, action_file_name),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; unified_path = coalesce(action_process_image_path, action_file_path),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; unified_hash = coalesce(action_process_image_sha256, action_file_sha256, action_process_image_md5, action_file_md5),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; mitre_attack = "T1059, T1204.002, T1105, T1106, T1036"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// OPTIONAL: Suppress hits in known benign directories ONLY IF no hash is present (always keep hash hits)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// | filter not (&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// (unified_path contains "C:\Windows\System32\" or unified_path contains "C:\Program Files\") &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// and unified_hash = null&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Select relevant fields for investigation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| fields _time, agent_hostname, event_type, event_sub_type, unified_name, unified_path, unified_hash, actor_process_image_name, actor_process_command_line, mitre_attack&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// OPTIONAL: Dedup and Triage View (Counts per host/file/hash)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| comp count() as hit_count, latest(_time) as last_seen by agent_hostname, unified_name, unified_path, unified_hash, mitre_attack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| sort desc hit_count&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="cm-content q9tKkq_readonly"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class=""&gt;
&lt;H4&gt;&lt;SPAN&gt;Key Components of the Syntax:&lt;/SPAN&gt;&lt;/H4&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P data-end="2363" data-start="2201"&gt;&lt;STRONG data-end="2223" data-start="2201"&gt;Case Insensitivity&lt;/STRONG&gt;&lt;BR data-end="2226" data-start="2223" /&gt;The &lt;CODE data-end="2261" data-start="2230"&gt;config case_sensitive = false&lt;/CODE&gt; stage ensures that all string comparisons and regex matches are handled regardless of capitalization.&lt;/P&gt;
&lt;P data-end="2405" data-start="2365"&gt;&lt;STRONG data-end="2384" data-start="2365"&gt;Event Filtering&lt;/STRONG&gt;&lt;BR data-end="2387" data-start="2384" /&gt;The query targets:&lt;/P&gt;
&lt;UL data-end="2513" data-start="2406"&gt;
&lt;LI data-end="2440" data-start="2406"&gt;
&lt;P data-end="2440" data-start="2408"&gt;&lt;CODE data-end="2423" data-start="2408"&gt;PROCESS_START&lt;/CODE&gt; for executions&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="2513" data-start="2441"&gt;
&lt;P data-end="2513" data-start="2443"&gt;&lt;CODE data-end="2460" data-start="2443"&gt;FILE_CREATE_NEW&lt;/CODE&gt;, &lt;CODE data-end="2474" data-start="2462"&gt;FILE_WRITE&lt;/CODE&gt;, and &lt;CODE data-end="2493" data-start="2480"&gt;FILE_RENAME&lt;/CODE&gt; for file activity&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-end="2595" data-start="2515"&gt;&lt;STRONG data-end="2533" data-start="2515"&gt;Regex Matching&lt;/STRONG&gt;&lt;BR data-end="2536" data-start="2533" /&gt;The &lt;CODE data-end="2544" data-start="2540"&gt;~=&lt;/CODE&gt; operator is used for the masquerade regex pattern.&lt;/P&gt;
&lt;P data-end="2595" data-start="2515"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-end="2776" data-start="2597"&gt;&lt;STRONG data-end="2616" data-start="2597"&gt;Unified Results&lt;/STRONG&gt;&lt;BR data-end="2619" data-start="2616" /&gt;The &lt;CODE data-end="2635" data-start="2623"&gt;coalesce()&lt;/CODE&gt; function merges disparate fields (such as &lt;CODE data-end="2705" data-start="2678"&gt;action_process_image_name&lt;/CODE&gt; and &lt;CODE data-end="2728" data-start="2710"&gt;action_file_name&lt;/CODE&gt;) into unified columns for easier investigation.&lt;/P&gt;
&lt;P data-end="2776" data-start="2597"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-end="2961" data-start="2778"&gt;&lt;STRONG data-end="2804" data-start="2778"&gt;Hash Persistence Logic&lt;/STRONG&gt;&lt;BR data-end="2807" data-start="2804" /&gt;The optional suppression block is structured to ignore events in common benign paths only if no hash is present. Any event containing a hash is preserved.&lt;/P&gt;
&lt;P data-end="2961" data-start="2778"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-is-only-node="" data-is-last-node="" data-end="3136" data-start="2963"&gt;&lt;STRONG data-end="2978" data-start="2963"&gt;Triage View&lt;/STRONG&gt;&lt;BR data-end="2981" data-start="2978" /&gt;The &lt;CODE data-end="2991" data-start="2985"&gt;comp&lt;/CODE&gt; stage provides a summarized, deduplicated view with hit counts and the most recent timestamp, which is useful for high-level triage and scoping.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you feel this has answered your query, please let us know by clicking like and on&amp;nbsp;&lt;STRONG&gt;"mark this as a Solution".&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards,&lt;BR /&gt;S. Subashkar Sekar&lt;/P&gt;</description>
    <pubDate>Wed, 04 Mar 2026 15:00:53 GMT</pubDate>
    <dc:creator>susekar</dc:creator>
    <dc:date>2026-03-04T15:00:53Z</dc:date>
    <item>
      <title>Request: XQL query for filename + optional hash logic (single stream)</title>
      <link>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/request-xql-query-for-filename-optional-hash-logic-single-stream/m-p/1249418#M9176</link>
      <description>&lt;P&gt;Hi all,&lt;BR /&gt;Could someone help me write an &lt;STRONG&gt;XQL query in Cortex XSIAM&lt;/STRONG&gt; that:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Detects &lt;STRONG&gt;process executions&lt;/STRONG&gt; and &lt;STRONG&gt;file create/modify touches&lt;/STRONG&gt; matching these names:&lt;BR /&gt;&lt;CODE&gt;svc.exe&lt;/CODE&gt;, &lt;CODE&gt;pwrautomate.exe&lt;/CODE&gt;, &lt;CODE&gt;mcs.bat&lt;/CODE&gt;, &lt;CODE&gt;cleanup.bat&lt;/CODE&gt;, &lt;CODE&gt;uri.bat&lt;/CODE&gt;, &lt;CODE&gt;p.zip&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;Also matches this &lt;STRONG&gt;masquerade regex&lt;/STRONG&gt; (case-insensitive):&lt;BR /&gt;&lt;CODE&gt;^filters_update_.*_at_abdata\.com\.exe$&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;Treats &lt;STRONG&gt;hash IOCs as optional&lt;/STRONG&gt; (include when present; always keep hash hits)&lt;/LI&gt;
&lt;LI&gt;Merges process and file events into a &lt;STRONG&gt;single unified result&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Optionally suppresses &lt;STRONG&gt;name-only&lt;/STRONG&gt; hits under known benign directories&lt;/LI&gt;
&lt;LI&gt;Optionally supports &lt;STRONG&gt;dedup&lt;/STRONG&gt; and a brief &lt;STRONG&gt;counts/triage&lt;/STRONG&gt; view&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;ATT&amp;amp;CK mapping: &lt;STRONG&gt;T1059, T1204.002, T1105, T1106, T1036&lt;/STRONG&gt;.&lt;BR /&gt;Looking for &lt;STRONG&gt;syntax that’s fully compatible with XSIAM&lt;/STRONG&gt;. Thanks!&lt;/P&gt;</description>
      <pubDate>Wed, 04 Mar 2026 11:31:48 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/request-xql-query-for-filename-optional-hash-logic-single-stream/m-p/1249418#M9176</guid>
      <dc:creator>N.B238890</dc:creator>
      <dc:date>2026-03-04T11:31:48Z</dc:date>
    </item>
    <item>
      <title>Re: Request: XQL query for filename + optional hash logic (single stream)</title>
      <link>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/request-xql-query-for-filename-optional-hash-logic-single-stream/m-p/1249434#M9179</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/924691441"&gt;@N.B238890&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Greetings for the day.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;To address your request, here is a comprehensive XQL query designed for Cortex XSIAM that unifies process and file telemetry while meeting your specific filtering, regex, and suppression requirements.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 data-end="150" data-start="107"&gt;Unified Process and File Detection Query:&lt;/H4&gt;
&lt;P data-end="251" data-start="152"&gt;This query uses the &lt;CODE data-end="182" data-start="172"&gt;xdr_data&lt;/CODE&gt; dataset and standard event enums to identify the specified activity.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV class="relative w-full my-4"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="relative"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="h-full min-h-0 min-w-0"&gt;
&lt;DIV class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"&gt;
&lt;DIV class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"&gt;
&lt;DIV class=""&gt;
&lt;DIV class="relative z-0 flex max-w-full"&gt;
&lt;DIV id="code-block-viewer" class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼ5 ͼj" dir="ltr"&gt;
&lt;DIV class="cm-scroller"&gt;
&lt;DIV class="cm-content q9tKkq_readonly"&gt;&lt;SPAN&gt;// Set case-insensitive searching for the entire query&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;config case_sensitive = false &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;| dataset = xdr_data&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Filter for Process Executions and File Create/Modify events&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| filter (&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; (event_type = ENUM.PROCESS and event_sub_type = ENUM.PROCESS_START) or &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; (event_type = ENUM.FILE and event_sub_type in (ENUM.FILE_CREATE_NEW, ENUM.FILE_WRITE, ENUM.FILE_RENAME))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Filter for specific filenames and the masquerade regex&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| filter (&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; action_process_image_name in ("svc.exe", "pwrautomate.exe", "mcs.bat", "cleanup.bat", "uri.bat", "p.zip") or&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; action_file_name in ("svc.exe", "pwrautomate.exe", "mcs.bat", "cleanup.bat", "uri.bat", "p.zip") or&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; action_process_image_name ~= "^filters_update_.*_at_abdata\.com\.exe$" or&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; action_file_name ~= "^filters_update_.*_at_abdata\.com\.exe$"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Unify results into consistent fields for Process and File events&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| alter &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; unified_name = coalesce(action_process_image_name, action_file_name),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; unified_path = coalesce(action_process_image_path, action_file_path),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; unified_hash = coalesce(action_process_image_sha256, action_file_sha256, action_process_image_md5, action_file_md5),&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; mitre_attack = "T1059, T1204.002, T1105, T1106, T1036"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// OPTIONAL: Suppress hits in known benign directories ONLY IF no hash is present (always keep hash hits)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// | filter not (&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// (unified_path contains "C:\Windows\System32\" or unified_path contains "C:\Program Files\") &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// and unified_hash = null&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// Select relevant fields for investigation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| fields _time, agent_hostname, event_type, event_sub_type, unified_name, unified_path, unified_hash, actor_process_image_name, actor_process_command_line, mitre_attack&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;// OPTIONAL: Dedup and Triage View (Counts per host/file/hash)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| comp count() as hit_count, latest(_time) as last_seen by agent_hostname, unified_name, unified_path, unified_hash, mitre_attack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;| sort desc hit_count&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="cm-content q9tKkq_readonly"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class=""&gt;
&lt;H4&gt;&lt;SPAN&gt;Key Components of the Syntax:&lt;/SPAN&gt;&lt;/H4&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P data-end="2363" data-start="2201"&gt;&lt;STRONG data-end="2223" data-start="2201"&gt;Case Insensitivity&lt;/STRONG&gt;&lt;BR data-end="2226" data-start="2223" /&gt;The &lt;CODE data-end="2261" data-start="2230"&gt;config case_sensitive = false&lt;/CODE&gt; stage ensures that all string comparisons and regex matches are handled regardless of capitalization.&lt;/P&gt;
&lt;P data-end="2405" data-start="2365"&gt;&lt;STRONG data-end="2384" data-start="2365"&gt;Event Filtering&lt;/STRONG&gt;&lt;BR data-end="2387" data-start="2384" /&gt;The query targets:&lt;/P&gt;
&lt;UL data-end="2513" data-start="2406"&gt;
&lt;LI data-end="2440" data-start="2406"&gt;
&lt;P data-end="2440" data-start="2408"&gt;&lt;CODE data-end="2423" data-start="2408"&gt;PROCESS_START&lt;/CODE&gt; for executions&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="2513" data-start="2441"&gt;
&lt;P data-end="2513" data-start="2443"&gt;&lt;CODE data-end="2460" data-start="2443"&gt;FILE_CREATE_NEW&lt;/CODE&gt;, &lt;CODE data-end="2474" data-start="2462"&gt;FILE_WRITE&lt;/CODE&gt;, and &lt;CODE data-end="2493" data-start="2480"&gt;FILE_RENAME&lt;/CODE&gt; for file activity&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-end="2595" data-start="2515"&gt;&lt;STRONG data-end="2533" data-start="2515"&gt;Regex Matching&lt;/STRONG&gt;&lt;BR data-end="2536" data-start="2533" /&gt;The &lt;CODE data-end="2544" data-start="2540"&gt;~=&lt;/CODE&gt; operator is used for the masquerade regex pattern.&lt;/P&gt;
&lt;P data-end="2595" data-start="2515"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-end="2776" data-start="2597"&gt;&lt;STRONG data-end="2616" data-start="2597"&gt;Unified Results&lt;/STRONG&gt;&lt;BR data-end="2619" data-start="2616" /&gt;The &lt;CODE data-end="2635" data-start="2623"&gt;coalesce()&lt;/CODE&gt; function merges disparate fields (such as &lt;CODE data-end="2705" data-start="2678"&gt;action_process_image_name&lt;/CODE&gt; and &lt;CODE data-end="2728" data-start="2710"&gt;action_file_name&lt;/CODE&gt;) into unified columns for easier investigation.&lt;/P&gt;
&lt;P data-end="2776" data-start="2597"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-end="2961" data-start="2778"&gt;&lt;STRONG data-end="2804" data-start="2778"&gt;Hash Persistence Logic&lt;/STRONG&gt;&lt;BR data-end="2807" data-start="2804" /&gt;The optional suppression block is structured to ignore events in common benign paths only if no hash is present. Any event containing a hash is preserved.&lt;/P&gt;
&lt;P data-end="2961" data-start="2778"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-is-only-node="" data-is-last-node="" data-end="3136" data-start="2963"&gt;&lt;STRONG data-end="2978" data-start="2963"&gt;Triage View&lt;/STRONG&gt;&lt;BR data-end="2981" data-start="2978" /&gt;The &lt;CODE data-end="2991" data-start="2985"&gt;comp&lt;/CODE&gt; stage provides a summarized, deduplicated view with hit counts and the most recent timestamp, which is useful for high-level triage and scoping.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you feel this has answered your query, please let us know by clicking like and on&amp;nbsp;&lt;STRONG&gt;"mark this as a Solution".&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks &amp;amp; Regards,&lt;BR /&gt;S. Subashkar Sekar&lt;/P&gt;</description>
      <pubDate>Wed, 04 Mar 2026 15:00:53 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/cortex-xdr-discussions/request-xql-query-for-filename-optional-hash-logic-single-stream/m-p/1249434#M9179</guid>
      <dc:creator>susekar</dc:creator>
      <dc:date>2026-03-04T15:00:53Z</dc:date>
    </item>
  </channel>
</rss>

