Integra Pub/Sub con Google SecOps

Questo documento fornisce indicazioni su come integrare Pub/Sub con Google Security Operations (Google SecOps).

Versione integrazione: 1.0

Prima di iniziare

Per utilizzare l'integrazione di Pub/Sub, devi disporre di quanto segue:

Parametri di integrazione

L'integrazione Pub/Sub richiede i seguenti parametri:

Parametri Descrizione
Workload Identity Email Optional

L'indirizzo email client della tua federazione delle identità per i workload.

Puoi configurare questo parametro o il parametro Service Account JSON File Content.

Per simulare l'identità dei service account con la federazione delle identità per i carichi di lavoro, concedi il ruolo Service Account Token Creator al tuo account di servizio. Per maggiori dettagli sulle identità dei workload e su come utilizzarle, consulta Identità per i workload.

Service Account JSON File Content Optional

Il contenuto del file JSON della chiave dell'account di servizio.

Puoi configurare questo parametro o il parametro Workload Identity Email.

Per configurare questo parametro, fornisci l'intero contenuto del file JSON della chiave dell'account di servizio che hai scaricato durante la creazione di un account di servizio.

Per ulteriori informazioni sull'utilizzo dei service account come metodo di autenticazione, consulta Panoramica dei service account.

Quota Project ID Optional

L'ID progetto che utilizzi per le API e la fatturazione. Google Cloud Google Cloud Questo parametro richiede che tu conceda il ruolo Service Usage Consumer al tuo account di servizio. Per maggiori informazioni sui ruoli IAM, consulta Controllo dell'accesso con IAM.

L'integrazione associa questo valore parametro a tutte le richieste API.

Se non imposti un valore per questo parametro, l'integrazione recupera l'ID progetto quota dal tuo account di servizio Google Cloud .

Project ID Optional

L'ID progetto da utilizzare nell'integrazione.

Se non imposti un valore per questo parametro, l'integrazione recupera l'ID progetto dal tuo account di servizio Google Cloud .

Verify SSL Obbligatorio

Se selezionata, l'integrazione verifica che il certificato SSL per la connessione a Pub/Sub sia valido.

Questa opzione è selezionata per impostazione predefinita.

Per istruzioni sulla configurazione di un'integrazione in Google SecOps, consulta Configurare le integrazioni.

Se necessario, potrai apportare modifiche in un secondo momento. Dopo aver configurato un'istanza di integrazione, puoi utilizzarla nei playbook. Per saperne di più sulla configurazione e sul supporto di più istanze, consulta Supporto di più istanze.

Azioni

Per maggiori informazioni sulle azioni, vedi Rispondere alle azioni in attesa dalla tua scrivania ed Eseguire un'azione manuale.

Dindin

Utilizza l'azione Ping per testare la connettività a Pub/Sub.

Questa azione non viene eseguita sulle entità Google SecOps.

Input azione

Nessuno.

Output dell'azione

L'azione Ping fornisce i seguenti output:

Tipo di output dell'azione Disponibilità
Allegato della bacheca casi Non disponibile
Link alla bacheca richieste Non disponibile
Tabella della bacheca casi Non disponibile
Tabella di arricchimento Non disponibile
Risultato JSON Non disponibile
Messaggi di output Disponibile
Risultato dello script Disponibile
Messaggi di output

L'azione Ping può restituire i seguenti messaggi di output:

Messaggio di output Descrizione del messaggio
Successfully connected to the Pub/Sub server with the provided connection parameters! L'azione è riuscita.
Failed to connect to the Pub/Sub server! Error is ERROR_REASON

L'azione non è riuscita.

Controlla la connessione al server, i parametri di input o le credenziali.

Risultato dello script

La seguente tabella elenca il valore dell'output del risultato dello script quando utilizzi l'azione Ping:

Nome del risultato dello script Valore
is_success True o False

Connettori

Per istruzioni dettagliate su come configurare un connettore in Google SecOps, consulta Importare i dati (connettori).

Pub/Sub - Connettore messaggi

Nella piattaforma Google SecOps, il connettore Pub/Sub - Messaggi è denominato connettore PubSub - Messaggi.

Utilizza il connettore Pub/Sub - Messaggi per recuperare i messaggi da Pub/Sub.

Mapping della gravità JSON

Per mappare la gravità dell'avviso, devi specificare il campo utilizzato dal connettore Pub/Sub - Messaggi per ottenere il valore della gravità nel parametro Severity Mapping JSON. La risposta del connettore può contenere tipi di valori, ad esempio integer, float e string.

Il connettore Pub/Sub - Messaggi legge i valori integer e float e li mappa in base alle impostazioni di Google SecOps. La tabella seguente mostra il mapping dei valori integer alla gravità in Google SecOps:

Valore Integer Gravità mappata
100 Critical
Da 80 a 100 High
Da 60 a 80 Medium
Da 40 a 60 Low
Meno di 40 Informational

