Hello
Dmitriy:
I hope you re fine.
Since this log in not pre-decoded correctly in the wazuh-manger, you will need to add an <out_format> tag in the corresponding <localfile> section in order to change the format of the log:
# vi /var/ossec/etc/ossec.conf
...
<localfile>
<location>/var/log/kasp.log</location>
<log_format>syslog</log_format>
<out_format>kaspersky - $(log)</out_format>
</localfile>
With this formatting, the log will arrive the wazuh-manager like this:
Kaspersky - 2023-07-28T13:58:57.000Z desktop-qkcmf7f KES|11.0.0.0 - 000000d4 [event@23668 et="000000d4" tdn="Exploit Prevention" etdn="Task cannot be performed" hdn="DESKTOP-QKCMF7F" hip="192.168.50.39" gn="test" kscfqdn="win-2fthi5tu4nq"] Event type: Task cannot be performed\r\nName: avp.exe\r\nApplication path: C:\Program Files (x86)\Kaspersky Lab\KES.12.1.0\r\nUser: DESKTOP-QKCMF7F\Admin (Active user)\r\nComponent: Exploit Prevention\r\nResult description: Task cannot be started\r\nObject type: Subsystem\r\nObject name: Exploit Prevention\r\nReason: eERROR\r\nError: License is missing'
And the decoder will be:
# vi /var/ossec/etc/decoders/kaspersky_custom_decoders.xml
<!--
Kaspersky - 2023-07-28T13:58:57.000Z desktop-qkcmf7f KES|11.0.0.0 - 000000d4 [event@23668 et="000000d4" tdn="Exploit Prevention" etdn="Task cannot be performed" hdn="DESKTOP-QKCMF7F" hip="192.168.50.39" gn="test" kscfqdn="win-2fthi5tu4nq"] Event type: Task cannot be performed\r\nName: avp.exe\r\nApplication path: C:\Program Files (x86)\Kaspersky Lab\KES.12.1.0\r\nUser: DESKTOP-QKCMF7F\Admin (Active user)\r\nComponent: Exploit Prevention\r\nResult description: Task cannot be started\r\nObject type: Subsystem\r\nObject name: Exploit Prevention\r\nReason: eERROR\r\nError: License is missing
-->
<decoder name="Kaspersky">
<prematch>kaspersky</prematch>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_parent">(\d+-\d+-\d+)T(\d+:\d+:\d+.\d+)Z (\.+) KES\|(\.+) - </regex>
<order>date,time,hostname,kes_version</order>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_regex">(\.+) </regex>
<order>event</order>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_regex">[(\.+) et="(\.+)" </regex>
<order>event2,et</order>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_regex">tdn="(\.+)" etdn="(\.+)" hdn="(\.+)" hip="(\d+.\d+.\d+.\d+)" gn="(\.+)" kscfqdn="(\.+)"] </regex>
<order>tdn,etdn,hdn,hip,gn,kscfqdn</order>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_regex">Event type: (\.+)\\r\\n</regex>
<order>event_type</order>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_regex">Name: (\.+)\\r\\n</regex>
<order>name</order>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_regex">Application path: (\.+)\\r\\n</regex>
<order>application_path</order>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_regex">User: (\.+)\\r\\n</regex>
<order>user</order>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_regex">Component: (\.+)\\r\\n</regex>
<order>component</order>
</decoder>
<decoder name="Kaspersky-child">
<parent>Kaspersky</parent>
<regex offset="after_regex">Result description: (\.+)</regex>
<order>result_description</order>
</decoder>
You can also make some basic rules like:
vi /var/ossec/etc/rules/kaspersky_custom_rules.xml
<group name="kaspersky_custom,">
<rule id="170000" level="0">
<decoded_as>Kaspersky</decoded_as>
<description>Kaspersky messages</description>
</rule>
<rule id="170001" level="3">
<if_sid>170000</if_sid>
<field name="component">Exploit Prevention</field>
<description>Kaspersky: $(component)</description>
</rule>
</group>
Finally, the result will be:
[root@wazuh-server ~]# /var/ossec/bin/wazuh-logtest
Starting wazuh-logtest v4.4.3
Type one log per line
Kaspersky - 2023-07-28T13:58:57.000Z desktop-qkcmf7f KES|11.0.0.0 - 000000d4 [event@23668 et="000000d4" tdn="Exploit Prevention" etdn="Task cannot be performed" hdn="DESKTOP-QKCMF7F" hip="192.168.50.39" gn="test" kscfqdn="win-2fthi5tu4nq"] Event type: Task cannot be performed\r\nName: avp.exe\r\nApplication path: C:\Program Files (x86)\Kaspersky Lab\KES.12.1.0\r\nUser: DESKTOP-QKCMF7F\Admin (Active user)\r\nComponent: Exploit Prevention\r\nResult description: Task cannot be started\r\nObject type: Subsystem\r\nObject name: Exploit Prevention\r\nReason: eERROR\r\nError: License is missing'
**Phase 1: Completed pre-decoding.
full event: 'Kaspersky - 2023-07-28T13:58:57.000Z desktop-qkcmf7f KES|11.0.0.0 - 000000d4 [event@23668 et="000000d4" tdn="Exploit Prevention" etdn="Task cannot be performed" hdn="DESKTOP-QKCMF7F" hip="192.168.50.39" gn="test" kscfqdn="win-2fthi5tu4nq"] Event type: Task cannot be performed\r\nName: avp.exe\r\nApplication path: C:\Program Files (x86)\Kaspersky Lab\KES.12.1.0\r\nUser: DESKTOP-QKCMF7F\Admin (Active user)\r\nComponent: Exploit Prevention\r\nResult description: Task cannot be started\r\nObject type: Subsystem\r\nObject name: Exploit Prevention\r\nReason: eERROR\r\nError: License is missing''
**Phase 2: Completed decoding.
name: 'Kaspersky'
application_path: 'C:\Program Files (x86)\Kaspersky Lab\KES.12.1.0'
component: 'Exploit Prevention'
date: '2023-07-28'
dstuser: 'DESKTOP-QKCMF7F\Admin (Active user)'
et: '000000d4'
etdn: 'Task cannot be performed'
event: '000000d4'
event2: 'event@23668'
event_type: 'Task cannot be performed'
gn: 'test'
hdn: 'DESKTOP-QKCMF7F'
hip: '192.168.50.39'
hostname: 'desktop-qkcmf7f'
kes_version: '11.0.0.0'
kscfqdn: 'win-2fthi5tu4nq'
name: 'avp.exe'
result_description: 'Task cannot be started\r\nObject type: Subsystem\r\nObject name: Exploit Prevention\r\nReason: eERROR\r\nError: License is missing''
tdn: 'Exploit Prevention'
time: '13:58:57.000'
**Phase 3: Completed filtering (rules).
id: '170001'
level: '3'
description: 'Kaspersky: Exploit Prevention'
groups: '['kaspersky_custom']'
firedtimes: '1'
mail: 'False'
**Alert to be generated.
For more information about custom rules and decoders:
For information about <localfile> configuration: