<?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: How to filter process_file_info in a BIOC in Cortex XSIAM Discussions</title>
    <link>https://live.paloaltonetworks.com/t5/cortex-xsiam-discussions/how-to-filter-process-file-info-in-a-bioc/m-p/1250260#M375</link>
    <description>&lt;DIV&gt;Well noted regarding the distinction between JSON and string results. I’m just trying to understand why, in this case, the default XSIAM BIOC query allows access to this field if it’s supposed to be available only in XQL Queries. Is there a roadmap indicating when these parameters might become directly usable?&lt;/DIV&gt;</description>
    <pubDate>Mon, 16 Mar 2026 10:39:33 GMT</pubDate>
    <dc:creator>FCossard</dc:creator>
    <dc:date>2026-03-16T10:39:33Z</dc:date>
    <item>
      <title>How to filter process_file_info in a BIOC</title>
      <link>https://live.paloaltonetworks.com/t5/cortex-xsiam-discussions/how-to-filter-process-file-info-in-a-bioc/m-p/1250082#M372</link>
      <description>&lt;DIV&gt;
&lt;P&gt;Hi everyone,&lt;/P&gt;
&lt;P&gt;I’m working on a BIOC of type &lt;STRONG&gt;Process&lt;/STRONG&gt;, and I’m trying to use the &lt;STRONG&gt;&lt;CODE&gt;process_file_info&lt;/CODE&gt;&lt;/STRONG&gt; field as a filter. When I run a search, this field shows up as a &lt;STRONG&gt;JSON object&lt;/STRONG&gt; containing details like &lt;EM&gt;product name&lt;/EM&gt;, &lt;EM&gt;version&lt;/EM&gt;, etc.&lt;/P&gt;
&lt;P&gt;The problem is:&lt;BR /&gt;BIOC filters only seem to support &lt;STRONG&gt;exact string matching&lt;/STRONG&gt;, and since &lt;CODE&gt;process_file_info&lt;/CODE&gt; is JSON, I can’t match individual fields inside it.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If I try using a wildcard, I get this error:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;Field action_process_file_info for operator wildcard is invalid.
Expected string but received json.
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Has anyone found a way to filter on specific values inside &lt;CODE&gt;process_file_info&lt;/CODE&gt; within a BIOC, or is this simply not supported?&lt;BR /&gt;If not, what’s the recommended workaround?&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 12 Mar 2026 16:26:48 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/cortex-xsiam-discussions/how-to-filter-process-file-info-in-a-bioc/m-p/1250082#M372</guid>
      <dc:creator>FCossard</dc:creator>
      <dc:date>2026-03-12T16:26:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to filter process_file_info in a BIOC</title>
      <link>https://live.paloaltonetworks.com/t5/cortex-xsiam-discussions/how-to-filter-process-file-info-in-a-bioc/m-p/1250098#M373</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/307016"&gt;@FCossard&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 data-end="435" data-start="0"&gt;In &lt;STRONG data-end="17" data-start="3"&gt;Cortex XDR&lt;/STRONG&gt;, the &lt;CODE data-end="42" data-start="23"&gt;process_file_info&lt;/CODE&gt; field (and variations like &lt;CODE data-end="96" data-start="70"&gt;action_process_file_info&lt;/CODE&gt; or &lt;CODE data-end="125" data-start="100"&gt;actor_process_file_info&lt;/CODE&gt;) is a &lt;STRONG data-end="208" data-start="132"&gt;structured Record or JSON object containing multiple metadata attributes&lt;/STRONG&gt;. Direct filtering on the root field using string-based operators (like &lt;CODE data-end="290" data-start="280"&gt;contains&lt;/CODE&gt; or wildcards) is &lt;STRONG data-end="325" data-start="308"&gt;not supported&lt;/STRONG&gt;, because the system expects a primitive string but receives a complex JSON object, which results in an error.&lt;/P&gt;
