Hello Team,
Currently, I managed to integrate MSSQL to my Wazuh, and I can see events in my Wazuh dashboard, as attached screenshot, but I would like to have fields in my event details like event_time, client_ip, server_principal_name, database_principal_name, database_name, schema_name, object_nam,e and statement
The sample log I captured by tail -f /var/ossec/logs/archieve/archieve.json
{"timestamp":"2025-06-04T08:32:41.888+0000","rule":{"level":10,"description":"MS SQL UPDATE operation.","id":"160012","firedtimes":620,"mail":false,"groups":["windows","mssqlpci_dss_10.2.1"]},"agent":{"id":"001","name":"HQSQLTSDB01","ip":"171.10.1.17"},"manager":{"name":"wazuhdr"},"id":"1749025961.3194387817","full_log":"{\"win\":{\"system\":{\"providerName\":\"MSSQLSERVER\",\"eventID\":\"33205\",\"level\":\"0\",\"task\":\"5\",\"keywords\":\"0xa0000000000000\",\"systemTime\":\"2025-06-04T08:32:41.880580300Z\",\"eventRecordID\":\"30073398\",\"channel\":\"Application\",\"computer\":\"
HQSQLTSDB01.domain.com\",\"severityValue\":\"AUDIT_SUCCESS\",\"message\":\"\\\"Audit event: audit_schema_version:1\\nevent_time:2025-06-04 08:32:41.5211949\\nsequence_number:1\\naction_id:SL \\nsucceeded:true\\nis_column_permission:true\\nsession_id:70\\nserver_principal_id:286\\ndatabase_principal_id:1\\ntarget_server_principal_id:0\\ntarget_database_principal_id:0\\nobject_id:1577211748\\nuser_defined_event_id:0\\ntabsaction_id:631357873\\nclass_type:V \\nduration_milliseconds:0\\nresponse_rows:0\\naffected_rows:0\\nclient_ip:local machine\\npermission_bitmask:00000000000000000000000000000001\\nsequence_group_id:3B9FE7BD-C102-4EDE-9F7A-9D94027149FF\\nsession_server_principal_name:domain\\\\user.usery\\nserver_principal_name:domain\\\\user.usery\\nserver_principal_sid:0105000000000005150000003fe885e2b7a0d6465107ccd3dab80000\\ndatabase_principal_name:dbo\\ntarget_server_principal_name:\\ntarget_server_principal_sid:\\ntarget_database_principal_name:\\nserver_instance_name:HQSQLTSDB01\\ndatabase_name:E10TEST\\nschema_name:dbo\\nobject_name:Parttab\\nstatement:update Parttab\\r\\nset tabQty =222222\\r\\nwhere tabNum = 35\\nadditional_information:\\nuser_defined_information:\\napplication_name:Microsoft SQL Server Management Studio - Query\\n.\\\"\"},\"eventdata\":{\"data\":\"audit_schema_version:1 event_time:2025-06-04 08:32:41.5211949 sequence_number:1 action_id:SL succeeded:true is_column_permission:true session_id:70 server_principal_id:286 database_principal_id:1 target_server_principal_id:0 target_database_principal_id:0 object_id:1577211748 user_defined_event_id:0 tabsaction_id:631357873 class_type:V duration_milliseconds:0 response_rows:0 affected_rows:0 client_ip:local machine permission_bitmask:00000000000000000000000000000001 sequence_group_id:3B9FE7BD-C102-4EDE-9F7A-9D94027149FF session_server_principal_name:domain\\\\\\\\user.usery server_principal_name:domain\\\\\\\\user.usery server_principal_sid:0105000000000005150000003fe885e2b7a0d6465107ccd3dab80000 database_principal_name:dbo target_server_principal_name: target_server_principal_sid: target_database_principal_name: server_instance_name:HQSQLTSDB01 database_name:E10TEST schema_name:dbo object_name:Parttab statement:update Parttab set tabQty =222222 where tabNum = 35 additional_information: user_defined_information: application_name:Microsoft SQL Server Management Studio - Query\"}}}","decoder":{"name":"windows_eventchannel"},"data":{"win":{"system":{"providerName":"MSSQLSERVER","eventID":"33205","level":"0","task":"5","keywords":"0xa0000000000000","systemTime":"2025-06-04T08:32:41.880580300Z","eventRecordID":"30073398","channel":"Application","computer":"HQSQLTSDB01.domain","severityValue":"AUDIT_SUCCESS","message":"\"Audit event: audit_schema_version:1\nevent_time:2025-06-04 08:32:41.5211949\nsequence_number:1\naction_id:SL \nsucceeded:true\nis_column_permission:true\nsession_id:70\nserver_principal_id:286\ndatabase_principal_id:1\ntarget_server_principal_id:0\ntarget_database_principal_id:0\nobject_id:1577211748\nuser_defined_event_id:0\ntabsaction_id:631357873\nclass_type:V \nduration_milliseconds:0\nresponse_rows:0\naffected_rows:0\nclient_ip:local machine\npermission_bitmask:00000000000000000000000000000001\nsequence_group_id:3B9FE7BD-C102-4EDE-9F7A-9D94027149FF\nsession_server_principal_name:domain\\user.usery\nserver_principal_name:domain\\user.usery\nserver_principal_sid:0105000000000005150000003fe885e2b7a0d6465107ccd3dab80000\ndatabase_principal_name:dbo\ntarget_server_principal_name:\ntarget_server_principal_sid:\ntarget_database_principal_name:\nserver_instance_name:HQSQLTSDB01\ndatabase_name:E10TEST\nschema_name:dbo\nobject_name:Parttab\nstatement:update Parttab\r\nset tabQty =222222\r\nwhere tabNum = 35\nadditional_information:\nuser_defined_information:\napplication_name:Microsoft SQL Server Management Studio - Query\n.\""},"eventdata":{"data":"audit_schema_version:1 event_time:2025-06-04 08:32:41.5211949 sequence_number:1 action_id:SL succeeded:true is_column_permission:true session_id:70 server_principal_id:286 database_principal_id:1 target_server_principal_id:0 target_database_principal_id:0 object_id:1577211748 user_defined_event_id:0 tabsaction_id:631357873 class_type:V duration_milliseconds:0 response_rows:0 affected_rows:0 client_ip:local machine permission_bitmask:00000000000000000000000000000001 sequence_group_id:3B9FE7BD-C102-4EDE-9F7A-9D94027149FF session_server_principal_name:domain\\\\user.usery server_principal_name:domain\\\\user.usery server_principal_sid:0105000000000005150000003fe885e2b7a0d6465107ccd3dab80000 database_principal_name:dbo target_server_principal_name: target_server_principal_sid: target_database_principal_name: server_instance_name:HQSQLTSDB01 database_name:E10TEST schema_name:dbo object_name:Parttab statement:update Parttab set tabQty =222222 where tabNum = 35 additional_information: user_defined_information: application_name:Microsoft SQL Server Management Studio - Query"}}},"location":"EventChannel"}
I just need to have columns for event_time, client_ip, server_principal_name, database_principal_name, database_name, schema_name, so that I can create custom dashboards.
This is my rule
<rule id="160001" level="3">
<if_sid>61070</if_sid>
<field name="win.system.providerName">^MSSQLSERVER$</field>
<description>Unclassisised MS SQL server audit event.</description>
<group>pci_dss_10.2.1,</group>
</rule>
<rule id="160010" level="3">
<if_sid>160001</if_sid>
<field name="win.system.providerName">^MSSQLSERVER$</field>
<field name="win.system.eventID">33205</field>
<description>MS SQL unclassisised operation</description>
<group>pci_dss_10.2.1,</group>
</rule>
<rule id="160012" level="10">
<if_sid>160010</if_sid>
<field name="win.system.providerName">^MSSQLSERVER$</field>
<field name="win.system.eventID">33205</field>
<match type="pcre2">UPDATE|update</match>
<description>MS SQL UPDATE operation.</description>
<group>pci_dss_10.2.1,</group>
</rule>
<rule id="160013" level="12">
<if_sid>160010</if_sid>
<field name="win.system.providerName">^MSSQLSERVER$</field>
<field name="win.system.eventID">33205</field>
<match type="pcre2">DELETE|delete|Delete</match>
<description>MS SQL DELETE operation.</description>
<!--<description>MS SQL DELETE operation on $(database_name).$(schema_name).$(object_name) by $(server_principal_name)</description>-->
<group>pci_dss_10.2.1,</group>
</rule>
<rule id="160014" level="4">
<if_sid>160010</if_sid>
<field name="win.system.providerName">^MSSQLSERVER$</field>
<field name="win.system.eventID">33205</field>
<field name="win.system.message" type="pcre2">(?s)^.*database_name:E10TEST.*$</field>
<field name="win.system.message" type="pcre2">(?is)^.*statement:DROP.*$</field>
<description>MS SQL DROP operation.</description>
<group>pci_dss_10.2.1,</group>
</rule>