Coletar registros do DNSFilter

Versão do analisador: 1.0

Compatível com:

Este documento explica como configurar o DNSFilter para enviar registros ao Google Security Operations usando webhooks pelo protocolo HTTP Event Collector (HEC).

O DNSFilter é uma solução de segurança de DNS com tecnologia de IA que oferece proteção contra ameaças, filtragem de conteúdo e visibilidade de rede. O recurso de exportação de dados permite a exportação automatizada de dados de registro de consultas DNS para plataformas SIEM pela API HTTP Event Collector (HEC), oferecendo suporte ao monitoramento de segurança em tempo real e relatórios de conformidade.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps
  • Acesso ao painel do DNSFilter com permissões de administrador ou superior
  • Recurso de complemento Exportação de dados do DNSFilter ativado (disponível para planos Basic, Pro e Enterprise como um complemento pago)
  • Acesso ao console do Google Cloud (para criação de chaves de API)

Criar feed de webhook no Google SecOps

Criar o feed

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, DNSFilter HEC Feed).
  5. Selecione Webhook como o Tipo de origem.
  6. Selecione DNSFILTER como o Tipo de registro.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:
    • Delimitador de divisão (opcional): deixe em branco, já que cada solicitação de HEC contém eventos formatados corretamente
    • Namespace do recurso: o namespace do recurso
    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos desse feed
  9. Clique em Próxima.
  10. Revise a nova configuração de feed de notícias na tela Finalizar e clique em Enviar.

Gerar e salvar a chave secreta

Depois de criar o feed, é necessário gerar uma chave secreta para autenticação:

  1. Na página de detalhes do feed, clique em Gerar chave secreta.
  2. Uma caixa de diálogo mostra a chave secreta.
  3. Copie e salve a chave secreta com segurança.

Acessar o URL do endpoint do feed

  1. Acesse a guia Detalhes do feed.
  2. Na seção Informações do endpoint, copie o URL do endpoint do feed.
  3. O formato do URL é:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import
    

    Em que {region} é a região da instância do Google SecOps (por exemplo, us, europe ou asia-southeast1) e {parent} é o caminho do recurso no formato projects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.

  4. Salve esse URL para as próximas etapas.

  5. Clique em Concluído.

Criar chave de API do Google Cloud

O Google SecOps exige uma chave de API para autenticação. Crie uma chave de API restrita no console do Google Cloud.

Criar a chave de API

  1. Acesse a página "Credenciais" do console do Google Cloud.
  2. Selecione seu projeto (o projeto associado à instância do Google SecOps).
  3. Clique em Criar credenciais > Chave de API.
  4. Uma chave de API é criada e mostrada em uma caixa de diálogo.
  5. Clique em Editar chave de API para restringir a chave.

Restringir a chave de API

  1. Na página de configurações da chave de API: Nome: insira um nome descritivo (por exemplo, Google SecOps DNSFilter Webhook API Key)
  2. Em Restrições de API:
    1. Selecione Restringir chave.
    2. No menu suspenso Selecionar APIs, pesquise e selecione API Google SecOps (ou API Chronicle).
  3. Clique em Salvar.
  4. Copie o valor da chave de API do campo Chave de API na parte de cima da página.
  5. Salve a chave de API com segurança.

Configurar a exportação de dados do DNSFilter

Criar o URL do endpoint de HEC

  • Combine o URL do endpoint do Google SecOps e a chave de API para criar o URL de HEC:

    <ENDPOINT_URL>?key=<API_KEY>
    
  • Exemplo:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...
    

Configurar a exportação de dados no DNSFilter

  1. Faça login no painel do DNSFilter.
  2. Acesse Ferramentas > Exportação de dados.
  3. Na seção Destino da exportação, selecione HTTP Event Collector (HEC).
  4. Na seção Configuração de HEC, insira o seguinte:
    • URL do coletor de eventos HTTP: cole o URL completo do endpoint com a chave de API da etapa anterior.
    • Token do coletor de eventos ativo: cole a chave secreta gerada durante a criação do feed do Google SecOps.
  5. Clique em Save Configuration.
  6. O DNSFilter vai testar a conexão e mostrar uma mensagem de sucesso se a configuração estiver correta.

Verificar a ingestão de dados

  1. No painel do DNSFilter, acesse Ferramentas > Exportação de dados.
  2. Verifique se o Status é Ativo ou Conectado.
  3. No console do Google SecOps, acesse Configurações do SIEM > Feeds.
  4. Localize o feed do DNSFilter e verifique se o Status é Ativo.
  5. Clique no nome do feed para ver os detalhes.
  6. Verifique a métrica Registros ingeridos para confirmar se os dados estão fluindo.
  7. Para pesquisar eventos do DNSFilter, acesse Pesquisar e execute a seguinte consulta:

    metadata.log_type = "DNSFILTER"
    

Referência de métodos de autenticação

Os feeds de webhook do Google SecOps oferecem suporte a vários métodos de autenticação. A integração do DNSFilter HEC usa o método híbrido.

Método usado: híbrido (URL + cabeçalho)

O DNSFilter envia a chave de API no URL e a chave secreta (token de HEC) no cabeçalho da solicitação.

  • Formato da solicitação:

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    Authorization: Splunk <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

Método alternativo: cabeçalhos personalizados

