Coletar registros de troca da Extreme Networks

Versão do analisador:2.0

Compatível com:

Este documento explica como ingerir registros de switches da Extreme Networks no Google Security Operations usando o agente Bindplane.

Os switches da Extreme Networks geram mensagens syslog para mudanças de status de porta, eventos SLPP, autenticação de usuários, operações de VLAN e eventos do sistema. O analisador extrai campos do syslog formatado RFC-5424 e os mapeia para o modelo de dados unificado (UDM).

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps
  • Windows Server 2016 ou mais recente ou host Linux com systemd
  • Conectividade de rede entre o agente do Bindplane e o switch de rede da Extreme Networks
  • Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente do Bindplane.
  • Acesso privilegiado à CLI do switch da Extreme Networks

Receber credenciais do Google SecOps para o agente do BindPlane

Para autenticar o agente do Bindplane no Google SecOps, escolha um dos seguintes métodos:

  • Novas implantações: use a API Chronicle (opção 1).
  • Implantações legadas: continue usando o arquivo de autenticação de ingestão (opção 2) até que a API Ingestion seja desativada em 20 de julho de 2027.
  1. Faça login no console doGoogle Cloud e selecione o projeto do Google Cloud vinculado à sua instância do Google SecOps.
  2. Acesse IAM e administrador > Contas de serviço.
  3. Clique em Criar conta de serviço.
  4. Informe os seguintes detalhes de configuração:
    • Nome da conta de serviço: insira um nome para a conta (por exemplo, bindplane-ingest).
    • Descrição da conta de serviço: insira uma descrição (por exemplo, Bindplane agent log ingestion).
  5. Clique em Criar e continuar.
  6. Na seção Conceder a essa conta de serviço acesso ao projeto, clique em Selecionar uma função e escolha Editor do Chronicle.
  7. Clique em Continuar e depois em Concluído.
  8. Clique na conta de serviço que você criou e acesse a guia Chaves.
  9. Clique em Adicionar chave > Criar nova chave.
  10. Selecione JSON e clique em Criar. O arquivo de chave é baixado para o computador.
  11. Salve o arquivo de chave como ingestion-auth.json no diretório do coletor do Bindplane (/opt/observiq-otel-collector/ingestion-auth.json no Linux ou C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json no Windows) ou atualize creds_file_path em config.yaml para corresponder ao caminho em que você o salvou.
  12. Acesse IAM e administrador > Configurações e copie o Número do projeto. Você vai precisar dele para a configuração do exportador.

Opção 2: baixar o arquivo de autenticação de ingestão (legado)

  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 ingestão.
  4. Salve o arquivo com segurança no sistema em que o agente do Bindplane será instalado.

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 de cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instale o agente do Bindplane no seu sistema operacional Windows ou Linux de acordo com as instruções a seguir.

Instalação do Windows

  1. Abra o Prompt de comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sc query observiq-otel-collector
    

    O serviço vai aparecer como EM EXECUÇÃO.

Instalação do Linux

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. Execute este comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sudo systemctl status observiq-otel-collector
    

    O serviço vai aparecer como ativo (em execução).

Outros recursos de instalação

Para mais opções de instalação e solução de problemas, consulte o guia de instalação do agente do Bindplane.

Configurar o agente do Bindplane para ingerir syslog e enviar ao Google SecOps

Localize o arquivo de configuração.

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Editar o arquivo de configuração

  • Substitua todo o conteúdo de config.yaml pela seguinte configuração:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/extreme_switch:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: EXTREME_SWITCH
        raw_log_field: body
    
    service:
      pipelines:
        logs/extreme_switch_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/extreme_switch
    

Parâmetros de configuração

