Recopila registros de la plataforma de servicios de fibra de ADVA

Se admite en los siguientes sistemas operativos:

En este documento, se explica cómo transferir registros de la plataforma de servicios de fibra (FSP) de ADVA a las Operaciones de seguridad de Google con Bindplane. El analizador extrae campos de los mensajes de syslog del conmutador y el router, y los convierte en pares clave-valor. Luego, asigna estos campos extraídos y sus valores a los campos correspondientes dentro del esquema del UDM de Chronicle, lo que enriquece los datos para el análisis de seguridad.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Un host de Windows 2012 SP2 o posterior, o Linux con systemd
  • Si se ejecuta 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 privilegiado a la consola de administración de dispositivos FSP de ADVA

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. A continuación, se muestran dos opciones de receptor que funcionan. Elige la que coincida con la forma en que tu dispositivo envía registros:

    • Opción A: Receptor de registros UDP (UDP simple)
    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: <CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'ADVA_FSP'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/adva-fsp:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • Opción B: Receptor de Syslog (recomendado para un encuadre estricto de Syslog)
    receivers:
      syslog:
        tcp:
          listen_address: "0.0.0.0:514"
        protocol: rfc5424   # or rfc3164 if your device uses BSD syslog
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: <CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'ADVA_FSP'
        raw_log_field: body
        ingestion_labels:
          source: 'adva-fsp'
          env: 'production'
    
    service:
      pipelines:
        logs/adva-fsp:
          receivers:
            - syslog
          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 reenvío de Syslog en ADVA FSP

  1. Accede a la Consola de administración de ADVA FSP.
  2. Ve a Nodo > General > Controles.
  3. En la sección Remote Event Recipients (SysLog), haz clic en Add.
  4. Proporciona los siguientes detalles de configuración:
    • Dirección IPv4/v6: Ingresa la dirección IP del agente de Bindplane.
    • Puerto: Ingresa el número de puerto del agente de Bindplane (por ejemplo, 514).
    • Protocol: Selecciona UDP o TCP, según la configuración real del agente de Bindplane.
    • Extensión de mensaje: Opcional: Haz clic en Agregar etiqueta de usuario para incluir identificadores adicionales en los mensajes.
  5. Haz clic en Guardar para activar la configuración.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
