Hello !
The problem here is that the decoder is not extracting any field, so the rule can not read the
endpointCEF field.
In the regex expressions, the '|' character must be escaped like this: '\|' . Take a look at
Regex (OS_Regex) syntax for more information.
Also, when you try to extract many fields, it's really difficult to read the expression and debug it.
I propose you to use one child decoder per field, as you can see in
Sibling Decoders.
The custom decoders I wrote are included in the local_decoder.xml file, but this is the structure I'm following:
<decoder name="endpoint">
<prematch>CEF:0\|endpoint\|Mgmt</prematch>
</decoder>
<decoder name="endpoint_child">
<parent>endpoint</parent>
<regex>\|Mgmt\|(\.+)\scat=</regex>
<order>endpointCEF</order>
</decoder>
<decoder name="endpoint_child">
<parent>endpoint</parent>
<regex>cat=(\w+)\s+</regex>
<order>cat</order>
</decoder>
<decoder name="endpoint_child">
<parent>endpoint</parent>
<regex>rt=(\.+)\sactivityID=</regex>
<order>rt</order>
</decoder>
...
The main decoder looks for "CEF:0\|endpoint\|Mgmt" and then every child has its own field. They start with "=" and end with the first space.
The only exception is rt, because it also contains spaces, so it saves everything until the next field.
Also, you could change the endpointCEF field regex if it isn't exactly what you are looking for.
Here you have the result with this configuration
Don't hesitate in writing us again if you have any doubt.
Regards.