Eyeglass Solutions Publication

Google Security Operations (SecOps) (Chronicle) Integration with Zero Trust Alarms

Home



 

Overview

Customers using Google Security Operations (SecOps) (Chronicle) SIEM solution can now leverage a native integration that initiates native ingestion API alerts from Security Editions zero trust alerts.   Customers can augment the capabilities of Google Security Operations (SecOps) (Chronicle) SIEM with threat intelligence and Cyber Storage capabilities of Superna Security Edition.

Support Statement

  1. NOTE:  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

Limitations

  1. None

Solution Overview

Superna Defender Zero Trust API receives webhook alerts and parses the key data that can be used in native Google Security Operations (SecOps) (Chronicle) ingestion API event creation.  The Chronicle platform uses the UDM (Unified Data Model) schema for events.  You can read more about the fields that are 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 IOC's. 

Advanced Zero Trust Capabilities

  1. Custom UDM mapping from Cyber Storage to UDM event format
  2. 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



Solution Configuration in Google Security Operations (SecOps) (Chronicle) SIEM and Defender Zero Trust

Prerequisites

  1. Installed Security Edition
  2. Eyeglass OS appliance version 15.5
    1. cat /etc/os-release
  3. License key for the Zero Trust API 
  4. Google Security Operations (SecOps) (Chronicle) SIEM
    1. Ingestion API permissions enabled in your account.  This requires your account representative to create json authentication file that is required to authenticate to API endpoints and use the Ingestion API (documented here as a reference)
    2. customer ID - This value can be found in the console settings.  This string is required to use the ingestion api and will be used below. 
      1.  


Configuration in Google Security Operations (SecOps) (Chronicle) SIEM

  1. Login to Google Security Operations (SecOps) (Chronicle) and record the customer ID value.
  2. Get the authentication json file from your Google account team.
  3. Create a custom detection rule by using the example YARA-l language rule provided by Superna.
    1. Download the Cyber Storage detection rule
  4. Open the Detection menu and then the Rules & Detections
    1. Select the rules editor
    2.  
    3. Click the New button and paste the contents of the custom rule file downloaded in the step above and then Save the rule.
    4. Click the 3 dots to enable the rule for live events and alerting as well as setting the run frequency to 10 minutes.
      1.   
    5. Done
  5. The next step is implementing the integration code and modifying it for your environment followed by testing and alert validations.
  6. done.

Configuration Steps on Eyeglass Virtual Machine

High Level steps

  1. Create python location to run the application on the Eyeglass vm
  2. Create python main application script
  3. Create linux systemd service and set to auto start
  4. Create Zero Trust configuration in Defender
  5. Update the main script to customize with Google Security Operations (SecOps) (Chronicle) SIEM  python code
  6. Test the script is running as a service
  7. Create a test event in Defender to validate the alerts appear as indexed parsed events in Google Security Operations (SecOps) (Chronicle) SIEM

Configuration Step by Step

Configure the Service start and python integration files
  1. Login to eyeglass vm using ssh as the admin user to create zero trust application
    1. sudo -s 
    2. mkdir -p /opt/superna/cgi-bin
    3. touch /opt/superna/cgi-bin/gcsiem.py
    4. touch /opt/superna/cgi-bin/gcsiem.sh 
    5. chown sca:users  /opt/superna/cgi-bin/gcsiem.py
    6. chmod +x  /opt/superna/cgi-bin/gcsiem.py 
    7. chmod +x /opt/superna/cgi-bin/gcsiem.sh 
  2. Create systemd configuration
    1. nano  /etc/systemd/system/gcsiem.service
    2. Copy the values below and Paste these contents into the file opened in nano editor in the step above
    3. Save the file 
      1. press control+x
      2. Answer yes to save and exit
  3. Restart systemd
    1. systemctl daemon-reload
  4. Set to enabled
    1. systemctl enable gcsiem
  5. Create gcsiem.sh service script
    1. Copy the values below
    2. nano /opt/superna/cgi-bin/gcsiem.sh
    3. paste the script values below into the nano editor
    4. Save the file
      1. press control+x
      2. Answer yes to save and exit the editor
  6. Once the script is created below,  do not start the service at this step.
  7. Done

### Service definition text to copy into /etc/systemd/system/gcsiem.service. ###
[Unit]
Description=Webhook listener for Zero Trust api translations and integrations
After=network.target

[Service]
User=sca
Group=users
WorkingDirectory=/opt/superna/cgi-bin
Environment="PATH=/opt/.pyenv/shims:/usr/bin:/usr/local/bin"

ExecStart=/opt/superna/cgi-bin/gcsiem.sh

[Install]
WantedBy=multi-user.target

### service launch script /opt/superna/cgi-bin/gcsiem.sh ### 
#!/bin/bash
export PATH="/opt/.pyenv/bin:$PATH"
/opt/.pyenv/shims/python3 gcsiem.py


