Recopila registros de DDI de BlueCat
Este analizador controla los mensajes syslog con formato LEEF y no LEEF de Bluecat DDI (DNS, DHCP, IPAM). Extrae campos de varios tipos de registros (por ejemplo, named, dhcpd, audit y CRON) con patrones de grok y lógica condicional, los asigna a la UDM según el tipo de registro y propaga los campos DNS, DHCP o relacionados con el usuario según corresponda.
Antes de comenzar
- Asegúrate de tener una instancia de Google Security Operations.
- Asegúrate de usar Windows 2016 o una versión posterior, o un host de Linux con systemd.
- Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
- Asegúrate de tener acceso con privilegios a Bluecat.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia.
Obtén el ID de cliente de Google SecOps
- Accede a 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.
Instala el agente de BindPlane
- Para la instalación de Windows, ejecuta la siguiente secuencia de comandos:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Para la instalación de 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 encontrar opciones de instalación adicionales en esta guía de instalación.
Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps
- Accede a la máquina en la 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
Configura Syslog en Bluecat DDI
- Accede a 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.
- Se debería abrir la pestaña Detalles del servidor.
- Haz clic en el menú nombre del servidor.
- Selecciona Configuración del servicio.
- Haz clic en Tipo de servicio > Syslog (el Administrador de direcciones consulta el servidor y muestra los valores actuales).
- En General, establece los siguientes valores:
- Servidor de Syslog: Es la dirección IP de tu servidor de Syslog (Bindplane).
- Puerto Syslog: Es el puerto de tu servidor Syslog (Bindplane).
- Syslog Transport: Selecciona TCP o UDP (según la configuración de Bindplane).
- Haz clic en Agregar.
- El servidor de syslog que acabas de agregar aparecerá en la lista.
- Haz clic en Actualizar.
Configura la configuración de Syslog en BlueCat DDI
- Accede al Administrador de direcciones de BlueCat.
- Ve a Configuración > Configuración del sistema > Registro.
- En Configuración de registro (Logging Settings), busca la sección Servidores de Syslog (Syslog Servers).
- Haz clic en Agregar servidor de Syslog.
- Proporciona los valores requeridos:
- Nombre del servidor: Es un nombre único para el servidor de syslog (por ejemplo, BindplaneServer).
- Dirección IP: Es la dirección IP o el nombre de host del servidor syslog.
- Protocolo: Selecciona TCP, UDP (predeterminado) o TLS (según la configuración de syslog).
- Puerto: Especifica el puerto para la comunicación de syslog (predeterminado: 514 para UDP/TCP, 6514 para TLS).
- Configura el nivel de registro. Elige el nivel adecuado según tus necesidades. Estas son algunas de las opciones disponibles:
- Urgente: Problemas críticos que requieren atención inmediata
- Alerta: Son 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
- Info: Mensajes informativos
- Debug: Muestra información de depuración detallada.
- Opcional: Agrega una función Syslog personalizada para categorizar los registros (por ejemplo, local0 o local1).
- Guarde la configuración.
Aplica la configuración de Syslog a los dispositivos DDI
- Navega a Servidores > Administrar servidores.
- Selecciona los servidores DNS/DHCP en los que se debe habilitar el syslog.
- Haz clic en Editar servidor.
- En la sección Registro, haz lo siguiente:
- Selecciona el servidor de syslog que configuraste antes.
- Habilita el registro de servicios específicos (por ejemplo, consultas de DNS o asignaciones de DHCP).
- Guarda los cambios.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
client_ip |
network.dhcp.ciaddr |
Se extrae del mensaje DHCPREQUEST. Solo se completa para los mensajes DHCPREQUEST. |
client_mac |
principal.mac |
Se extraen de los mensajes de DHCP (DHCPDISCOVER, DHCPREQUEST, DHCPRELEASE). |
client_mac |
target.mac |
Se extraen de los mensajes de DHCP (DHCPOFFER, DHCPNAK). |
client_mac |
network.dhcp.chaddr |
Se extraen de los mensajes de DHCP (DHCPREQUEST, DHCPOFFER, DHCPACK, DHCPNAK, DHCPRELEASE). |
cmd |
target.process.command_line |
Se extraen de los registros de CRON. Se quitan los signos & y los espacios. |
description |
metadata.description |
Se extraen de varios tipos de registros y proporcionan contexto adicional. |
description |
metadata.description |
Se extraen de los registros de syslog-ng y proporcionan contexto adicional. |
file_path |
target.file.full_path |
Se extraen de varios tipos de registros y representan la ruta de acceso completa a un archivo. |
file_path |
target.process.file.full_path |
Se extrae de los registros de agetty y representa la ruta de acceso completa a un archivo relacionado con un proceso. |
inner_message |
metadata.description |
Se usa como descripción de GENERIC_EVENT cuando no se define el tipo de operación y para los registros de MEM-MON. |
metadata.event_type |
El analizador lo determina en función del tipo y el contenido del registro. Entre los valores posibles, se incluyen los siguientes: NETWORK_DNS, NETWORK_DHCP, USER_LOGIN, USER_LOGOUT, USER_UNCATEGORIZED, GENERIC_EVENT, STATUS_UPDATE, NETWORK_CONNECTION. Siempre "BLUECAT_DDI". | |
metadata.vendor_name |
Siempre "Bluecat Networks". | |
metadata.product_name |
Siempre “Bluecat DDI”. | |
metadata.event_timestamp |
Se copia de la marca de tiempo analizada de la entrada de registro. | |
network.protocol |
Establece “DNS” para los registros de DNS y “DHCP” para los registros de DHCP. | |
network.dns.answers |
Un array que contiene registros de respuestas. El campo data dentro de answers se propaga con target_ip si está presente. |
|
network.dns.questions |
Es un array que contiene registros de preguntas. El campo name se propaga con target_host , el campo type se deriva de los campos query_type o question_type , y el campo class se deriva del campo qclass . |
|
network.dns.recursive |
Se establece en "verdadero" si rec_flag es "+". |
|
qclass |
network.dns.questions.class |
Se extraen de los registros de consulta de DNS y se asignan a un valor entero con el archivo dns_query_class_mapping.include . |
query_type |
network.dns.questions.type |
Se extraen de los registros de consulta de DNS y se asignan a un valor entero con el archivo dhcp_qtype_mapping.include . |
relay_ip |
intermediary.ip |
Se extraen de los registros de DNS y DHCP y representan 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 |
Se extrae de los registros de DHCP y representa el nombre de host del servidor. |
server_host |
principal.hostname |
Se extraen de systemd, agetty y algunos registros de auditoría, y representan el nombre de host del principal. |
server_ip |
target.ip |
Se extraen de registros con formato LEEF que representan 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 propagar el campo yiaddr. |
src_port |
principal.port |
Se extrae de varios tipos de registros que representan el puerto de origen. |
src_user |
principal.user.userid |
Se extrae de CRON y los registros de auditoría, y representa el ID de usuario. |
target_host |
target.hostname |
Se extrae de varios tipos de registros que representan el nombre de host de destino. |
target_host |
network.dns.questions.name |
Se usa en los registros de DNS para propagar el nombre de la pregunta. |
target_ip |
target.ip |
Se extrae de varios tipos de registros y representa la dirección IP de destino. |
target_ip |
network.dhcp.ciaddr |
Se usa en los mensajes BOOTREQUEST para propagar el campo ciaddr. |
target_ip |
network.dns.answers.data |
Se usa en los registros de DNS para propagar los datos de respuesta. |
tgt_port |
target.port |
Se extrae de los registros de syslog-ng, que representan el puerto de destino. |
Cambios
2022-11-08
- Se agregó grok para los registros recién transferidos para log_type: “agetty”, “syslog-ng” y “systemd”.
- Se agregó el patrón grok para log_type: “named”, “systemd”, “CRON”, “agetty”, “syslog-ng” y sus respectivas asignaciones para los campos en el log_type mencionado anteriormente.
2022-09-01
- Se modificó
event_type
de "GENERIC_EVENT" a "USER_UNCATEGORIZED" para reducir el porcentaje genérico.
2022-08-16
- Se agregó la asignación de UDM
metadata.vendor_name
a "Bluecat Networks"metadata.product_name
a "Bluecat DDI"
2022-05-05
- Se agregaron verificaciones para el campo
query_type
.