Coletar registros do switch Alcatel

Versão do analisador: 1.0

Compatível com:

Este documento explica como ingerir registros de switch da Alcatel no Google Security Operations usando o agente do Bindplane.

O Alcatel-Lucent Enterprise OmniSwitch é uma família de switches de LAN empilháveis que oferecem acesso à rede, aplicação de políticas de segurança e gerenciamento unificado de redes com e sem fio. Os switches geram mensagens de syslog que abrangem eventos de autenticação, mudanças de estado da interface, operações de VLAN e comandos da CLI.

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 Alcatel
  • Se 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.
  • Credenciais privilegiadas para o switch Alcatel (acesso de administrador)

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 um papel 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 download do arquivo de chave é feito no seu 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 configurar o exportador.

Opção 2: fazer o download do arquivo de autenticação de ingestão (legado)

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações > Gerenciamento de dados > Agentes de coleta. Se você estiver em uma plataforma somente SIEM, acesse Configurações > 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 > Administração > Perfil. Se você estiver em uma plataforma somente SIEM, acesse Configurações > 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 precisa aparecer como RUNNING.

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 precisa aparecer como active (running).

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 o 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/alcatel_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: ALCATEL_SWITCH
        raw_log_field: body
    
    service:
      pipelines:
        logs/alcatel_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/alcatel_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 de 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/alcatel_switch:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: ALCATEL_SWITCH
        raw_log_field: body
    

Salve 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 no 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 a exportação de syslog no switch Alcatel

  1. Conecte-se ao switch usando SSH ou um cabo de console.
  2. Faça login com as credenciais de administrador.
  3. Entre no modo de configuração global:

    enable
    configure terminal
    
  4. Defina o endereço IP do servidor do Bindplane (syslog):

    swlog output socket <BINDPLANE_IP>
    
    • Substitua <BINDPLANE_IP> pelo endereço IP do agente do BindPlane.
  5. Ative a geração de registros no servidor syslog:

    swlog remote enable
    
  6. Configure o nível de registro:

    swlog console level info
    
  7. Ative a geração de registros de comandos:

    command-log enable
    
  8. Salve as alterações na configuração de inicialização:

    write memory
    

Tabela de mapeamento de UDM