Configure the python packages and customize the gcsiem integration python code

  1. Now install required python packages for the SCA users that will run the service.  NOTE this is the same user that runs the main eyeglass application code.
    1. su - sca 
    2. pip3 install google-auth google-auth-httplib2 google-api-python-client pprint flask boto3 requests logging socket json
    3. exit 
    4. NOTE: you must type exit to ensure you are the root user for the remaining steps.  Type whoami to make sure you are the root user.
  2. Customize the application code by downloading the python code from this link to download
    1. Open the python template file in a text editor. NOTE: make sure to only replace the values and do not delete any of the commas
    2. Locate this section in the file and replace the yellow sections with the api token saved above. 
      1.  Section named "Google Security Operations (SecOps) (Chronicle) SIEM Integration section" in the downloaded python template code above.
      2. Replace the yellow  key file name provided by your Google rep.   
      3.    
      4. Make sure to copy the json file provided by Google to this path /opt/superna/cgi-bin
      5. Now search the template file for the customer_id string and replace with your customer id from the Chronicle portal.
        1.  
      6. save the changes to the template python script code.  

    3. nano /opt/superna/cgi-bin/gcsiem.py
    4. Open the file locally in Windows OS notepad and use control-A or select all the text in the python template
    5. Paste the clipboard into the ssh terminal session with the open nano editor file
    6. save the file
      1. press control+x
      2. Answer yes to save and exit the nano editor 
  3. Start the service and verify it is running
    1. systemctl start gcsiem
    2. systemctl status -l gcsiem 
    3. Verify the service is started successfully and returns "active and running".

  4. If the service does not start do not proceed and double check the steps above are completed. 

Configure Defender Zero Trust Webhooks

  1. The next step creates an Zero Trust Webhook URL.    
    1. Configure Zero Trust endpoint in Ransomware Defender Zero Trust tab.
      1. Recommended Configuration: Only Critical and Major events and only the webhooks that set lockout or delayed lockout.   Customers can customize based on specific requirements. The goal is to send findings versus a list of alarms that do not pinpoint a security incident.
      2. The endpoint url above will use localhost and will send Webhooks to the application service listening on port 5000. URL to use in the configuration
        1. http://localhost:5000/webhook 
        2. Add the Content-Type header with value of application/json as shown above to complete the webhook configuration.
        3. Click save to commit the configuration.
        4. Click save on the main Webhook configuration page
  2. Test the configuration is working following the next section

How to test the Integration with Google Security Operations (SecOps) (Chronicle) SIEM

  1. To test the integration follow these steps
  2. Prerequisites In Google Security Operations (SecOps) (Chronicle) SIEM and Eyeglass:
    1. install the Google Security Operations (SecOps) (Chronicle) SIEM agent on a test machine.  Record the ip address of this test machine.
    2. Get the ip address of the Eyeglass vm
    3. download this curl command template and open with a text editor and locate the ip address of eyeglass at the very end of text and replace the ip address with the IP address of your eyeglass vm.
      1. Also edit the client ip section of the curl command by searching the text clientIPs":["172.31.1.45"] and replace only the ip address with the IP of the test machine running the Google Security Operations (SecOps) (Chronicle) SIEM agent. 
      2. This will now simulate a zero trust alert on this host when the curl command sends the webhook payload to the integration python code to process. 
    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 text to the ssh prompt to send sample data to the running Zero Trust application.  This will send test data directly to the application to be processed and sent to Google Security Operations (SecOps) (Chronicle) SIEM Integration service that is running on the Eyeglass VM.
    7. The output of a successfully processed webhook test will return this text in the ssh terminal
      1. done sending event to gcsiem and check for http 200 and success count in response
    8. How to review the process logs from the web application
      1. sudo -s 
      2. journalctl -f -u gcsiem 
      3. This allows you to view the logs generated by the application.
      4. To log to a file and review with nano showing only the most recent 250 lines.
      5. journalctl -f -n 250 -u gcsiem  > /tmp/ztwebhook.log
      6. nano /tmp/gcsiem.log
      7. In the log below the response code from the Google Security Operations (SecOps) (Chronicle) SIEM api call should show http 200 status code and successCount 1 to indicate the Finding was successfully created.
      8.   You can also view gcsiemd.log for specific error messages.
    9. Login to the Google Security Operations (SecOps) (Chronicle) SIEM Main Dashboard to check the Alerts landing page.  See screenshot example below. NOTE: The Alert policy takes 10 minutes to scan for events that match.
      1.   
  3. Done


Google Security Operations (SecOps) (Chronicle) SIEM SecOps administrators Integration Experience

  1. Watch the video summary.

  2. Once the integration has been configured and is running security administrators can see the details of the events ingested by the Ingestion API. 
  3.  
  4.  
  5.  
  6.  

© Superna Inc