Recopila registros del interruptor Brocade
Este analizador extrae campos de los registros del interruptor Brocade con patrones de grok que coinciden con varios formatos de registro. Luego, asigna estos campos extraídos a los campos de la UDM, controla diferentes estructuras de registro y enriquece los datos con metadatos, como información del proveedor y del producto. El analizador también realiza transformaciones de datos, como convertir niveles de gravedad y controlar mensajes repetidos, antes de generar el resultado final de la UDM.
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 de administrador de la CLI al switch Brocade.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia.
Obtén el ID de cliente de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
- 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
- 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
- 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
- Accede a la máquina en la que está instalado BindPlane.
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_Switch raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Reinicia el agente de BindPlane para aplicar los cambios:
sudo systemctl restart bindplane
Configura la exportación de Syslog desde un switch Brocade
- Conéctate al switch Brocade con SSH o Telnet con las credenciales adecuadas.
Ejecuta el siguiente comando para especificar la dirección IP o el nombre de host y el puerto del servidor de syslog (Bindplane):
syslogadmin --set -ip <IP> -port <Port>
Por ejemplo:
syslogadmin --set -ip 10.10.10.10 -port 54525
Ejecuta el siguiente comando para mostrar los servidores de syslog configurados:
syslogadmin --show -ip
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
application |
additional.fields[].key : "application"additional.fields[].value.string_value : |
Es el valor extraído del campo application@1588 en el registro sin procesar cuando existe el campo KV_DATA. |
class |
additional.fields[].key : "class"additional.fields[].value.string_value : |
Es el valor extraído del campo class@1588 en el registro sin procesar cuando existe el campo KV_DATA. |
domain |
principal.administrative_domain |
Es el valor extraído del patrón Grok que coincide con el campo domain . |
Event |
additional.fields[].key : "event_category"additional.fields[].value.string_value : |
Es el valor extraído del campo arg0@1588 en el registro sin procesar cuando existe el campo KV_DATA. |
event_id |
metadata.product_log_id |
Es el valor extraído del patrón Grok que coincide con el campo event_id . |
event_type |
metadata.product_event_type |
Es el valor extraído del patrón Grok que coincide con el campo event_type . |
flags |
additional.fields[].key : "flags"additional.fields[].value.string_value : |
Es el valor extraído del patrón Grok que coincide con el campo flags . |
Info |
metadata.description |
Valor extraído del campo Info analizado con grok |
interface |
app_protocol_src |
Es el valor extraído del campo interface@1588 en el registro sin procesar cuando existe el campo KV_DATA. Se usa para derivar network.application_protocol . |
ip |
principal.ip |
Valor extraído del campo ip analizado con grok Se fusiona en principal.ip si no es igual a la IP extraída del campo Info . |
Info , IP Addr |
principal.ip |
Es el valor extraído del campo IP Addr dentro del campo Info , analizado con grok. |
log |
additional.fields[].key : "log"additional.fields[].value.string_value : |
Es el valor extraído del campo log@1588 en el registro sin procesar cuando existe el campo KV_DATA. |
msg |
metadata.description |
Valor extraído del campo msg analizado con grok |
msgid |
additional.fields[].key : "msgid"additional.fields[].value.string_value : |
Es el valor extraído del campo msgid@1588 en el registro sin procesar cuando existe el campo KV_DATA. |
prin_host |
principal.hostname principal.asset.hostname |
Es el valor extraído del patrón Grok que coincide con el campo prin_host . |
product_version |
metadata.product_version |
Es el valor extraído del patrón Grok que coincide con el campo product_version . |
repeat_count |
additional.fields[].key : "repeat_count"additional.fields[].value.string_value : |
Valor extraído del campo msg analizado con grok |
role , user_role |
principal.user.attribute.roles[].name |
Es el valor extraído del campo role@1588 o user_role . Si el valor es "admin", se reemplaza por "Administrador". |
sequence_number |
additional.fields[].key : "sequence_number"additional.fields[].value.string_value : |
Es el valor extraído del patrón Grok que coincide con el campo sequence_number . |
severity |
security_result.severity |
Valor extraído del campo severity analizado con grok Se asignan a los valores de gravedad de la UDM (INFORMATIONAL, ERROR, CRITICAL, MEDIUM). |
Status |
security_result.summary |
Es el valor extraído del campo Status . |
switch_name |
additional.fields[].key : "switch_name"additional.fields[].value.string_value : |
Es el valor extraído del patrón Grok que coincide con el campo switch_name . |
target_application |
target.application |
Es el valor extraído del patrón Grok que coincide con el campo target_application . |
time |
additional.fields[].key : "time"additional.fields[].value.string_value : |
Es el valor extraído del campo time dentro del campo kv_data3 . |
timestamp |
metadata.event_timestamp.seconds |
Es el valor extraído del campo timestamp , analizado con el filtro de fecha. |
user |
principal.user.userid principal.user.user_display_name |
Valor extraído del campo user o user@1588 , analizado con grok Se copió desde principal.hostname . Se copió desde principal.ip . Se copia de metadata.product_event_type o se establece en "STATUS_UPDATE" según las condiciones. Se copió del create_time.nanos del registro. Se determina según la lógica del analizador en función de los valores de has_principal , has_target , has_userid y event_type . Puede ser "SYSTEM_AUDIT_LOG_UNCATEGORIZED", "STATUS_UPDATE" o "GENERIC_EVENT". Se codifica en “BROCADE_SWITCH”. Está codificado de forma fija en "BROCADE". Se codifica en “BROCADE_SWITCH”. Se deriva del campo interface o se establece en "SSH" si el campo interface contiene "SSH". |
Cambios
2024-04-15
- Se agregó compatibilidad con registros específicos del cliente.
2023-12-01
- Sin embargo, el analizador se creó recientemente.