Sophos Extended Detection and Response XDR Integration
Support Statement
This documentation is provided "as is" without support for 3rd party software. The level of support for this integration guide is best effort without any SLA on response time. No 3rd party product support can be provided by Superna directly. 3rd party components require support contracts. See EULA for more details.
Overview
Customers using Sophos Extended Detection and Response XDR can leverage a native integration that ingests root-cause Cyberstorage events to show as security events.
Solution Overview
Superna Defender Zero Trust API receives webhook alerts from Security Edition and maps all relevant data fields into Sophos XDR with a JSON custom parsing configuration.
Advanced Zero Trust Capabilities
- Webhook to native Sophos Extended Detection and Response SIEM ingestion API and log parsing
- Superna Security Edition host containment API integration with Sophos Extended Detection and Response
What Is Sophos Extended Detection and Response?
A cybersecurity platform that correlates security data from various sources — including endpoints, servers, firewalls, and cloud environments — to provide a holistic view for detecting, investigating, and responding to threats.
Integration Architecture

Solution Configuration in Sophos XDR and Data Security Edition Zero Trust
Prerequisites
- Installed Security Edition
- Eyeglass OS appliance version 15.5 — verify with
cat /etc/os-release - License key for the Zero Trust API
- Sophos Extended Detection and Response HTTP endpoint data source
Configuration in Sophos Extended Detection and Response
- Create an HTTP ingest cloud endpoint by following the steps at https://docs.taegis.secureworks.com/integration/connectCloud/http_ingest/.
- Record the URL and API key for use in the steps below.
- The Taegis platform from Sophos has a Superna parser built into the platform that recognizes the Superna payload and automatically parses it, mapping the fields.
Configuration Steps on Eyeglass Virtual Machine
High-Level Steps
- Create the Python location to run the application on the Eyeglass VM.
- Create the Python main application script.
- Create the Linux systemd service and set it to auto-start.
- Create the Zero Trust configuration in Defender.
- Update the main script to customize it with Sophos XDR Python code.
- Test the script is running as a service.
- Create a test event in Defender to validate alerts appear as indexed parsed events in Sophos XDR.
Configure the Service Start and Python Integration Files
Log in to the Eyeglass VM via SSH as the admin user:
ssh admin@<your-vm-ip>
Become root:
sudo -s
mkdir -p /opt/superna/cgi-bin
chown -R sca:users /opt/superna/cgi-bin
chmod -R u+rwX,g+rwX /opt/superna/cgi-bin
Switch to the SCA user:
sudo -u sca -s
cd /opt/superna/cgi-bin
Create a Python virtual environment for the integration:
python3 -m venv venv-sophos
source venv-sophos/bin/activate
Install required Python packages:
pip install pprint flask boto3 requests logging socket json
deactivate
Create integration script files:
touch sophos.py
touch sophos.sh
chmod +x sophos.py
chmod +x sophos.sh
Create the sophos.sh launch script:
nano /opt/superna/cgi-bin/sophos.sh
Paste the following content into the file:
#!/bin/bash
export PATH="/opt/.pyenv/bin:$PATH"
source /opt/superna/cgi-bin/venv-sophos/bin/activate
exec python /opt/superna/cgi-bin/sophos.py
Make the script executable:
chmod +x /opt/superna/cgi-bin/sophos.sh
Exit back to root:
exit
whoami # confirm you are root
Create the systemd service unit file:
nano /etc/systemd/system/sophos.service
Paste the following content into the file:
[Unit]
Description=Webhook listener for Zero Trust API translations and integrations
After=network.target
[Service]
Type=simple
User=sca
Group=users
WorkingDirectory=/opt/superna/cgi-bin
ExecStart=/bin/bash /opt/superna/cgi-bin/sophos.sh
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Reload systemd to register the new service:
systemctl daemon-reload
Enable the service to start on boot (do not start it yet):
systemctl enable sophos
Configure Python Packages and Customize the Integration Code
-
Download the Python template code from the link to download (right-click, save as).
-
Open the Python template file in a text editor. Only replace the placeholder values — do not delete any commas.
-
Locate the section
# Define the endpoint and API token as variablesand add your Sophos XDR API token and endpoint:Secureworks_URL = "https://xxxxxxx"
Secureworks_key = "yyyyyy" -
Open the production file on the Eyeglass VM:
nano /opt/superna/cgi-bin/sophos.py -
Open the template file locally in Notepad, select all (Ctrl+A), and copy.
-
Paste the clipboard into the SSH terminal session with the open nano editor.
-
Save the file:
- Press Ctrl+X
- Answer Yes to save and exit
-
Start the service and verify it is running:
systemctl start sophos
systemctl status -l sophosVerify the service returns "active and running". If the service does not start, do not proceed — double-check the steps above.
Configure Defender Zero Trust Webhooks
-
Configure the Zero Trust endpoint in the Ransomware Defender Zero Trust tab.
Recommended ConfigurationSend only Critical and Major events, and only webhooks that set lockout or delayed lockout. The goal is to send findings rather than a list of alarms that do not pinpoint a security incident. Customers can customize based on specific requirements.
-
The endpoint URL uses localhost and sends webhooks to the application service listening on port 5000:
http://localhost:5000/webhook -
Add the Content-Type header with value application/json to complete the webhook configuration.
-
Click Save to commit the configuration.
-
Click Save on the main Webhook configuration page.
How the Integration Works in Sophos XDR
After the integration is complete, security events are sent to the HTTP endpoint and parsed by the Superna parser, which maps key fields to the thirdparty schema. Find events using the following search syntax:
FROM thirdparty WHERE sensor_id='Superna.io' EARLIEST=-7d
You can then configure rules to create investigations based on the sensor ID.
How to Test the Integration with Sophos XDR
-
Download the curl command template and open it with a text editor:
-
Locate the IP address of Eyeglass at the very end of the text and replace it with the IP address of your Eyeglass VM.
-
Search for
clientIPs":["172.31.1.45"]and replace only the IP address with the IP of the test machine running the Sophos XDR agent. -
Edit the following section and add your Sophos XDR credentials:
Secureworks_URL = 'xxxxx'
Secureworks_key = 'yyyyyy'
-
-
Copy all the text in the text editor.
-
SSH to the Eyeglass VM as the admin user.
-
Paste the entire CLI command to the SSH prompt to send sample data to the running Zero Trust application.
A successfully processed webhook test returns the following text in the SSH terminal:
done sending event to sophos and check for http 200 and success count in response
To review the process logs from the web application:
sudo -s
journalctl -f -u sophos
To log to a file and review with nano, showing only the most recent 250 lines:
journalctl -f -n 250 -u sophos > /tmp/ztwebhook.log
nano /tmp/sophos.log
The response code from the Sophos XDR API call should show HTTP 200 status code and successCount 1 to indicate the event was successfully created.
Log in to Sophos XDR and verify that a new incident is raised.
Sophos XDR SecOps Administrators Integration Experience
The event schema mapping allows for seamless investigations with all necessary evidence populated. From the advanced search interface, a log entry can be selected and an action taken to create an investigation.
- Evidence Tab — Key host, user, and IP information is populated to allow further investigation with other tools such as vulnerability scanners or endpoint protection. The impacted user is listed for automated actions to disable the account.
- Events Tab — Review the details of the incoming event.
- Threat Intelligence — Copy and paste the TI URL into a new tab and log in to Data Security Edition to view the details of the incident, including snapshots, the list of files, and SMB/NFS shares.