Recopila registros del conmutador Brocade
Este analizador extrae campos de los registros de conmutadores Brocade con patrones de Grok que coinciden con varios formatos de registro. Luego, asigna estos campos extraídos a los campos del UDM, controla diferentes estructuras de registros y enriquece los datos con metadatos, como información del proveedor y del producto. El analizador también realiza transformaciones de datos, como convertir los niveles de gravedad y controlar los mensajes repetidos, antes de generar el resultado final del 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 ejecutas la herramienta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
- Asegúrate de tener acceso de administrador a la CLI del conmutador Brocade.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a SIEM Settings > Collection Agents.
- 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 SIEM Settings > Profile.
- 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 en 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 en 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 que ingiera Syslog y lo envíe 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 conmutador Brocade
- Conéctate al conmutador 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 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 de 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 de Grok que coincide con el campo event_id . |
event_type |
metadata.product_event_type |
Es el valor extraído del patrón de 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 de Grok que coincide con el campo flags . |
Info |
metadata.description |
Es el 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 |
Es el valor extraído del campo ip , analizado con grok. Se combina en principal.ip si no es la misma que 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 |
Es el 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 de Grok que coincide con el campo prin_host . |
product_version |
metadata.product_version |
Es el valor extraído del patrón de Grok que coincide con el campo product_version . |
repeat_count |
additional.fields[].key : "repeat_count"additional.fields[].value.string_value : |
Es el 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 "Admin". |
sequence_number |
additional.fields[].key : "sequence_number"additional.fields[].value.string_value : |
Es el valor extraído del patrón de Grok que coincide con el campo sequence_number . |
severity |
security_result.severity |
Es el valor extraído del campo severity , analizado con grok. Se asigna a los valores de gravedad del 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 de Grok que coincide con el campo switch_name . |
target_application |
target.application |
Es el valor extraído del patrón de 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 |
Es el 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 como "BROCADE_SWITCH". Se codifica de forma rígida como "BROCADE". Se codifica como "BROCADE_SWITCH". Se deriva del campo interface o se establece en "SSH" si el campo interface contiene "SSH". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.