Coletar registros de switch da Cisco

Versão do analisador: 27.0

Compatível com:

Neste documento, explicamos como ingerir registros de switch da Cisco no Google Security Operations usando o agente do BindPlane.

Os switches da Cisco geram mensagens de syslog para mudanças de estado de porta, eventos de spanning tree, correspondências de ACL, autenticação e operações do sistema. O analisador extrai campos usando padrões grok 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 da Cisco
  • 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.
  • Acesso privilegiado à CLI do switch da Cisco

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/cisco_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: CISCO_SWITCH
        raw_log_field: body
    
    service:
      pipelines:
        logs/cisco_switch_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/cisco_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/cisco_switch:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: CISCO_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:

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

      ```bash
      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 o syslog em um switch da Cisco

  1. Faça login no Cisco Switch.
  2. Escalonar privilégios:

    enable
    
  3. Mude para o modo de configuração:

    conf t
    
  4. Configure o syslog:

    logging host <BINDPLANE_IP> transport <tcp/udp> port <PORT>
    logging source-interface <INTERFACE>
    
    • Substitua <BINDPLANE_IP> pelo endereço IP do agente do BindPlane.
    • Substitua <tcp/udp> pelo protocolo de detecção configurado (por exemplo, udp).
    • Substitua <INTERFACE> pelo ID da interface da Cisco.
  5. Defina o nível de prioridade:

    logging trap Informational
    logging console Informational
    logging severity Informational
    
  6. Defina o recurso syslog:

    logging facility local6
    
  7. Ativar carimbos de data/hora:

    service timestamps log datetime
    
  8. Salve e saia.

  9. Salve a configuração para que ela seja mantida após a reinicialização:

    copy running-config startup-config
    

Tabela de mapeamento de UDM

Campo de registro mapeamento de UDM Lógica
ação security_result.action_details O valor desse campo é derivado do campo action no registro bruto.
dia
descrição metadata.description O valor desse campo é derivado do campo description no registro bruto.
descrição security_result.description O valor desse campo é derivado do campo description no registro bruto.
destination_ip target.asset.ip O valor desse campo é derivado do campo destination_ip no registro bruto.
destination_ip target.ip O valor desse campo é derivado do campo destination_ip no registro bruto.
destination_port target.port O valor desse campo é derivado do campo destination_port no registro bruto.
device principal.asset.hostname O valor desse campo é derivado do campo device no registro bruto.
device principal.hostname O valor desse campo é derivado do campo device no registro bruto.
device target.asset.hostname O valor desse campo é derivado do campo device no registro bruto.
device target.hostname O valor desse campo é derivado do campo device no registro bruto.
device_ip principal.asset.ip O valor desse campo é derivado do campo device_ip no registro bruto.
device_ip principal.ip O valor desse campo é derivado do campo device_ip no registro bruto.
device_ip target.asset.ip O valor desse campo é derivado do campo device_ip no registro bruto.
device_ip target.ip O valor desse campo é derivado do campo device_ip no registro bruto.
facility principal.resource.type O valor desse campo é derivado do campo facility no registro bruto.
header_data metadata.product_log_id O valor desse campo é derivado do campo header_data no registro bruto.
header_data target.asset.ip O valor desse campo é derivado do campo header_data no registro bruto.
header_data target.ip O valor desse campo é derivado do campo header_data no registro bruto.
nome do host principal.asset.hostname O valor desse campo é derivado do campo hostname no registro bruto.
nome do host principal.hostname O valor desse campo é derivado do campo hostname no registro bruto.
ip principal.asset.ip O valor desse campo é derivado do campo ip no registro bruto.
ip principal.ip O valor desse campo é derivado do campo ip no registro bruto.
ip_address principal.asset.ip O valor desse campo é derivado do campo ip_address no registro bruto.
ip_address principal.ip O valor desse campo é derivado do campo ip_address no registro bruto.
ip_protocol network.ip_protocol O valor desse campo é derivado do campo ip_protocol no registro bruto.
mac principal.mac O valor desse campo é derivado do campo mac no registro bruto.
mnemônico network.dhcp.opcode O valor desse campo é derivado do campo mnemonic no registro bruto.
mnemônico metadata.product_event_type O valor desse campo é derivado do campo mnemonic no registro bruto.
mês
p_ip principal.asset.ip O valor desse campo é derivado do campo p_ip no registro bruto.
p_ip principal.ip O valor desse campo é derivado do campo p_ip no registro bruto.
porta target.port O valor desse campo é derivado do campo port no registro bruto.
prioridade
protocolo network.ip_protocol O valor desse campo é derivado do campo protocol no registro bruto.
reason
regra security_result.rule_id O valor desse campo é derivado do campo rule no registro bruto.
sec_result_action security_result.action O valor desse campo é derivado do campo sec_result_action no registro bruto.
gravidade,
source principal.asset.ip O valor desse campo é derivado do campo source no registro bruto.
source principal.ip O valor desse campo é derivado do campo source no registro bruto.
source_ip network.dhcp.ciaddr O valor desse campo é derivado do campo source_ip no registro bruto.
source_ip principal.asset.ip O valor desse campo é derivado do campo source_ip no registro bruto.
source_ip principal.ip O valor desse campo é derivado do campo source_ip no registro bruto.
source_mac network.dhcp.chaddr O valor desse campo é derivado do campo source_mac no registro bruto.
source_port principal.port O valor desse campo é derivado do campo source_port no registro bruto.
resumo security_result.summary O valor desse campo é derivado do campo summary no registro bruto.
tempo
timezone
usuário principal.user.userid O valor desse campo é derivado do campo user no registro bruto.
usuário target.user.userid O valor desse campo é derivado do campo user no registro bruto.
quando
ano
extensions.auth.type MÁQUINA
metadata.log_type CISCO_SWITCH
metadata.vendor_name Cisco
metadata.product_name Switch Cisco
network.application_protocol DHCP
network.dhcp.type SOLICITAÇÃO
intermediary_ip event.idm.read_only_udm.intermediary.ip e event.idm.read_only_udm.intermediary.asset.ip Mapeado do registro de alterações
priority event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
product_log_id event.idm.read_only_udm.metadata.product_log_id Mapeado do registro de alterações
_time event.idm.read_only_udm.metadata.collected_timestamp Mapeado do registro de alterações
vlan_data event.idm.read_only_udm.intermediary.resource.attribute.labels Mapeado do registro de alterações
intermediary_ip event.idm.read_only_udm.intermediary.ip Mapeado do registro de alterações
intermediary_ip event.idm.read_only_udm.intermediary.asset.ip Mapeado do registro de alterações
time_stamp event.idm.read_only_udm.metadata.event_timestamp Mapeado do registro de alterações
process_name event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
switch_id event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
log_seq_num event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
log_seq_num_2 event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
p_interface event.idm.read_only_udm.principal.resource.name Mapeado do registro de alterações
audit_session_id event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de alterações
mac event.idm.read_only_udm.principal.mac Mapeado do registro de alterações
packets event.idm.read_only_udm.network.sent_packets Mapeado do registro de alterações
facility event.idm.read_only_udm.principal.resource.resource_subtype Mapeado do registro de alterações
seq_num event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
device_hostname event.idm.read_only_udm.principal.hostname e event.idm.read_only_udm.principal.asset.hostname Mapeado do registro de alterações
id event.idm.read_only_udm.principal.user.userid Mapeado do registro de alterações
seq_num event.idm.read_only_udm.target.user.userid Mapeado do registro de alterações
log_message event.idm.read_only_udm.metadata.description Mapeado do registro de alterações
syslog_tag event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
syslog_pri event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
appcat event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
applist event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
dstintf event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
dstintfrole event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
mastersrcmac event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
osname event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
poluuid event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
service event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
srchwvendor event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
srcintf event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
srcintfrole event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
srcserver event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
transport event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
trandisp event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
vd event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
vwlid event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
devid event.idm.read_only_udm.intermediary.asset.product_object_id Mapeado do registro de alterações
devname event.idm.read_only_udm.intermediary.hostname Mapeado do registro de alterações
logid event.idm.read_only_udm.metadata.product_log_id Mapeado do registro de alterações
subtype event.idm.read_only_udm.network.direction Mapeado do registro de alterações
proto event.idm.read_only_udm.network.ip_protocol Mapeado do registro de alterações
rcvdbyte event.idm.read_only_udm.network.received_bytes Mapeado do registro de alterações
sentbyte event.idm.read_only_udm.network.sent_bytes Mapeado do registro de alterações
sentpkt event.idm.read_only_udm.network.sent_packets Mapeado do registro de alterações
duration event.idm.read_only_udm.network.session_duration.seconds Mapeado do registro de alterações
sessionid event.idm.read_only_udm.network.session_id Mapeado do registro de alterações
srcname event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.principal.hostname Mapeado do registro de alterações
srcip event.idm.read_only_udm.principal.asset.ip, event.idm.read_only_udm.principal.ip Mapeado do registro de alterações
srcmac event.idm.read_only_udm.principal.asset.mac, event.idm.read_only_udm.principal.mac Mapeado do registro de alterações
osname event.idm.read_only_udm.principal.asset.platform_software.platform Mapeado do registro de alterações
srcswversion event.idm.read_only_udm.principal.asset.platform_software.platform_version Mapeado do registro de alterações
srccountry event.idm.read_only_udm.principal.location.country_or_region Mapeado do registro de alterações
transip event.idm.read_only_udm.principal.nat_ip Mapeado do registro de alterações
srcport event.idm.read_only_udm.principal.port Mapeado do registro de alterações
action event.idm.read_only_udm.security_result.action Mapeado do registro de alterações
policyid event.idm.read_only_udm.security_result.rule_id Mapeado do registro de alterações
policyname event.idm.read_only_udm.security_result.rule_name Mapeado do registro de alterações
policytype event.idm.read_only_udm.security_result.rule_type Mapeado do registro de alterações
level event.idm.read_only_udm.security_result.severity Mapeado do registro de alterações
action event.idm.read_only_udm.security_result.summary Mapeado do registro de alterações
dstip event.idm.read_only_udm.target.asset.ip, event.idm.read_only_udm.target.ip Mapeado do registro de alterações
dstcountry event.idm.read_only_udm.target.location.country_or_region Mapeado do registro de alterações
dstport event.idm.read_only_udm.target.port Mapeado do registro de alterações
device principle.hostname Mapeado do registro de alterações
username3 principal.user.userid Mapeado do registro de alterações
login_status security_result.summary Mapeado do registro de alterações
ecs.version metadata.product_version Mapeado do registro de alterações
fileset.name", "flow.locality", "flow.id", "input.type", "netflow.exporter.source_id", and "netflow.exporter.uptime_millis additional.fields Mapeado do registro de alterações
network.transport network.ip_protocol Mapeado do registro de alterações
netflow.post_nat_source_ipv4_address principal.ip Mapeado do registro de alterações
netflow.source_transport_port principal.port Mapeado do registro de alterações
network.direction network.direction Mapeado do registro de alterações
intermediary_ip intermediary.ip Mapeado do registro de alterações
intermediary_hostname intermediary.hostname Mapeado do registro de alterações
principal_host principal.hostname Mapeado do registro de alterações
src_mac principal.mac Mapeado do registro de alterações
eventSummary metadata.product_event_type Mapeado do registro de alterações
error_msg security_result.detection_fields Mapeado do registro de alterações
pid principal.process.pid Mapeado do registro de alterações
srcPort principal.port Mapeado do registro de alterações
srcUser principal.user.userid Mapeado do registro de alterações
username1 target.user.userid Mapeado do registro de alterações
command target.process.command_line Mapeado do registro de alterações
PWD target.process.file.full_path Mapeado do registro de alterações
node_id", "cluster_id", "exception", "UniqueId", and "app_id additional.fields Mapeado do registro de alterações
DEVICE principal.mac Mapeado do registro de alterações
SRC principal.ip Mapeado do registro de alterações
SPT principal.port Mapeado do registro de alterações
DST target.ip Mapeado do registro de alterações
DPT target.port Mapeado do registro de alterações
ID network.session_id Mapeado do registro de alterações
LEN network.session_duration.seconds Mapeado do registro de alterações
PROTO network.ip_protocol Mapeado do registro de alterações
IN", "OUT", "PHYSIN", "WINDOW", "RES, "TOS", "PREC", "TTL" ,"URGP", "MAC", "radio", "vap", "auth_type", "sugg_band", "ssid_id", "ssid_profile_name" and "protocol additional.fields Mapeado do registro de alterações
client_mac principal.mac Mapeado do registro de alterações
aid network.session_id Mapeado do registro de alterações
rssi intermediary.asset.product_object_id Mapeado do registro de alterações
channel security_result.detection_fields Mapeado do registro de alterações
eventSummary", "dhcp_ip", "client_mac", "aid" and "ip_src metadata.product_event_type Mapeado do registro de alterações
mac", "src", "sport", "dst", "dport", "action", "protocol", "url" and "signature principal.mac Mapeado do registro de alterações
metadata.event_type" and "extensions.auth.type USER_LOGIN Mapeado do registro de alterações
eventSummary", "aid", "rssi", "channel", "last_known_client_ip" and "event_type security_result.summary Mapeado do registro de alterações
pid target.process.pid Mapeado do registro de alterações
app_name target.application Mapeado do registro de alterações

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.