Skip to main content
Version: 2.14.1

Google Security Operations (SecOps) Chronicle SIEM Integration

Free integration setupWe’ll install and validate this for you.
Book a setup call

Support Statement

DISCLAIMER

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 Google Security Operations (SecOps) Chronicle SIEM can leverage a native integration that initiates native ingestion API alerts from Security Edition Zero Trust alerts. Customers can augment the capabilities of Chronicle SIEM with threat intelligence and Cyber Storage capabilities of Superna Security Edition.

Solution Overview

Superna Defender Zero Trust API receives webhook alerts and parses the key data that can be used in native Chronicle ingestion API event creation. The Chronicle platform uses the UDM (Unified Data Model) schema for events. You can read more about the fields available here. The Superna integration maps key Zero Trust Cyber Storage fields into the UDM format and creates event streams that custom alert rules can read to create alerts and IOCs.

Advanced Zero Trust Capabilities

  • Custom UDM mapping from Cyber Storage to UDM event format
  • Custom alert rule to scan events and generate actionable events in Chronicle

What Is Google Security Operations (SecOps) Chronicle SIEM?

Chronicle SIEM is a cloud service, built as a specialized layer on top of core Google infrastructure, designed for enterprises to privately retain, analyze, and search the massive amounts of security and network telemetry they generate.

Integration Architecture

Google Chronicle SIEM integration architecture

Solution Configuration in Chronicle SIEM and Defender 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
  • Google Security Operations (SecOps) Chronicle SIEM with:
    • Ingestion API permissions enabled — requires your Google account representative to create a JSON authentication file to authenticate to API endpoints and use the Ingestion API (documented here)
    • Customer ID — found in the Chronicle console settings; required to use the ingestion API

Configuration in Chronicle SIEM

  1. Log in to Chronicle and record the Customer ID value from console settings.
  2. Obtain the authentication JSON file from your Google account team.
  3. Create a custom detection rule using the example YARA-L language rule provided by Superna:
  4. Open DetectionRules & DetectionsRules Editor.
  5. Click New, paste the contents of the downloaded custom rule file, and click Save.
  6. Click the three-dot menu to enable the rule for live events and alerting, and set the run frequency to 10 minutes.

Configuration Steps on Eyeglass Virtual Machine

High-Level Steps

  1. Create the Python location to run the application on the Eyeglass VM.
  2. Create the Python main application script.
  3. Create the Linux systemd service and set it to auto-start.
  4. Create the Zero Trust configuration in Defender.
  5. Update the main script to customize it with the Chronicle SIEM Python code.
  6. Test the script is running as a service.
  7. Create a test event in Defender to validate alerts appear as indexed parsed events in Chronicle SIEM.

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-gcsiem

source venv-gcsiem/bin/activate

Install required Python packages:

pip install google-auth google-auth-httplib2 google-api-python-client flask boto3 requests logging

deactivate

Create integration script files:

touch gcsiem.py

touch gcsiem.sh

chmod +x gcsiem.py

chmod +x gcsiem.sh

Create the gcsiem.sh launch script:

nano /opt/superna/cgi-bin/gcsiem.sh

Paste the following content into the file:

#!/bin/bash

export PATH="/opt/.pyenv/bin:$PATH"

source /opt/superna/cgi-bin/venv-gcsiem/bin/activate

exec python /opt/superna/cgi-bin/gcsiem.py

Make the script executable:

chmod +x /opt/superna/cgi-bin/gcsiem.sh

Exit back to root:

exit

whoami # confirm you are root

Create the systemd service unit file:

nano /etc/systemd/system/gcsiem.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/gcsiem.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 gcsiem

Configure Python Packages and Customize the Integration Code

  1. Download the Python template code from the link to download.

  2. Open the Python template file in a text editor. Only replace the placeholder values — do not delete any commas.

  3. Locate the section named "Google Security Operations (SecOps) (Chronicle) SIEM Integration section" and replace the placeholder key file name with the JSON authentication file name provided by your Google representative.

  4. Copy the JSON authentication file to the Eyeglass VM and set the correct permissions:

    chown sca:users /opt/superna/cgi-bin/gcsiem.json

    chmod 600 /opt/superna/cgi-bin/gcsiem.json
  5. Search the template file for the customer_id string and replace it with your Customer ID from the Chronicle portal.

  6. Open the production file on the Eyeglass VM:

    nano /opt/superna/cgi-bin/gcsiem.py
  7. Open the template file locally in Notepad, select all (Ctrl+A), and copy.

  8. Paste the clipboard into the SSH terminal session with the open nano editor.

  9. Save the file:

    • Press Ctrl+X
    • Answer Yes to save and exit
  10. Start the service and verify it is running:

    systemctl start gcsiem

    systemctl status -l gcsiem

    Verify 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

  1. Configure the Zero Trust endpoint in the Ransomware Defender Zero Trust tab.

    Recommended Configuration

    Send 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.

  2. The endpoint URL uses localhost and sends webhooks to the application service listening on port 5000:

    http://localhost:5000/webhook
  3. Add the Content-Type header with value application/json to complete the webhook configuration.

  4. Click Save to commit the configuration.

  5. Click Save on the main Webhook configuration page.

How to Test the Integration with Chronicle SIEM

  1. Install the Chronicle SIEM agent on a test machine and record its IP address.
  2. Get the IP address of the Eyeglass VM.
  3. 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 Chronicle SIEM agent. This simulates a Zero Trust alert on that host when the curl command sends the webhook payload.
  4. Copy all the text in the text editor.
  5. SSH to the Eyeglass VM as the admin user.
  6. 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 Chronicle SIEM.

A successfully processed webhook test returns the following text in the SSH terminal:

done sending event to gcsiem and check for http 200 and success count in response

To review the process logs from the web application:

sudo -s

journalctl -f -u gcsiem

To log to a file and review with nano, showing only the most recent 250 lines:

journalctl -f -n 250 -u gcsiem > /tmp/ztwebhook.log

nano /tmp/gcsiem.log

The response code from the Chronicle SIEM API call should show HTTP 200 status code and successCount 1 to indicate the event was successfully created.

Log in to the Chronicle SIEM main dashboard and check the Alerts landing page.

note

The alert policy takes up to 10 minutes to scan for matching events.

Chronicle SIEM SecOps Administrators Integration Experience

Once the integration has been configured and is running, security administrators can see the details of the events ingested by the Ingestion API in the Chronicle SIEM console.