Raccogli i log di Zscaler DLP
Questo documento spiega come esportare i log DLP di Zscaler configurando un feed di Google Security Operations e come i campi dei log vengono mappati ai campi del modello di dati unificato (UDM) di Google SecOps.
Per ulteriori informazioni, consulta la panoramica dell'importazione dei dati in Google SecOps.
Un deployment tipico è costituito da Zscaler DLP e dal feed webhook di Google SecOps configurato per inviare i log a Google SecOps. Ogni implementazione del cliente può essere diversa e potrebbe essere più complessa.
Il deployment contiene i seguenti componenti:
Zscaler DLP: la piattaforma da cui raccogli i log.
Feed Google SecOps: il feed Google SecOps che recupera i log da Zscaler DLP e li scrive in Google SecOps.
Google Security Operations: conserva e analizza i log.
Un'etichetta di importazione identifica l'analizzatore sintattico che normalizza i dati dei log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser con l'etichetta ZSCALER_DLP
.
Prima di iniziare
- Assicurati di avere accesso alla console Zscaler Internet Access. Per ulteriori informazioni, consulta la guida di ZIA per l'accesso sicuro a internet e ai servizi SaaS.
- Assicurati di utilizzare Zscaler DLP 2024 o versioni successive.
- Assicurati che tutti i sistemi nell'architettura di deployment siano configurati con il fuso orario UTC.
- Assicurati di disporre della chiave API necessaria per completare la configurazione del feed in Google Security Operations. Per ulteriori informazioni, vedi Configurare le chiavi API.
Configura un feed di importazione in Google SecOps per importare i log DLP di Zscaler
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log DLP Zscaler).
- Seleziona Webhook come Tipo di origine.
- Seleziona Zscaler DLP come Tipo di log.
- Fai clic su Avanti.
- (Facoltativo) Specifica i valori per i seguenti parametri di input:
- Delimitatore di separazione: il delimitatore utilizzato per separare le righe dei log (lascia vuoto se non viene utilizzato un delimitatore).
- Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
- Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
- Fai clic su Avanti.
- Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.
- Fai clic su Genera chiave segreta per generare una chiave segreta per autenticare questo feed.
Configurare Zscaler DLP
- Nella console Zscaler Internet Access, vai ad Amministrazione > 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 per il web in Tipo NSS.
- Seleziona lo stato dall'elenco Stato per attivare o disattivare il feed NSS.
- Mantieni il valore nel menu Tariffa SIEM impostato su Illimitata. Per eliminare lo stream di output a causa di licenze o altri vincoli, modifica il valore.
- Seleziona Altro nell'elenco Tipo SIEM.
- Seleziona Disattivata nell'elenco Autenticazione OAuth 2.0.
- Inserisci un limite di dimensioni per il payload di una singola richiesta HTTP in base alle best practice del SIEM in Dimensione batch massima (ad esempio 512 KB).
Inserisci l'URL HTTPS dell'endpoint dell'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
: regione in cui è ospitata l'istanza Google SecOps (ad esempio US).GOOGLE_PROJECT_NUMBER
: numero del progetto BYOP (richiedilo al team C4).LOCATION
: regione Google SecOps (ad esempio US).CUSTOMER_ID
: ID cliente Google SecOps (richiedilo a C4).FEED_ID
: ID feed visualizzato 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 per aggiungere altre intestazioni HTTP con chiavi e valori.
Ad esempio:
- Chiave:
X-goog-api-key
- Valore: chiave API generata nelle Google Cloud credenziali API di BYOP
- Chiave:
Seleziona DLP endpoint dall'elenco Tipi di log.
Seleziona JSON nell'elenco Tipo di output del feed.
Imposta Carattere di escape del feed su
, \ "
.Per aggiungere un nuovo campo al Formato di output del feed,seleziona Personalizzato nell'elenco Tipo di output del feed.
Copia e incolla il Formato di output del feed e aggiungi nuovi campi. Assicurati che i nomi delle chiavi corrispondano ai nomi effettivi dei campi.
Di seguito è riportato il formato di output del feed predefinito:
\{ "sourcetype" : "zscalernss-edlp", "event" :\{"time":"%s{time}","recordid":"%d{recordid}","login":"%s{user}","dept":"%s{department}","filetypename":"%s{filetypename}","filemd5":"%s{filemd5}","dlpdictnames":"%s{dlpdictnames}","dlpdictcount":"%s{dlpcounts}","dlpenginenames":"%s{dlpengnames}","channel":"%s{channel}","actiontaken":"%s{actiontaken}","severity":"%s{severity}","rulename":"%s{triggeredrulelabel}","itemdstname":"%s{itemdstname}"\}\}
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 visualizzata una spunta verde accompagnata dal messaggio Test di connettività riuscito: OK (200).
Per ulteriori informazioni sui feed di Google SecOps, consulta la documentazione dei feed di 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.
Tabella di mappatura UDM
La tabella seguente elenca i campi del log del tipo di log ZSCALER_DLP
e i relativi campi UDM.
Log field | UDM mapping | Logic |
---|---|---|
mon |
additional.fields[mon] |
|
day |
additional.fields[day] |
|
scantime |
additional.fields[scantime] |
|
numdlpengids |
additional.fields[numdlpengids] |
|
numdlpdictids |
additional.fields[numdlpdictids] |
|
recordid |
metadata.product_log_id |
|
scanned_bytes |
additional.fields[scanned_bytes] |
|
dlpidentifier |
security_result.detection_fields[dlpidentifier] |
|
login |
principal.user.user_display_name |
|
b64user |
principal.user.user_display_name |
|
euser |
principal.user.user_display_name |
|
ouser |
security_result.detection_fields[ouser] |
|
dept |
principal.user.department |
|
b64department |
principal.user.department |
|
edepartment |
principal.user.department |
|
odepartment |
security_result.detection_fields[odepartment] |
|
odevicename |
security_result.detection_fields[odevicename] |
|
devicetype |
principal.asset.attribute.labels[devicetype] |
|
|
principal.asset.platform_software.platform |
If the deviceostype log field value matches the regular expression pattern (?i)Windows , then the principal.asset.platform_software.platform UDM field is set to WINDOWS . |
|
principal.asset.asset_id |
If the devicename log field value is not empty, then the asset_id:devicename log field is mapped to the principal.asset.asset_id UDM field.If the b64devicename log field value is not empty, then the asset_id:b64devicename log field is mapped to the principal.asset.asset_id UDM field.If the edevicename log field value is not empty, then the asset_id:edevicename log field is mapped to the principal.asset.asset_id UDM field. |
deviceplatform |
principal.asset.attribute.labels[deviceplatform] |
|
deviceosversion |
principal.asset.platform_software.platform_version |
|
devicemodel |
principal.asset.hardware.model |
|
deviceappversion |
additional.fields[deviceappversion] |
|
deviceowner |
principal.user.userid |
|
b64deviceowner |
principal.user.userid |
|
edeviceowner |
principal.user.userid |
|
odeviceowner |
security_result.detection_fields[odeviceowner] |
|
devicehostname |
principal.hostname |
|
b64devicehostname |
principal.hostname |
|
edevicehostname |
principal.hostname |
|
odevicehostname |
security_result.detection_fields[odevicehostname] |
|
datacenter |
target.location.name |
|
datacentercity |
target.location.city |
|
datacentercountry |
target.location.country_or_region |
|
dsttype |
target.resource.resource_subtype |
|
filedoctype |
additional.fields[filedoctype] |
|
filedstpath |
target.file.full_path |
|
b64filedstpath |
target.file.full_path |
|
efiledstpath |
target.file.full_path |
|
filemd5 |
target.file.md5 |
If the filemd5 log field value matches the regular expression pattern ^[0-9a-f]+$ , then the filemd5 log field is mapped to the target.file.md5 UDM field. |
filesha |
target.file.sha256 |
If the filesha log field value matches the regular expression pattern ^[0-9a-f]+$ , then the filesha log field is mapped to the target.file.sha256 UDM field. |
filesrcpath |
src.file.full_path |
|
b64filesrcpath |
src.file.full_path |
|
efilesrcpath |
src.file.full_path |
|
filetypecategory |
additional.fields[filetypecategory] |
|
filetypename |
target.file.mime_type |
|
itemdstname |
target.resource.name |
|
b64itemdstname |
target.resource.name |
|
eitemdstname |
target.resource.name |
|
itemname |
target.resource.attribute.labels[itemname] |
|
b64itemname |
target.resource.attribute.labels[itemname] |
|
eitemname |
target.resource.attribute.labels[itemname] |
|
itemsrcname |
src.resource.name |
|
b64itemsrcname |
src.resource.name |
|
eitemsrcname |
src.resource.name |
|
itemtype |
target.resource.attribute.labels[itemtype] |
|
ofiledstpath |
security_result.detection_fields[ofiledstpath] |
|
ofilesrcpath |
security_result.detection_fields[ofilesrcpath] |
|
oitemdstname |
security_result.detection_fields[oitemdstname] |
|
oitemname |
security_result.detection_fields[oitemname] |
|
odlpengnames |
security_result.detection_fields[odlpengnames] |
|
oitemsrcname |
security_result.detection_fields[oitemsrcname] |
|
srctype |
src.resource.resource_subtype |
|
actiontaken |
security_result.action_details |
|
|
security_result.action |
If the actiontaken log field value matches the regular expression pattern (?i)allow , then the security_result.action UDM field is set to ALLOW .Else, if the actiontaken log field value matches the regular expression pattern (?i)block , then the security_result.action UDM field is set to BLOCK . |
activitytype |
metadata.product_event_type |
|
addinfo |
additional.fields[addinfo] |
|
channel |
security_result.detection_fields[channel] |
|
confirmaction |
security_result.detection_fields[confirmaction] |
|
confirmjust |
security_result.description |
|
dlpdictcount |
security_result.detection_fields[dlpdictcount] |
|
dlpdictnames |
security_result.detection_fields[dlpdictnames] |
|
b64dlpdictnames |
security_result.detection_fields[dlpdictnames] |
|
edlpdictnames |
security_result.detection_fields[dlpdictnames] |
|
dlpenginenames |
security_result.detection_fields[dlpenginenames] |
|
b64dlpengnames |
security_result.detection_fields[dlpenginenames] |
|
edlpengnames |
security_result.detection_fields[dlpenginenames] |
|
expectedaction |
security_result.detection_fields[expectedaction] |
|
logtype |
security_result.category_details |
|
odlpdictnames |
security_result.detection_fields[odlpdictnames] |
|
ootherrulelabels |
security_result.detection_fields[ootherrulelabels] |
|
otherrulelabels |
security_result.rule_labels[otherrulelabels] |
|
b64otherrulelabels |
security_result.rule_labels[otherrulelabels] |
|
eotherrulelabels |
security_result.rule_labels[otherrulelabels] |
|
otriggeredrulelabel |
security_result.rule_labels[otriggeredrulelabel] |
|
severity |
security_result.severity_details |
|
|
security_result.severity |
If the severity log field value matches the regular expression pattern (?i)High , then the security_result.severity UDM field is set to HIGH .Else, if the severity log field value matches the regular expression pattern (?i)Medium , then the security_result.severity UDM field is set to MEDIUM .Else, if the severity log field value matches the regular expression pattern (?i)Low , then the security_result.severity UDM field is set to LOW .Else, if the severity log field value matches the regular expression pattern (?i)Info , then the security_result.severity UDM field is set to INFORMATIONAL . |
rulename |
security_result.rule_name |
|
b64triggeredrulelabel |
security_result.rule_name |
|
etriggeredrulelabel |
security_result.rule_name |
|
zdpmode |
security_result.detection_fields[zdpmode] |
|
tz |
additional.fields[tz] |
|
ss |
additional.fields[ss] |
|
mm |
additional.fields[mm] |
|
hh |
additional.fields[hh] |
|
dd |
additional.fields[dd] |
|
mth |
additional.fields[mth] |
|
yyyy |
additional.fields[yyyy] |
|
sourcetype |
additional.fields[sourcetype] |
|
eventtime |
metadata.event_timestamp |
|
time |
metadata.collected_timestamp |
|
rtime |
additional.fields[rtime] |
|
|
metadata.vendor_name |
The metadata.vendor_name UDM field is set to Zscaler . |
|
metadata.product_name |
The metadata.product_name UDM field is set to DLP . |
|
metadata.event_type |
If the activitytype log field value contain one of the following values, then the metadata.event_type UDM field is set to FILE_UNCATEGORIZED .
activitytype log field value is equal to File Copy , then the metadata.event_type UDM field is set to FILE_COPY .Else, if the activitytype log field value is equal to File Read , then the metadata.event_type UDM field is set to FILE_READ .Else, if the activitytype log field value is equal to File Write , then the metadata.event_type UDM field is set to FILE_MODIFICATION .Else, if the activitytype log field value is equal to Email Sent , then the metadata.event_type UDM field is set to EMAIL_UNCATEGORIZED .Else, if the activitytype log field value is equal to Print , then the metadata.event_type UDM field is set to STATUS_UPDATE .Else, the metadata.event_type UDM field is set to GENERIC_EVENT . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.