SentinelOne Zero Trust Security Host Network Disconnect 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 SentinelOne can leverage a native integration that initiates a native API call to isolate hosts flagged as compromised by Superna Security Edition. The Superna Security Edition Zero Trust API receives webhook alerts from Security Edition and maps all relevant data fields into SentinelOne.
Solution Overview
Superna Security Edition Zero Trust API receives webhook alerts from Security Edition and maps all relevant data fields into SentinelOne.
Video Demo
Advanced Zero Trust Capabilities
- Host network disconnect — isolates the offending endpoint via the SentinelOne API (enabled by default)
- Host broadcast message — sends a message to the affected host (disabled by default)
- Full disk scan initiation — triggers a full scan on the affected host (disabled by default)
What Is SentinelOne?
SentinelOne is an Endpoint Detection and Response (EDR) solution that employs artificial intelligence and machine learning to detect, prevent, and respond to cyber threats.
SentinelOne Marketplace
The solution is documented in the SentinelOne Marketplace.
Integration Architecture

Solution Configuration in SentinelOne and 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
- SentinelOne
Configuration in SentinelOne
- Create an API token for a service account user in the SentinelOne management console.
- Record the API token — you will need it in the integration script.
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 Security Edition.
- Update the main script to customize it with the SentinelOne Python code.
- Test the script is running as a service.
- Create a test event in Security Edition to validate alerts appear as indexed parsed events in SentinelOne.
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-sentinelone
source venv-sentinelone/bin/activate
Install required Python packages:
pip install flask boto3 requests logging
deactivate
Create integration script files:
touch sentinelone.py
touch sentinelone.sh
chmod +x sentinelone.py
chmod +x sentinelone.sh
Create the sentinelone.sh launch script:
nano /opt/superna/cgi-bin/sentinelone.sh
Paste the following content into the file:
#!/bin/bash
export PATH="/opt/.pyenv/bin:$PATH"
source /opt/superna/cgi-bin/venv-sentinelone/bin/activate
exec python /opt/superna/cgi-bin/sentinelone.py
Make the script executable:
chmod +x /opt/superna/cgi-bin/sentinelone.sh
Exit back to root:
exit
whoami # confirm you are root
Create the systemd service unit file:
nano /etc/systemd/system/sentinelone.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/sentinelone.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 sentinelone
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
# Define the endpoint and API token as variablessection and add your SentinelOne API token and endpoint:# SentinelOne instance URL and API token
instance_url = "https://yyyyyy.sentinelone.net"
api_token = "xxxxxx" -
Open the production file on the Eyeglass VM:
nano /opt/superna/cgi-bin/sentinelone.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 sentinelone
systemctl status -l sentineloneVerify the service returns "active and running". If the service does not start, do not proceed — double-check the steps above.
Configure Security Edition Zero Trust Webhooks
-
Configure the Zero Trust endpoint in the Ransomware Security Edition 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.
Configure Optional Actions Within the Integration
The integration code defaults to host isolation enabled, host broadcast disabled, and full scan disabled. Edit the integration code to enable optional actions:
# Flags to enable/disable features
enable_isolation = True # Set to False to disable isolation
enable_broadcast = True # Set to False to disable broadcast messages
enable_full_scan = True # Set to False to disable full disk scan
Open the file to edit:
nano /opt/superna/cgi-bin/sentinelone.py
Set each option to True to enable it. Save with Ctrl+X, then restart the service:
systemctl start sentinelone
How to Test the Integration with SentinelOne
-
Edit the integration script and locate the following section:
# test an IP using hard coded
# host_ip = 'x.x.x.x'
# severity = 'CRITICAL' -
Remove the
#for thehost_ipandseveritylines and enter an IP address for a SentinelOne endpoint to test the isolation API. -
Create a test lockout to generate a webhook:
- Create a banned file extension type in the Security Edition File Filter list.
- Using a Windows client PC, mount an SMB share protected by Security Edition and create at least 100 files with the banned extension.
- Verify the PC is locked out and an event is generated in the console.
-
Check the SentinelOne console to verify if the network isolation (network disconnect) was processed.
-
Add the
#comment characters back when done testing and save the file.
SentinelOne SecOps Administrators Integration Experience
Once configured, Superna Security Edition integration with SentinelOne enables real-time alert ingestion and host network disconnect. This ensures compromised hosts are disconnected from the network after a serious incident detection at the storage layer.
- Integration response log — shows each action taken for each received webhook event
- Network status — the affected host changes to Disconnected in the SentinelOne console
- Reconnection — the SOC can restore host connectivity through the Actions menu after remediation
- Host broadcast message — if enabled, a message displays on the affected host's screen (text can be customized)
- Full scan — if enabled, the console indicates a full scan has been started on the affected host
Configure Data Security Essentials (DSE)
Overview
Data Security Essentials saves alerts to the Windows Event log under a custom application log. This integration extracts those log entries and the JSON payload contained within them, formats the data as webhook events, and sends them to SentinelOne to issue host containment.
Requirements
-
Follow the SentinelOne integration steps above to configure the integration.
-
Install Python for Windows on the Data Security Essentials host and allow the installation to add Python to the PATH variable.
noteEnsure Python is installed for all users so service accounts have access — enable the for all users option during installation.
-
The integration code matches event log entries from the following event log source names:
Superna Data Security Essentials BOT ServiceSuperna Data Security Policy Engine
Features
- Logs for each execution are stored alongside the Python code
- Each execution stores the event log record ID, date time, and event number of the last processed event in
last_processed_record.txt— this file is read on each execution to continue processing from the last record - The scheduled sync runs every minute and only processes events since the last record
- Only events matching the severity filter are processed — the sample code defaults to Major and Critical events; all other severities are ignored
Steps to Configure Event Sync to SentinelOne Host Containment Integration
-
Download the integration code (right-click, save as).
-
Modify the Python file and update the SentinelOne integration settings to match your environment:
# SentinelOne API credentials
client_id = 'xxxxxx'
client_secret = 'yyyyyyy'
base_url = "https://api.us-2.SentinelOne.com"
# Configuration
server = 'localhost'
log_name = 'Data Security Essentials'
source_names = ['Superna Data Security Essentials BOT Service', 'Superna Data Security Policy Engine']
trigger_severities = ['MAJOR', 'CRITICAL', 'WARNING']
enable_isolation = True # Set to False to disable isolation actions -
Copy the Python code to
C:\Program Files\Superna\cgi-binon the Data Security Essentials host and name the filesentinelone-dse.py. -
Install Python dependencies:
noteOpen a command prompt as the service account (hold down Shift and right-click the command prompt icon → Run as). This is required to install the Python packages under the correct user account.
pip install pywin32 requests -
Test the script from a command prompt:
cd "C:\Program Files\Superna\cgi-bin"
python sentinelone-dse.pyThe output should display event log entries that match and show the data sent to the SentinelOne endpoint. You can review
last_processed_record.txtto see the last processed date, time, and event ID. Delete this file to have the script start reading from the oldest Windows event log entry. -
Grant the Data Security Essentials AD service account the Log on as a batch job right via Local Security Policy (
secpol.msc). -
Download the Task Scheduler XML file (right-click, save as). You can rename it to
SentinelOne integration.xml. -
Open Task Scheduler (
taskschd.msc), right-click Task Scheduler Library, and select Import Task. -
In the task definition:
- Edit the name to
SentinelOne Containment integration - Click the Actions tab and browse to select
C:\Program Files\Superna\cgi-bin\sentinelone-dse.py - Update the service account name, domain, and password
- Click OK to save
- Edit the name to