Recolha registos do comutador Brocade

Compatível com:

Este analisador extrai campos dos registos do comutador Brocade através de padrões grok que correspondem a vários formatos de registos. Em seguida, mapeia estes campos extraídos para campos UDM, processando diferentes estruturas de registos e enriquecendo os dados com metadados, como informações do fornecedor e do produto. O analisador também realiza transformações de dados, como a conversão de níveis de gravidade e o processamento de mensagens repetidas, antes de gerar o resultado final do UDM.

Antes de começar

  • Certifique-se de que tem uma instância do Google Security Operations.
  • Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com systemd.
  • Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
  • Certifique-se de que tem acesso de administrador da CLI ao comutador Brocade.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale 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. Pode encontrar opções de instalação adicionais neste guia de instalação.

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda à máquina onde o Bindplane está instalado.
  2. Edite o ficheiro 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 alterações:

    sudo systemctl restart bindplane
    

Configure a exportação de Syslog a partir de um comutador Brocade

  1. Ligue-se ao comutador Brocade através de SSH ou Telnet com as credenciais adequadas.
  2. Execute o seguinte comando para especificar o endereço IP ou o nome de anfitrião e a Porta do servidor syslog (Bindplane):

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

    Por exemplo:

    syslogadmin --set -ip 10.10.10.10 -port 54525
    
  3. Execute o seguinte comando para apresentar os servidores syslog configurados:

    syslogadmin --show -ip
    

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
application additional.fields[].key: "application"
additional.fields[].value.string_value:
Valor extraído do campo application@1588 no registo não processado quando o campo KV_DATA existe.
class additional.fields[].key: "class"
additional.fields[].value.string_value:
Valor extraído do campo class@1588 no registo não processado 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 registo não processado 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 através do grok.
interface app_protocol_src Valor extraído do campo interface@1588 no registo não processado quando o campo KV_DATA existe. Usado para derivar network.application_protocol.
ip principal.ip Valor extraído do campo ip, analisado através do grok. É unida em principal.ip se não for igual ao IP extraído do campo Info.
Info, IP Addr principal.ip Valor extraído do campo IP Addr no campo Info, analisado através do grok.
log additional.fields[].key: "log"
additional.fields[].value.string_value:
Valor extraído do campo log@1588 no registo não processado quando o campo KV_DATA existe.
msg metadata.description Valor extraído do campo msg, analisado através do grok.
msgid additional.fields[].key: "msgid"
additional.fields[].value.string_value:
Valor extraído do campo msgid@1588 no registo não processado 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 através do grok.
role, user_role principal.user.attribute.roles[].name Valor extraído do campo role@1588 ou user_role. Se o valor for "admin", é substituído por "Admin".
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 através do grok. Mapeado para valores de gravidade da 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 através do filtro de data.
user principal.user.userid
principal.user.user_display_name
Valor extraído do campo user ou user@1588, analisado através do 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 do create_time.nanos do registo. 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". Codificado de forma rígida para "BROCADE_SWITCH". Codificado de forma rígida como "BROCADE". Codificado de forma rígida para "BROCADE_SWITCH". Derivado do campo interface ou definido como "SSH" se o campo interface contiver "SSH".

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.