Coletar registros de proxy da Web do Netskope

Compatível com:

Este documento explica como ingerir registros de proxy da Web do Netskope no Google Security Operations usando o Google Cloud Storage V2.

A Netskope oferece um gateway da Web seguro nativo da nuvem que inspeciona e controla o tráfego da Web em tempo real. Os registros de transações da Web (WebTx) capturam registros detalhados de todas as sessões HTTP e HTTPS processadas pelo proxy do Netskope, incluindo identidade do usuário, aplicativo, categoria de URL, veredictos de ameaças e DLP e metadados de rede.

Antes de começar

Verifique se você atende os seguintes pré-requisitos:

  • Uma instância do Google SecOps
  • Um projeto do GCP com a API Cloud Storage ativada
  • Permissões para criar e gerenciar buckets do GCS
  • Permissões para gerenciar políticas do IAM em buckets do GCS
  • Acesso privilegiado ao locatário do Netskope com credenciais de administrador

Opção: transmissão de registros do Netskope para o Google Cloud Storage

Use essa opção se você tiver uma assinatura do Netskope Log Streaming ativada no seu locatário. O Netskope Log Streaming envia arquivos de registro do WebTx diretamente para seu bucket do GCS como arquivos .gzip compactados em um intervalo fixo de 240 segundos.

Criar um bucket do Google Cloud Storage

  1. Acesse o Console do Google Cloud.
  2. Selecione seu projeto ou crie um novo.
  3. No menu de navegação, acesse Cloud Storage > Buckets.
  4. Clique em Criar bucket.
  5. Informe os seguintes detalhes de configuração:

    Configuração Valor
    Nomeie seu bucket Insira um nome exclusivo globalmente, por exemplo, netskope-webtx-logs.
    Tipo de local Escolha com base nas suas necessidades (região, birregional, multirregional)
    Local Selecione o local mais próximo da sua organização (por exemplo, us-central1).
    Classe de armazenamento Padrão (recomendado para registros acessados com frequência)
    Controle de acesso Uniforme (recomendado)
    Ferramentas de proteção Opcional: ativar o controle de versões de objetos ou a política de retenção
  6. Clique em Criar.

Criar uma conta de serviço do GCP

O streaming de registros do Netskope exige uma conta de serviço do GCP com permissões de gravação no seu bucket do GCS. A chave privada dessa conta de serviço é usada pelo Netskope para autenticar ao enviar arquivos de registro.

  1. No Console do GCP, acesse IAM e administrador > Contas de serviço.
  2. Clique em Criar conta de serviço.
  3. Informe os seguintes detalhes de configuração:
    • Nome da conta de serviço: insira netskope-log-streaming
    • Descrição da conta de serviço: insira Service account for Netskope Log Streaming to push WebTx logs to GCS
  4. Clique em Criar e continuar.
  5. Na seção Conceda a essa conta de serviço acesso ao projeto:
    1. Clique em Selecionar papel.
    2. Pesquise e selecione Criador de objetos do Storage.
  6. Clique em Continuar.
  7. Clique em Concluído.

Gerar chave JSON

  1. Em IAM e administrador > Contas de serviço, clique na conta de serviço netskope-log-streaming.
  2. Selecione a guia Chaves.
  3. Clique em Adicionar chave > Criar nova chave.
  4. Selecione JSON como o tipo de chave.
  5. Clique em Criar.
  6. Um arquivo de chave JSON é baixado automaticamente. Salve esse arquivo com segurança.
  7. Abra o arquivo de chave JSON em um editor de texto e localize o campo private_key. Você vai precisar desse valor na próxima seção.

Conceder permissões de gravação no bucket do GCS

  1. Acesse Cloud Storage > Buckets.
  2. Clique no nome do bucket (por exemplo, netskope-webtx-logs).
  3. Acesse a guia Permissões.
  4. Clique em Conceder acesso.
  5. Informe os seguintes detalhes de configuração:
    • Adicionar principais: insira o e-mail da conta de serviço (por exemplo, netskope-log-streaming@YOUR_PROJECT_ID.iam.gserviceaccount.com).
    • Atribuir papéis: selecione Criador de objetos do Storage.
  6. Clique em Salvar.

Criar stream de registros

  1. Faça login no locatário do Netskope com credenciais de administrador.
  2. Acesse Configurações > Ferramentas > Transmissão de registros.
  3. Clique em Criar stream.
  4. No campo Nome, insira um nome legível para o fluxo (por exemplo, Chronicle WebTx GCS).
  5. Selecione GCP Cloud Storage como o tipo de destino.
  6. Informe os seguintes detalhes de configuração:

    • Bucket: insira o nome do bucket do GCS (por exemplo, netskope-webtx-logs).

    • Caminho (opcional): insira um caminho de pasta no bucket em que os registros serão armazenados (por exemplo, netskope/webtx/{%Y}).

    • Chave privada: insira o valor private_key do arquivo de chave JSON gerado na seção anterior. Insira a chave no formato PEM com símbolos de quebra de linha (\n):

      -----BEGIN PRIVATE KEY-----\nprivate_key_content\n-----END PRIVATE KEY-----\n
      
  7. Confira as Opções de entrega: a frequência de push é de 240 segundos.

  8. Clique em Salvar (ou Criar) para ativar o fluxo.

