Coletar registros do DLP do Zscaler
Este documento explica como exportar registros de DLP do Zscaler configurando um feed de operações de segurança do Google e como os campos de registro são mapeados para os campos de modelo de dados unificado (UDM, na sigla em inglês) do Google SecOps.
Para mais informações, consulte Visão geral da ingestão de dados no Google SecOps.
Uma implantação típica consiste no DLP do Zscaler e no feed do webhook do Google SecOps configurado para enviar registros ao Google SecOps. Cada implantação do cliente pode ser diferente e mais complexa.
A implantação contém os seguintes componentes:
Zscaler DLP: a plataforma de onde você coleta registros.
Feed do Google SecOps: o feed do Google SecOps que busca registros do DLP do Zscaler e grava registros no Google SecOps.
Google Security Operations: retém e analisa os registros.
Um rótulo de transferência identifica o analisador que normaliza os dados de registro brutos para o formato estruturado do UDM. As informações neste documento se aplicam ao analisador com o rótulo ZSCALER_DLP
.
Antes de começar
- Confira se você tem acesso ao console do Zscaler Internet Access. Para mais informações, consulte Ajuda do ZIA para acesso seguro à Internet e ao SaaS.
- Verifique se você está usando o Zscaler DLP 2024 ou uma versão mais recente.
- Verifique se todos os sistemas na arquitetura de implantação estão configurados com o fuso horário UTC.
- Verifique se você tem a chave de API necessária para concluir a configuração do feed no Google Security Operations. Para mais informações, consulte Como configurar chaves de API.
Configurar um feed de ingestão no Google SecOps para processar os registros do Zscaler DLP
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Zscaler DLP Logs).
- Selecione Webhook como o Tipo de origem.
- Selecione Zscaler DLP como o Tipo de registro.
- Clique em Próxima.
- Opcional: especifique valores para os seguintes parâmetros de entrada:
- Delimitador de divisão: o delimitador usado para separar as linhas de registro. Deixe em branco se nenhum delimitador for usado.
- Namespace do recurso: o namespace do recurso.
- Rótulos de ingestão: o rótulo a ser aplicado aos eventos desse feed.
- Clique em Próxima.
- Revise a configuração do novo feed na tela Finalizar e clique em Enviar.
- Clique em Generate Secret Key para gerar uma chave secreta para autenticar esse feed.
Configurar a DLP do Zscaler
- No console do Zscaler Internet Access, acesse Administration > Nanolog Streaming Service > Cloud NSS Feeds.
- Clique em Adicionar feed de NSS da nuvem.
- Digite um nome para o feed no campo Nome do feed.
- Selecione NSS para Web em Tipo de NSS.
- Selecione o status na lista Status para ativar ou desativar o feed do NSS.
- Mantenha o valor no menu SIEM Rate como Unlimited. Para suprimir o fluxo de saída devido a licenciamento ou outras restrições, mude o valor.
- Selecione Outro na lista Tipo de SIEM.
- Selecione Desativada na lista Autenticação OAuth 2.0.
- Insira um limite de tamanho para um payload de solicitação HTTP individual para a prática recomendada do SIEM em Tamanho máximo do lote (por exemplo, 512 KB).
Insira o URL HTTPS do endpoint 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>:importPushLogs
CHRONICLE_REGION
: região em que a instância do Google SecOps está hospedada (por exemplo, US).GOOGLE_PROJECT_NUMBER
: número do projeto BYOP (encontrado em C4).LOCATION
: região do Google SecOps (por exemplo, US).CUSTOMER_ID
: ID de cliente do Google SecOps (obtido no C4).FEED_ID
: o ID do feed mostrado na interface 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:importPushLogs
Clique em Adicionar cabeçalho HTTP para adicionar mais cabeçalhos HTTP com chaves e valores.
Exemplo:
- Chave:
X-goog-api-key
- Valor:chave de API gerada nas credenciais de API do Google Cloud BYOP
- Chave:
Selecione DLP de endpoint na lista Tipos de registro.
Selecione JSON na lista Tipo de saída do feed.
Defina Caracter 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. Confira se os nomes das chaves correspondem aos nomes dos campos.
Confira abaixo o formato de saída de feed padrão:
\{ "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 Time no arquivo de saída na lista Timezone. Por padrão, o fuso horário é definido como o da sua organização.
Revise as configurações definidas.
Clique em Salvar para testar a conectividade. Se a conexão for bem-sucedida, uma marca de seleção verde acompanhada da mensagem Test Connectivity Successful: OK (200) vai aparecer.
Para mais informações sobre os feeds do Google SecOps, consulte a documentação sobre feeds do Google SecOps. Para informações sobre os requisitos de cada tipo de feed, consulte Configuração de feed por tipo.
Se você tiver problemas ao criar feeds, entre em contato com o suporte do Google SecOps.
Tabela de mapeamento do UDM
A tabela a seguir lista os campos de registro do tipo ZSCALER_DLP
e os campos correspondentes do 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 . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.