Coletar registros DNS do ExtraHop Reveal(x)

Versão do analisador:1.0

Compatível com:

Este documento explica como ingerir registros de DNS do ExtraHop Reveal(x) no Google Security Operations usando o Bindplane. O ExtraHop Reveal(x) oferece recursos de monitoramento passivo de DNS que capturam e analisam todas as transações de DNS na rede. As organizações usam o Reveal(x) para detectar ameaças baseadas em DNS, como tunelamento, algoritmos de geração de domínio (DGA, na sigla em inglês) e exfiltração de dados por inspeção profunda de pacotes de tráfego DNS.

Antes de começar

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

  • Uma instância do Google SecOps.
  • Windows Server 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 de acordo com os requisitos do agente do Bindplane.
  • Acesso privilegiado à página de administração do ExtraHop Reveal(x).
  • Conectividade de rede entre o sensor ExtraHop e o host do agente Bindplane na porta syslog configurada.

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.
  4. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.

Receber o ID de 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](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](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 do agente do Bindplane.

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

  1. Acesse o arquivo de configuração:

    • Linux: sudo systemctl status observiq-otel-collector
    • Windows: C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
  2. Edite o arquivo config.yaml da seguinte forma:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/extrahop_dns:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: '<CUSTOMER_ID>'
        endpoint: '<ENDPOINT>'
        log_type: 'EXTRAHOP_DNS'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/extrahop_dns_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/extrahop_dns
    
  • Substitua <CUSTOMER_ID> pelo ID do cliente real.
  • Atualize /path/to/ingestion-authentication-file.json para o caminho em que o arquivo de autenticação foi salvo.
  • Substitua <ENDPOINT> pelo seu endpoint regional:
    • Estados Unidos: malachiteingestion-pa.googleapis.com
    • Europa: europe-malachiteingestion-pa.googleapis.com
    • Ásia: asia-southeast1-malachiteingestion-pa.googleapis.com

Reinicie o agente do Bindplane para aplicar as mudanças

  • Para reiniciar o agente do Bindplane no Linux, execute: sudo systemctl restart observiq-otel-collector
  • Para reiniciar o agente do Bindplane em Windows, use o console Serviços ou execute: cmd net stop observiq-otel-collector && net start observiq-otel-collector

Configurar o fluxo de dados abertos do ExtraHop Reveal(x) para encaminhamento de syslog do DNS

Adicionar um destino de fluxo de dados aberto do syslog

  1. Faça login na página Administração do ExtraHop.
  2. Na seção Configuração do sistema, clique em Abrir fluxos de dados.
  3. Clique em Adicionar destino e selecione Syslog.
  4. Informe os seguintes detalhes de configuração:
    • Nome: insira um nome descritivo, por exemplo, Google SecOps-DNS.
    • Host: insira o endereço IP do host do agente do Bindplane.
    • Porta: 514.
    • Protocolo: UDP.
  5. Clique em Testar para verificar a conectividade e em Salvar.

Criar um gatilho para exportar transações de DNS

  1. Clique no ícone Configurações do sistema e selecione Acionadores.
  2. Clique em Criar.
  3. Informe os seguintes detalhes de configuração:
    • Nome: DNS Syslog Export.
    • Eventos: selecione DNS_REQUEST e DNS_RESPONSE.
  4. No painel Editor, insira o seguinte script de acionamento:

    var obj = {
        eh_event: "dns",
        client_ip: Flow.client.ipaddr.toString(),
        server_ip: Flow.server.ipaddr.toString(),
        client_port: Flow.client.port,
        server_port: Flow.server.port,
        qname: DNS.qname,
        qtype: DNS.qtype
    };
    
    if (event === "DNS_RESPONSE") {
        obj.dns_type = "response";
        obj.rcode = DNS.errorNum;
        obj.answers = JSON.stringify(DNS.answers);
    } else {
        obj.dns_type = "request";
        obj.opcode = DNS.opcode;
    }
    
    Remote.Syslog("Chronicle-DNS").info(JSON.stringify(obj));
    
  5. Clique em Salvar.

Atribuir o gatilho aos dispositivos

  1. Abra o gatilho que você criou.
  2. Na seção Atividades, clique em Atribuir.
  3. Selecione os dispositivos ou grupos de dispositivos relevantes e clique em Atribuir.

Tabela de mapeamento de UDM

Campo de registro Mapeamento do UDM Lógica
answers network.dns.answers Analisado do campo bruto.
dst target.ip Mapeamento bruto.
dpt target.port Mapeamento bruto.
host principal.hostname Mapeamento bruto.
proto network.ip_protocol Mapeamento bruto.
qname network.dns.questions.name Mapeamento bruto.
qtype network.dns.questions.type Mapeamento bruto.
rcode network.dns.response_code Mapeamento bruto.
src principal.ip Mapeamento bruto.
spt principal.port Mapeamento bruto.
ttl network.dns.answers.ttl Mapeamento bruto.
N/A metadata.log_type Defina como EXTRAHOP_DNS.
N/A metadata.product_name Defina como Reveal(x) DNS.
N/A metadata.vendor_name Defina como ExtraHop.

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