ACCESSORDER additional.fields.value.string_value El valor se toma del campo ACCESSORDER en el registro sin procesar.
DIRECCIÓN principal.ip El valor se toma del campo ADDRESS en el registro sin procesar y se analiza como una dirección IP.
ADMINSTATE additional.fields.value.string_value El valor se toma del campo ADMINSTATE en el registro sin procesar.
AISCLIENTMDLEVEL additional.fields.value.string_value El valor se toma del campo AISCLIENTMDLEVEL en el registro sin procesar.
AISGENENABLED additional.fields.value.string_value El valor se toma del campo AISGENENABLED en el registro sin procesar.
AISPRIORITY additional.fields.value.string_value El valor se toma del campo AISPRIORITY en el registro sin procesar.
AISTXPERIOD additional.fields.value.string_value El valor se toma del campo AISTXPERIOD en el registro sin procesar.
AISTRIGGERTYPES additional.fields.value.string_value El valor se toma del campo AISTRIGGERTYPES en el registro sin procesar.
BUFFERSIZE additional.fields.value.string_value El valor se toma del campo BUFFERSIZE en el registro sin procesar.
CCIENABLED additional.fields.value.string_value El valor se toma del campo CCIENABLED en el registro sin procesar.
CCMINTERFACESTATUSTLVCONTROL additional.fields.value.string_value El valor se toma del campo CCMINTERFACESTATUSTLVCONTROL en el registro sin procesar.
CCMLTMPRIORITY additional.fields.value.string_value El valor se toma del campo CCMLTMPRIORITY en el registro sin procesar.
CFMTAGETHERTYPE additional.fields.value.string_value El valor se toma del campo CFMTAGETHERTYPE en el registro sin procesar.
CIR additional.fields.value.string_value El valor se toma del campo CIR en el registro sin procesar.
COS additional.fields.value.string_value El valor se toma del campo COS en el registro sin procesar.
CT metadata.description El valor se toma del campo CT en el registro sin procesar.
DESTBMAC target.mac El valor se toma del campo DESTBMAC en el registro sin procesar y se analiza como una dirección MAC.
DHCPCIDENABLED additional.fields.value.string_value El valor se toma del campo DHCPCIDENABLED en el registro sin procesar.
DHCPENABLED additional.fields.value.string_value El valor se toma del campo DHCPENABLED en el registro sin procesar.
DHCPHOSTNAME network.dhcp.client_hostname El valor se toma del campo DHCPHOSTNAME en el registro sin procesar.
DHCPHOSTNAMEENABLED additional.fields.value.string_value El valor se toma del campo DHCPHOSTNAMEENABLED en el registro sin procesar.
DHCPHOSTNAMETYPE additional.fields.value.string_value El valor se toma del campo DHCPHOSTNAMETYPE en el registro sin procesar.
DHCPLOGSERVERENABLED additional.fields.value.string_value El valor se toma del campo DHCPLOGSERVERENABLED en el registro sin procesar.
DHCPNTPSERVERENABLED additional.fields.value.string_value El valor se toma del campo DHCPNTPSERVERENABLED en el registro sin procesar.
DHCPV6CIDENABLED additional.fields.value.string_value El valor se toma del campo DHCPV6CIDENABLED en el registro sin procesar.
DHCPV6ENABLED additional.fields.value.string_value El valor se toma del campo DHCPV6ENABLED en el registro sin procesar.
DHCPV6ROLE additional.fields.value.string_value El valor se toma del campo DHCPV6ROLE en el registro sin procesar.
DHCPVENDORINFOTYPE additional.fields.value.string_value El valor se toma del campo DHCPVENDORINFOTYPE en el registro sin procesar.
DIR additional.fields.value.string_value El valor se toma del campo DIR en el registro sin procesar.
DIRECCIÓN network.direction El valor se establece en "OUTBOUND" si el campo DIRECTION del registro sin procesar es "UP" (sin distinción entre mayúsculas y minúsculas), en "INBOUND" si es "DOWN" y se deja vacío en los demás casos.
ENCAPSULATIONTYPE additional.fields.value.string_value El valor se toma del campo ENCAPSULATIONTYPE en el registro sin procesar.
GUARANTEEDA2NBW additional.fields.value.string_value El valor se toma del campo GUARANTEEDA2NBW en el registro sin procesar.
HCOSMGMTENABLED additional.fields.value.string_value El valor se toma del campo HCOSMGMTENABLED en el registro sin procesar.
INT additional.fields.value.string_value El valor se toma del campo INT en el registro sin procesar.
IPMODE additional.fields.value.string_value El valor se toma del campo IPMODE en el registro sin procesar.
IPV6ADDR principal.ip El valor se toma del campo IPV6ADDR en el registro sin procesar y se analiza como una dirección IP.
IPV6ADDRPREFIXLENGTH additional.fields.value.string_value El valor se toma del campo IPV6ADDRPREFIXLENGTH en el registro sin procesar.
IPV6MTU additional.fields.value.string_value El valor se toma del campo IPV6MTU en el registro sin procesar.
ITAG additional.fields.value.string_value El valor se toma del campo ITAG en el registro sin procesar.
ITAGENABLED additional.fields.value.string_value El valor se toma del campo ITAGENABLED en el registro sin procesar.
LBMTXDESTTYPE additional.fields.value.string_value El valor se toma del campo LBMTXDESTTYPE en el registro sin procesar.
LBMTXNUMMSGS additional.fields.value.string_value El valor se toma del campo LBMTXNUMMSGS en el registro sin procesar.
LBMTXVLANDROPENABLE additional.fields.value.string_value El valor se toma del campo LBMTXVLANDROPENABLE en el registro sin procesar.
LBMTXVLANPRIORITY additional.fields.value.string_value El valor se toma del campo LBMTXVLANPRIORITY en el registro sin procesar.
LLRESPONDERENABLED additional.fields.value.string_value El valor se toma del campo LLRESPONDERENABLED en el registro sin procesar.
LLVIDLIST additional.fields.value.string_value El valor se toma del campo LLVIDLIST en el registro sin procesar.
LMDUALENDEDCOUNTALLPRIOS additional.fields.value.string_value El valor se toma del campo LMDUALENDEDCOUNTALLPRIOS en el registro sin procesar.
LMINPROFILEONLY additional.fields.value.string_value El valor se toma del campo LMINPROFILEONLY en el registro sin procesar.
LMRXCOUNTALLPRIOS additional.fields.value.string_value El valor se toma del campo LMRXCOUNTALLPRIOS en el registro sin procesar.
LMTXCOUNTALLPRIOS additional.fields.value.string_value El valor se toma del campo LMTXCOUNTALLPRIOS en el registro sin procesar.
UBICACIÓN additional.fields.value.string_value El valor se toma del campo LOC en el registro sin procesar.
LOCN additional.fields.value.string_value El valor se toma del campo LOCN en el registro sin procesar.
LOGINTIMEOUT additional.fields.value.string_value El valor se toma del campo LOGINTIMEOUT en el registro sin procesar.
LOOPBACKBLOCKINGENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKBLOCKINGENABLED en el registro sin procesar.
LOOPBACKCONFIG additional.fields.value.string_value El valor se toma del campo LOOPBACKCONFIG en el registro sin procesar.
LOOPBACKDESTMAC target.mac El valor se toma del campo LOOPBACKDESTMAC en el registro sin procesar y se analiza como una dirección MAC.
LOOPBACKDESTMACCONTROL additional.fields.value.string_value El valor se toma del campo LOOPBACKDESTMACCONTROL en el registro sin procesar.
LOOPBACKINNERVLAN1 additional.fields.value.string_value El valor se toma del campo LOOPBACKINNERVLAN1 en el registro sin procesar.
LOOPBACKINNERVLAN1ENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKINNERVLAN1ENABLED en el registro sin procesar.
LOOPBACKINNERVLAN2 additional.fields.value.string_value El valor se toma del campo LOOPBACKINNERVLAN2 en el registro sin procesar.
LOOPBACKINNERVLAN2ENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKINNERVLAN2ENABLED en el registro sin procesar.
LOOPBACKINNERVLAN3 additional.fields.value.string_value El valor se toma del campo LOOPBACKINNERVLAN3 en el registro sin procesar.
LOOPBACKINNERVLAN3ENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKINNERVLAN3ENABLED en el registro sin procesar.
LOOPBACKOUTERITAG1 additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERITAG1 en el registro sin procesar.
LOOPBACKOUTERITAG1ENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERITAG1ENABLED en el registro sin procesar.
LOOPBACKOUTERITAG2 additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERITAG2 en el registro sin procesar.
LOOPBACKOUTERITAG2ENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERITAG2ENABLED en el registro sin procesar.
LOOPBACKOUTERITAG3 additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERITAG3 en el registro sin procesar.
LOOPBACKOUTERITAG3ENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERITAG3ENABLED en el registro sin procesar.
LOOPBACKOUTERVLAN1 additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERVLAN1 en el registro sin procesar.
LOOPBACKOUTERVLAN1ENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERVLAN1ENABLED en el registro sin procesar.
LOOPBACKOUTERVLAN2 additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERVLAN2 en el registro sin procesar.
LOOPBACKOUTERVLAN2ENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERVLAN2ENABLED en el registro sin procesar.
LOOPBACKOUTERVLAN3 additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERVLAN3 en el registro sin procesar.
LOOPBACKOUTERVLAN3ENABLED additional.fields.value.string_value El valor se toma del campo LOOPBACKOUTERVLAN3ENABLED en el registro sin procesar.
LOOPBACKSOURCEMAC principal.mac El valor se toma del campo LOOPBACKSOURCEMAC en el registro sin procesar y se analiza como una dirección MAC.
LOOPBACKSWAPSADA additional.fields.value.string_value El valor se toma del campo LOOPBACKSWAPSADA en el registro sin procesar.
LOOPBACKTIMER additional.fields.value.string_value El valor se toma del campo LOOPBACKTIMER en el registro sin procesar.
LOWESTPRIODEFECT additional.fields.value.string_value El valor se toma del campo LOWESTPRIODEFECT en el registro sin procesar.
LTMTXDESTTYPE additional.fields.value.string_value El valor se toma del campo LTMTXDESTTYPE en el registro sin procesar.
LTMTXEGRESSID metadata.product_log_id El valor se toma del campo LTMTXEGRESSID en el registro sin procesar.
LTMTXFLAGS additional.fields.value.string_value El valor se toma del campo LTMTXFLAGS en el registro sin procesar.
LTMTXTTL additional.fields.value.string_value El valor se toma del campo LTMTXTTL en el registro sin procesar.
MT additional.fields.value.string_value El valor se toma del campo MT en el registro sin procesar.
MAXIMUMA2NBW additional.fields.value.string_value El valor se toma del campo MAXIMUMA2NBW en el registro sin procesar.
MVAL additional.fields.value.string_value El valor se toma del campo MVAL en el registro sin procesar.
NOMBRE additional.fields.value.string_value El valor se toma del campo NAME en el registro sin procesar.
NC additional.fields.value.string_value El valor se toma del campo NC en el registro sin procesar.
PORTEID additional.fields.value.string_value El valor se toma del campo PORTEID en el registro sin procesar.
PORTLLENABLED additional.fields.value.string_value El valor se toma del campo PORTLLENABLED en el registro sin procesar.
PRIMARYSERVER target.ip El valor se toma del campo PRIMARYSERVER en el registro sin procesar y se analiza como una dirección IP.
PRIMARYVID additional.fields.value.string_value El valor se toma del campo PRIMARYVID en el registro sin procesar.
QUEUEPROFILEID additional.fields.value.string_value El valor se toma del campo QUEUEPROFILEID en el registro sin procesar.
RXSHAPEREID additional.fields.value.string_value El valor se toma del campo RXSHAPEREID en el registro sin procesar.
SATRESPONDENABLED additional.fields.value.string_value El valor se toma del campo SATRESPONDENABLED en el registro sin procesar.
SE additional.fields.value.string_value El valor se toma del campo SE en el registro sin procesar.
SHAREDVIM additional.fields.value.string_value El valor se toma del campo SHAREDVIM en el registro sin procesar.
SVLANENABLED additional.fields.value.string_value El valor se toma del campo SVLANENABLED en el registro sin procesar.
SVLANID additional.fields.value.string_value El valor se toma del campo SVLANID en el registro sin procesar.
SYSLOCATION principal.location.country_or_region El valor se toma del campo SYSLOCATION en el registro sin procesar.
THVAL additional.fields.value.string_value El valor se toma del campo THVAL en el registro sin procesar.
TIPO additional.fields.value.string_value El valor se toma del campo TYPE en el registro sin procesar.
USERACCESSTYPE additional.fields.value.string_value El valor se toma del campo USERACCESSTYPE en el registro sin procesar.
USERAUTHKEY additional.fields.value.string_value El valor se toma del campo USERAUTHKEY en el registro sin procesar.
USERAUTHKEYLOCAL additional.fields.value.string_value El valor se toma del campo USERAUTHKEYLOCAL en el registro sin procesar.
USERAUTHPROTOCOL additional.fields.value.string_value El valor se toma del campo USERAUTHPROTOCOL en el registro sin procesar.
USERENGINEID additional.fields.value.string_value El valor se toma del campo USERENGINEID en el registro sin procesar.
USERKEYSLOCAL additional.fields.value.string_value El valor se toma del campo USERKEYSLOCAL en el registro sin procesar.
NOMBRE DE USUARIO principal.user.userid El valor se toma del campo USERNAME en el registro sin procesar.
USERPRIVKEY additional.fields.value.string_value El valor se toma del campo USERPRIVKEY en el registro sin procesar.
USERPRIVKEYLOCAL additional.fields.value.string_value El valor se toma del campo USERPRIVKEYLOCAL en el registro sin procesar.
USERPRIVPROTOCOL additional.fields.value.string_value El valor se toma del campo USERPRIVPROTOCOL en el registro sin procesar.
USERSECURITYLEVEL additional.fields.value.string_value El valor se toma del campo USERSECURITYLEVEL en el registro sin procesar.
USERSECURITYNAME principal.user.user_display_name El valor se toma del campo USERSECURITYNAME en el registro sin procesar.
aplicación principal.application El valor se toma del campo de aplicación que extrae el analizador de grok.
descripción security_result.description El valor se toma del campo de descripción que extrae el analizador de grok.
metadata.description El valor se establece en "Backup NTP Server Failed" si el campo CT del registro sin procesar es "Backup NTP Server Failed".
metadata.event_timestamp.seconds El valor se toma del campo de marca de tiempo que extrae el analizador de grok y se convierte en segundos de época.
metadata.event_type El valor se establece según la siguiente lógica:
- NETWORK_DHCP si network_dhcp_present es verdadero y principal_present o target_present es verdadero.
: NETWORK_CONNECTION si target_present y principal_present son verdaderos.
: USER_RESOURCE_ACCESS si user_present es verdadero.
: STATUS_UPDATE si principal_present es verdadero.
; de lo contrario, GENERIC_EVENT
metadata.product_log_id El valor se toma del campo LTMTXEGRESSID en el registro sin procesar.
metadata.product_name El valor se establece en "ADVA_FSP".
metadata.vendor_name El valor se establece en "ADVA_FSP".
network.application_protocol El valor se establece en "DHCP" si network_dhcp_present es verdadero y principal_present o target_present es verdadero.
principal.hostname El valor se toma del campo principal_hostname que extrae el analizador de grok, con los guiones bajos quitados.
principal.ip El valor se toma del campo IPADDR en el registro sin procesar y se analiza como una dirección IP.
timestamp.seconds El valor se toma del campo de marca de tiempo que extrae el analizador de grok y se convierte en segundos de época.

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