Substitua os seguintes marcadores de posição:

  • Configuração do receptor:

    • listen_address: endereço IP e porta a serem detectados:
      • 0.0.0.0 para ouvir em todas as interfaces (recomendado)
      • A porta 514 é a porta padrão do syslog (requer raiz no Linux; use 1514 para não raiz).
  • Configuração do exportador:

    • creds_file_path: caminho completo para o arquivo de chave JSON da conta de serviço (opção 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: ID do cliente copiado do console do Google SecOps
    • location: substitua <LOCATION> pela região da sua instância do Google SecOps (por exemplo, us, europe ou asia-southeast1). O exportador prefixa chronicle.googleapis.com com esse valor. Consulte Endpoints regionais para ver a lista completa.
    • project: substitua <PROJECT_NUMBER> pelo número do projeto em IAM e administrador > Configurações.
    • endpoint: mantenha definido como chronicle.googleapis.com.

Exportador da API de ingestão legada

  • Se você usar o arquivo de autenticação de ingestão da Opção 2, substitua o bloco exporters pelo seguinte. Defina creds_file_path como o caminho para o arquivo de autenticação de ingestão e, se a instância estiver fora dos EUA, substitua malachiteingestion-pa.googleapis.com pelo endpoint regional (por exemplo, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/extreme_switch:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: EXTREME_SWITCH
        raw_log_field: body
    

Salvar o arquivo de configuração

  • Depois de editar, salve o arquivo:
    • Linux: pressione Ctrl+O, depois Enter e, em seguida, Ctrl+X.
    • Windows: clique em Arquivo > Salvar.

Reinicie o agente do Bindplane para aplicar as mudanças:

  • Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart observiq-otel-collector
    
    1. Verifique se o serviço está em execução:

      sudo systemctl status observiq-otel-collector
      
    2. Verifique se há erros nos registros:

      sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar o agente do Bindplane em Windows, escolha uma das seguintes opções:

    • Prompt de comando ou PowerShell como administrador:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console de serviços:

      1. Pressione Win+R, digite services.msc e pressione Enter.
      2. Localize o Coletor do OpenTelemetry da observIQ.
      3. Clique com o botão direito do mouse e selecione Reiniciar.
      4. Verifique se o serviço está em execução:

        sc query observiq-otel-collector
        
      5. Verifique se há erros nos registros:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurar o syslog no switch Extreme Networks

  1. Faça login no switch usando a CLI ou o console.
  2. Digite o comando de configuração para acessar o nível de configuração global:

    device# configure terminal
    
  3. Insira o comando de endereço IP do servidor syslog para adicionar um servidor syslog:

    • Substitua <bindplane_ip> pelo endereço IP real do agente do Bindplane.
    logging syslog-server <bindplane_ip>
    
  4. Insira o comando de formato para configurar o formato RFC-5424 para mensagens:

    format RFC-5424
    

Tabela de mapeamento de UDM

Campo de registro Mapeamento de UDM Lógica
account_type target.user.user_role Se account_type for "Administrative" ou "admin", defina como "ADMINISTRATOR". Caso contrário, mapeie para target.user.attribute.roles.name.
application target.application Mapeado diretamente.
attr additional.fields Analisado para extrair o WWN e criar um par de chave-valor com a chave "wwn" e o WWN extraído como o valor da string.
class additional.fields Cria um par de chave-valor com a chave "class" e o valor do campo class como o valor da string.
Cause additional.fields Cria um par de chave-valor com a chave "Cause" e o valor do campo Cause como o valor da string. Um objeto vazio será criado se não houver campos de autenticação específicos.
Info security_result.summary Mapeado diretamente.
interface additional.fields Cria um par de chave-valor com a chave "interface" e o valor do campo interface como o valor da string.
ip principal.ip Mapeado diretamente.
intermediary_ip intermediary.ip Mapeado diretamente.
kv_data Vários Usado para extrair pares de chave-valor e mapeá-los para diferentes campos do UDM com base na chave. Por exemplo, VrIpAddr é mapeado para intermediary.ip, IP e Addr são mapeados para principal.ip, SlppRxPort é mapeado para principal.port e vários campos rc* são mapeados para security_result.detection_fields.
log_data Vários Analisados para extrair informações sobre logins, logouts e outros eventos do usuário. Usado para preencher campos como principal.ip, principal.resource.name, target.user.userid, target.application, security_result.summary, security_result.description e metadata.description.
log_type additional.fields Cria um par de chave-valor com a chave "log" e o valor do campo log_type como o valor da string.
message Vários A mensagem de registro original. Analisado para extrair vários campos. O carimbo de data/hora é extraído do campo timestamp (se presente e no formato "aaaa-mm-ddTHH:mm:ss") ou do campo message usando padrões grok. Se extraído do campo de mensagem, é o carimbo de data/hora na própria mensagem de registro. Determinado com base na presença das flags has_principal, has_target, user_login e user_logout. Pode ser "USER_LOGIN", "USER_LOGOUT", "STATUS_UPDATE" ou "GENERIC_EVENT". Mapeado do campo msgid. Valor estático: "EXTREME_SWITCH". Mapeado do campo ver. Valor estático: "EXTREME_SWITCH".
msgid metadata.product_log_id Mapeado diretamente.
port principal.port Mapeado e convertido diretamente em um número inteiro.
protocol additional.fields Cria um par de chave-valor com a chave "Protocol" e o valor do campo protocol como o valor da string.
rcPortVLacpAdminEnable security_result.detection_fields Cria um par de chave-valor com a chave "rcPortVLacpAdminEnable" e o valor dela.
rcSyslogHostAddress principal.hostname Mapeado diretamente.
rcSyslogHostAddressType security_result.detection_fields Cria um par de chave-valor com a chave "rcSyslogHostAddressType" e o valor dela.
rcSyslogHostEnable security_result.detection_fields Cria um par de chave-valor com a chave "rcSyslogHostEnable" e o valor dela.
rcSyslogHostFacility security_result.detection_fields Cria um par de chave-valor com a chave "rcSyslogHostFacility" e o valor dela.
rcSyslogHostMapErrorSeverity security_result.detection_fields Cria um par de chave-valor com a chave "rcSyslogHostMapErrorSeverity" e o valor dela.
rcSyslogHostMapFatalSeverity security_result.detection_fields Cria um par de chave-valor com a chave "rcSyslogHostMapFatalSeverity" e o valor dela.
rcSyslogHostMapInfoSeverity security_result.detection_fields Cria um par de chave-valor com a chave "rcSyslogHostMapInfoSeverity" e o valor dela.
rcSyslogHostMapWarningSeverity security_result.detection_fields Cria um par de chave-valor com a chave "rcSyslogHostMapWarningSeverity" e o valor dela.
rcSyslogHostRowStatus security_result.detection_fields Cria um par de chave-valor com a chave "rcSyslogHostRowStatus" e o valor dela.
rcSyslogHostSeverity security_result.detection_fields Cria um par de chave-valor com a chave "rcSyslogHostSeverity" e o valor dela.
resource principal.resource.name Mapeado diretamente.
sec_description security_result.description Mapeado diretamente.
seqnum additional.fields Cria um par de chave-valor com a chave "seqnum" e o valor do campo seqnum como o valor da string.
session_id network.session_id Mapeado diretamente.
severity security_result.severity Mapeado com conversão: "CRITICAL", "ERROR" e "HIGH" são mapeados diretamente; "INFO" é mapeado para "INFORMATIONAL"; "WARNING" é mapeado para "MEDIUM"; "LOW", "MEDIUM" e "INFORMATIONAL" são mapeados diretamente.
SlppIncomingVlanId additional.fields Cria um par de chave-valor com a chave "SlppIncomingVlanId" e o valor do campo SlppIncomingVlanId como o valor da string.
SlppRxVlan additional.fields Cria um par de chave-valor com a chave "SlppRxVlan" e o valor do campo SlppRxVlan como o valor da string.
SlppSrcMacAddress principal.mac Mapeado diretamente.
Status additional.fields Cria um par de chave-valor com a chave "Status" e o valor do campo Status como o valor da string.
swname additional.fields Cria um par de chave-valor com a chave "swname" e o valor do campo swname como o valor da string.
timestamp metadata.event_timestamp Analisado e convertido em um objeto de carimbo de data/hora.
tz additional.fields Cria um par de chave-valor com a chave "tz" e o valor do campo tz como o valor da string.
Type additional.fields Cria um par de chave-valor com a chave "Type" e o valor do campo Type como o valor da string.
username target.user.userid Mapeado diretamente.
ver metadata.product_version Mapeado diretamente.
VrId additional.fields Cria um par de chave-valor com a chave "VrId" e o valor do campo VrId como o valor da string.
protocol", "VrId", "SlppRxVlan", "SlppIncomingVlanId", "Type", "Cause additional.fields Mapeado do registro de alterações
ver metadata.version Mapeado do registro de alterações
rcPortVLacpAdminEnable", "rcSyslogHostMapFatalSeverity", "rcSyslogHostMapWarningSeverity", "rcSyslogHostRowStatus", "rcSyslogHostFacility", "rcSyslogHostAddressType", "rcSyslogHostMapErrorSeverity", "rcSyslogHostMapInfoSeverity", "rcSyslogHostSeverity", "rcSyslogHostEnable security_result.detection_fields Mapeado do registro de alterações

Registro de alterações

Ver o registro de alterações deste analisador

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