Recopila registros de DNS de ExtraHop
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
- Accede a la consola de Google SecOps.
- Ve a SIEM Settings > Collection Agents.
- 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
- Accede a la consola de Google SecOps.
- Ve a SIEM Settings > Profile.
- 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
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el siguiente comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalación en Linux
- Abre una terminal con privilegios de raíz o sudo.
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
- 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).
- Ubica el archivo
- 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
- Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.
- Reemplaza
<customer_id>
por el ID de cliente real. - Actualiza
/path/to/ingestion-authentication-file.json
a la ruta de acceso en la que se guardó el archivo de autenticación en la sección Cómo obtener el archivo de autenticación de la transferencia de Google SecOps.
- Reemplaza
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)
- Accede a ExtraHop Administration con
https://<extrahop-hostname-or-IP-address>/admin
.
- Ve a Configuración del sistema > Abrir flujos de datos.
- Haz clic en Agregar destino.
- En el menú desplegable Tipo de destino, selecciona Syslog.
- 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.
- 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.