Recoger registros de BlueCat DDI
Este analizador gestiona los mensajes syslog con formato LEEF y sin formato LEEF de Bluecat DDI (DNS, DHCP, IPAM). Extrae campos de varios tipos de registros (por ejemplo, named, dhcpd, audit y CRON) mediante patrones grok y lógica condicional, los asigna al modelo de datos unificado en función del tipo de registro y rellena los campos relacionados con DNS, DHCP o usuarios según corresponda.
Antes de empezar
- Asegúrate de que tienes una instancia de Google Security Operations.
- Asegúrate de que usas Windows 2016 o una versión posterior, o un host Linux con systemd.
- Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
- Asegúrate de que tienes acceso con privilegios a Bluecat.
Obtener el archivo de autenticación de ingestión de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recogida.
- Descarga el archivo de autenticación de ingestión.
Obtener el ID de cliente de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instalar el agente de Bindplane
- Para instalar en Windows, ejecuta la siguiente secuencia de comandos:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Para instalar Linux, ejecuta la siguiente secuencia de comandos:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Puedes consultar otras opciones de instalación en esta guía de instalación.
Configurar el agente de Bindplane para ingerir Syslog y enviarlo a Google SecOps
- Accede al equipo en el que está instalado Bindplane.
Edita el archivo
config.yaml
de la siguiente manera:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: bluceat_ddi raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Reinicia el agente de Bindplane para aplicar los cambios:
sudo systemctl restart bindplane
Configurar Syslog en Bluecat DDI
- Inicia sesión en Bluecat Address Manager (BAM).
- En el menú Configuración, selecciona una configuración.
- Selecciona la pestaña Servidores.
- En Servidores, haz clic en el nombre de un BDDS.
- Debería abrirse la pestaña Detalles del servidor.
- Haz clic en el menú nombre del servidor.
- Selecciona Configuración de servicio.
- Haz clic en Tipo de servicio > Syslog (el gestor de direcciones consulta el servidor y devuelve los valores actuales).
- En General, define los siguientes valores:
- Servidor Syslog: la dirección IP de tu servidor Syslog (Bindplane).
- Puerto Syslog: el puerto de tu servidor Syslog (Bindplane).
- Transporte Syslog: selecciona TCP o UDP (en función de tu configuración de Bindplane).
- Haz clic en Añadir.
- El servidor syslog recién añadido aparecerá en la lista.
- Haz clic en Actualizar.
Configurar los ajustes de Syslog en BlueCat DDI
- Inicia sesión en BlueCat Address Manager.
- Vaya a Configuración > Ajustes del sistema > Registro.
- En Logging Settings (Configuración de registro), busca la sección Syslog Servers (Servidores Syslog).
- Haz clic en Añadir servidor Syslog.
- Proporciona los valores necesarios:
- Nombre del servidor: un nombre único para el servidor syslog (por ejemplo, BindplaneServer).
- Dirección IP: la dirección IP o el nombre de host del servidor syslog.
- Protocolo: selecciona TCP, UDP (predeterminado) o TLS (en función de la configuración de syslog).
- Puerto: especifica el puerto para la comunicación de syslog (predeterminado: 514 para UDP/TCP y 6514 para TLS).
- Configura Nivel de registro. Elige el nivel adecuado en función de tus necesidades. Entre las opciones disponibles se incluyen las siguientes:
- Urgencia: problemas críticos que requieren atención inmediata
- Alerta: alertas que requieren una acción inmediata.
- Crítico: condiciones críticas
- Error: eventos de error
- Advertencia: eventos de advertencia
- Aviso: eventos normales pero significativos
- Información: mensajes informativos
- Depuración: información de depuración detallada.
- Opcional: Añada una instalación Syslog personalizada para clasificar los registros (por ejemplo, local0 o local1).
- Guarda la configuración.
Aplicar ajustes de Syslog a los dispositivos DDI
- Ve a Servidores > Gestionar servidores.
- Selecciona los servidores DNS o DHCP en los que se debe habilitar syslog.
- Haz clic en Editar servidor.
- En la sección Registro:
- Selecciona el servidor syslog que has configurado anteriormente.
- Habilita el registro de servicios específicos (por ejemplo, consultas DNS o asignaciones DHCP).
- Guarda los cambios.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
client_ip |
network.dhcp.ciaddr |
Extraído del mensaje DHCPREQUEST. Solo se rellena en los mensajes DHCPREQUEST. |
client_mac |
principal.mac |
Extraída de mensajes DHCP (DHCPDISCOVER, DHCPREQUEST y DHCPRELEASE). |
client_mac |
target.mac |
Extraído de mensajes DHCP (DHCPOFFER y DHCPNAK). |
client_mac |
network.dhcp.chaddr |
Extraída de mensajes DHCP (DHCPREQUEST, DHCPOFFER, DHCPACK, DHCPNAK y DHCPRELEASE). |
cmd |
target.process.command_line |
Extraído de los registros de CRON. Se eliminan las "y" y los espacios. |
description |
metadata.description |
Se extrae de varios tipos de registros para proporcionar contexto adicional. |
description |
metadata.description |
Extraído de los registros de syslog-ng, que proporciona contexto adicional. |
file_path |
target.file.full_path |
Se extrae de varios tipos de registros y representa la ruta completa a un archivo. |
file_path |
target.process.file.full_path |
Extraído de los registros de agetty, que representa la ruta completa de un archivo relacionado con un proceso. |
inner_message |
metadata.description |
Se usa como descripción de GENERIC_EVENTs cuando no se define el tipo de operación y para los registros MEM-MON. |
metadata.event_type |
Determinado por el analizador en función del tipo de registro y del contenido. Entre los posibles valores se incluyen los siguientes: NETWORK_DNS, NETWORK_DHCP, USER_LOGIN, USER_LOGOUT, USER_UNCATEGORIZED, GENERIC_EVENT, STATUS_UPDATE y NETWORK_CONNECTION. Siempre "BLUECAT_DDI". | |
metadata.vendor_name |
Siempre "Bluecat Networks". | |
metadata.product_name |
Siempre "Bluecat DDI". | |
metadata.event_timestamp |
Copiado de la marca de tiempo analizada de la entrada de registro. | |
network.protocol |
Selecciona "DNS" para los registros de DNS o "DHCP" para los registros de DHCP. | |
network.dns.answers |
Una matriz que contiene registros de respuestas. El campo data de answers se rellena con el target_ip , si está presente. |
|
network.dns.questions |
Una matriz que contiene registros de preguntas. El campo name se rellena con el valor target_host , el campo type se obtiene de los campos query_type o question_type , y el campo class se obtiene del campo qclass . |
|
network.dns.recursive |
Se define como "true" si rec_flag es "+". |
|
qclass |
network.dns.questions.class |
Se extrae de los registros de consultas DNS y se asigna a un valor entero mediante el archivo dns_query_class_mapping.include . |
query_type |
network.dns.questions.type |
Se extrae de los registros de consultas DNS y se asigna a un valor entero mediante el archivo dhcp_qtype_mapping.include . |
relay_ip |
intermediary.ip |
Extraída de los registros de DNS y DHCP, que representa la dirección IP de un servidor de retransmisión o intermediario. |
server_host |
target.hostname |
Se extrae de varios tipos de registros y representa el nombre de host del servidor. |
server_host |
network.dhcp.sname |
Extraído de los registros DHCP, que representa el nombre de host del servidor. |
server_host |
principal.hostname |
Extraído de systemd, agetty y algunos registros de auditoría, que representa el nombre de host del principal. |
server_ip |
target.ip |
Extraído de los registros con formato LEEF, que representa la dirección IP del servidor. |
src_ip |
principal.ip |
Se extrae de varios tipos de registros y representa la dirección IP de origen. |
src_ip |
network.dhcp.yiaddr |
Se usa en los mensajes DHCPINFORM para rellenar el campo yiaddr. |
src_port |
principal.port |
Se extrae de varios tipos de registros y representa el puerto de origen. |
src_user |
principal.user.userid |
Se extrae de los registros CRON y de auditoría, y representa el ID de usuario. |
target_host |
target.hostname |
Se extrae de varios tipos de registros y representa el nombre de host de destino. |
target_host |
network.dns.questions.name |
Se usa en los registros de DNS para rellenar el nombre de la pregunta. |
target_ip |
target.ip |
Extraído de varios tipos de registros, que representa la dirección IP de destino. |
target_ip |
network.dhcp.ciaddr |
Se usa en los mensajes BOOTREQUEST para rellenar el campo ciaddr. |
target_ip |
network.dns.answers.data |
Se usa en los registros de DNS para rellenar los datos de respuesta. |
tgt_port |
target.port |
Extraído de los registros de syslog-ng, que representa el puerto de destino. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.