Se você estiver configurando um aplicativo personalizado para enviar registros ao Google SecOps, use esse método para melhorar a segurança.

  • Formato da solicitação:

    POST <ENDPOINT_URL> HTTP/1.1
    Content-Type: application/json
    x-goog-chronicle-auth: <API_KEY>
    x-chronicle-auth: <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    
  • Vantagens:

    • A chave de API e o secret não ficam visíveis no URL
    • Mais seguro (os cabeçalhos não são registrados nos registros de acesso do servidor da Web)
    • Método preferido quando o fornecedor oferece suporte a ele

Nomes de cabeçalho de autenticação

O Google SecOps aceita os seguintes nomes de cabeçalho para autenticação:

  • Para chave de API:

    • x-goog-chronicle-auth (recomendado)
    • X-Goog-Chronicle-Auth (não diferencia maiúsculas de minúsculas)
  • Para chave secreta:

    • x-chronicle-auth (recomendado)
    • X-Chronicle-Auth (não diferencia maiúsculas de minúsculas)
    • Authorization: Splunk <TOKEN> (compatibilidade com HEC)

Limites e práticas recomendadas de webhook

Limites de solicitações

Limite Valor
Tamanho máximo da solicitação 4 MB
QPS máximo (consultas por segundo) 15.000
Tempo limite da solicitação 30 segundos
Comportamento de repetição Automático com espera exponencial

Práticas recomendadas

  • Monitorar o status da exportação: verifique regularmente o status da exportação de dados no painel do DNSFilter para garantir o fluxo contínuo de dados.
  • Rotação de chaves de API: gire periodicamente a chave de API do Google Cloud para segurança.
  • Gerenciamento de chaves secretas: armazene a chave secreta do Google SecOps com segurança e regenere-a se ela for comprometida.
  • Retenção de dados: configure políticas de retenção de dados adequadas no DNSFilter e no Google SecOps.
  • Configuração de alertas: configure alertas no Google SecOps para eventos críticos de segurança de DNS.

Solução de problemas

Falha no teste de conexão

Se o teste de configuração de exportação de dados do DNSFilter falhar:

  1. Verifique se o URL de HEC está correto e inclui o parâmetro da chave de API.
  2. Verifique se a chave secreta (token de HEC) foi copiada corretamente, sem espaços extras.
  3. Verifique se a chave de API do Google Cloud tem o acesso à API Chronicle ativado.
  4. Verifique se o feed do Google SecOps está no status Ativo.
  5. Verifique a conectividade de rede do DNSFilter aos endpoints do Google Cloud.

Nenhum dado aparece no Google SecOps

Se a conexão for bem-sucedida, mas nenhum dado aparecer:

  1. Verifique se as consultas DNS estão sendo geradas na implantação do DNSFilter.
  2. Verifique o registro de consultas do DNSFilter para confirmar se o tráfego está sendo processado.
  3. No Google SecOps, pesquise metadata.log_type = "DNSFILTER" para verificar a ingestão.
  4. Verifique a métrica Registros ingeridos do feed no Google SecOps.
  5. Analise os registros de erros do feed para conferir se há erros de ingestão.

A exportação de dados retorna uma mensagem de erro

Causas comuns de erros:

  • Credenciais inválidas: a chave de API ou a chave secreta está incorreta ou expirou.
  • Região incompatível: a região do URL do endpoint do Google SecOps não corresponde à sua instância.
  • Permissões: a chave de API não tem o acesso à API Chronicle ativado.
  • Problemas de rede: firewall ou proxy bloqueando conexões HTTPS de saída.

Tabela de mapeamento de UDM

Campo de registro Mapeamento de UDM Lógica
tempo metadata.collected_timestamp Convertido usando o formato de data: aaaa-MM-dd HH:mm:ss Z UTC
metadata.event_type Definido como "STATUS_UPDATE" se principal_ip_present, principal_hostname_present ou principal_mac_present for verdadeiro, caso contrário, "GENERIC_EVENT"
question_type network.dns.questions question_type convertido para question.type usando o mapeamento de tipo de registro DNS e mesclado na matriz
código network.dns.response_code Convertido usando o mapeamento de código de resposta DNS
protocolo network.ip_protocol Convertido usando o mapeamento de protocolo IP
cliente principal.hostname Valor copiado diretamente
request_address, ip4, ip6, source_addresses principal.ip Mesclado de request_address (IP extraído), ip4 (IP extraído), ip6 (IP extraído) e IPs extraídos da matriz source_addresses
região principal.location.country_or_region Valor copiado diretamente
clientMac principal.mac Valor copiado diretamente se corresponder à expressão regular MAC
clientID principal.resource.product_object_id Valor copiado diretamente
nome de usuário principal.user.user_display_name Valor copiado diretamente
user_id principal.user.userid Valor copiado diretamente
code, original_code, clientType, collection, network_name, networkID, collectionID, policy, policyID, scheduled_policy, scheduled_policyID, sec_cats, sec_allow_cats, block_cats, block_allow_cats, threat, allowed, method, organization, organizationID, applicationID, application_name, application_categoryID, application_category_name security_result.detection_fields Rótulos mesclados de vários campos de origem como pares de chave-valor
domínio target.administrative_domain Valor copiado diretamente
fqdn target.domain.name Valor copiado diretamente
metadata.product_name Definido como "DNSFILTER"
metadata.vendor_name Definido como "DNSFILTER"

Registro de alterações

Consulte o registro de alterações deste analisador

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