Cribl Zero Trust Incident Ingestion
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 Cribl can leverage this integration to send real-time Zero Trust alerts using webhooks and maintain full payload parsing using JSON-defined fields. The Cribl Alert Ingestion Connector capability within the platform allows inbound webhook JSON payloads to be parsed and turned into host status updates. Customers can then use Cribl to transform and sync data to multiple security tool destinations.
Limitations
This guide does not provide configuration for routes, pipelines, or destinations. You must independently configure where alert data should be routed and sent to destinations.
Solution Overview
Superna Data Security Edition Zero Trust API is the cornerstone technology used to integrate with SIEM and SOAR platforms. This integration maps Zero Trust alerts to ECS format (Elastic Common Schema) or HEC format and sends them to the Cribl HTTPS JSON endpoint stream.
What Is Cribl?
Cribl provides a data engine and platform for IT and security teams to manage machine data like logs, metrics, and traces. Its core function is to collect, process, and route this data from any source to any destination, helping organizations control costs, reduce risk, and gain better visibility. Key products like Cribl Stream and Cribl Edge allow users to filter, enrich, and route data in real time.
Integration Architecture

Solution Configuration in Cribl and Defender Zero Trust
Prerequisites
- Installed Data Security Edition subscription product
- Eyeglass OS appliance version 15.5 — verify with
cat /etc/os-release - License key for the Zero Trust API
- Cribl or Cribl Enterprise
Features
- Sends native Incident API calls with severity mapping from Superna to Cribl
- Fields mapped to Cribl ECS format
- Optional setting to format as HEC format (Splunk HEC) and send to the Splunk HEC endpoint
Configuration in Cribl JSON Endpoint — ECS Format
- Log in to the Cribl console.
- Edit the HTTP data source in your workspace to add an API token.
- Record the token value.
- Record the endpoint URL for the bulk JSON input endpoint.
Configuration in Cribl JSON Endpoint — HEC Format
Follow this section only if you are using the Splunk HEC endpoint with HEC format enabled.
- Log in to the Cribl console.
- Locate Data sources.
- Edit the
in_splunk_hecdata source. - Add an authentication token.
- Record both the endpoint URL and the token value.
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 the Cribl 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 Cribl.
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-cribl
source venv-cribl/bin/activate
Install required Python packages:
pip install flask boto3 requests logging
deactivate
Create integration script files:
touch cribl.py
touch cribl.sh
chmod +x cribl.py
chmod +x cribl.sh
Create the cribl.sh launch script:
nano /opt/superna/cgi-bin/cribl.sh
Paste the following content into the file:
#!/bin/bash
export PATH="/opt/.pyenv/bin:$PATH"
source /opt/superna/cgi-bin/venv-cribl/bin/activate
exec python /opt/superna/cgi-bin/cribl.py
Make the script executable:
chmod +x /opt/superna/cgi-bin/cribl.sh
Exit back to root:
exit
whoami # confirm you are root
Create the systemd service unit file:
nano /etc/systemd/system/cribl.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/cribl.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 cribl
Configure Python Packages and Customize the Integration Code
-
Download the Python template code from the Superna Support site (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 configuration section and replace the placeholder values with your Cribl endpoint URL and API token:
# === Cribl Configuration ===
# Use your Cribl Stream Cloud HTTP Bulk API input endpoint
CRIBL_URL = "https://default.main.goofy-shamir-iqst5ne.cribl.cloud:10080/cribl/_bulk" # ECS format
# CRIBL_URL = "https://default.main.goofy-shamir-iqst5ne.cribl.cloud:8088/services/collector" # HEC format
CRIBL_TOKEN = "xxxxxxxxxx"
# === Format Toggle ===
# True for HEC input (port 8088)
# False for ECS /bulk input (port 10080)
hec_format = FalseSet
hec_format = Trueif you are using the Splunk HEC endpoint. -
Open the production file on the Eyeglass VM:
nano /opt/superna/cgi-bin/cribl.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 cribl
systemctl status -l criblVerify 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 to Test the Integration with Cribl
- Download the curl command template and open it with a text editor.
- Copy all the text.
- 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. This sends test data directly to the application to be processed and sent to Cribl.
To review the process logs from the web application:
sudo -s
journalctl -f -u cribl
To log to a file and review with nano, showing only the most recent 250 lines:
journalctl -f -n 250 -u cribl > /tmp/ztwebhook.log
nano /tmp/ztwebhook.log
The response code from the Cribl API call should show HTTP 200 status code and successCount 1 to indicate the event was successfully created.
Cribl Administrator Integration Experience
Once the integration has been tested, log in to the Cribl console to verify that events are parsed and displayed correctly. Use the transformation and multiple destination sync capabilities in Cribl to route Zero Trust alert data to your security tool destinations.