Coletar registros de switches da Cisco
Versão do analisador:27.0
Este documento explica como ingerir registros de switches da Cisco no Google Security Operations usando o agente do Bindplane.
Os switches da Cisco geram mensagens do syslog para mudanças de estado da 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 Bindplane.
- Acesso privilegiado à CLI do switch da 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 com segurança no sistema em que o agente do Bindplane será instalado.
Receber o ID de 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
Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.
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" /quietAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sc query observiq-otel-collectorO serviço vai aparecer como EM EXECUÇÃO.
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.shAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sudo systemctl status observiq-otel-collectorO 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
Localizar o arquivo de configuração
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Editar o arquivo de configuração
Substitua todo o conteúdo de
config.yamlpela seguinte configuração:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/cisco_switch: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.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.0para detectar em todas as interfaces (recomendado)- A porta
514é a porta padrão do syslog. Ela exige acesso root no Linux. Use1514para acesso não root.
Configuração do exportador:
creds_file_path: caminho completo para o arquivo de autenticação de ingestão:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: ID do cliente copiado do console do Google SecOpsendpoint: URL do endpoint regional:- EUA:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Ásia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Consulte a lista completa em Endpoints regionais.
- EUA:
Salve o arquivo de configuração.
- Depois de editar, salve o arquivo:
- Linux: pressione
Ctrl+O,EntereCtrl+X. - Windows: clique em Arquivo > Salvar.
- Linux: pressione
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-collectorVerifique se o serviço está em execução:
```bash sudo systemctl status observiq-otel-collector ```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-collectorConsole de serviços:
- Pressione
Win+R, digiteservices.msce pressione Enter. - Localize o Coletor do OpenTelemetry da observIQ.
- Clique com o botão direito do mouse e selecione Reiniciar.
Verifique se o serviço está em execução:
sc query observiq-otel-collectorVerifique se há erros nos registros:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Pressione
Configurar o syslog em um switch Cisco
- Faça login no switch da Cisco.
Ampliar privilégios:
enableMude para o modo de configuração:
conf tConfigure 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 escuta configurado (por exemplo,udp). - Substitua
<INTERFACE>pelo ID da interface da Cisco.
- Substitua
Defina o nível de prioridade:
logging trap Informational logging console Informational logging severity InformationalDefina a facilidade do syslog:
logging facility local6Ative as marcações de tempo:
service timestamps log datetimeSalve e saia.
Salve a configuração para sobreviver à 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. |
| residencial geriátrico | 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 | MACHINE | |
| 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 mudanças |
priority |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
product_log_id |
event.idm.read_only_udm.metadata.product_log_id |
Mapeado do registro de mudanças |
_time |
event.idm.read_only_udm.metadata.collected_timestamp |
Mapeado do registro de mudanças |
vlan_data |
event.idm.read_only_udm.intermediary.resource.attribute.labels |
Mapeado do registro de mudanças |
intermediary_ip |
event.idm.read_only_udm.intermediary.ip |
Mapeado do registro de mudanças |
intermediary_ip |
event.idm.read_only_udm.intermediary.asset.ip |
Mapeado do registro de mudanças |
time_stamp |
event.idm.read_only_udm.metadata.event_timestamp |
Mapeado do registro de mudanças |
process_name |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
switch_id |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
log_seq_num |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
log_seq_num_2 |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
p_interface |
event.idm.read_only_udm.principal.resource.name |
Mapeado do registro de mudanças |
audit_session_id |
event.idm.read_only_udm.security_result.detection_fields |
Mapeado do registro de mudanças |
mac |
event.idm.read_only_udm.principal.mac |
Mapeado do registro de mudanças |
packets |
event.idm.read_only_udm.network.sent_packets |
Mapeado do registro de mudanças |
facility |
event.idm.read_only_udm.principal.resource.resource_subtype |
Mapeado do registro de mudanças |
seq_num |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
device_hostname |
event.idm.read_only_udm.principal.hostname e event.idm.read_only_udm.principal.asset.hostname |
Mapeado do registro de mudanças |
id |
event.idm.read_only_udm.principal.user.userid |
Mapeado do registro de mudanças |
seq_num |
event.idm.read_only_udm.target.user.userid |
Mapeado do registro de mudanças |
log_message |
event.idm.read_only_udm.metadata.description |
Mapeado do registro de mudanças |
syslog_tag |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
syslog_pri |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
appcat |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
applist |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
dstintf |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
dstintfrole |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
mastersrcmac |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
osname |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
poluuid |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
service |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
srchwvendor |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
srcintf |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
srcintfrole |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
srcserver |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
transport |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
trandisp |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
vd |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
vwlid |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
devid |
event.idm.read_only_udm.intermediary.asset.product_object_id |
Mapeado do registro de mudanças |
devname |
event.idm.read_only_udm.intermediary.hostname |
Mapeado do registro de mudanças |
logid |
event.idm.read_only_udm.metadata.product_log_id |
Mapeado do registro de mudanças |
subtype |
event.idm.read_only_udm.network.direction |
Mapeado do registro de mudanças |
proto |
event.idm.read_only_udm.network.ip_protocol |
Mapeado do registro de mudanças |
rcvdbyte |
event.idm.read_only_udm.network.received_bytes |
Mapeado do registro de mudanças |
sentbyte |
event.idm.read_only_udm.network.sent_bytes |
Mapeado do registro de mudanças |
sentpkt |
event.idm.read_only_udm.network.sent_packets |
Mapeado do registro de mudanças |
duration |
event.idm.read_only_udm.network.session_duration.seconds |
Mapeado do registro de mudanças |
sessionid |
event.idm.read_only_udm.network.session_id |
Mapeado do registro de mudanças |
srcname |
event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.principal.hostname |
Mapeado do registro de mudanças |
srcip |
event.idm.read_only_udm.principal.asset.ip, event.idm.read_only_udm.principal.ip |
Mapeado do registro de mudanças |
srcmac |
event.idm.read_only_udm.principal.asset.mac, event.idm.read_only_udm.principal.mac |
Mapeado do registro de mudanças |
osname |
event.idm.read_only_udm.principal.asset.platform_software.platform |
Mapeado do registro de mudanças |
srcswversion |
event.idm.read_only_udm.principal.asset.platform_software.platform_version |
Mapeado do registro de mudanças |
srccountry |
event.idm.read_only_udm.principal.location.country_or_region |
Mapeado do registro de mudanças |
transip |
event.idm.read_only_udm.principal.nat_ip |
Mapeado do registro de mudanças |
srcport |
event.idm.read_only_udm.principal.port |
Mapeado do registro de mudanças |
action |
event.idm.read_only_udm.security_result.action |
Mapeado do registro de mudanças |
policyid |
event.idm.read_only_udm.security_result.rule_id |
Mapeado do registro de mudanças |
policyname |
event.idm.read_only_udm.security_result.rule_name |
Mapeado do registro de mudanças |
policytype |
event.idm.read_only_udm.security_result.rule_type |
Mapeado do registro de mudanças |
level |
event.idm.read_only_udm.security_result.severity |
Mapeado do registro de mudanças |
action |
event.idm.read_only_udm.security_result.summary |
Mapeado do registro de mudanças |
dstip |
event.idm.read_only_udm.target.asset.ip, event.idm.read_only_udm.target.ip |
Mapeado do registro de mudanças |
dstcountry |
event.idm.read_only_udm.target.location.country_or_region |
Mapeado do registro de mudanças |
dstport |
event.idm.read_only_udm.target.port |
Mapeado do registro de mudanças |
device |
principle.hostname |
Mapeado do registro de mudanças |
username3 |
principal.user.userid |
Mapeado do registro de mudanças |
login_status |
security_result.summary |
Mapeado do registro de mudanças |
ecs.version |
metadata.product_version |
Mapeado do registro de mudanças |
fileset.name", "flow.locality", "flow.id", "input.type", "netflow.exporter.source_id", and "netflow.exporter.uptime_millis |
additional.fields |
Mapeado do registro de mudanças |
network.transport |
network.ip_protocol |
Mapeado do registro de mudanças |
netflow.post_nat_source_ipv4_address |
principal.ip |
Mapeado do registro de mudanças |
netflow.source_transport_port |
principal.port |
Mapeado do registro de mudanças |
network.direction |
network.direction |
Mapeado do registro de mudanças |
intermediary_ip |
intermediary.ip |
Mapeado do registro de mudanças |
intermediary_hostname |
intermediary.hostname |
Mapeado do registro de mudanças |
principal_host |
principal.hostname |
Mapeado do registro de mudanças |
src_mac |
principal.mac |
Mapeado do registro de mudanças |
eventSummary |
metadata.product_event_type |
Mapeado do registro de mudanças |
error_msg |
security_result.detection_fields |
Mapeado do registro de mudanças |
pid |
principal.process.pid |
Mapeado do registro de mudanças |
srcPort |
principal.port |
Mapeado do registro de mudanças |
srcUser |
principal.user.userid |
Mapeado do registro de mudanças |
username1 |
target.user.userid |
Mapeado do registro de mudanças |
command |
target.process.command_line |
Mapeado do registro de mudanças |
PWD |
target.process.file.full_path |
Mapeado do registro de mudanças |
node_id", "cluster_id", "exception", "UniqueId", and "app_id |
additional.fields |
Mapeado do registro de mudanças |
DEVICE |
principal.mac |
Mapeado do registro de mudanças |
SRC |
principal.ip |
Mapeado do registro de mudanças |
SPT |
principal.port |
Mapeado do registro de mudanças |
DST |
target.ip |
Mapeado do registro de mudanças |
DPT |
target.port |
Mapeado do registro de mudanças |
ID |
network.session_id |
Mapeado do registro de mudanças |
LEN |
network.session_duration.seconds |
Mapeado do registro de mudanças |
PROTO |
network.ip_protocol |
Mapeado do registro de mudanças |
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 mudanças |
client_mac |
principal.mac |
Mapeado do registro de mudanças |
aid |
network.session_id |
Mapeado do registro de mudanças |
rssi |
intermediary.asset.product_object_id |
Mapeado do registro de mudanças |
channel |
security_result.detection_fields |
Mapeado do registro de mudanças |
eventSummary", "dhcp_ip", "client_mac", "aid" and "ip_src |
metadata.product_event_type |
Mapeado do registro de mudanças |
mac", "src", "sport", "dst", "dport", "action", "protocol", "url" and "signature |
principal.mac |
Mapeado do registro de mudanças |
metadata.event_type" and "extensions.auth.type |
USER_LOGIN |
Mapeado do registro de mudanças |
eventSummary", "aid", "rssi", "channel", "last_known_client_ip" and "event_type |
security_result.summary |
Mapeado do registro de mudanças |
pid |
target.process.pid |
Mapeado do registro de mudanças |
app_name |
target.application |
Mapeado do registro de mudanças |
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.