Configurar um feed no Google SecOps para ingerir registros do Netskope WebTx do GCS

Recuperar a conta de serviço do Google SecOps

O Google SecOps usa uma conta de serviço exclusiva para ler dados do seu bucket do GCS. Você precisa conceder a essa conta de serviço acesso ao seu bucket.

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Netskope WebTx Logs).
  5. Selecione Google Cloud Storage V2 como o Tipo de origem.
  6. Selecione Proxy da Web do Netskope como o Tipo de registro.
  7. Clique em Receber conta de serviço. Um e-mail exclusivo da conta de serviço será exibido, por exemplo:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Copie esse endereço de e-mail para usar na próxima etapa.

  9. Clique em Próxima.

  10. Especifique valores para os seguintes parâmetros de entrada:

    • URL do bucket de armazenamento: insira o URI do bucket do GCS com o caminho do prefixo:

      gs://netskope-webtx-logs/netskope/webtx/
      
      • Substitua:
        • netskope-webtx-logs: o nome do bucket do GCS.
        • netskope/webtx/: o prefixo de caminho configurado no streaming de registros do Netskope. Deixe em branco para a raiz.
    • Opção de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência:

      • Nunca: nunca exclui arquivos após as transferências (recomendado para testes).
      • Excluir arquivos transferidos: exclui os arquivos após a transferência bem-sucedida.
      • Excluir arquivos transferidos e diretórios vazios: exclui arquivos e diretórios vazios após a transferência bem-sucedida.

    • Idade máxima do arquivo: inclui arquivos modificados nos últimos dias. O padrão é 180 dias.

    • Namespace do recurso: o namespace do recurso

    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed

  11. Clique em Próxima.

  12. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Conceder permissões do IAM à conta de serviço do Google SecOps

A conta de serviço do Google SecOps precisa do papel de Leitor de objetos do Storage no seu bucket do GCS.

  1. Acesse Cloud Storage > Buckets.
  2. Clique no nome do bucket (por exemplo, netskope-webtx-logs).
  3. Acesse a guia Permissões.
  4. Clique em Conceder acesso.
  5. Informe os seguintes detalhes de configuração:
    • Adicionar participantes: cole o e-mail da conta de serviço do Google SecOps (por exemplo, chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com).
    • Atribuir papéis: selecione Leitor de objetos do Storage.
  6. Clique em Salvar.

Opção: Cloud Exchange Log Shipper para o Google Cloud Storage

Use essa opção se você tiver a plataforma Netskope Cloud Exchange implantada com o módulo Log Shipper configurado. O Log Shipper extrai os registros do WebTx do seu locatário do Netskope e os envia como arquivos .gzip compactados para um bucket do GCS, que o Google SecOps lê por um feed do Google Cloud Storage V2.

Antes de começar (Cloud Exchange)

Verifique se você atende aos seguintes pré-requisitos adicionais para essa opção:

Configurar o plug-in de destino do GCS

  1. Em Cloud Exchange, acesse Configurações > Plugin Store.
  2. Pesquise e selecione a caixa de plug-in Google Cloud SCC (Google GCS).
  3. Clique em Configurar novo plug-in ou adicione uma nova configuração de plug-in.
  4. Informe os seguintes detalhes de configuração:
    • Nome da configuração: insira um nome descritivo, por exemplo, GCS WebTx Destination.
    • Mapeamento: selecione um arquivo de mapeamento. Para registros do WebTx enviados como arquivos .gzip originais, nenhuma transformação de mapeamento é aplicada.
    • Bucket: insira o nome do bucket do GCS (por exemplo, netskope-webtx-logs).
    • Caminho (opcional): digite o caminho de uma pasta, por exemplo, netskope/webtx/.
    • Chave privada: insira o valor private_key do arquivo de chave JSON da conta de serviço.
  5. Clique em Salvar.
  6. A nova configuração de plug-in vai aparecer na página Log Shipper > Plug-ins.

Configurar uma regra de negócios (opcional)

Por padrão, a regra de negócios Todos filtra todos os alertas e eventos. Se quiser filtrar registros do WebTx especificamente, crie uma regra de negócios:

  1. Em Log Shipper, acesse Regras de negócios.
  2. Clique em Criar nova regra.
  3. Insira um nome da regra (por exemplo, WebTx Only).
  4. Configure os filtros desejados para incluir apenas dados do WebTx.
  5. Clique em Salvar.

Configurar a entrega de registros

  1. Em Log Shipper, acesse Log Delivery.
  2. Clique em Adicionar configuração de entrega de registros.
  3. Informe os seguintes detalhes de configuração:
    • Configuração da origem: selecione o plug-in de origem do CLS do Netskope (por exemplo, WebTxCLS ou Netskope CLS).
    • Configuração de destino: selecione o plug-in de destino do GCS que você configurou (por exemplo, GCS WebTx Destination).
    • Regra de negócios: selecione uma regra de negócios (por exemplo, All ou WebTx Only).
  4. Clique em Salvar.

  5. Para acessar mais dados históricos, clique no ícone Extrair dados históricos nas ações de Entrega de registros.

  6. Selecione um período Histórico de e Até e clique em Extrair.

