Recoger registros de un switch Brocade
Este analizador extrae campos de los registros de switches Brocade mediante patrones grok que coinciden con varios formatos de registro. A continuación, asigna estos campos extraídos a campos de UDM, gestiona 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 gestionar mensajes repetidos, antes de generar el resultado final de UDM.
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 de administrador a la CLI del switch Brocade.
Obtener el archivo de autenticación de ingestión de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recogida.
- Descarga el archivo de autenticación de ingestión.
Obtener el ID de cliente de Google SecOps
- Inicia sesión en 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.
Instalar el agente de Bindplane
- 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
- 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
- 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
- Accede al equipo en el 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
Configurar la exportación de Syslog desde un switch Brocade
- Conéctate al switch Brocade mediante 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 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 : |
Valor extraído del campo application@1588 del registro sin procesar cuando existe el campo KV_DATA. |
class |
additional.fields[].key : "class"additional.fields[].value.string_value : |
Valor extraído del campo class@1588 del registro sin procesar cuando existe el campo KV_DATA. |
domain |
principal.administrative_domain |
Valor extraído del patrón grok que coincide con el campo domain . |
Event |
additional.fields[].key : "event_category"additional.fields[].value.string_value : |
Valor extraído del campo arg0@1588 del registro sin procesar cuando existe el campo KV_DATA. |
event_id |
metadata.product_log_id |
Valor extraído del patrón grok que coincide con el campo event_id . |
event_type |
metadata.product_event_type |
Valor extraído del patrón grok que coincide con el campo event_type . |
flags |
additional.fields[].key : "flags"additional.fields[].value.string_value : |
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 |
Valor extraído del campo interface@1588 del 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 combina con principal.ip si no es la misma que la IP extraída del campo Info . |
Info , IP Addr |
principal.ip |
Valor extraído del campo IP Addr del campo Info , analizado con grok. |
log |
additional.fields[].key : "log"additional.fields[].value.string_value : |
Valor extraído del campo log@1588 del 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 : |
Valor extraído del campo msgid@1588 del registro sin procesar cuando existe el campo KV_DATA. |
prin_host |
principal.hostname principal.asset.hostname |
Valor extraído del patrón grok que coincide con el campo prin_host . |
product_version |
metadata.product_version |
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 |
Valor extraído del campo role@1588 o user_role . Si el valor es "admin", se sustituye por "Admin". |
sequence_number |
additional.fields[].key : "sequence_number"additional.fields[].value.string_value : |
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 asigna a los valores de gravedad de UDM (INFORMATIONAL, ERROR, CRITICAL y MEDIUM). |
Status |
security_result.summary |
Valor extraído del campo Status . |
switch_name |
additional.fields[].key : "switch_name"additional.fields[].value.string_value : |
Valor extraído del patrón grok que coincide con el campo switch_name . |
target_application |
target.application |
Valor extraído del patrón grok que coincide con el campo target_application . |
time |
additional.fields[].key : "time"additional.fields[].value.string_value : |
Valor extraído del campo time del campo kv_data3 . |
timestamp |
metadata.event_timestamp.seconds |
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. Copiado de principal.hostname . Copiado de principal.ip . Copiado de metadata.product_event_type o definido como "STATUS_UPDATE" en función de las condiciones. Copiado del create_time.nanos del registro. Determinado por 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". Codificado como "BROCADE_SWITCH". Codificado como "BROCADE". Codificado como "BROCADE_SWITCH". Se deriva del campo interface o se define como "SSH" si el campo interface contiene "SSH". |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.