Coletar registros DNS do ExtraHop

Compatível com:

Este documento explica como ingerir registros de DNS do ExtraHop no Google Security Operations usando o Bindplane. O analisador extrai registros formatados em JSON de uma string de mensagem bruta, descartando o evento ao lidar com dados não JSON. Em seguida, ele mapeia campos específicos do JSON extraído para os campos correspondentes no esquema do Modelo Unificado de Dados (UDM, na sigla em inglês), convertendo tipos de dados e processando diferentes estruturas de resposta de DNS para garantir uma representação consistente.

Antes de começar

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

  • Instância do Google SecOps
  • Windows 2016 ou mais recente ou um host Linux com systemd
  • Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
  • Acesso privilegiado ao DNS do ExtraHop

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.

Receber o ID do cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.

Instalação do Windows

  1. Abra o Prompt de Comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de root ou sudo.
  2. Execute este comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Outros recursos de instalação

Para mais opções de instalação, consulte o guia de instalação.

Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:
    • Localize o arquivo config.yaml. Normalmente, ele fica no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    • Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Bloco de Notas).
  2. Edite o arquivo config.yaml da seguinte forma: yaml receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'EXTRAHOP_DNS' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
  • Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

Reinicie o agente do Bindplane para aplicar as mudanças

  • Para reiniciar o agente do Bindplane em Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar o Syslog para o fluxo de dados abertos do ExtraHop (DNS)

  1. Faça login na Administração do ExtraHop usando https://<extrahop-hostname-or-IP-address>/admin.
  1. Acesse Configuração do sistema > Abrir fluxos de dados.
  2. Clique em Adicionar destino.
  3. No menu suspenso Tipo de destino, selecione Syslog.
  4. Informe os seguintes detalhes de configuração:
    • Nome: insira um nome exclusivo para identificar o destino.
    • Host: insira o endereço IP do agente do Bindplane.
    • Porta: digite o número da porta do agente do Bindplane.
    • Protocolo: selecione UDP ou TCP, dependendo da sua configuração do Bindplane.
    • (Opcional) Selecione Horário local para enviar informações do syslog com carimbos de data/hora no fuso horário local.
    • Clique em Testar.
  5. Clique em Salvar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
ans.data network.dns.answers.data Extraído do campo data na matriz answers do registro bruto.
ans.name network.dns.answers.name Extraído do campo name na matriz answers do registro bruto.
ans.ttl network.dns.answers.ttl Extraído do campo ttl na matriz answers do registro bruto. Convertido para uinteger.
ans.typeNum network.dns.answers.type Extraído do campo typeNum na matriz answers do registro bruto. Convertido para uinteger.
ans_data network.dns.answers.data Extraído do campo ans_data no registro bruto quando a matriz answers não está presente.
ans_name network.dns.answers.name Extraído do campo ans_name no registro bruto quando a matriz answers não está presente.
ans_ttl network.dns.answers.ttl Extraído do campo ans_ttl no registro bruto quando a matriz answers não está presente. Convertido para uinteger.
client_ip principal.ip Extraído do campo client_ip no registro bruto.
dns_type network.dns.response Se o valor for "response", será "true". Caso contrário, não será mapeado. Convertido para boolean
dst_ip target.ip Extraído do campo dst_ip no registro bruto.
ip_or_host intermediary.hostname Se ip_or_host não for um endereço IP válido, ele será mapeado para intermediary.hostname.
ip_or_host intermediary.ip Se ip_or_host for um endereço IP válido, ele será mapeado para intermediary.ip.
opcode network.dns.opcode Extraído do campo opcode no registro bruto. Mapeado para valores numéricos com base na string de opcode (por exemplo, "QUERY" -> 0). Convertido para uinteger.
qname network.dns.questions.name Extraído do campo qname no registro bruto.
qtype network.dns.questions.type Extraído do campo qtype no registro bruto. Mapeado para valores numéricos com base na string do tipo de registro (por exemplo, "A" -> 1). Convertido para uinteger.
metadata.event_type Defina como NETWORK_DNS.
metadata.log_type Defina como EXTRAHOP_DNS.
network.application_protocol Defina como DNS.

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