Recopila registros del conmutador Ubiquiti Unifi

Se admite en los siguientes sistemas operativos:

En este documento, se explica cómo transferir registros de conmutadores Ubiquiti Unifi a Google Security Operations con Bindplane. El analizador extrae campos de los mensajes de syslog con patrones de Grok, lo que convierte los datos de registro sin procesar en un formato estructurado que se ajusta al modelo de datos unificado (UDM). Maneja varios formatos de registro, extrae información clave, como marcas de tiempo, nombres de host, descripciones y detalles de la red, y enriquece los datos con contexto adicional antes de combinarlos en el evento final del UDM.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Un host de Windows 2016 o posterior, o Linux con systemd
  • Si ejecutas el agente detrás de un proxy, asegúrate de que los puertos de firewall estén abiertos según los requisitos del agente de BindPlane.
  • Acceso con privilegios a la IU de Ubiquiti Controller

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. 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 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

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 comando siguiente:

    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 administrador o sudo.
  2. Ejecuta el comando siguiente:

    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

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

  1. Accede al archivo de configuración:

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

    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: 'UBIQUITI_SWITCH'
        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 el conmutador Ubiquiti para enviar el registro del sistema del plano de control

  1. Accede a la IU de Unifi Controller.
  2. Abre Unifi Network.
  3. Ve a Configuración > Plano de control > pestaña Integraciones.
  4. Busca la sección Activity Logging (Syslog).
  5. Habilita la opción Servidor SIEM.
  6. Proporciona los siguientes detalles de configuración:
    • Haz clic en Editar categorías y agrega las categorías de registro necesarias.
    • Dirección del servidor: Ingresa la dirección IP del agente de BindPlane.
    • Puerto: Ingresa el número de puerto del agente de Bindplane (se requiere UDP).
  7. Haz clic en Aplicar cambios.

Configura el conmutador Ubiquiti para enviar el registro del sistema de CyberSecure

  1. Accede a la IU de Unifi Controller.
  2. Abre Unifi Network.
  3. Ve a Configuración > CyberSecure > pestaña Registro de tráfico.
  4. Busca la sección Activity Logging (Syslog).
  5. Habilita la opción Servidor SIEM.
  6. Proporciona los siguientes detalles de configuración:
    • Haz clic en Editar categorías y agrega las categorías de registro necesarias.
    • Dirección del servidor: Ingresa la dirección IP del agente de BindPlane.
    • Puerto: Ingresa el número de puerto del agente de Bindplane (se requiere UDP).
    • Inhabilita Registros de depuración.
  7. Haz clic en Aplicar cambios.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