Se la risposta contiene il valore string, il connettore Pub/Sub - Messaggi richiede una configurazione aggiuntiva.

Inizialmente, il valore predefinito viene visualizzato nel seguente modo:

{
    "Default": 60
}

Se i valori richiesti per la mappatura si trovano nella chiave JSON event_severity, i valori possono essere i seguenti:

  • "Malicious"
  • "Benign"
  • "Unknown"

Per analizzare i valori delle chiavi JSON event_severity e assicurarti che l'oggetto JSON abbia un formato corretto, configura il parametro Severity Mapping JSON come segue:

{
    "event_severity": {
        "Malicious": 100,
        "Unknown": 60,
        "Benign": -1
    },
    "Default": 50
}

Il valore di "Default" è obbligatorio.

Nel caso in cui ci siano più corrispondenze per lo stesso oggetto JSON, il connettore Pub/Sub - Messaggi assegna la priorità alla prima chiave dell'oggetto JSON.

Per lavorare con i campi che contengono valori integer o float, configura la chiave e una stringa vuota nel parametro Severity Mapping JSON:

{
  "Default":"60",
  "integer_field": "",
  "float_field": ""
}

Input del connettore

Il connettore Pub/Sub - Messaggi richiede i seguenti parametri:

Parametro Descrizione
Product Field Name Obbligatorio

Il nome del campo in cui è memorizzato il nome del prodotto.

Il valore predefinito è Product Name.

Event Field Name Obbligatorio

Il nome del campo utilizzato per determinare il nome dell'evento (sottotipo).

Il valore predefinito è event_type.

Environment Field Name Optional

Il nome del campo in cui è memorizzato il nome dell'ambiente.

Se il campo ambiente non viene trovato, l'ambiente viene impostato sull'ambiente predefinito.

Il valore predefinito è "".

Environment Regex Pattern Optional

Un pattern di espressione regolare da eseguire sul valore trovato nel campo Environment Field Name. Questo parametro ti consente di manipolare il campo dell'ambiente utilizzando la logica delle espressioni regolari.

Utilizza il valore predefinito .* per recuperare il valore Environment Field Name grezzo richiesto.

Se il pattern dell'espressione regolare è nullo o vuoto oppure il valore dell'ambiente è nullo, l'ambiente finale è quello predefinito.

Script Timeout (Seconds) Obbligatorio

Il limite di timeout in secondi per il processo Python che esegue lo script corrente.

Il valore predefinito è 300 seconds.

Service Account JSON File Content Optional

Il contenuto del file JSON della chiave dell'account di servizio.

Puoi configurare questo parametro o il parametro Workload Identity Email.

Per configurare questo parametro, fornisci l'intero contenuto del file JSON della chiave dell'account di servizio che hai scaricato durante la creazione di un account di servizio.

Per il connettore Pub/Sub - Messaggi, l'autenticazione con il file JSON della chiave dell'account di servizio ha la priorità sulla federazione delle identità dei carichi di lavoro.

Workload Identity Email Optional

L'indirizzo email client del tuo account di servizio.

Puoi configurare questo parametro o il parametro Service Account JSON File Content.

Per simulare l'identità dei service account con la federazione delle identità per i carichi di lavoro, concedi il ruolo Service Account Token Creator al tuo account di servizio.

Project ID Optional

L'ID progetto da utilizzare nel connettore.

Quota Project ID Optional

L'ID progetto che utilizzi per le API e la fatturazione. Google Cloud Google Cloud Questo parametro richiede che tu conceda il ruolo Service Usage Consumer al tuo account di servizio. Per maggiori informazioni sui ruoli IAM, consulta Controllo dell'accesso con IAM.

L'integrazione associa questo valore parametro a tutte le richieste API.

Subscription ID Obbligatorio

L'ID sottoscrizione Pub/Sub.

Case Name Template Optional

Un nome di richiesta personalizzato.

Quando configuri questo parametro, il connettore aggiunge una nuova chiave chiamata custom_case_name all'evento Google SecOps.

Puoi fornire i segnaposto nel seguente formato: [name of the field].

Esempio: Phishing - [event_mailbox]

Per i segnaposto, il connettore utilizza il primo evento Google SecOps. Il connettore gestisce solo le chiavi contenenti il valore stringa. Per configurare questo parametro, specifica i campi evento senza prefissi.

Alert Name Template Obbligatorio

Un nome avviso personalizzato.

Puoi fornire i segnaposto nel seguente formato: [name of the field].

Esempio: Phishing - [event_mailbox].

Per i segnaposto, il connettore utilizza il primo evento Google SecOps. Il connettore gestisce solo le chiavi contenenti il valore stringa. Se non fornisci alcun valore o utilizzi un modello non valido, il connettore utilizza un valore di riserva nel seguente formato: CONNECTOR_NAME - Alert. Per configurare questo parametro, specifica i campi evento senza prefissi.

Rule Generator Template Obbligatorio

Un generatore di regole personalizzate.

Puoi fornire i segnaposto nel seguente formato: [name of the field].

