Recoger registros de Brocade ServerIron

Disponible en:

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

Antes de empezar

  • Asegúrate de que tienes una instancia de Google Security Operations.
  • Asegúrate de que usas Windows 2016 o una versión posterior, o un host Linux con systemd.
  • Si se ejecuta a través de un proxy, asegúrate de que los puertos del cortafuegos estén abiertos.
  • Asegúrate de que tienes acceso con privilegios a la instancia de Brocade ServerIron.

Obtener el archivo de autenticación de ingestión de Google SecOps

  1. Inicia sesión en la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recogida.
  3. Descarga el archivo de autenticación de ingestión.

Obtener el ID de cliente de Google SecOps

  1. Inicia sesión en 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.

Instalar el agente de Bindplane

  1. Para instalar en 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 instalar 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 consultar otras opciones de instalación en esta guía de instalación.

Configurar el agente de Bindplane para ingerir Syslog y enviarlo a Google SecOps

  1. Accede al equipo en el 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
    

Configurar la exportación de Syslog desde Brocade ServerIron ADX

  1. Inicia sesión en el dispositivo ADX y entra en el 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 syslog, incluido el protocolo que quieras (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: define la instalación Syslog (de local0 a local7):

    logging facility local0
    
  5. Define el nivel mínimo de gravedad de los registros que se enviarán al servidor 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 rellenar el campo security_result.description. Se puede concatenar con otros campos en función del 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 "HTTP Port".
%{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 "Telnet Port".
%{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 mediante un patrón grok y se convierte en un objeto de marca de tiempo.
extensions.auth.type El valor es "MACHINE" si el campo proto no está vacío y el campo auth_action es "logout" o "login".
metadata.description El campo se rellena con el valor del campo "metadata_description" si no está vacío.
metadata.event_type El campo se rellena en función de los valores de otros campos mediante lógica condicional:
- STATUS_STARTUP: si target_port_status es "up".
- STATUS_SHUTDOWN: si target_port_status es "down".
- USER_LOGOUT: si el 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 se ha codificado como "BROCADE_SERVERIRON".
metadata.product_name El valor se ha codificado como "ServerIron".
metadata.vendor_name El valor se ha codificado como "Brocade".
security_result.action El valor se asigna a "BLOCK" si el campo desc contiene "fail" o si el campo auth_result contiene "fail" o "rejected".

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.