Recolha registos da DLP do Zscaler
Este documento explica como exportar registos de DLP do Zscaler configurando um feed do Google Security Operations e como os campos de registo são mapeados para os campos do modelo de dados unificado (UDM) do Google SecOps.
Para mais informações, consulte o artigo Vista geral da ingestão de dados no Google SecOps.
Uma implementação típica consiste no Zscaler DLP e no feed de webhook do Google SecOps configurado para enviar registos para o Google SecOps. Cada implementação do cliente pode ser diferente e mais complexa.
A implementação contém os seguintes componentes:
Zscaler DLP: a plataforma a partir da qual recolhe registos.
Feed do Google SecOps: o feed do Google SecOps que obtém registos do Zscaler DLP e escreve registos no Google SecOps.
Google Security Operations: retém e analisa os registos.
Uma etiqueta de carregamento identifica o analisador que normaliza os dados de registo não processados para o formato UDM estruturado. As informações neste documento aplicam-se ao analisador com a etiqueta ZSCALER_DLP.
Antes de começar
Certifique-se de que cumpre os seguintes pré-requisitos:
- Acesso à consola do Zscaler Internet Access. Para mais informações, consulte o artigo Ajuda do ZIA sobre o acesso seguro à Internet e ao SaaS.
- Zscaler DLP 2024 ou posterior
- Todos os sistemas na arquitetura de implementação estão configurados com o fuso horário UTC.
- A chave da API necessária para concluir a configuração do feed no Google Security Operations. Para mais informações, consulte o artigo Configurar chaves de API.
Configure feeds
Para configurar este tipo de registo, siga estes passos:
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Clique no pacote de feeds Zscaler.
- Localize o tipo de registo necessário e clique em Adicionar novo feed.
Introduza valores para os seguintes parâmetros de entrada:
- Tipo de origem: webhook (recomendado)
- Delimitador de divisão: o caráter usado para separar linhas de registos. Deixe em branco se não for usado nenhum delimitador.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Espaço de nomes do recurso: espaço de nomes associado ao feed.
- Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
Clique em Criar feed.
Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.
Configure a DLP do Zscaler
- Na consola do Zscaler Internet Access, aceda a Administração > Serviço de streaming de nanologs > Feeds de NSS na nuvem.
- Clique em Adicionar feed NSS da nuvem.
- Introduza um nome para o feed no campo Nome do feed.
- Selecione NSS para Web em Tipo de NSS.
- Selecione o estado na lista Estado para ativar ou desativar o feed NSS.
- Mantenha o valor no menu Taxa de SIEM como Ilimitada. Para suprimir a stream de saída devido a licenciamento ou outras restrições, altere o valor.
- Selecione Outro na lista Tipo de SIEM.
- Selecione Desativado na lista Autenticação OAuth 2.0.
- Introduza um limite de tamanho para uma carga útil de pedido HTTP individual para a prática recomendada do SIEM em Tamanho máximo do lote (por exemplo, 512 KB).
Introduza o URL HTTPS do ponto final da API Chronicle no URL da API no seguinte formato:
https://<CHRONICLE_REGION>-chronicle.googleapis.com/v1alpha/projects/<GOOGLE_PROJECT_NUMBER>/locations/<LOCATION>/instances/<CUSTOMER_ID>/feeds/<FEED_ID>:importPushLogsCHRONICLE_REGION: região onde a sua instância do Google SecOps está alojada (por exemplo, US).GOOGLE_PROJECT_NUMBER: número do projeto BYOP (obtenha-o no C4).LOCATION: região do Google SecOps (por exemplo, US).CUSTOMER_ID: ID de cliente do Google SecOps (obtenha-o no C4).FEED_ID: ID do feed apresentado na IU do feed no novo webhook criado.
URL da API de exemplo:
https://us-chronicle.googleapis.com/v1alpha/projects/12345678910/locations/US/instances/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/feeds/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy:importPushLogsClique em Adicionar cabeçalho HTTP e, de seguida, adicione cabeçalhos HTTP no seguinte formato:
Header 1: Key1:X-goog-api-keye Value1: chave da API gerada nas credenciais da API do Google Cloud BYOP.Header 2: Key2:X-Webhook-Access-Keye Value2: chave secreta da API gerada na "CHAVE SECRETA" do webhook.
Selecione DLP de ponto final na lista Tipos de registos.
Selecione JSON na lista Tipo de saída do feed.
Desative a notação de matriz JSON.
Defina o caráter de escape do feed como
, \ ".Para adicionar um novo campo ao formato de saída do feed,selecione Personalizado na lista Tipo de saída do feed.
Copie e cole o Formato de saída do feed e adicione novos campos. Certifique-se de que os nomes das chaves correspondem aos nomes dos campos reais.
Segue-se o formato de saída do feed predefinido:
\{ "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}"\}\}Selecione o fuso horário para o campo Hora no ficheiro de saída na lista Fuso horário. Por predefinição, o fuso horário é definido como o fuso horário da sua organização.
Reveja as definições configuradas.
Clique em Guardar para testar a conetividade. Se a associação for bem-sucedida, é apresentado um visto verde acompanhado da mensagem Test Connectivity Successful: OK (200).
Para mais informações sobre feeds do Google SecOps, consulte a documentação de feeds do Google SecOps. Para obter informações sobre os requisitos de cada tipo de feed, consulte o artigo Configuração do feed por tipo.
Se tiver problemas ao criar feeds, contacte o apoio técnico da Google SecOps.
Formatos de registo da DLP do Zscaler suportados
O analisador DLP do Zscaler suporta registos no formato JSON.
Registos de exemplo da DLP do Zscaler suportados
JSON:
{ "sourcetype": "zscalernss-edlp", "event": { "time": "Thu Jun 20 21:14:56 2024", "recordid": "7382697059455533057", "login": "dummy@domain.com", "dept": "General Group", "filetypename": "xlsx", "filemd5": "9a2d0d62c22994a98f65939ddcd3eb8f", "dlpdictnames": "Social Security Number (US): Detect leakage of United States Social Security Numbers|Credit Cards: Detect leakage of credit card information|Aadhaar Card Number (India): Detect Leakage of Indian Aadhaar Card Numbers", "dlpdictcount": "1428|141|81", "dlpenginenames": "Dummy Engine|cc|PCI|GLBA|HIPAA", "channel": "Removable Storage", "actiontaken": "Confirm Allow", "severity": "High Severity", "rulename": "Endpoint_DLP_", "itemdstname": "Removable Storage" } }
Tabela de mapeamento da UDM
A tabela seguinte apresenta os campos de registo do ZSCALER_DLP tipo de registo e os respetivos campos UDM.
| Log field | UDM mapping | Logic |
|---|---|---|
mon |
additional.fields[mon] |
|
day |
additional.fields[day] |
|
scantime |
additional.fields[scantime] |
|
numdlpengids |
security_result.detection_fields[numdlpengids] |
|
numdlpdictids |
security_result.detection_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 |
principal.user.user_display_name |
|
dept |
principal.user.department |
|
b64department |
principal.user.department |
|
edepartment |
principal.user.department |
|
odepartment |
principal.user.department |
|
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. |
devicename, b64devicename, edevicename, odevicename |
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.If the odevicename log field value is not empty, then the asset_id:odevicename 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 |
principal.asset.software.version |
|
deviceowner |
principal.asset.attribute.labels[deviceowner] |
|
b64deviceowner |
principal.asset.attribute.labels[b64deviceowner] |
|
edeviceowner |
principal.asset.attribute.labels[edeviceowner] |
|
odeviceowner |
principal.asset.attribute.labels[odeviceowner] |
|
devicehostname |
principal.hostname |
|
b64devicehostname |
principal.hostname |
|
edevicehostname |
principal.hostname |
|
odevicehostname |
principal.hostname |
|
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[b64itemname] |
|
eitemname |
target.resource.attribute.labels[eitemname] |
|
itemsrcname |
src.resource.name |
|
b64itemsrcname |
src.resource.name |
|
eitemsrcname |
src.resource.name |
|
itemtype |
target.resource.attribute.labels[itemtype] |
|
ofiledstpath |
target.file.full_path |
|
ofilesrcpath |
src.file.full_path |
|
oitemdstname |
target.resource.name |
|
oitemname |
target.resource.attribute.labels[oitemname] |
|
odlpengnames |
security_result.detection_fields[odlpengnames] |
|
oitemsrcname |
src.resource.name |
|
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[b64dlpdictnames] |
|
edlpdictnames |
security_result.detection_fields[edlpdictnames] |
|
dlpenginenames |
security_result.detection_fields[dlpenginenames] |
|
b64dlpengnames |
security_result.detection_fields[b64dlpengnames] |
|
edlpengnames |
security_result.detection_fields[edlpengnames] |
|
expectedaction |
security_result.detection_fields[expectedaction] |
|
logtype |
security_result.category_details |
|
odlpdictnames |
security_result.detection_fields[odlpdictnames] |
|
ootherrulelabels |
security_result.rule_labels[ootherrulelabels] |
|
otherrulelabels |
security_result.rule_labels[otherrulelabels] |
|
b64otherrulelabels |
security_result.rule_labels[b64otherrulelabels] |
|
eotherrulelabels |
security_result.rule_labels[eotherrulelabels] |
|
otriggeredrulelabel |
security_result.rule_name |
|
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 is one of the following, then the metadata.event_type UDM field is set to FILE_UNCATEGORIZED:
activitytype log field value is File Copy, then the metadata.event_type UDM field is set to FILE_COPY.Else, if the activitytype log field value is File Read, then the metadata.event_type UDM field is set to FILE_READ.Else, if the activitytype log field value is File Write, then the metadata.event_type UDM field is set to FILE_MODIFICATION.Else, if the activitytype log field value is Email Sent, then the metadata.event_type UDM field is set to EMAIL_UNCATEGORIZED.Else, if the activitytype log field value is Print, then the metadata.event_type UDM field is set to STATUS_UPDATE.Else, if one of the devicehostname, b64devicehostname, edevicehostname, or odevicehostname log fields is not empty, and one of the filedstpath, b64filedstpath, efiledstpath, ofiledstpath, filemd5, filesha, or filetypename log fields is not empty, then if one of the filesrcpath, b64filesrcpath, efilesrcpath, or ofiledstpath log fields is not empty, the metadata.event_type UDM field is set to FILE_COPY, otherwise it is set to FILE_UNCATEGORIZED.Else, if one of the devicehostname, b64devicehostname, edevicehostname, or odevicehostname log fields 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. |
Delta de mapeamento do UDM
A tabela seguinte lista a diferença entre o mapeamento do UDM antigo de ZSCALER DLP e o novo mapeamento do UDM de ZSCALER DLP.
UDM Field Mapping Delta
| Raw Field | Old UDM Mapping | New UDM Mapping | Logic |
|---|---|---|---|
numdlpengids |
additional.fields[numdlpengids] |
security_result.detection_fields[numdlpengids] |
|
numdlpdictids |
additional.fields[numdlpdictids] |
security_result.detection_fields[numdlpdictids] |
|
ouser |
security_result.detection_fields[ouser] |
principal.user.user_display_name |
|
odepartment |
security_result.detection_fields[odepartment] |
principal.user.department |
|
odevicename |
security_result.detection_fields[odevicename] |
principal.asset.asset_id |
If the odevicename log field value is not empty, then the asset_id:odevicename log field is mapped to the principal.asset.asset_id UDM field. |
deviceappversion |
additional.fields[deviceappversion] |
principal.asset.software.version |
|
deviceowner |
principal.user.userid |
principal.asset.attribute.labels[deviceowner] |
|
b64deviceowner |
principal.user.userid |
principal.asset.attribute.labels[b64deviceowner] |
|
edeviceowner |
principal.user.userid |
principal.asset.attribute.labels[edeviceowner] |
|
odeviceowner |
security_result.detection_fields[odeviceowner] |
principal.asset.attribute.labels[odeviceowner] |
|
odevicehostname |
security_result.detection_fields[odevicehostname] |
principal.hostname |
|
eitemname |
target.resource.attribute.labels[itemname] |
target.resource.attribute.labels[eitemname] |
|
b64itemname |
target.resource.attribute.labels[itemname] |
target.resource.attribute.labels[b64itemname] |
|
ofiledstpath |
security_result.detection_fields[ofiledstpath] |
target.file.full_path |
|
ofilesrcpath |
security_result.detection_fields[ofilesrcpath] |
src.file.full_path |
|
oitemdstname |
security_result.detection_fields[oitemdstname] |
target.resource.name |
|
oitemname |
security_result.detection_fields[oitemname] |
target.resource.attribute.labels[oitemname] |
|
oitemsrcname |
security_result.detection_fields[oitemsrcname] |
src.resource.name |
|
edlpdictnames |
security_result.detection_fields[dlpdictnames] |
security_result.detection_fields[edlpdictnames] |
|
b64dlpdictnames |
security_result.detection_fields[dlpdictnames] |
security_result.detection_fields[b64dlpdictnames] |
|
edlpengnames |
security_result.detection_fields[dlpenginenames] |
security_result.detection_fields[edlpengnames] |
|
b64dlpengnames |
security_result.detection_fields[dlpenginenames] |
security_result.detection_fields[b64dlpengnames] |
|
ootherrulelabels |
security_result.detection_fields[ootherrulelabels] |
security_result.rule_labels[ootherrulelabels] |
|
eotherrulelabels |
security_result.rule_labels[otherrulelabels] |
security_result.rule_labels[eotherrulelabels] |
|
b64otherrulelabels |
security_result.rule_labels[otherrulelabels] |
security_result.rule_labels[b64otherrulelabels] |
|
otriggeredrulelabel |
security_result.rule_labels[otriggeredrulelabel] |
security_result.rule_name |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.