Coletar registros do ServerIron da Brocade

Compatível com:

Esse analisador extrai campos das mensagens syslog do Brocade ServerIron usando a correspondência de expressão regular e os mapeia para o modelo de dados unificado (UDM). Ele processa vários formatos de registro, incluindo status de rede, autenticação de usuário e eventos de segurança. O analisador realiza conversões e enriquecimentos de tipos de dados quando necessário.

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

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_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 mudanças:

    sudo systemctl restart bindplane
    

Configurar a exportação de syslog do Brocade ServerIron ADX

  1. Faça login no dispositivo ADX e entre no modo de configuração global:

    enable
    configure terminal
    
  2. Ativar a geração de registros do Syslog:

    logging on
    
  3. Especifique o endereço IP ou o nome do host e a porta do servidor syslog, incluindo o protocolo desejado (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 Facility Syslog (local0 a local7):

    logging facility local0
    
  5. Defina o nível mínimo de gravidade dos registros a serem enviados ao servidor syslog:

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

    write memory
    

Tabela de mapeamento do UDM

Campo de registro Mapeamento do 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 o security_result.description quando o %{GREEDYDATA:desc} está presente.
%{GREEDYDATA:desc} security_result.description O campo %{GREEDYDATA:desc} é usado para preencher o campo security_result.description. Ele pode ser concatenado com outros campos, dependendo do formato do registro bruto.
%{GREEDYDATA:login_to} security_result.description O campo %{GREEDYDATA:login_to} é concatenado com o campo %{GREEDYDATA:desc} para formar o security_result.description quando o campo %{GREEDYDATA:desc} está presente.
%{GREEDYDATA:user} target.user.userid O campo %{GREEDYDATA:user} é mapeado para target.user.userid.
%{HOST:principal_host} principal.hostname O campo %{HOST:principal_host} é mapeado para principal.hostname.
%{HOST:target_host} target.hostname O campo %{HOST:target_host} é 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 "Porta HTTP".
%{INT:target_port} target.port O campo %{INT:target_port} é mapeado para target.port e convertido em um número inteiro.
%{INT:telnet_port} additional.fields.value.string_value O campo %{INT:telnet_port} é mapeado para additional.fields.value.string_value com a chave "Porta Telnet".
%{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} é mapeado para principal.ip.
%{IP:target_ip} target.ip O campo %{IP:target_ip} é mapeado para target.ip.
%{IPV4:principal_ip} principal.ip O campo %{IPV4:principal_ip} é mapeado para principal.ip.
%{IPV4:target_ip} target.ip O campo %{IPV4:target_ip} é mapeado para target.ip.
%{MAC:principal_mac} principal.mac O campo %{MAC:principal_mac} é mapeado para principal.mac depois de ser convertido para o formato [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} é mapeado para target.hostname.
%{USERNAME:user} target.user.userid O campo %{USERNAME:user} é 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 valor é 'SSH'.
timestamp metadata.event_timestamp O campo de carimbo de data/hora é analisado a partir dos dados brutos do registro usando um padrão grok e convertido em um objeto de carimbo de data/hora.
extensions.auth.type O valor será 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 de "metadata_description" se ele não estiver vazio.
metadata.event_type O campo é preenchido com base nos valores de outros campos usando a lógica condicional:
- STATUS_STARTUP: se target_port_status for "up".
: STATUS_SHUTDOWN: se target_port_status for "down".
- USER_LOGOUT: se proto não estiver vazio e auth_action for "logout".
- USER_LOGIN: se 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 atendida.
metadata.log_type O valor é fixado em "BROCADE_SERVERIRON".
metadata.product_name O valor é fixado em "ServerIron".
metadata.vendor_name O valor é fixado em "Brocade".
security_result.action O valor será definido como "BLOCK" se o campo "desc" contiver "fail" ou se o campo "auth_result" contiver "fail" ou "rejected".

Alterações

2022-01-13

  • Parser adicionado recentemente.