Hello Wazuh Team,
I am working on integrating a Sophos XGS Firewall with Wazuh 4.14.x and am currently developing a production-ready ruleset. I have created custom decoders and rules, but I'm still uncertain whether my approach follows best practices.
If anyone has already built a mature or production-tested Sophos XGS ruleset, I would greatly appreciate it if you could share your decoders, rules, or any guidance.
Environment
Currently Enabled Log Categories
I have reviewed the official Wazuh ruleset but could not find dedicated Sophos XGS firewall decoders or detection rules. If there is an official or community-maintained ruleset available, or if you've built one yourself, could you please share it?
Additionally, if you recommend any specific Sophos log settings or categories that should be enabled or disabled for effective detection while minimizing noise, I'd be grateful for your recommendations.
If anyone has already built a mature Sophos XGS integration for Wazuh and is willing to share the decoders, rules, dashboards, or best practices, I would greatly appreciate it.
Thank you very much for your time and support.
Please go through my custom decoders and ruleset for Sophos Firewall XGS 2100
Best regards,
Ashish Patil
Cyber Security Analyst
Hello Victor,
Thank you for the detailed review and for identifying the issues in my current decoder and ruleset. Your findings are very helpful, especially regarding the sibling decoder structure, custom rule ID range, reserved user fields, and PCRE2 requirement.
I have now captured the actual raw logs directly from my Sophos XGS 2100 and am sharing representative samples below so that the decoder behavior can be validated against the real log format generated by my appliance.
Environment:
Wazuh: 4.14.7
Sophos Firewall: XGS 2100
SFOS: 22.0.0 MR1
Log transport: Syslog/UDP
Log format: Key-value
Sophos → Wazuh Manager
Sample Firewall log:
2026-08-07T06:29:53.923314+00:00 154-86-109-203.static.youbroadband.in device_name="X21025QFK3DG744" timestamp="2026-08-07T11:59:53+0530" device_model="XGS2100" device_serial_id="X21025QFK3DG744" log_id="010101600001" log_type="Firewall" log_component="Firewall Rule" log_subtype="Allowed" log_version=1 severity="Information" fw_rule_id="11" fw_rule_name="Limited Access 26-100" fw_rule_section="Local rule" nat_rule_id="7" nat_rule_name="Limited Access 26-100" fw_rule_type="USER" sdwan_profile_id_request=1 sdwan_profile_name_request="Load-Balance" gw_id_request=2 gw_name_request="UbroadBand-Gateway" sdwan_route_id_request=2 sdwan_route_name_request="Load Balance" web_policy_id=15 app_filter_policy_id=1 ether_type="Unknown (0x0000)" in_interface="Port5" out_interface="Port3" src_mac="30:F6:EF:CA:78:17" dst_mac="A8:91:62:18:8E:65" src_ip="192.168.1.71" src_country="R1" dst_ip="162.247.241.14" dst_country="USA" protocol="TCP" src_port=51190 dst_port=443 src_trans_ip="203.109.86.154" src_zone_type="LAN" src_zone="LAN" dst_zone_type="WAN" dst_zone="WAN" con_event="Start" con_id="533606492" hb_status="No Heartbeat" app_resolved_by="Signature" app_is_cloud="FALSE" qualifier="New" in_display_interface="Port5" out_display_interface="UbroadBand" log_occurrence="1"
Sample Content Filtering / HTTP log:
2026-08-07T06:29:53.938741+00:00 154-86-109-203.static.youbroadband.in device_name="X21025QFK3DG744" timestamp="2026-08-07T11:59:53+0530" device_model="XGS2100" device_serial_id="X21025QFK3DG744" log_id="050901616001" log_type="Content Filtering" log_component="HTTP" log_subtype="Allowed" log_version=1 severity="Information" fw_rule_id="11" fw_rule_name="Limited Access 26-100" fw_rule_section="Local rule" web_policy_id=15 http_category="Information Technology" http_category_type="Acceptable" url="http://c.pki.goog/r/r1.crl" src_ip="192.168.1.71" dst_ip="192.178.174.94" protocol="TCP" src_port=51189 dst_port=80 bytes_sent=200 bytes_received=223 domain="c.pki.goog" http_user_agent="Microsoft-CryptoAPI/10.0" http_status="304" transaction_id="1344c687-f407-4801-affa-97eb1d607da8" download_file_name="r1.crl" con_id=3912932324 app_is_cloud="FALSE" used_quota="0" src_zone_type="LAN" src_zone="LAN" dst_zone_type="WAN" dst_zone="WAN" src_country="R1" dst_country="USA"
Based on these real logs, could you please advise whether Wazuh has an established or recommended enterprise architecture for Sophos XGS/SFOS integrations?
More specifically, I would appreciate your guidance on the following:
Is there an existing Wazuh-supported or community-maintained Sophos XGS decoder/ruleset that is considered production-tested?
If there is no official ruleset, could you recommend the best enterprise approach for structuring the custom decoder and ruleset — for example, whether Firewall, IPS, Antivirus, Web Filtering, VPN, Authentication, System, and other Sophos categories should use separate decoder/rule layers?
Based on the raw logs above, could you confirm the recommended field mappings and regex approach, particularly for fields such as src_ip, dst_ip, src_port, dst_port, fw_rule_id, fw_rule_name, bytes_sent, bytes_received, user-related fields, and the quoted/unquoted values?
Could you recommend an enterprise-grade rule ID namespace and ruleset organization that will remain safe across future Wazuh upgrades?
For correlation rules such as brute-force, DoS, scanning, DNS tunneling, suspicious applications, VPN failures, and repeated security events, are there any Wazuh best practices you recommend for avoiding false positives and excessive alert volume?
Would it be possible for you or the Wazuh team to provide a reference Sophos XGS ruleset/decoder architecture, even if it is only a recommended template rather than an officially supported ruleset?
My objective is not simply to make the current logs decode successfully. I want to build a maintainable, production-ready Sophos XGS integration suitable for an enterprise SOC, with reliable field extraction, meaningful detection coverage, proper correlation, MITRE ATT&CK mapping, and controlled alert noise.
I can also provide additional raw samples for IPS, Antivirus, Web Filtering, Authentication, SSL VPN, DoS, System, and other Sophos event categories if those would help validate the decoder design.
Thank you again for taking the time to review my integration. Your feedback has already helped identify several issues that were not obvious from the XML alone.
Best regards,
Ashish Patil
Cyber Security Analyst
Innover Systems Pvt Ltd
Hi Victor,
At my office i have Sophos XGS2100/SFOS22.0 MR1→Wazuh4.14.x,
could you provide the recommended end-to-end setup: Syslog vs rsyslog, UDP514 vs another port, Wazuh listener/localfile, log path/permissions, decoders/rules, and Discover verification?
Thank You