Coletar registros do Zscaler Tunnel
Este documento explica como exportar registros do Zscaler Tunnel configurando um feed do Google Security Operations e como os campos de registro são mapeados para os campos do 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 Zscaler Tunnel 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 Tunnel: a plataforma em que você coleta registros.
Feed do Google SecOps: o feed do Google SecOps que busca registros do Zscaler Tunnel e os grava no Google SecOps.
Google SecOps: 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_TUNNEL
.
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 a versão 1.0 ou 2.0 do Zscaler Tunnel.
- 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 SecOps. 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 Tunnel
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Zscaler Tunnel Logs).
- Selecione Webhook como o Tipo de origem.
- Selecione Zscaler Tunnel 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 o túnel 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 túnel em Tipo de NSS.
- Selecione o status na lista Status para ativar ou desativar o feed do NSS.
- Mantenha o valor na lista suspensa 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 Túnel 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 a seguir os formatos de saída de feed padrão:
Para a fase 1 do 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}"\}\}
Para a Fase 2 do 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}"\}\}
Para o evento de túnel:
\{ "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}"\}\}
Por exemplo:
\{ "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}"\}\}
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 feeds por tipo.
Se você tiver problemas ao criar feeds, entre em contato com o suporte do Google SecOps.
Tabela de mapeamento do UDM
Referência de mapeamento de campo: ZSCALER_TUNNEL
A tabela a seguir lista os campos de registro do tipo ZSCALER_TUNNEL
e os campos correspondentes do 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 |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.