Raccogliere i log di Zscaler Tunnel
Questo documento spiega come esportare i log di Zscaler Tunnel configurando un feed Google Security Operations e come i campi dei log vengono mappati ai campi del modello Unified Data Model (UDM) di Google SecOps.
Per ulteriori informazioni, consulta la panoramica dell'importazione dei dati in Google SecOps.
Un deployment tipico è costituito da Zscaler Tunnel e dal feed webhook di Google SecOps configurato per inviare i log a Google SecOps. Ogni implementazione del cliente può variare ed essere più complessa.
Il deployment contiene i seguenti componenti:
Zscaler Tunnel: la piattaforma da cui raccogli i log.
Feed Google SecOps: il feed Google SecOps che recupera i log da Zscaler Tunnel e li scrive in Google SecOps.
Google SecOps: conserva e analizza i log.
Un'etichetta di importazione identifica il parser che normalizza i dati di log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser con l'etichetta ZSCALER_TUNNEL
.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Accesso alla console Zscaler Internet Access. Per saperne di più, consulta Secure Internet and SaaS Access ZIA Help.
- Zscaler Tunnel versione 1.0 o 2.0
- Tutti i sistemi nell'architettura di deployment sono configurati con il fuso orario UTC.
- La chiave API necessaria per completare la configurazione del feed in Google Security Operations. Per ulteriori informazioni, vedi Configurazione delle chiavi API.
Configurare i feed
Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:
- Impostazioni SIEM > Feed
- Hub dei contenuti > Pacchetti di contenuti
Configurare i feed da Impostazioni SIEM > Feed
Per configurare più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configurare i feed per prodotto.
Per configurare un singolo feed:
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Zscaler Tunnel Logs.
- Seleziona Webhook come tipo di origine.
- Seleziona Zscaler Tunnel come Tipo di log.
- Fai clic su Avanti.
- (Facoltativo) Specifica i valori per i seguenti parametri di input:
- Delimitatore di divisione: il delimitatore utilizzato per separare le righe dei log (lascia vuoto se non viene utilizzato un delimitatore).
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
- Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
- Fai clic su Avanti.
- Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
- Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
Configurare i feed dall'hub dei contenuti
Specifica i valori per i seguenti campi:
- Delimitatore di suddivisione: il delimitatore utilizzato per separare le righe di log, ad esempio
\n
.
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
- Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- Fai clic su Avanti.
- Controlla la configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
- Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
Configurare Zscaler Tunnel
- Nella console Zscaler Internet Access, vai ad Administration > Nanolog Streaming Service > Cloud NSS Feeds.
- Fai clic su Aggiungi feed NSS cloud.
- Inserisci un nome per il feed nel campo Nome feed.
- Seleziona NSS for Tunnel (NSS per tunnel) in NSS Type (Tipo di NSS).
- Seleziona lo stato dall'elenco Stato per attivare o disattivare il feed NSS.
- Mantieni il valore Illimitato nel menu a discesa Tasso SIEM. Per sopprimere il flusso di output a causa di licenze o altri vincoli, modifica il valore.
- Seleziona Altro nell'elenco Tipo SIEM.
- Seleziona Disattivato nell'elenco Autenticazione OAuth 2.0.
- Inserisci un limite di dimensione per il payload di una singola richiesta HTTP in base alla best practice della SIEM in Dimensione massima batch (ad esempio, 512 KB).
Inserisci l'URL HTTPS dell'endpoint API Chronicle nell'URL API nel seguente formato:
https://<CHRONICLE_REGION>-chronicle.googleapis.com/v1alpha/projects/<GOOGLE_PROJECT_NUMBER>/locations/<LOCATION>/instances/<CUSTOMER_ID>/feeds/<FEED_ID>:importPushLogs
CHRONICLE_REGION
: la regione in cui è ospitata l'istanza Google SecOps (ad esempio US).GOOGLE_PROJECT_NUMBER
: Numero di progetto BYOP (ottienilo da C4).LOCATION
: la regione Google SecOps (ad esempio US).CUSTOMER_ID
: ID cliente Google SecOps (ottienilo da C4).FEED_ID
: l'ID feed mostrato nell'interfaccia utente del feed nel nuovo webhook creato.
URL API di esempio:
https://us-chronicle.googleapis.com/v1alpha/projects/12345678910/locations/US/instances/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/feeds/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy:importPushLogs
Fai clic su Aggiungi intestazione HTTP e poi aggiungi le intestazioni HTTP nel seguente formato:
Header 1
: Key1:X-goog-api-key
e Value1: chiave API generata nelle credenziali API BYOP. Google CloudHeader 2
: Key2:X-Webhook-Access-Key
e Value2: chiave segreta API generata in "SECRET KEY" (CHIAVE SEGRETA) del webhook.
Seleziona Tunnel nell'elenco Tipi di log.
Seleziona JSON nell'elenco Tipo di output feed.
Imposta Carattere di escape feed su
, \ "
.Per aggiungere un nuovo campo a Formato output feed,seleziona Personalizzato nell'elenco Tipo di output feed.
Copia e incolla il Formato output feed e aggiungi nuovi campi. Assicurati che i nomi delle chiavi corrispondano ai nomi dei campi effettivi.
Di seguito sono riportati i formati di output del feed predefiniti:
Per la fase 1 di IKE:
\{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"IPSEC IKEV %d{ikeversion}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","destinationport":"%d{dstport}","lifetime":"%d{lifetime}","ikeversion":"%d{ikeversion}","spi_in":"%lu{spi_in}","spi_out":"%lu{spi_out}","algo":"%s{algo}","authentication":"%s{authentication}","authtype":"%s{authtype}","recordid":"%d{recordid}"\}\}
Per la fase 2 di IKE:
\{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"IPSEC IKEV %d{ikeversion}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","sourceportstart":"%d{srcportstart}","destinationportstart":"%d{destportstart}","srcipstart":"%s{srcipstart}","srcipend":"%s{srcipend}","destinationipstart":"%s{destipstart}","destinationipend":"%s{destipend}","lifetime":"%d{lifetime}","ikeversion":"%d{ikeversion}","lifebytes":"%d{lifebytes}","spi":"%d{spi}","algo":"%s{algo}","authentication":"%s{authentication}","authtype":"%s{authtype}","protocol":"%s{protocol}","tunnelprotocol":"%s{tunnelprotocol}","policydirection":"%s{policydirection}","recordid":"%d{recordid}"\}\}
Per l'evento Tunnel:
\{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"%s{tunneltype}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","event":"%s{event}","eventreason":"%s{eventreason}","recordid":"%d{recordid}"\}\}
Ad esempio:
\{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"%s{tunneltype}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","txbytes":"%lu{txbytes}","rxbytes":"%lu{rxbytes}","dpdrec":"%d{dpdrec}","recordid":"%d{recordid}"\}\}
Seleziona il fuso orario per il campo Ora nel file di output nell'elenco Fuso orario. Per impostazione predefinita, il fuso orario è impostato su quello della tua organizzazione.
Rivedi le impostazioni configurate.
Fai clic su Salva per verificare la connettività. Se la connessione è riuscita, viene visualizzato un segno di spunta verde accompagnato dal messaggio Test Connectivity Successful: OK (200).
Per ulteriori informazioni sui feed Google SecOps, consulta la documentazione sui feed Google SecOps. Per informazioni sui requisiti per ciascun tipo di feed, consulta Configurazione dei feed per tipo.
Se riscontri problemi durante la creazione dei feed, contatta l'assistenza Google SecOps.
Formati dei log di Zscaler Tunnel supportati
Il parser Zscaler Tunnel supporta i log in formato JSON.
Log di esempio del tunnel Zscaler supportati
JSON
{ "sourcetype": "zscalernss-tunnel", "event": { "datetime": "Sun Jan 21 06:17:00 2024", "Recordtype": "Tunnel Samples", "tunneltype": "IPSec IKEv2", "user": "dummy-user@dummydomain.net", "location": "PLWSE06", "sourceip": "198.51.100.0", "destinationip": "198.51.100.1", "sourceport": "0", "txbytes": "12560", "rxbytes": "0", "dpdrec": "0", "recordid": "7326416289073594372" } }
Tabella di mappatura UDM
Riferimento per la mappatura dei campi: ZSCALER_TUNNEL
La tabella seguente elenca i campi di log del tipo di log ZSCALER_TUNNEL
e i relativi campi UDM.
Log field | UDM mapping | Logic |
---|---|---|
algo |
additional.fields[algo] |
|
authtype |
additional.fields[authtype] |
|
authentication |
additional.fields[authentication] |
|
dd |
additional.fields[dd] |
|
day |
additional.fields[day] |
|
destinationportstart |
additional.fields[destinationportstart] |
|
dpdrec |
additional.fields[dpdrec] |
|
eventreason |
additional.fields[eventreason] |
|
hh |
additional.fields[hh] |
|
ikeversion |
additional.fields[ikeversion] |
|
lifebytes |
additional.fields[lifebytes] |
|
mm |
additional.fields[mm] |
|
mon |
additional.fields[mon] |
|
mth |
additional.fields[mth] |
|
olocationname |
additional.fields[olocationname] |
|
ovpncredentialname |
additional.fields[ovpncredentialname] |
|
ss |
additional.fields[ss] |
|
sourcetype |
additional.fields[sourcetype] |
|
spi_in |
additional.fields[spi_in] |
|
spi_out |
additional.fields[spi_out] |
|
sourceportstart |
additional.fields[sourceportstart] |
|
tz |
additional.fields[tz] |
|
tunnelprotocol |
additional.fields[tunnelprotocol] |
|
tunneltype |
additional.fields[tunneltype] |
|
vendorname |
additional.fields[vendorname] |
|
yyyy |
additional.fields[yyyy] |
|
spi |
additional.fields[spi] |
|
event |
metadata.description |
|
datetime |
metadata.event_timestamp |
|
|
metadata.event_type |
If (the srcipstart log field value is not empty or the srcipend log field value is not empty or the sourceip log field value is not empty) and (the destinationipstart log field value is not empty or the destinationip log field value is not empty or the destinationipend log field value is not empty), then the metadata.event_type UDM field is set to NETWORK_CONNECTION .Else, if the srcipstart log field value is not empty or the srcipend log field value is not empty or the sourceip log field value is not empty, then the metadata.event_type UDM field is set to STATUS_UPDATE .Else, the metadata.event_type UDM field is set to GENERIC_EVENT . |
Recordtype |
metadata.product_event_type |
|
recordid |
metadata.product_log_id |
|
|
metadata.product_name |
The metadata.product_name UDM field is set to ZSCALER_TUNNEL . |
|
metadata.vendor_name |
The metadata.vendor_name UDM field is set to ZSCALER . |
|
network.direction |
If the policydirection log field value matches the regular expression pattern (?i)Inbound , then the network.direction UDM field is set to INBOUND .Else, if the policydirection log field value matches the regular expression pattern (?i)Outbound , then the network.direction UDM field is set to OUTBOUND . |
protocol |
network.ip_protocol |
If the protocol log field value contain one of the following values, then the protocol log field is mapped to the network.ip_protocol UDM field.
|
rxbytes |
network.received_bytes |
|
rxpackets |
network.received_packets |
|
txbytes |
network.sent_bytes |
|
txpackets |
network.sent_packets |
|
lifetime |
network.session_duration.seconds |
|
srcipstart |
principal.ip |
|
sourceip |
principal.ip |
|
srcipend |
principal.ip |
|
location |
principal.location.name |
|
sourceport |
principal.port |
|
user |
principal.user.userid |
|
destinationipstart |
target.ip |
|
destinationip |
target.ip |
|
destinationipend' |
target.ip |
|
destinationport |
target.port |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.