Recopila registros de Brocade ServerIron

Compatible con:

Este analizador extrae campos de los mensajes de syslog de Brocade ServerIron mediante la coincidencia de expresiones regulares y los asigna al modelo de datos unificado (UDM). Controla varios formatos de registro, como el estado de la red, la autenticación del usuario y los eventos de seguridad. El analizador realiza conversiones de tipos de datos y enriquecimiento cuando es necesario.

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 la instancia de Brocade ServerIron.

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: Brocade_ServerIron
            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 la exportación de Syslog desde el ADX de Brocade ServerIron

  1. Accede al dispositivo ADX y entra al modo de configuración global:

    enable
    configure terminal
    
  2. Habilita el registro de Syslog:

    logging on
    
  3. Especifica la dirección IP o el nombre de host y el puerto del servidor de syslog, incluido el protocolo deseado (Bindplane):

    logging host <syslog-server-ip> [udp | tcp] port <port-number>
    

    Ejemplo de TCP en el puerto 54525:

      logging host 10.10.10.10 tcp port 54525
    
  4. Opcional: Establece el servicio de Syslog (de local0 a local7):

    logging facility local0
    
  5. Define el nivel de gravedad mínimo de los registros que se enviarán al servidor de syslog:

    logging trap <severity-level>
    
  6. Guarda la configuración:

    write memory
    

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
%{GREEDYDATA} metadata.description El campo %{GREEDYDATA} se asigna a metadata.description cuando coincide con el patrón "-- %{GREEDYDATA} --".
%{GREEDYDATA:auth_result} security_result.description El campo %{GREEDYDATA:auth_result} se concatena con el campo %{GREEDYDATA:desc} para formar security_result.description cuando %{GREEDYDATA:desc} está presente.
%{GREEDYDATA:desc} security_result.description El campo %{GREEDYDATA:desc} se usa para propagar el campo security_result.description. Se puede concatenar con otros campos según el formato de registro sin procesar.
%{GREEDYDATA:login_to} security_result.description El campo %{GREEDYDATA:login_to} se concatena con el campo %{GREEDYDATA:desc} para formar security_result.description cuando %{GREEDYDATA:desc} está presente.
%{GREEDYDATA:user} target.user.userid El campo %{GREEDYDATA:user} se asigna a target.user.userid.
%{HOST:principal_host} principal.hostname El campo %{HOST:principal_host} se asigna a principal.hostname.
%{HOST:target_host} target.hostname El campo %{HOST:target_host} se asigna a target.hostname.
%{INT:http_port} additional.fields.value.string_value El campo %{INT:http_port} se asigna a additional.fields.value.string_value con la clave "Puerto HTTP".
%{INT:target_port} target.port El campo %{INT:target_port} se asigna a target.port y se convierte en un número entero.
%{INT:telnet_port} additional.fields.value.string_value El campo %{INT:telnet_port} se asigna a additional.fields.value.string_value con la clave "Puerto Telnet".
%{INT:tftp_port} additional.fields.value.string_value El campo %{INT:tftp_port} se asigna a additional.fields.value.string_value con la clave "TFTP Port".
%{IP:principal_ip} principal.ip El campo %{IP:principal_ip} se asigna a principal.ip.
%{IP:target_ip} target.ip El campo %{IP:target_ip} se asigna a target.ip.
%{IPV4:principal_ip} principal.ip El campo %{IPV4:principal_ip} se asigna a principal.ip.
%{IPV4:target_ip} target.ip El campo %{IPV4:target_ip} se asigna a target.ip.
%{MAC:principal_mac} principal.mac El campo %{MAC:principal_mac} se asigna a principal.mac después de convertirlo al formato [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}.
%{USERNAME:target_host} target.hostname El campo %{USERNAME:target_host} se asigna a target.hostname.
%{USERNAME:user} target.user.userid El campo %{USERNAME:user} se asigna a target.user.userid.
%{WORD:auth_result} security_result.description El campo %{WORD:auth_result} se concatena con el campo %{GREEDYDATA:desc} para formar security_result.description cuando %{GREEDYDATA:desc} está presente.
%{WORD:proto} network.application_protocol El campo %{WORD:proto} se asigna a network.application_protocol cuando su valor es "SSH".
timestamp metadata.event_timestamp El campo de marca de tiempo se analiza a partir de los datos de registro sin procesar con un patrón de Grok y se convierte en un objeto de marca de tiempo.
extensions.auth.type El valor se establece en "MACHINE" si el campo proto no está vacío y el campo auth_action es "logout" o "login".
metadata.description El campo se propaga con el valor del campo "metadata_description" si no está vacío.
metadata.event_type El campo se propaga en función de los valores de otros campos con lógica condicional:
: STATUS_STARTUP: si target_port_status es "up".
: STATUS_SHUTDOWN: Si target_port_status es "down".
: USER_LOGOUT: Si proto no está vacío y auth_action es "logout".
: USER_LOGIN: Si proto no está vacío y auth_action es "login".
: STATUS_UPDATE: Si metadata_description coincide con "state changed".
: GENERIC_EVENT si no se cumple ninguna de las condiciones anteriores.
metadata.log_type El valor está codificado en “BROCADE_SERVERIRON”.
metadata.product_name El valor está codificado en "ServerIron".
metadata.vendor_name El valor está codificado como “Brocade”.
security_result.action El valor se establece en "BLOCK" si el campo desc contiene "fail" o si el campo auth_result contiene "fail" o "rejected".

Cambios

2022-01-13

  • Se agregó un nuevo analizador.