Coletar registros de chaves Brocade

Compatível com:

Esse analisador extrai campos dos registros de chaves Brocade usando padrões grok que correspondem a vários formatos de registro. Em seguida, ele mapeia esses campos extraídos para os campos da UDM, processando diferentes estruturas de registro e enriquecendo os dados com metadados, como informações do fornecedor e do produto. O analisador também realiza transformações de dados, como converter níveis de gravidade e processar mensagens repetidas, antes de gerar a saída final do UDM.

Antes de começar

  • Verifique se você tem uma instância do Google Security Operations.
  • Verifique se você está usando o Windows 2016 ou uma versão mais recente ou um host Linux com systemd.
  • Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
  • Verifique se você tem acesso de administrador da CLI ao switch Brocade.

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Faça o download do arquivo de autenticação de transferência.

Receber o ID de cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do BindPlane

  1. Para a instalação do Windows, execute o seguinte script:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Para a instalação do Linux, execute o seguinte script:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. Outras opções de instalação podem ser encontradas neste guia de instalação.

Configurar o agente BindPlane para ingerir o Syslog e enviar ao Google SecOps

  1. Acesse a máquina em que o BindPlane está instalado.
  2. Edite o arquivo config.yaml da seguinte forma:

    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
    
  3. Reinicie o agente do BindPlane para aplicar as mudanças:

    sudo systemctl restart bindplane
    

Configurar a exportação de syslog em um switch Brocade

  1. Conecte-se ao switch Brocade usando SSH ou Telnet com as credenciais adequadas.
  2. Execute o comando a seguir para especificar o endereço IP ou o nome do host e a porta do servidor syslog (Bindplane):

    syslogadmin --set -ip <IP> -port <Port>
    

    Exemplo:

    syslogadmin --set -ip 10.10.10.10 -port 54525
    
  3. Execute o comando a seguir para mostrar os servidores syslog configurados:

    syslogadmin --show -ip
    

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
application additional.fields[].key: "application"
additional.fields[].value.string_value:
Valor extraído do campo application@1588 no registro bruto quando o campo KV_DATA existe.
class additional.fields[].key: "class"
additional.fields[].value.string_value:
Valor extraído do campo class@1588 no registro bruto quando o campo KV_DATA existe.
domain principal.administrative_domain Valor extraído do padrão grok que corresponde ao campo domain.
Event additional.fields[].key: "event_category"
additional.fields[].value.string_value:
Valor extraído do campo arg0@1588 no registro bruto quando o campo KV_DATA existe.
event_id metadata.product_log_id Valor extraído do padrão grok que corresponde ao campo event_id.
event_type metadata.product_event_type Valor extraído do padrão grok que corresponde ao campo event_type.
flags additional.fields[].key: "flags"
additional.fields[].value.string_value:
Valor extraído do padrão grok que corresponde ao campo flags.
Info metadata.description Valor extraído do campo Info, analisado usando grok.
interface app_protocol_src Valor extraído do campo interface@1588 no registro bruto quando o campo KV_DATA existe. Usado para extrair network.application_protocol.
ip principal.ip Valor extraído do campo ip, analisado usando grok. Mesclado em principal.ip se não for o mesmo que o IP extraído do campo Info.
Info, IP Addr principal.ip Valor extraído do campo IP Addr no campo Info, analisado usando grok.
log additional.fields[].key: "log"
additional.fields[].value.string_value:
Valor extraído do campo log@1588 no registro bruto quando o campo KV_DATA existe.
msg metadata.description Valor extraído do campo msg, analisado usando grok.
msgid additional.fields[].key: "msgid"
additional.fields[].value.string_value:
Valor extraído do campo msgid@1588 no registro bruto quando o campo KV_DATA existe.
prin_host principal.hostname
principal.asset.hostname
Valor extraído do padrão grok que corresponde ao campo prin_host.
product_version metadata.product_version Valor extraído do padrão grok que corresponde ao campo product_version.
repeat_count additional.fields[].key: "repeat_count"
additional.fields[].value.string_value:
Valor extraído do campo msg, analisado usando grok.
role, user_role principal.user.attribute.roles[].name Valor extraído do campo role@1588 ou user_role. Se o valor for "admin", ele será substituído por "Administrador".
sequence_number additional.fields[].key: "sequence_number"
additional.fields[].value.string_value:
Valor extraído do padrão grok que corresponde ao campo sequence_number.
severity security_result.severity Valor extraído do campo severity, analisado usando grok. Mapeado para valores de gravidade do UDM (INFORMATIONAL, ERROR, CRITICAL, MEDIUM).
Status security_result.summary Valor extraído do campo Status.
switch_name additional.fields[].key: "switch_name"
additional.fields[].value.string_value:
Valor extraído do padrão grok que corresponde ao campo switch_name.
target_application target.application Valor extraído do padrão grok que corresponde ao campo target_application.
time additional.fields[].key: "time"
additional.fields[].value.string_value:
Valor extraído do campo time no campo kv_data3.
timestamp metadata.event_timestamp.seconds Valor extraído do campo timestamp, analisado usando o filtro de data.
user principal.user.userid
principal.user.user_display_name
Valor extraído do campo user ou user@1588, analisado usando grok. Copiado de principal.hostname. Copiado de principal.ip. Copiado de metadata.product_event_type ou definido como "STATUS_UPDATE" com base nas condições. Copiado de create_time.nanos do registro. Determinado pela lógica do analisador com base nos valores de has_principal, has_target, has_userid e event_type. Pode ser "SYSTEM_AUDIT_LOG_UNCATEGORIZED", "STATUS_UPDATE" ou "GENERIC_EVENT". Fixado em "BROCADE_SWITCH". Fixado em "BROCADE". Fixado em "BROCADE_SWITCH". Derivado do campo interface ou definido como "SSH" se o campo interface contém "SSH".

Alterações

2024-04-15

  • Adição de suporte a registros específicos do cliente.

2023-12-01

  • Parser recém-criado.