Recopila registros de DDI de BlueCat

Compatible con:

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

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recopilación.
  3. Descarga el archivo de autenticación de transferencia.

Obtén el ID de cliente de Google SecOps

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

Instala el agente de BindPlane

  1. 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
  2. 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
  3. 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

  1. Accede a la máquina en la que está instalado BindPlane.
  2. 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
    
  3. Reinicia el agente de BindPlane para aplicar los cambios:

    sudo systemctl restart bindplane
    

Configura Syslog en Bluecat DDI

  1. Accede a Bluecat Address Manager (BAM).
  2. En el menú configuración, selecciona una configuración.
  3. Selecciona la pestaña Servidores.
  4. En Servidores, haz clic en el nombre de un BDDS.
  5. Se debería abrir la pestaña Detalles del servidor.
  6. Haz clic en el menú nombre del servidor.
  7. Selecciona Configuración del servicio.
  8. Haz clic en Tipo de servicio > Syslog (el Administrador de direcciones consulta el servidor y muestra los valores actuales).
  9. 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).
  10. Haz clic en Agregar.
    • El servidor de syslog que acabas de agregar aparecerá en la lista.
  11. Haz clic en Actualizar.

Configura la configuración de Syslog en BlueCat DDI

  1. Accede al Administrador de direcciones de BlueCat.
  2. Ve a Configuración > Configuración del sistema > Registro.
  3. En Configuración de registro (Logging Settings), busca la sección Servidores de Syslog (Syslog Servers).
  4. Haz clic en Agregar servidor de Syslog.
  5. 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).
  6. 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.
  7. Opcional: Agrega una función Syslog personalizada para categorizar los registros (por ejemplo, local0 o local1).
  8. Guarde la configuración.

Aplica la configuración de Syslog a los dispositivos DDI

  1. Navega a Servidores > Administrar servidores.
  2. Selecciona los servidores DNS/DHCP en los que se debe habilitar el syslog.
  3. Haz clic en Editar servidor.
  4. 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.