Recolha registos do Brocade ServerIron

Compatível com:

Este analisador extrai campos de mensagens syslog do Brocade ServerIron através da correspondência de expressões regulares e mapeia-os para o modelo de dados unificado (UDM). Processa vários formatos de registo, incluindo o estado da rede, a autenticação do utilizador e os eventos de segurança. O analisador sintático realiza conversões de tipos de dados e o enriquecimento quando necessário.

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 privilegiado à instância do Brocade ServerIron.

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_ServerIron
            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 do Brocade ServerIron ADX

  1. Inicie sessão no dispositivo ADX e introduza o modo de configuração global:

    enable
    configure terminal
    
  2. Ativar registo Syslog:

    logging on
    
  3. Especifique o endereço IP ou o nome de anfitrião e a porta do servidor syslog, incluindo o protocolo pretendido (Bindplane):

    logging host <syslog-server-ip> [udp | tcp] port <port-number>
    

    Exemplo para TCP na porta 54525:

      logging host 10.10.10.10 tcp port 54525
    
  4. Opcional: defina a funcionalidade Syslog (local0 a local7):

    logging facility local0
    
  5. Defina o nível de gravidade mínimo dos registos a enviar para o servidor syslog:

    logging trap <severity-level>
    
  6. Guarde a configuração:

    write memory
    

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
%{GREEDYDATA} metadata.description O campo %{GREEDYDATA} é mapeado para metadata.description quando corresponde ao padrão "-- %{GREEDYDATA} --".
%{GREEDYDATA:auth_result} security_result.description O campo %{GREEDYDATA:auth_result} é concatenado com o campo %{GREEDYDATA:desc} para formar security_result.description quando %{GREEDYDATA:desc} está presente.
%{GREEDYDATA:desc} security_result.description O campo %{GREEDYDATA:desc} é usado para preencher o campo security_result.description. Pode ser concatenado com outros campos, consoante o formato do registo não processado.
%{GREEDYDATA:login_to} security_result.description O campo %{GREEDYDATA:login_to} é concatenado com o campo %{GREEDYDATA:desc} para formar security_result.description quando %{GREEDYDATA:desc} está presente.
%{GREEDYDATA:user} target.user.userid O campo %{GREEDYDATA:user} está mapeado para target.user.userid.
%{HOST:principal_host} principal.hostname O campo %{HOST:principal_host} está mapeado para principal.hostname.
%{HOST:target_host} target.hostname O campo %{HOST:target_host} está mapeado para target.hostname.
%{INT:http_port} additional.fields.value.string_value O campo %{INT:http_port} é mapeado para additional.fields.value.string_value com a chave "HTTP Port".
%{INT:target_port} target.port O campo %{INT:target_port} é mapeado para target.port e convertido num número inteiro.
%{INT:telnet_port} additional.fields.value.string_value O campo %{INT:telnet_port} está mapeado para additional.fields.value.string_value com a chave "Telnet Port".
%{INT:tftp_port} additional.fields.value.string_value O campo %{INT:tftp_port} é mapeado para additional.fields.value.string_value com a chave "TFTP Port".
%{IP:principal_ip} principal.ip O campo %{IP:principal_ip} está mapeado para principal.ip.
%{IP:target_ip} target.ip O campo %{IP:target_ip} está mapeado para target.ip.
%{IPV4:principal_ip} principal.ip O campo %{IPV4:principal_ip} está mapeado para principal.ip.
%{IPV4:target_ip} target.ip O campo %{IPV4:target_ip} está mapeado para target.ip.
%{MAC:principal_mac} principal.mac O campo %{MAC:principal_mac} é mapeado para principal.mac após a conversão para o formato [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}.
%{USERNAME:target_host} target.hostname O campo %{USERNAME:target_host} está mapeado para target.hostname.
%{USERNAME:user} target.user.userid O campo %{USERNAME:user} está mapeado para target.user.userid.
%{WORD:auth_result} security_result.description O campo %{WORD:auth_result} é concatenado com o campo %{GREEDYDATA:desc} para formar security_result.description quando %{GREEDYDATA:desc} está presente.
%{WORD:proto} network.application_protocol O campo %{WORD:proto} é mapeado para network.application_protocol quando o respetivo valor é "SSH".
timestamp metadata.event_timestamp O campo de data/hora é analisado a partir dos dados de registo não processados através de um padrão grok e convertido num objeto de data/hora.
extensions.auth.type O valor é definido como "MACHINE" se o campo proto não estiver vazio e o campo auth_action for "logout" ou "login".
metadata.description O campo é preenchido com o valor do campo "metadata_description" se não estiver vazio.
metadata.event_type O campo é preenchido com base nos valores de outros campos através da lógica condicional:
- STATUS_STARTUP: se target_port_status for "up".
- STATUS_SHUTDOWN: se target_port_status for "down".
- USER_LOGOUT: se o proto não estiver vazio e auth_action for "logout".
- USER_LOGIN: se o proto não estiver vazio e auth_action for "login".
- STATUS_UPDATE: se metadata_description corresponder a "state changed".
- GENERIC_EVENT: se nenhuma das condições acima for cumprida.
metadata.log_type O valor está codificado como "BROCADE_SERVERIRON".
metadata.product_name O valor está codificado como "ServerIron".
metadata.vendor_name O valor está codificado como "Brocade".
security_result.action O valor é definido como "BLOCK" se o campo desc contiver "fail" ou o campo auth_result contiver "fail" ou "rejected".

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