&lt;H4 data-end="500" data-start="442" data-section-id="87rfxy"&gt;&amp;nbsp;&lt;/H4&gt;
&lt;H4 data-end="500" data-start="442" data-section-id="87rfxy"&gt;Recommended Workaround: Use Dot Notation in an XQL BIOC&lt;/H4&gt;
&lt;P data-end="699" data-start="502"&gt;The most effective way to filter on specific values inside &lt;CODE data-end="580" data-start="561"&gt;process_file_info&lt;/CODE&gt; is to &lt;STRONG data-end="615" data-start="587"&gt;create an XQL-based BIOC&lt;/STRONG&gt; and use &lt;STRONG data-end="640" data-start="624"&gt;dot notation&lt;/STRONG&gt; to target nested string attributes within the JSON object.&lt;/P&gt;
&lt;P data-end="699" data-start="502"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4 data-end="732" data-start="701" data-section-id="ic457z"&gt;Step-by-Step Implementation&lt;/H4&gt;
&lt;OL data-end="947" data-start="734"&gt;
&lt;LI data-end="783" data-start="734" data-section-id="1bpfuiu"&gt;
&lt;P data-end="783" data-start="737"&gt;Navigate to &lt;STRONG data-end="780" data-start="749"&gt;Detection &amp;gt; BIOC &amp;gt; Add BIOC&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="864" data-start="784" data-section-id="383u0l"&gt;
&lt;P data-end="864" data-start="787"&gt;Select &lt;STRONG data-end="807" data-start="794"&gt;XQL Query&lt;/STRONG&gt; as the rule type (rather than the form-based builder).&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="947" data-start="865" data-section-id="13vj58b"&gt;
&lt;P data-end="947" data-start="868"&gt;Reference the specific sub-field using the format &lt;CODE data-end="944" data-start="918"&gt;[FIELD_NAME].[ATTRIBUTE]&lt;/CODE&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H5 data-end="967" data-start="949"&gt;Example Query&lt;/H5&gt;
&lt;P data-end="1045" data-start="968"&gt;To filter for a specific product name and version within a process execution:&lt;/P&gt;
&lt;P data-end="1045" data-start="968"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="relative w-full mt-4 mb-1"&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;dataset &lt;/SPAN&gt;&lt;SPAN class="ͼ8"&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; xdr_data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="ͼ8"&gt;|&lt;/SPAN&gt;&lt;SPAN&gt; filter event_type &lt;/SPAN&gt;&lt;SPAN class="ͼ8"&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; ENUM.PROCESS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="ͼ8"&gt;|&lt;/SPAN&gt;&lt;SPAN&gt; filter action_process_file_info.product_name contains &lt;/SPAN&gt;&lt;SPAN class="ͼc"&gt;"AnyDesk"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="ͼ8"&gt;|&lt;/SPAN&gt;&lt;SPAN&gt; filter action_process_file_info.file_version &lt;/SPAN&gt;&lt;SPAN class="ͼ8"&gt;=&lt;/SPAN&gt; &lt;SPAN class="ͼc"&gt;"6.3.2"&lt;/SPAN&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&gt;
&lt;DIV class=""&gt;
&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;H4 data-end="1287" data-start="1236" data-section-id="1hb1y9k"&gt;Available Sub-Fields inside &lt;CODE data-end="1287" data-start="1268"&gt;process_file_info&lt;/CODE&gt;&lt;/H4&gt;
&lt;P data-end="1343" data-start="1289"&gt;Common attributes you can reference with dot notation:&lt;/P&gt;
&lt;UL data-end="1498" data-start="1345"&gt;
&lt;LI data-end="1363" data-start="1345" data-section-id="en6wij"&gt;
&lt;P data-end="1363" data-start="1347"&gt;&lt;CODE data-end="1361" data-start="1347"&gt;product_name&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="1382" data-start="1364" data-section-id="n8u7e3"&gt;
&lt;P data-end="1382" data-start="1366"&gt;&lt;CODE data-end="1380" data-start="1366"&gt;file_version&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="1404" data-start="1383" data-section-id="2hl8li"&gt;
&lt;P data-end="1404" data-start="1385"&gt;&lt;CODE data-end="1402" data-start="1385"&gt;product_version&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="1418" data-start="1405" data-section-id="1oty4wf"&gt;
&lt;P data-end="1418" data-start="1407"&gt;&lt;CODE data-end="1416" data-start="1407"&gt;company&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="1436" data-start="1419" data-section-id="1j2a3da"&gt;
&lt;P data-end="1436" data-start="1421"&gt;&lt;CODE data-end="1434" data-start="1421"&gt;description&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="1456" data-start="1437" data-section-id="145yllj"&gt;
&lt;P data-end="1456" data-start="1439"&gt;&lt;CODE data-end="1454" data-start="1439"&gt;internal_name&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="1476" data-start="1457" data-section-id="1rkmt1l"&gt;
&lt;P data-end="1476" data-start="1459"&gt;&lt;CODE data-end="1474" data-start="1459"&gt;original_name&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="1498" data-start="1477" data-section-id="ng5l01"&gt;
&lt;P data-end="1498" data-start="1479"&gt;&lt;CODE data-end="1496" data-start="1479"&gt;legal_copyright&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-end="1558" data-start="1500"&gt;These fields are extracted from the executable’s metadata.&lt;/P&gt;
&lt;H4 data-end="1608" data-start="1565" data-section-id="6wn3nw"&gt;&amp;nbsp;&lt;/H4&gt;
&lt;H4 data-end="1608" data-start="1565" data-section-id="6wn3nw"&gt;Alternative: Use Dedicated String Fields:&lt;/H4&gt;
&lt;P data-end="1798" data-start="1610"&gt;If you only need to match &lt;STRONG data-end="1675" data-start="1636"&gt;process name, path, or command line&lt;/STRONG&gt;, it is recommended to use &lt;STRONG data-end="1738" data-start="1702"&gt;existing primitive string fields&lt;/STRONG&gt;, as these support standard BIOC UI operators and wildcards:&lt;/P&gt;
&lt;UL data-end="1954" data-start="1800"&gt;
&lt;LI data-end="1849" data-start="1800" data-section-id="nrpnck"&gt;
&lt;P data-end="1849" data-start="1802"&gt;&lt;STRONG data-end="1819" data-start="1802"&gt;Process name:&lt;/STRONG&gt; &lt;CODE data-end="1847" data-start="1820"&gt;action_process_image_name&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="1896" data-start="1850" data-section-id="1ailxqk"&gt;
&lt;P data-end="1896" data-start="1852"&gt;&lt;STRONG data-end="1866" data-start="1852"&gt;Full path:&lt;/STRONG&gt; &lt;CODE data-end="1894" data-start="1867"&gt;action_process_image_path&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="1954" data-start="1897" data-section-id="mghbz4"&gt;
&lt;P data-end="1954" data-start="1899"&gt;&lt;STRONG data-end="1916" data-start="1899"&gt;Command line:&lt;/STRONG&gt; &lt;CODE data-end="1952" data-start="1917"&gt;action_process_image_command_line&lt;/CODE&gt;&lt;CODE data-end="1952" data-start="1917"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4 data-end="1992" data-start="1961" data-section-id="1h76nzo"&gt;Important Note on Prevention&lt;/H4&gt;
&lt;P data-end="2063" data-start="1994"&gt;If you intend to use this BIOC for &lt;STRONG data-end="2062" data-start="2029"&gt;Custom Prevention Rules (CPR)&lt;/STRONG&gt;:&lt;/P&gt;
&lt;UL data-end="2343" data-start="2065"&gt;
&lt;LI data-end="2134" data-start="2065" data-section-id="1jz16ah"&gt;
&lt;P data-end="2134" data-start="2067"&gt;Ensure the fields you reference are &lt;STRONG data-end="2131" data-start="2103"&gt;supported for prevention&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="2262" data-start="2135" data-section-id="zcbtdr"&gt;
&lt;P data-end="2262" data-start="2137"&gt;Some complex JSON-based logic may be restricted to &lt;STRONG data-end="2206" data-start="2188"&gt;Detection Only&lt;/STRONG&gt; if it cannot be evaluated synchronously by the agent.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-end="2343" data-start="2263" data-section-id="jpujoh"&gt;
&lt;P data-end="2343" data-start="2265"&gt;The BIOC must be &lt;STRONG data-end="2322" data-start="2282"&gt;enabled within a Restriction Profile&lt;/STRONG&gt; to block activity.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&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;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Mar 2026 22:05:29 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/cortex-xsiam-discussions/how-to-filter-process-file-info-in-a-bioc/m-p/1250098#M373</guid>
      <dc:creator>susekar</dc:creator>
      <dc:date>2026-03-12T22:05:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to filter process_file_info in a BIOC</title>
      <link>https://live.paloaltonetworks.com/t5/cortex-xsiam-discussions/how-to-filter-process-file-info-in-a-bioc/m-p/1250260#M375</link>
      <description>&lt;DIV&gt;Well noted regarding the distinction between JSON and string results. I’m just trying to understand why, in this case, the default XSIAM BIOC query allows access to this field if it’s supposed to be available only in XQL Queries. Is there a roadmap indicating when these parameters might become directly usable?&lt;/DIV&gt;</description>
      <pubDate>Mon, 16 Mar 2026 10:39:33 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/cortex-xsiam-discussions/how-to-filter-process-file-info-in-a-bioc/m-p/1250260#M375</guid>
      <dc:creator>FCossard</dc:creator>
      <dc:date>2026-03-16T10:39:33Z</dc:date>
    </item>
  </channel>
</rss>