anomalies security_result.detection_fields[].key: "anomalies"
security_result.detection_fields[].value: Valor de anomalies del registro
Se asigna directamente desde el campo anomalies en el registro sin procesar.
application observer.application Se asigna directamente desde el campo application en el registro sin procesar.
assoc_status security_result.detection_fields[].key: "assoc_status"
security_result.detection_fields[].value: Valor de assoc_status del registro
Se asigna directamente desde el campo assoc_status en el registro sin procesar.
asset_details observer.asset.product_object_id: Se extrajo con el patrón de grok %{GREEDYDATA:asset_id},%{GREEDYDATA:asset_version}
asset_software.version: Se extrajo con el patrón de grok %{GREEDYDATA:asset_id},%{GREEDYDATA:asset_version}
El campo asset_details se analiza con un patrón de grok para extraer asset_id y asset_version.
asset_id observer.asset.product_object_id Se asigna directamente desde el campo asset_id extraído de asset_details.
asset_version observer.asset.software.version Se asigna directamente desde el campo asset_version extraído de asset_details.
bssid principal.mac Se asigna directamente desde el campo bssid en el registro sin procesar.
description metadata.description Se asigna directamente desde el campo description en el registro sin procesar.
device metadata.product_name Se asigna directamente desde el campo device en el registro sin procesar. Si device no está presente, se usa el valor "UBIQUITI_SWITCH".
dns_resp_seen security_result.detection_fields[].key: "dns_resp_seen"
security_result.detection_fields[].value: Valor de dns_resp_seen del registro
Se asigna directamente desde el campo dns_resp_seen en el registro sin procesar.
DST target.ip Se asigna directamente desde el campo DST en el registro sin procesar.
DPT principal.port Se asigna directamente desde el campo DPT en el registro sin procesar después de convertirlo en un número entero.
event_type security_result.detection_fields[].key: "event_type"
security_result.detection_fields[].value: Valor de event_type del registro
Se asigna directamente desde el campo event_type en el registro sin procesar.
host principal.hostname Se asigna directamente desde el campo host en el registro sin procesar.
ID additional.fields[].key: "ID"
additional.fields[].value.string_value: Valor de ID del registro
Se asigna directamente desde el campo ID en el registro sin procesar.
IN additional.fields[].key: "IN"
additional.fields[].value.string_value: Valor de IN del registro
Se asigna directamente desde el campo IN en el registro sin procesar.
interface additional.fields[].key: "interface"
additional.fields[].value.string_value: Valor de interface del registro
Se asigna directamente desde el campo interface en el registro sin procesar.
LEN additional.fields[].key: "LEN"
additional.fields[].value.string_value: Valor de LEN del registro
Se asigna directamente desde el campo LEN en el registro sin procesar.
mac principal.mac Se asigna directamente desde el campo mac en el registro sin procesar.
metadata.event_type metadata.event_type Se deriva de la lógica del analizador. Se establece en "STATUS_SHUTDOWN" si state es "Down", "STATUS_STARTUP" si state es "Up", "STATUS_UPDATE" si kv_msg y DST están presentes o principal_present es verdadero, y "GENERIC_EVENT" en los demás casos.
metadata.log_type metadata.log_type: "UBIQUITI_SWITCH" Es el valor constante que establece el analizador.
metadata.vendor_name metadata.vendor_name: "UBIQUITI" Es el valor constante que establece el analizador.
principal_ip principal.ip Se asigna directamente desde el campo principal_ip en el registro sin procesar.
process_id observer.process.pid Se asigna directamente desde el campo process_id en el registro sin procesar.
product_event_type metadata.product_event_type Se asigna directamente desde el campo product_event_type en el registro sin procesar.
PROTO network.ip_protocol Se asigna directamente desde el campo PROTO en el registro sin procesar. Si PROTO es "ICMPv6", el valor se cambia a "ICMP".
query_1 target.administrative_domain Se asigna directamente desde el campo query_1 en el registro sin procesar.
query_server_1 target.ip Se asigna directamente desde el campo query_server_1 en el registro sin procesar.
radio security_result.detection_fields[].key: "radio"
security_result.detection_fields[].value: Valor de radio del registro
Se asigna directamente desde el campo radio en el registro sin procesar.
satisfaction_now security_result.detection_fields[].key: "satisfaction_now"
security_result.detection_fields[].value: Valor de satisfaction_now del registro
Se asigna directamente desde el campo satisfaction_now en el registro sin procesar.
source_port principal.port Se asigna directamente desde el campo source_port en el registro sin procesar después de convertirlo en un número entero.
SPT target.port Se asigna directamente desde el campo SPT en el registro sin procesar después de convertirlo en un número entero.
SRC principal.ip, principal.hostname Se asigna directamente desde el campo SRC en el registro sin procesar.
sta principal.mac Se asigna directamente desde el campo sta en el registro sin procesar.
state additional.fields[].key: "state"
additional.fields[].value.string_value: Valor de state del registro
Se asigna directamente desde el campo state en el registro sin procesar.
timestamp metadata.event_timestamp Se asigna directamente desde el campo timestamp en el registro sin procesar después de que el filtro de fecha lo analiza.
TTL additional.fields[].key: "TTL"
additional.fields[].value.string_value: Valor de TTL del registro
Se asigna directamente desde el campo TTL en el registro sin procesar.
vap metadata.ingestion_labels[].key: "Vap"
metadata.ingestion_labels[].value: Valor de vap del registro
Se asigna directamente desde el campo vap en el registro sin procesar.
version metadata.product_version Se asigna directamente desde el campo version en el registro sin procesar.

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