Campo de registro Mapeamento de UDM Lógica
1.1.1.1 principal.ipprincipal.asset.ip Extraído da mensagem de registro.
1.1.1.2 target.iptarget.asset.ip Extraído da mensagem de registro.
1.1.2.7 target.iptarget.asset.ip Extraído da mensagem de registro.
1035 target.port Extraído da mensagem de registro.
2266 additional.fields.value.string_value Extraído da mensagem de registro e mapeado como vlan.
3036 principal.port Extraído da mensagem de registro.
59300 target.port Extraído da mensagem de registro.
60588 target.port Extraído da mensagem de registro.
997 principal.resource.attribute.labels.value Extraído da mensagem de registro e mapeado como limit.
A6450-L2-K4B-01 principal.application Extraído da mensagem de registro.
A6450-L2-X1B-02-01 principal.application Extraído da mensagem de registro.
A6450-L2-X2A-01-01 principal.application Extraído da mensagem de registro.
A6450-L2-X4B-02-01 principal.application Extraído da mensagem de registro.
A6900-L3-LTX0A principal.application Extraído da mensagem de registro.
Accepted keyboard-interactive/pam security_result.summary Parte do campo sec_summary extraído.
b8:53:ac:6e:c9:bc principal.mac Extraído da mensagem de registro.
BRIDGE(10) additional.fields.value.string_value Extraído da mensagem de registro e mapeado como id_protocol.
CLI log, security_result.summary Parte do campo sec_summary extraído.
cmd: show configuration snapshot all, security_result.detection_fields.value Extraído da mensagem de registro e mapeado como cmd.
Connection reset by 1.1.2.7 port 60505 security_result.summary Extraído da mensagem de registro.
Dec 7 14:28:40 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
Dec 8 04:21:22 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
Dec 9 20:08:29 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
Dec 9 20:51:34 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
Dec 11 10:18:30 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
Dec 17 02:14:22 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
Dec 19 10:27:33 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
Did not receive identification string from 1.1.2.7 port 60588 security_result.summary Extraído da mensagem de registro.
esmSetRateLimit: Txing additional.fields.value.string_value Extraído da mensagem de registro e mapeado como esm_set_rate_limit.
Feb 15 16:29:29 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
Feb 16 11:08:45 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
Feb 16 11:08:49 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
flashManager FlashMgr Main info(5) flashMgrValidateImage_exec: valid security_result.summary Extraído da mensagem de registro.
for ncmadmin from 1.1.1.2 port 59300 ssh2 security_result.summary Parte do campo sec_summary extraído.
from port 3036 to port 1035 security_result.summary Parte do campo sec_summary extraído.
IVDELCSW03 principal.hostnameprincipal.asset.hostname Extraído da mensagem de registro quando principal_ip não é um endereço IP.
IP-HELPER(22) additional.fields.value.string_value Extraído da mensagem de registro e mapeado como id_protocol.
Jan 16 02:14:13 metadata.event_timestamp.secondsmetadata.event_timestamp.nanos Analisado no campo ts.
LLDP(42) additional.fields.value.string_value Extraído da mensagem de registro e mapeado como id_protocol.
limit=997, principal.resource.attribute.labels.value Extraído da mensagem de registro e mapeado como limit.
limitType=1 principal.resource.attribute.labels.value Extraído da mensagem de registro e mapeado como limitType.
lldpProcessLocationIdTLV: Error, LLDP-MED Civic Address LCI len 39 invalid, tlvL security_result.summary Extraído da mensagem de registro.
Mac Movement for MacAddr: a0:29:19:c0:55:18 security_result.summary Extraído da mensagem de registro.
MacAddr: a0:29:19:c0:55:18 principal.mac Extraído da mensagem de registro.
ncmadmin principal.user.userid Extraído da mensagem de registro.
OS6360 principal.hostnameprincipal.asset.hostname Extraído da mensagem de registro quando principal_ip não é um endereço IP.
result: SUCCESS security_result.detection_fields.value Extraído da mensagem de registro e mapeado como result.
SES CMD info(5) security_result.summary Parte do sec_summaryfield extraído.
STACK-MANAGER principal.application Extraído da mensagem de registro.
Stack Port A MAC Frames TX/RX Enabled security_result.summary Extraído da mensagem de registro.
STP(11) additional.fields.value.string_value Extraído da mensagem de registro e mapeado como id_protocol.
SWCONSOLE-L2-K0A-01 target.hostnametarget.asset.hostname Extraído da mensagem de registro.
trafficType=2, principal.resource.attribute.labels.value Extraído da mensagem de registro e mapeado como tipo traffic.
user: ncmadmin security_result.summary Parte do campo sec_summary extraído.
zslot=0, principal.resource.attribute.labels.value Extraído da mensagem de registro e mapeado como zslot.
- additional.fields.key Valor fixado no código: id_protocol
- additional.fields.key Valor fixado no código: esm_set_rate_limit
- additional.fields.key Valor fixado no código: vlan
- metadata.event_type Defina como GENERIC_EVENT se nenhum outro tipo for correspondente.
- metadata.product_name Valor fixado no código: Alcatel Switch
- metadata.vendor_name Valor fixado no código: ALCATEL SWITCH
- network.application_protocol Defina como SSH quando id_protocol corresponder a ssh (não diferencia maiúsculas de minúsculas).
- principal.resource.attribute.labels.key Valor fixado no código: limit
- principal.resource.attribute.labels.key Valor fixado no código: trafficType
- principal.resource.attribute.labels.key Valor fixado no código: limitType
- principal.resource.attribute.labels.key Valor fixado no código: zslot
- security_result.detection_fields.key Valor fixado no código: cmd
- security_result.detection_fields.key Valor fixado no código: result
- security_result.severity Defina como INFORMATIONAL quando prod_severity corresponder a info (não diferencia maiúsculas de minúsculas).

Registro de alterações

Confira o registro de alterações deste analisador

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