Recopila registros de DNS de ExtraHop

Compatible con:

En este documento, se explica cómo transferir registros de DNS de ExtraHop a las Operaciones de seguridad de Google con Bindplane. El analizador extrae registros con formato JSON de una cadena de mensajes sin procesar y descarta el evento cuando se trata de datos que no son JSON. Luego, asigna campos específicos del JSON extraído a los campos correspondientes en el esquema del Modelo de datos unificado (UDM), convierte los tipos de datos y controla diferentes estructuras de respuesta de DNS para garantizar una representación coherente.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Windows 2016 o versiones posteriores, o un host de Linux con systemd
  • Si ejecutas la herramienta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
  • Acceso privilegiado al DNS de ExtraHop

Obtén el archivo de autenticación de transferencia de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a SIEM Settings > Collection Agents.
  3. Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará BindPlane.

Obtén el ID de cliente de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a SIEM Settings > Profile.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instala el agente de BindPlane

Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.

Instalación en Windows

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el siguiente comando:

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

Instalación en Linux

  1. Abre una terminal con privilegios de raíz o sudo.
  2. Ejecuta el siguiente comando:

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

Recursos de instalación adicionales

Para obtener más opciones de instalación, consulta la guía de instalación.

Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps

  1. Accede al archivo de configuración:
    • Ubica el archivo config.yaml. Por lo general, se encuentra en el directorio /etc/bindplane-agent/ en Linux o en el directorio de instalación en Windows.
    • Abre el archivo con un editor de texto (por ejemplo, nano, vi o Bloc de notas).
  2. Edita el archivo config.yaml de la siguiente manera: 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

Reinicia el agente de Bindplane para aplicar los cambios

  • Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar el agente de Bindplane en Windows, puedes usar la consola de Servicios o ingresar el siguiente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configura Syslog para el flujo de datos abiertos de ExtraHop (DNS)

  1. Accede a ExtraHop Administration con https://<extrahop-hostname-or-IP-address>/admin.
  1. Ve a Configuración del sistema > Abrir flujos de datos.
  2. Haz clic en Agregar destino.
  3. En el menú desplegable Tipo de destino, selecciona Syslog.
  4. Proporciona los siguientes detalles de configuración:
    • Nombre: Ingresa un nombre único para identificar el objetivo.
    • Host: Ingresa la dirección IP del agente de Bindplane.
    • Puerto: Ingresa el número de puerto del agente de Bindplane.
    • Protocolo: Selecciona UDP o TCP, según la configuración de Bindplane.
    • (Opcional) Selecciona Hora local para enviar información de syslog con marcas de tiempo en la zona horaria local.
    • Haga clic en Probar.
  5. Haz clic en Guardar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
ans.data network.dns.answers.data Se extrae del campo data dentro del array answers en el registro sin procesar.
ans.name network.dns.answers.name Se extrae del campo name dentro del array answers en el registro sin procesar.
ans.ttl network.dns.answers.ttl Se extrae del campo ttl dentro del array answers en el registro sin procesar. Se convirtió a uinteger.
ans.typeNum network.dns.answers.type Se extrae del campo typeNum dentro del array answers en el registro sin procesar. Se convirtió a uinteger.
ans_data network.dns.answers.data Se extrae del campo ans_data en el registro sin procesar cuando no está presente el array answers.
ans_name network.dns.answers.name Se extrae del campo ans_name en el registro sin procesar cuando no está presente el array answers.
ans_ttl network.dns.answers.ttl Se extrae del campo ans_ttl en el registro sin procesar cuando no está presente el array answers. Se convirtió a uinteger.
client_ip principal.ip Se extrae del campo client_ip en el registro sin procesar.
dns_type network.dns.response Si el valor es "response", entonces es "true". De lo contrario, no se asigna. Se convierte en boolean
dst_ip target.ip Se extrae del campo dst_ip en el registro sin procesar.
ip_or_host intermediary.hostname Si ip_or_host no es una dirección IP válida, se asigna a intermediary.hostname.
ip_or_host intermediary.ip Si ip_or_host es una dirección IP válida, se asigna a intermediary.ip.
opcode network.dns.opcode Se extrae del campo opcode en el registro sin procesar. Se asignan a valores numéricos según la cadena de código de operación (p.ej., "QUERY" -> 0). Se convirtió a uinteger.
qname network.dns.questions.name Se extrae del campo qname en el registro sin procesar.
qtype network.dns.questions.type Se extrae del campo qtype en el registro sin procesar. Se asignan a valores numéricos según la cadena del tipo de registro (p.ej., "A" -> 1). Se convirtió a uinteger.
metadata.event_type Se define en NETWORK_DNS.
metadata.log_type Se define en EXTRAHOP_DNS.
network.application_protocol Se define en DNS.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.