Esempio: Phishing - [event_mailbox].

Per i segnaposto, il connettore utilizza il primo evento Google SecOps. Il connettore gestisce solo le chiavi contenenti il valore stringa. Se non fornisci alcun valore o utilizzi un modello non valido, il connettore utilizza un valore di riserva nel seguente formato: CONNECTOR_NAME - Rule Generator. Per configurare questo parametro, specifica i campi evento senza prefissi.

Timestamp Field Obbligatorio

Il nome del campo per definire il timestamp dell'avviso Google SecOps.

Se il timestamp non utilizza il formato orario dell'epoca Unix, definisci il formato del timestamp nel parametro Timestamp Format.

Il valore predefinito è message_publishTime.

Timestamp Format Optional

Il formato del timestamp del messaggio.

Il connettore richiede il timestamp per elaborare correttamente il messaggio. Se il timestamp non utilizza il formato ora Unix epoch e non configuri un formato timestamp, il connettore non funziona.

Il valore predefinito è %Y-%m-%dT%H:%M:%S.%fZ.

Severity Mapping JSON Obbligatorio

L'oggetto JSON che definisce il modo in cui il connettore estrae il livello di gravità dal messaggio.

Il valore predefinito è il seguente:

    {
      "Default": "60"
    }
    

Per ulteriori informazioni sulla mappatura della gravità, consulta Mappatura della gravità JSON.

Unique ID Field Optional

Il nome del campo per confermare che il messaggio sia univoco.

Se non imposti un valore, il connettore genera un hash SHA-256 e lo utilizza come identificatore per il messaggio.

Max Messages To Fetch Optional

Il numero massimo di messaggi da elaborare per ogni iterazione del connettore.

Il numero massimo è 100.

Disable Overflow Optional

Se selezionato, il connettore ignora il meccanismo di overflow di Google SecOps durante la creazione degli avvisi.

Questa opzione è selezionata per impostazione predefinita.

Verify SSL Obbligatorio

Se selezionata, l'integrazione verifica che il certificato SSL per la connessione a Pub/Sub sia valido.

Selezionata per impostazione predefinita.

Proxy Server Address Optional

L'indirizzo del server proxy da utilizzare.

Proxy Username Optional

Il nome utente del proxy con cui eseguire l'autenticazione.

Proxy Password Optional

La password del proxy per l'autenticazione.

Regole del connettore

Il connettore Pub/Sub - Messaggi supporta i proxy.

Eventi del connettore

Il seguente esempio mostra l'output JSON di un evento Google SecOps generato dal connettore Pub/Sub - Messaggi:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/soar_connector_toxic_notifications_config",
   "finding": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
       "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
       "resourceName": "//compute.googleapis.com/projects/PROJECT_ID/global/firewalls/FIREWALL_ID",
       "state": "ACTIVE",
       "category": "OPEN_NETBIOS_PORT",
       "externalUri": "https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
       "sourceProperties": {
           "Recommendation": "Restrict the firewall rules at: https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
           "ExceptionInstructions": "Add the security mark \"allow_open_netbios_port\" to the asset with a value of \"true\" to prevent this finding from being activated again.",
           "Explanation": "Firewall rules that allow connections from all IP addresses on TCP ports 137-139 or UDP ports 137-139 may expose NetBIOS services to attackers.",
           "ScannerName": "FIREWALL_SCANNER",
           "ResourcePath": [
               "projects/PROJECT_ID/",
               "folders/FOLDER_ID/",
               "folders/FOLDER_ID/",
               "organizations/ORGANIZATION_ID/"
           ],
           "ExposedService": "NetBIOS",
           "OpenPorts": {
               "TCP": [
                   137.0,
                   138.0,
                   139.0
               ],
               "UDP": [
                   137.0,
                   138.0,
                   139.0
               ]
           },
           "compliance_standards": {
               "iso": [
                   {
                       "ids": [
                           "A.13.1.1"
                       ]
                   }
               ],
               "pci": [
                   {
                       "ids": [
                           "1.2.1"
                       ]
                   }
               ],
               "nist": [
                   {
                       "ids": [
                           "SC-7"
                       ]
                   }
               ]
           },
           "ReactivationCount": 4.0
       },
       "securityMarks": {
           "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
           "marks": {
               "peter": "e2e1"
           }
       },
       "eventTime": "2024-08-30T14:44:37.973090Z",
       "createTime": "2024-06-24T07:08:54.777Z",
       "propertyDataTypes": {
           "ResourcePath": {
               "listValues": {
                   "propertyDataTypes": [
                       {
                           "primitiveDataType": "STRING"
                       }
                   ]
               }
           },
           "ReactivationCount": {
               "primitiveDataType": "NUMBER"
           },
           "Explanation": {
               "primitiveDataType": "STRING"
           },
           "ExposedService": {
               "primitiveDataType": "STRING"
           },
           "ScannerName": {
               "primitiveDataType": "STRING"
           }
       }
   }
}

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.