Configurar um feed no Google SecOps para ingerir registros do Netskope WebTx do GCS

Siga as mesmas etapas da opção de transmissão de registros do Netskope para criar um feed do Google SecOps e conceder permissões do IAM:

  1. Recupere a conta de serviço do Google SecOps: crie um feed com o Google Cloud Storage V2 como tipo de origem e o proxy da Web do Netskope como tipo de registro.
  2. Conceda permissões do IAM à conta de serviço do Google SecOps: conceda o papel Leitor de objetos do Storage (ou Administrador de objetos do Storage se estiver usando uma opção de exclusão) no bucket do GCS à conta de serviço do Google SecOps.

Verificar a entrega de registro

Para verificar se os registros do WebTx estão sendo entregues ao bucket do GCS:

  1. Em Cloud Exchange, acesse Log Shipper > Entrega de registros.
  2. Verifique as colunas Total de registros/WebTx enviados ao destinatário externo e Total de WebTx enviados ao bucket de armazenamento para confirmar se os dados estão sendo enviados ao destino.
  3. No bucket do GCS, confirme se os arquivos .gzip estão sendo gravados pelo Log Shipper.

Configurar as configurações globais do Log Shipper (opcional)

Somente administradores podem mudar as configurações globais do Log Shipper. Acesse Configurações > Log Shipper. Há duas guias: "Geral" e "Mapeamentos".

Na guia Geral, é possível configurar a estratégia de nova tentativa para entrega de registros:

  • Padrão (3 novas tentativas): se a entrega de registros falhar, o Log Shipper vai iniciar três tentativas de enviar os registros ao destino. Se todas as três tentativas falharem, o lote de registros correspondente será descartado.
  • Tentar de novo até a entrega ser concluída: novas tentativas ilimitadas até a entrega dos registros ser concluída.

