Coletar registros do roteador Cisco
Este documento explica como ingerir registros do roteador Cisco no Google Security Operations usando um agente do Bindplane. Primeiro, o analisador extrai campos comuns de vários formatos de mensagens syslog usando uma série de padrões Grok, processando diferentes variações de dados de carimbo de data/hora e chave-valor. Em seguida, ele aplica uma lógica específica com base no tipo de evento extraído (facility, mnemonics, message_type), enriquecendo os dados com campos adicionais e mapeando-os para o modelo UDM.
Antes de começar
- Verifique se você tem uma instância do Google SecOps.
- Use o Windows 2016 ou uma versão mais recente ou um host Linux com
systemd
. - Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
- Verifique se você tem acesso privilegiado a um roteador Cisco.
Receber o arquivo de autenticação de ingestão do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.
Receber o ID do cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do Bindplane
Instalação do Windows
- Abra o Prompt de Comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de root ou sudo.
Execute este comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Outros recursos de instalação
- Para mais opções de instalação, consulte este guia de instalação.
Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps
Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml
. Normalmente, ele fica no diretório/etc/bindplane-agent/
no Linux ou no diretório de instalação no Windows. - Abra o arquivo usando um editor de texto (por exemplo,
nano
,vi
ou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
config.yaml
da seguinte forma:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: CISCO_ROUTER raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
Substitua
<customer_id>
pelo ID do cliente real.Atualize
/path/to/ingestion-authentication-file.json
para o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.
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 bindplane-agent
Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar o Syslog em um roteador Cisco
- Faça login no roteador Cisco.
Amplie os privilégios inserindo o comando
enable
:Switch> enable Switch#
Mude para o modo de configuração inserindo o comando
conf t
:Switch# conf t Switch(config)#
Digite os seguintes comandos:
logging host <bindplane-server-ip> transport <tcp/udp> port <port-number> logging source-interface <interface>
- Substitua
<bindplane-server-ip>
pelo endereço IP do agente do Bindplane e<port-number>
pela porta configurada. - Substitua
<tcp/udp>
pelo protocolo de escuta configurado no agente do Bindplane, por exemplo,udp
. - Substitua
<interface>
pelo ID da interface da Cisco, por exemplo,Ethernet1/1
.
- Substitua
Defina o nível de prioridade inserindo o seguinte comando:
logging trap Informational logging console Informational logging severity Informational
Defina a facilidade do syslog:
logging facility local6
Para ativar os carimbos de data/hora, digite o seguinte comando:
service timestamps log datetime
Salve e saia.
Configure as configurações para sobreviver à reinicialização inserindo o seguinte comando:
copy running-config startup-config
Tabela de mapeamento do UDM
Campo de registro | Mapeamento da UDM | Lógica |
---|---|---|
client_ip |
target.ip, target.asset.ip | O valor é extraído do campo client_ip pelo analisador grok. |
client_mac |
target.mac | O valor é extraído do campo client_mac pelo analisador grok. |
dst_ip |
target.ip, target.asset.ip | O valor é extraído do campo dst_ip pelo analisador grok. |
dst_port |
target.port | O valor é extraído do campo dst_port pelo analisador grok e convertido em um número inteiro. |
duration |
- | Esse campo não é mapeado para a UDM. |
host_ip |
target.ip, target.asset.ip | O valor é extraído do campo host_ip pelo analisador grok. |
local_proxy |
intermediary.ip | O valor é extraído do campo local_proxy pelo analisador grok. |
message_data |
metadata.description | O valor é extraído do campo message_data pelo analisador grok. |
protocol |
network.ip_protocol | O valor é extraído do campo protocol pelo analisador grok e convertido para letras maiúsculas. |
received_bytes |
network.received_bytes | O valor é extraído do campo received_bytes pelo analisador grok e convertido em um número inteiro sem sinal. |
referral_url |
network.http.referral_url | O valor é extraído do campo referral_url pelo analisador grok. |
remote_proxy |
intermediary.ip | O valor é extraído do campo remote_proxy pelo analisador grok. |
send_bytes |
network.sent_bytes | O valor é extraído do campo send_bytes pelo analisador grok e convertido em um número inteiro sem sinal. |
sent_bytes |
network.sent_bytes | O valor é extraído do campo sent_bytes pelo analisador grok e convertido em um número inteiro sem sinal. |
server_host |
target.hostname, target.asset.hostname | O valor é extraído do campo server_host pelo analisador grok. |
server_ip |
target.ip, target.asset.ip | O valor é extraído do campo server_ip pelo analisador grok. |
src_ip |
principal.ip, principal.asset.ip | O valor é extraído do campo src_ip pelo analisador grok. |
src_port |
principal.port | O valor é extraído do campo src_port pelo analisador grok e convertido em um número inteiro. |
user_ip |
target.ip, target.asset.ip | O valor é extraído do campo user_ip pelo analisador grok. |
user_mail |
principal.user.userid, principal.user.email_addresses | O valor é extraído do campo user_mail pelo analisador grok. |
username |
target.user.userid | O valor é extraído do campo username pelo analisador grok. |
- | metadata.event_timestamp | O valor é extraído do campo create_time . |
- | metadata.event_type | O valor é definido como GENERIC_EVENT por padrão e muda para tipos de eventos específicos com base na mensagem de registro analisada. |
- | metadata.log_type | O valor é definido como CISCO_ROUTER . |
- | metadata.product_event_type | O valor é extraído do campo message_type , que é gerado combinando os campos facility , priority e mnemonics . |
- | metadata.product_name | O valor é definido como Router . |
- | metadata.vendor_name | O valor é definido como Cisco . |
- | network.application_protocol | O valor é definido como HTTP ou HTTPS se o campo protocol for http ou https , respectivamente. |
- | extensions.auth.type | O valor é definido como AUTHTYPE_UNSPECIFIED por padrão e mudado para tipos de autenticação específicos com base na mensagem de registro analisada. |
- | security_result.action | O valor é definido como ALLOW para logins bem-sucedidos e BLOCK para logins com falha. |
- | security_result.category | O valor é definido como NETWORK_SUSPICIOUS para eventos com opções de IP e AUTH_VIOLATION para falhas de login. |
- | security_result.description | O valor é definido como mensagens específicas para diferentes eventos. |
- | security_result.severity | O valor é definido como LOW para logins bem-sucedidos, MEDIUM para logins com falha e INFORMATIONAL para outros eventos. |
- | security_result.severity_details | O valor é extraído do campo fail_reason para logins com falha e definido como Informational message para eventos com opções de IP. |
- | security_result.summary | O valor é definido como mensagens específicas para diferentes eventos. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.