Também é possível ativar a codificação UTF-8 para alertas, eventos e WebTx e garantir o processamento perfeito de dados codificados em UTF-8. Por padrão, esse recurso fica desativado.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
applicationType security_result.detection_fields[].key: "applicationType", security_result.detection_fields[].value: applicationType Mapeado diretamente do campo CEF correspondente.
appcategory security_result.category_details[]: appcategory Mapeado diretamente do campo CEF correspondente.
browser security_result.detection_fields[].key: "browser", security_result.detection_fields[].value: browser Mapeado diretamente do campo CEF correspondente.
c-ip principal.asset.ip[]: c-ip, principal.ip[]: c-ip Mapeado diretamente do campo JSON correspondente
cci security_result.detection_fields[].key: "cci", security_result.detection_fields[].value: cci Mapeado diretamente do campo CEF correspondente.
ccl security_result.confidence: valor derivado, security_result.confidence_details: ccl security_result.confidence é derivado com base no valor de ccl: "excellent" ou "high" é mapeado para HIGH_CONFIDENCE, "medium" é mapeado para MEDIUM_CONFIDENCE, "low" ou "poor" é mapeado para LOW_CONFIDENCE, e "unknown" ou "not_defined" é mapeado para UNKNOWN_CONFIDENCE. security_result.confidence_details é mapeado diretamente de ccl.
clientBytes network.sent_bytes: clientBytes Mapeado diretamente do campo CEF correspondente.
cs-access-method additional.fields[].key: "accessMethod", additional.fields[].value.string_value: cs-access-method Mapeado diretamente do campo JSON correspondente
cs-app additional.fields[].key: "x-cs-app", additional.fields[].value.string_value: cs-app, principal.application: cs-app Mapeado diretamente do campo JSON correspondente
cs-app-activity additional.fields[].key: "x-cs-app-activity", additional.fields[].value.string_value: cs-app-activity Mapeado diretamente do campo JSON correspondente
cs-app-category additional.fields[].key: "x-cs-app-category", additional.fields[].value.string_value: cs-app-category Mapeado diretamente do campo JSON correspondente
cs-app-cci additional.fields[].key: "x-cs-app-cci", additional.fields[].value.string_value: cs-app-cci Mapeado diretamente do campo JSON correspondente
cs-app-ccl additional.fields[].key: "x-cs-app-ccl", additional.fields[].value.string_value: cs-app-ccl Mapeado diretamente do campo JSON correspondente
cs-app-from-user additional.fields[].key: "x-cs-app-from-user", additional.fields[].value.string_value: cs-app-from-user, principal.user.email_addresses[]: cs-app-from-user Mapeado diretamente do campo JSON correspondente
cs-app-instance-id additional.fields[].key: "x-cs-app-instance-id", additional.fields[].value.string_value: cs-app-instance-id Mapeado diretamente do campo JSON correspondente
cs-app-object-name additional.fields[].key: "x-cs-app-object-name", additional.fields[].value.string_value: cs-app-object-name Mapeado diretamente do campo JSON correspondente
cs-app-object-type additional.fields[].key: "x-cs-app-object-type", additional.fields[].value.string_value: cs-app-object-type Mapeado diretamente do campo JSON correspondente
cs-app-suite additional.fields[].key: "x-cs-app-suite", additional.fields[].value.string_value: cs-app-suite Mapeado diretamente do campo JSON correspondente
cs-app-tags additional.fields[].key: "x-cs-app-tags", additional.fields[].value.string_value: cs-app-tags Mapeado diretamente do campo JSON correspondente
cs-bytes network.sent_bytes: cs-bytes Mapeado diretamente do campo JSON correspondente
cs-content-type additional.fields[].key: "sc-content-type", additional.fields[].value.string_value: cs-content-type Mapeado diretamente do campo JSON correspondente
cs-dns target.asset.hostname[]: cs-dns, target.hostname: cs-dns Mapeado diretamente do campo JSON correspondente
cs-host target.asset.hostname[]: cs-host, target.hostname: cs-host Mapeado diretamente do campo JSON correspondente
cs-method network.http.method: cs-method Mapeado diretamente do campo JSON correspondente
cs-referer network.http.referral_url: cs-referer Mapeado diretamente do campo JSON correspondente
cs-uri additional.fields[].key: "cs-uri", additional.fields[].value.string_value: cs-uri Mapeado diretamente do campo JSON correspondente
cs-uri-path additional.fields[].key: "x-cs-uri-path", additional.fields[].value.string_value: cs-uri-path Mapeado diretamente do campo JSON correspondente
cs-uri-port additional.fields[].key: "cs-uri-port", additional.fields[].value.string_value: cs-uri-port Mapeado diretamente do campo JSON correspondente
cs-uri-scheme network.application_protocol: cs-uri-scheme Mapeado diretamente do campo JSON correspondente após a conversão para maiúsculas.
cs-user-agent network.http.parsed_user_agent: user agent analisado, network.http.user_agent: cs-user-agent network.http.parsed_user_agent é derivado da análise do campo cs-user-agent usando o filtro "parseduseragent".
cs-username principal.user.userid: cs-username Mapeado diretamente do campo JSON correspondente
data metadata.event_timestamp.seconds: segundos da época dos campos de data e hora, metadata.event_timestamp.nanos: 0 A data e a hora são combinadas e convertidas em segundos e nanossegundos de época. Os nanossegundos são definidos como 0.
device intermediary.hostname: device Mapeado diretamente do campo CEF correspondente.
dst target.ip[]: dst Mapeado diretamente do campo CEF correspondente.
dst_country target.location.country_or_region: dst_country Mapeado diretamente do campo correspondente do Grok.
dst_ip target.asset.ip[]: dst_ip, target.ip[]: dst_ip Mapeado diretamente do campo correspondente do Grok.
dst_location target.location.city: dst_location Mapeado diretamente do campo correspondente do Grok.
dst_region target.location.state: dst_region Mapeado diretamente do campo correspondente do Grok.
dst_zip Não mapeado Este campo não está mapeado para a UDM
duser target.user.email_addresses[]: duser, target.user.user_display_name: duser Mapeado diretamente do campo CEF correspondente.
dvchost about.hostname: dvchost, target.asset.hostname[]: dvchost, target.hostname: dvchost Mapeado diretamente do campo CEF correspondente.
event_timestamp metadata.event_timestamp.seconds: event_timestamp Mapeado diretamente do campo correspondente do Grok.
nome do host target.asset.hostname[]: hostname, target.hostname: hostname Mapeado diretamente do campo CEF correspondente.
Código do incidente security_result.detection_fields[].key: "IncidentID", security_result.detection_fields[].value: IncidentID Mapeado diretamente do campo CEF correspondente.
intermediário intermediário: intermediary Mapeado diretamente do campo CEF correspondente.
md5 target.file.md5: md5 Mapeado diretamente do campo CEF correspondente.
mensagem Vários campos do UDM O campo de mensagem é analisado com base no fato de conter "CEF". Se for o caso, ele será tratado como um registro CEF. Caso contrário, ele será analisado como uma string delimitada por espaços ou JSON.
mwDetectionEngine additional.fields[].key: "mwDetectionEngine", additional.fields[].value.string_value: mwDetectionEngine Mapeado diretamente do campo CEF correspondente.
mwType metadata.description: mwType Mapeado diretamente do campo CEF correspondente.
os principal.platform: valor derivado A plataforma é derivada do campo "os": "Windows" é mapeado para WINDOWS, "MAC" é mapeado para MAC e "LINUX" é mapeado para LINUX.
página network.http.referral_url: page Mapeado diretamente do campo CEF correspondente.
referenciador network.http.referral_url: referer Mapeado diretamente do campo CEF correspondente.
requestClientApplication network.http.parsed_user_agent: user agent analisado, network.http.user_agent: requestClientApplication network.http.parsed_user_agent é derivado da análise do campo requestClientApplication usando o filtro "parseduseragent".
request_method network.http.method: request_method Mapeado diretamente do campo correspondente do Grok.
rs-status additional.fields[].key: "rs-status", additional.fields[].value.string_value: rs-status, network.http.response_code: rs-status Mapeado diretamente do campo JSON correspondente
s-ip target.asset.ip[]: s-ip, target.ip[]: s-ip Mapeado diretamente do campo JSON correspondente
sc-bytes network.received_bytes: sc-bytes Mapeado diretamente do campo JSON correspondente
sc-content-type additional.fields[].key: "sc-content-type", additional.fields[].value.string_value: sc-content-type Mapeado diretamente do campo JSON correspondente
sc-status network.http.response_code: sc-status Mapeado diretamente do campo JSON correspondente
serverBytes network.received_bytes: serverBytes Mapeado diretamente do campo CEF correspondente.
sha256 target.file.sha256: sha256 Mapeado diretamente do campo CEF correspondente.
src principal.ip[]: src Mapeado diretamente do campo CEF correspondente.
src_country principal.location.country_or_region: src_country Mapeado diretamente do campo correspondente do Grok.
src_ip principal.asset.ip[]: src_ip, principal.ip[]: src_ip Mapeado diretamente do campo correspondente do Grok.
src_location principal.location.city: src_location Mapeado diretamente do campo correspondente do Grok.
src_region principal.location.state: src_region Mapeado diretamente do campo correspondente do Grok.
src_latitude Não mapeado Este campo não está mapeado para a UDM
src_longitude Não mapeado Este campo não está mapeado para a UDM
src_zip Não mapeado Este campo não está mapeado para a UDM
suser principal.user.user_display_name: suser Mapeado diretamente do campo CEF correspondente.
target_host target.asset.hostname[]: target_host, target.hostname: target_host Mapeado diretamente do campo correspondente do Grok.
tempo metadata.event_timestamp.seconds: segundos da época dos campos de data e hora, metadata.event_timestamp.nanos: 0 A data e a hora são combinadas e convertidas em segundos e nanossegundos de época. Os nanossegundos são definidos como 0.
timestamp metadata.event_timestamp.seconds: timestamp Mapeado diretamente do campo CEF correspondente.
ts metadata.event_timestamp.seconds: segundos da Era Unix de ts, metadata.event_timestamp.nanos: 0 O carimbo de data/hora é convertido em segundos e nanossegundos de época. Os nanossegundos são definidos como 0.
url target.url: url Mapeado diretamente do campo CEF correspondente.
user_agent network.http.parsed_user_agent: user agent analisado, network.http.user_agent: user_agent network.http.parsed_user_agent é derivado da análise do campo user_agent usando o filtro "parseduseragent".
user_key principal.user.email_addresses[]: user_key Mapeado diretamente do campo correspondente do Grok.
version Não mapeado Este campo não está mapeado para a UDM
x-c-browser additional.fields[].key: "x-c-browser", additional.fields[].value.string_value: x-c-browser Mapeado diretamente do campo JSON correspondente
x-c-browser-version additional.fields[].key: "x-c-browser-version", additional.fields[].value.string_value: x-c-browser-version Mapeado diretamente do campo JSON correspondente
x-c-country principal.location.country_or_region: x-c-country Mapeado diretamente do campo JSON correspondente
x-c-device additional.fields[].key: "x-c-device", additional.fields[].value.string_value: x-c-device Mapeado diretamente do campo JSON correspondente
x-c-latitude principal.location.region_coordinates.latitude: x-c-latitude Mapeado diretamente do campo JSON correspondente
x-c-local-time security_result.detection_fields[].key: "x-c-local-time", security_result.detection_fields[].value: x-c-local-time Mapeado diretamente do campo JSON correspondente
x-c-location principal.location.name: x-c-location Mapeado diretamente do campo JSON correspondente
x-c-longitude principal.location.region_coordinates.longitude: x-c-longitude Mapeado diretamente do campo JSON correspondente
x-c-os principal.platform: valor derivado A plataforma é derivada do campo x-c-os: "Windows" é mapeado para WINDOWS, "MAC" é mapeado para MAC e "LINUX" é mapeado para LINUX.
x-c-region principal.location.state: x-c-region Mapeado diretamente do campo JSON correspondente
x-c-zipcode additional.fields[].key: "x-c-zipcode", additional.fields[].value.string_value: x-c-zipcode Mapeado diretamente do campo JSON correspondente
x-category additional.fields[].key: "x-category", additional.fields[].value.string_value: x-category Mapeado diretamente do campo JSON correspondente
x-category-id additional.fields[].key: "x-category-id", additional.fields[].value.string_value: x-category-id Mapeado diretamente do campo JSON correspondente
x-cs-access-method additional.fields[].key: "accessMethod", additional.fields[].value.string_value: x-cs-access-method Mapeado diretamente do campo JSON correspondente
x-cs-app principal.application: x-cs-app, additional.fields[].key: "x-cs-app", additional.fields[].value.string_value: x-cs-app Mapeado diretamente do campo JSON correspondente
x-cs-app-activity additional.fields[].key: "x-cs-app-activity", additional.fields[].value.string_value: x-cs-app-activity Mapeado diretamente do campo JSON correspondente
x-cs-app-category additional.fields[].key: "x-cs-app-category", additional.fields[].value.string_value: x-cs-app-category Mapeado diretamente do campo JSON correspondente
x-cs-app-cci additional.fields[].key: "x-cs-app-cci", additional.fields[].value.string_value: x-cs-app-cci Mapeado diretamente do campo JSON correspondente
x-cs-app-from-user additional.fields[].key: "x-cs-app-from-user", additional.fields[].value.string_value: x-cs-app-from-user Mapeado diretamente do campo JSON correspondente
x-cs-app-object-id additional.fields[].key: "x-cs-app-object-id", additional.fields[].value.string_value: x-cs-app-object-id Mapeado diretamente do campo JSON correspondente
x-cs-app-object-name additional.fields[].key: "x-cs-app-object-name", additional.fields[].value.string_value: x-cs-app-object-name Mapeado diretamente do campo JSON correspondente
x-cs-app-object-type additional.fields[].key: "x-cs-app-object-type", additional.fields[].value.string_value: x-cs-app-object-type Mapeado diretamente do campo JSON correspondente
x-cs-app-suite additional.fields[].key: "x-cs-app-suite", additional.fields[].value.string_value: x-cs-app-suite Mapeado diretamente do campo JSON correspondente
x-cs-app-tags additional.fields[].key: "x-cs-app-tags", additional.fields[].value.string_value: x-cs-app-tags Mapeado diretamente do campo JSON correspondente
x-cs-app-to-user additional.fields[].key: "x-cs-app-to-user", additional.fields[].value.string_value: x-cs-app-to-user Mapeado diretamente do campo JSON correspondente
x-cs-dst-ip security_result.detection_fields[].key: "x-cs-dst-ip", security_result.detection_fields[].value: x-cs-dst-ip, target.asset.ip[]: x-cs-dst-ip, target.ip[]: x-cs-dst-ip Mapeado diretamente do campo JSON correspondente
x-cs-dst-port security_result.detection_fields[].key: "x-cs-dst-port", security_result.detection_fields[].value: x-cs-dst-port, target.port: x-cs-dst-port Mapeado diretamente do campo JSON correspondente
x-cs-http-version security_result.detection_fields[].key: "x-cs-http-version", security_result.detection_fields[].value: x-cs-http-version Mapeado diretamente do campo JSON correspondente
x-cs-page-id additional.fields[].key: "x-cs-page-id", additional.fields[].value.string_value: x-cs-page-id Mapeado diretamente do campo JSON correspondente
x-cs-session-id network.session_id: x-cs-session-id Mapeado diretamente do campo JSON correspondente
x-cs-site additional.fields[].key: "x-cs-site", additional.fields[].value.string_value: x-cs-site Mapeado diretamente do campo JSON correspondente
x-cs-sni network.tls.client.server_name: x-cs-sni Mapeado diretamente do campo JSON correspondente
x-cs-src-ip principal.asset.ip[]: x-cs-src-ip, principal.ip[]: x-cs-src-ip, security_result.detection_fields[].key: "x-cs-src-ip", security_result.detection_fields[].value: x-cs-src-ip Mapeado diretamente do campo JSON correspondente
x-cs-src-ip-egress principal.asset.ip[]: x-cs-src-ip-egress, principal.ip[]: x-cs-src-ip-egress, security_result.detection_fields[].key: "x-cs-src-ip-egress", security_result.detection_fields[].value: x-cs-src-ip-egress Mapeado diretamente do campo JSON correspondente
x-cs-src-port principal.port: x-cs-src-port, security_result.detection_fields[].key: "x-cs-src-port", security_result.detection_fields[].value: x-cs-src-port Mapeado diretamente do campo JSON correspondente
x-cs-ssl-cipher network.tls.cipher: x-cs-ssl-cipher Mapeado diretamente do campo JSON correspondente
x-cs-ssl-fronting-error security_result.detection_fields[].key: "x-cs-ssl-fronting-error", security_result.detection_fields[].value: x-cs-ssl-fronting-error Mapeado diretamente do campo JSON correspondente
x-cs-ssl-handshake-error security_result.detection_fields[].key: "x-cs-ssl-handshake-error", security_result.detection_fields[].value: x-cs-ssl-handshake-error Mapeado diretamente do campo JSON correspondente
x-cs-ssl-ja3 network.tls.client.ja3: x-cs-ssl-ja3 Mapeado diretamente do campo JSON correspondente
x-cs-ssl-version network.tls.version: x-cs-ssl-version Mapeado diretamente do campo JSON correspondente
x-cs-timestamp metadata.event_timestamp.seconds: x-cs-timestamp Mapeado diretamente do campo JSON correspondente
x-cs-traffic-type additional.fields[].key: "trafficType", additional.fields[].value.string_value: x-cs-traffic-type Mapeado diretamente do campo JSON correspondente
x-cs-tunnel-src-ip security_result.detection_fields[].key: "x-cs-tunnel-src-ip", security_result.detection_fields[].value: x-cs-tunnel-src-ip Mapeado diretamente do campo JSON correspondente
x-cs-uri-path additional.fields[].key: "x-cs-uri-path", additional.fields[].value.string_value: x-cs-uri-path Mapeado diretamente do campo JSON correspondente
x-cs-url target.url: x-cs-url Mapeado diretamente do campo JSON correspondente
x-cs-userip security_result.detection_fields[].key: "x-cs-userip", security_result.detection_fields[].value: x-cs-userip Mapeado diretamente do campo JSON correspondente
x-other-category security_result.category_details[]: x-other-category Mapeado diretamente do campo JSON correspondente
x-other-category-id security_result.detection_fields[].key: "x-other-category-id", security_result.detection_fields[].value: x-other-category-id Mapeado diretamente do campo JSON correspondente
x-policy-action security_result.action: Derived value, security_result.action_details: x-policy-action security_result.action é derivado da conversão de x-policy-action em maiúsculas. Se o valor em maiúsculas for "ALLOW" ou "BLOCK", ele será usado diretamente. Caso contrário, ele não será mapeado. "security_result.action_details" é mapeado diretamente de "x-policy-action".
x-policy-dst-host security_result.detection_fields[].key: "x-policy-dst-host", security_result.detection_fields[].value: x-policy-dst-host Mapeado diretamente do campo JSON correspondente
x-policy-dst-host-source security_result.detection_fields[].key: "x-policy-dst-host-source", security_result.detection_fields[].value: x-policy-dst-host-source Mapeado diretamente do campo JSON correspondente
x-policy-dst-ip security_result.detection_fields[].key: "x-policy-dst-ip", security_result.detection_fields[].value: x-policy-dst-ip Mapeado diretamente do campo JSON correspondente
x-policy-name security_result.rule_name: x-policy-name Mapeado diretamente do campo JSON correspondente
x-policy-src-ip security_result.detection_fields[].key: "x-policy-src-ip", security_result.detection_fields[].value: x-policy-src-ip Mapeado diretamente do campo JSON correspondente
x-r-cert-enddate network.tls.server.certificate.not_after.seconds: segundos da Era Unix de x-r-cert-enddate A data é convertida em segundos de época.
x-r-cert-expired additional.fields[].key: "x-r-cert-expired", additional.fields[].value.string_value: x-r-cert-expired Mapeado diretamente do campo JSON correspondente
x-r-cert-incomplete-chain additional.fields[].key: "x-r-cert-incomplete-chain", additional.fields[].value.string_value: x-r-cert-incomplete-chain Mapeado diretamente do campo JSON correspondente
x-r-cert-issuer-cn network.tls.server.certificate.issuer: x-r-cert-issuer-cn Mapeado diretamente do campo JSON correspondente
x-r-cert-mismatch additional.fields[].key: "x-r-cert-mismatch", additional.fields[].value.string_value: x-r-cert-mismatch Mapeado diretamente do campo JSON correspondente
x-r-cert-revoked additional.fields[].key: "x-r-cert-revoked", additional.fields[].value.string_value: x-r-cert-revoked Mapeado diretamente do campo JSON correspondente
x-r-cert-self-signed additional.fields[].key: "x-r-cert-self-signed", additional.fields[].value.string_value: x-r-cert-self-signed Mapeado diretamente do campo JSON correspondente
x-r-cert-startdate network.tls.server.certificate.not_before.seconds: segundos da Era Unix de x-r-cert-startdate A data é convertida em segundos de época.
x-r-cert-subject-cn network.tls.server.certificate.subject: x-r-cert-subject-cn Mapeado diretamente do campo JSON correspondente
x-r-cert-untrusted-root additional.fields[].key: "x-r-cert-untrusted-root", additional.fields[].value.string_value: x-r-cert-untrusted-root Mapeado diretamente do campo JSON correspondente
x-r-cert-valid additional.fields[].key: "x-r-cert-valid", additional.fields[].value.string_value: x-r-cert-valid Mapeado diretamente do campo JSON correspondente
ID do x-request additional.fields[].key: "requestId", additional.fields[].value.string_value: x-request-id Mapeado diretamente do campo JSON correspondente
x-rs-file-category additional.fields[].key: "x-rs-file-category", additional.fields[].value.string_value: x-rs-file-category Mapeado diretamente do campo JSON correspondente
x-rs-file-type additional.fields[].key: "x-rs-file-type", additional.fields[].value.string_value: x-rs-file-type Mapeado diretamente do campo JSON correspondente
x-s-country target.location.country_or_region: x-s-country Mapeado diretamente do campo JSON correspondente
x-s-dp-name additional.fields[].key: "x-s-dp-name", additional.fields[].value.string_value: x-s-dp-name Mapeado diretamente do campo JSON correspondente
x-s-latitude target.location.region_coordinates.latitude: x-s-latitude Mapeado diretamente do campo JSON correspondente
x-s-location target.location.name: x-s-location Mapeado diretamente do campo JSON correspondente
x-s-longitude target.location.region_coordinates.longitude: x-s-longitude Mapeado diretamente do campo JSON correspondente
x-s-region target.location.state: x-s-region Mapeado diretamente do campo JSON correspondente
x-s-zipcode additional.fields[].key: "x-s-zipcode", additional.fields[].value.string_value: x-s-zipcode Mapeado diretamente do campo JSON correspondente
x-sr-ssl-cipher security_result.detection_fields[].key: "x-sr-ssl-cipher", security_result.detection_fields[].value: x-sr-ssl-cipher Mapeado diretamente do campo JSON correspondente
x-sr-ssl-client-certificate-error security_result.detection_fields[].key: "x-sr-ssl-client-certificate-error", security_result.detection_fields[].value: x-sr-ssl-client-certificate-error Mapeado diretamente do campo JSON correspondente
x-sr-ssl-engine-action security_result.detection_fields[].key: "x-sr-ssl-engine-action", security_result.detection_fields[].value: x-sr-ssl-engine-action Mapeado diretamente do campo JSON correspondente
x-sr-ssl-engine-action-reason security_result.detection_fields[].key: "x-sr-ssl-engine-action-reason", security_result.detection_fields[].value: x-sr-ssl-engine-action-reason Mapeado diretamente do campo JSON correspondente
x-sr-ssl-handshake-error security_result.detection_fields[].key: "x-sr-ssl-handshake-error", security_result.detection_fields[].value: x-sr-ssl-handshake-error Mapeado diretamente do campo JSON correspondente
x-sr-ssl-ja3s network.tls.server.ja3s: x-sr-ssl-ja3s Mapeado diretamente do campo JSON correspondente
x-sr-ssl-malformed-ssl security_result.detection_fields[].key: "x-sr-ssl-malformed-ssl", security_result.detection_fields[].value: x-sr-ssl-malformed-ssl Mapeado diretamente do campo JSON correspondente
x-sr-ssl-version security_result.detection_fields[].key: "x-sr-ssl-version", security_result.detection_fields[].value: x-sr-ssl-version Mapeado diretamente do campo JSON correspondente
x-s-custom-signing-ca-error security_result.detection_fields[].key: "x-s-custom-signing-ca-error", security_result.detection_fields[].value: x-s-custom-signing-ca-error Mapeado diretamente do campo JSON correspondente
x-ssl-bypass security_result.detection_fields[].key: "SSL BYPASS", security_result.detection_fields[].value: x-ssl-bypass or x-ssl-bypass-reason Se x-ssl-bypass for "Yes" e x-ssl-bypass-reason estiver presente, o valor de x-ssl-bypass-reason será usado. Caso contrário, o valor de x-ssl-bypass será usado.
x-ssl-policy-action security_result.detection_fields[].key: "x-ssl-policy-action", security_result.detection_fields[].value: x-ssl-policy-action Mapeado diretamente do campo JSON correspondente
x-ssl-policy-categories security_result.category_details[]: x-ssl-policy-categories Mapeado diretamente do campo JSON correspondente
x-ssl-policy-dst-host security_result.detection_fields[].key: "x-ssl-policy-dst-host", security_result.detection_fields[].value: x-ssl-policy-dst-host Mapeado diretamente do campo JSON correspondente
x-ssl-policy-dst-host-source security_result.detection_fields[].key: "x-ssl-policy-dst-host-source", security_result.detection_fields[].value: x-ssl-policy-dst-host-source Mapeado diretamente do campo JSON correspondente
x-ssl-policy-dst-ip security_result.detection_fields[].key: "x-ssl-policy-dst-ip", security_result.detection_fields[].value: x-ssl-policy-dst-ip Mapeado diretamente do campo JSON correspondente
x-ssl-policy-name security_result.rule_name: x-ssl-policy-name Mapeado diretamente do campo JSON correspondente
x-ssl-policy-src-ip security_result.detection_fields[].key: "x-ssl-policy-src-ip", security_result.detection_fields[].value: x-ssl-policy-src-ip Mapeado diretamente do campo JSON correspondente
x-sr-dst-ip security_result.detection_fields[].key: "x-sr-dst-ip", security_result.detection_fields[].value: x-sr-dst-ip Mapeado diretamente do campo JSON correspondente
x-sr-dst-port security_result.detection_fields[].key: "x-sr-dst-port", security_result.detection_fields[].value: x-sr-dst-port Mapeado diretamente do campo JSON correspondente
x-type additional.fields[].key: "xType", additional.fields[].value.string_value: x-type Mapeado diretamente do campo JSON correspondente
x-transaction-id additional.fields[].key: "transactionId", additional.fields[].value.string_value: x-transaction-id Mapeado diretamente do campo JSON correspondente
metadata.vendor_name Definido como "Netskope"
metadata.product_name Defina como "Netskope Webproxy" se ainda não estiver presente.
metadata.log_type Defina como "NETSKOPE_WEBPROXY"

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.