Recolha registos da plataforma de serviços de fibra ADVA
Este documento explica como carregar registos da ADVA Fiber Service Platform (ADVA FSP) para o Google Security Operations através do Bindplane. O analisador extrai campos das mensagens syslog do comutador e do router, convertendo-os em pares de chave-valor. Em seguida, mapeia estes campos extraídos e os respetivos valores para os campos correspondentes no esquema UDM do Chronicle, enriquecendo os dados para análise de segurança.
Antes de começar
Certifique-se de que cumpre os seguintes pré-requisitos:
- Uma instância do Google SecOps
- Um anfitrião Windows 2012 SP2 ou posterior, ou Linux com
systemd - Se estiver a executar o agente através de um proxy, certifique-se de que as portas da firewall estão abertas de acordo com os requisitos do agente Bindplane
- Acesso privilegiado à consola de gestão de dispositivos ADVA FSP
Obtenha o ficheiro de autenticação de carregamento do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.
Obtenha o ID de cliente do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Perfil.
- Copie e guarde o ID do cliente da secção Detalhes da organização.
Instale o agente do Bindplane
Instale o agente do Bindplane no seu sistema operativo Windows ou Linux de acordo com as seguintes instruções.
Instalação de janelas
- Abra a Linha de comandos ou o PowerShell como administrador.
Execute o seguinte 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 raiz ou sudo.
Execute o seguinte comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Recursos de instalação adicionais
- Para ver opções de instalação adicionais, consulte este guia de instalação.
Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps
Aceda ao ficheiro de configuração:
- Localize o ficheiro
config.yaml. Normalmente, encontra-se no diretório/etc/bindplane-agent/no Linux ou no diretório de instalação no Windows. - Abra o ficheiro com um editor de texto (por exemplo,
nano,viou Bloco de notas).
- Localize o ficheiro
Edite o ficheiro
config.yaml. Seguem-se duas opções de recetor funcionais. Escolha a que corresponde à forma como o seu dispositivo envia registos:- Opção A – Recetor de registos UDP (UDP simples)
receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip creds_file_path: '/path/to/ingestion-authentication-file.json' customer_id: <CUSTOMER_ID> endpoint: malachiteingestion-pa.googleapis.com log_type: 'ADVA_FSP' raw_log_field: body ingestion_labels: service: pipelines: logs/adva-fsp: receivers: - udplog exporters: - chronicle/chronicle_w_labels- Opção B: recetor Syslog (recomendado para enquadramento Syslog rigoroso)
receivers: syslog: tcp: listen_address: "0.0.0.0:514" protocol: rfc5424 # or rfc3164 if your device uses BSD syslog exporters: chronicle/chronicle_w_labels: compression: gzip creds_file_path: '/path/to/ingestion-authentication-file.json' customer_id: <CUSTOMER_ID> endpoint: malachiteingestion-pa.googleapis.com log_type: 'ADVA_FSP' raw_log_field: body ingestion_labels: source: 'adva-fsp' env: 'production' service: pipelines: logs/adva-fsp: receivers: - syslog exporters: - chronicle/chronicle_w_labels- Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
- Substitua
<CUSTOMER_ID>pelo ID de cliente real. - Atualize
/path/to/ingestion-authentication-file.jsonpara o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.
Reinicie o agente do Bindplane para aplicar as alterações
Para reiniciar o agente Bindplane no Linux, execute o seguinte comando:
sudo systemctl restart bindplane-agentPara reiniciar o agente do Bindplane no Windows, pode usar a consola Serviços ou introduzir o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgentConfigure o encaminhamento de Syslog no ADVA FSP
- Inicie sessão na ADVA FSP Management Console.
- Aceda a Node > Geral > Controlos.
- Na secção Destinatários de eventos remotos (SysLog), clique em Adicionar.
- Forneça os seguintes detalhes de configuração:
- Endereço IPv4/v6: introduza o endereço IP do agente Bindplane.
- Porta: introduza o número da porta do agente do Bindplane (por exemplo,
514). - Protocolo: selecione UDP ou TCP, consoante a configuração real do agente Bindplane.
- Extensão de mensagem: opcional: clique em Adicionar etiqueta do utilizador para incluir identificadores adicionais nas mensagens.
- Clique em Guardar para ativar a configuração.
Tabela de mapeamento da UDM
| Campo de registo | Mapeamento do UDM | Lógica |
|---|---|---|
| ACCESSORDER | additional.fields.value.string_value | O valor é retirado do campo ACCESSORDER no registo não processado. |
| MORADA | principal.ip | O valor é retirado do campo ADDRESS no registo não processado e analisado como um endereço IP. |
| ADMINSTATE | additional.fields.value.string_value | O valor é retirado do campo ADMINSTATE no registo não processado. |
| AISCLIENTMDLEVEL | additional.fields.value.string_value | O valor é retirado do campo AISCLIENTMDLEVEL no registo não processado. |
| AISGENENABLED | additional.fields.value.string_value | O valor é retirado do campo AISGENENABLED no registo não processado. |
| AISPRIORITY | additional.fields.value.string_value | O valor é retirado do campo AISPRIORITY no registo não processado. |
| AISTXPERIOD | additional.fields.value.string_value | O valor é retirado do campo AISTXPERIOD no registo não processado. |
| AISTRIGGERTYPES | additional.fields.value.string_value | O valor é retirado do campo AISTRIGGERTYPES no registo não processado. |
| BUFFERSIZE | additional.fields.value.string_value | O valor é retirado do campo BUFFERSIZE no registo não processado. |
| CCIENABLED | additional.fields.value.string_value | O valor é retirado do campo CCIENABLED no registo não processado. |
| CCMINTERFACESTATUSTLVCONTROL | additional.fields.value.string_value | O valor é retirado do campo CCMINTERFACESTATUSTLVCONTROL no registo não processado. |
| CCMLTMPRIORITY | additional.fields.value.string_value | O valor é retirado do campo CCMLTMPRIORITY no registo não processado. |
| CFMTAGETHERTYPE | additional.fields.value.string_value | O valor é retirado do campo CFMTAGETHERTYPE no registo não processado. |
| CIR | additional.fields.value.string_value | O valor é retirado do campo CIR no registo não processado. |
| COS | additional.fields.value.string_value | O valor é retirado do campo COS no registo não processado. |
| CT | metadata.description | O valor é retirado do campo CT no registo não processado. |
| DESTBMAC | target.mac | O valor é retirado do campo DESTBMAC no registo não processado e analisado como um endereço MAC. |
| DHCPCIDENABLED | additional.fields.value.string_value | O valor é retirado do campo DHCPCIDENABLED no registo não processado. |
| DHCPENABLED | additional.fields.value.string_value | O valor é retirado do campo DHCPENABLED no registo não processado. |
| DHCPHOSTNAME | network.dhcp.client_hostname | O valor é retirado do campo DHCPHOSTNAME no registo não processado. |
| DHCPHOSTNAMEENABLED | additional.fields.value.string_value | O valor é retirado do campo DHCPHOSTNAMEENABLED no registo não processado. |
| DHCPHOSTNAMETYPE | additional.fields.value.string_value | O valor é retirado do campo DHCPHOSTNAMETYPE no registo não processado. |
| DHCPLOGSERVERENABLED | additional.fields.value.string_value | O valor é retirado do campo DHCPLOGSERVERENABLED no registo não processado. |
| DHCPNTPSERVERENABLED | additional.fields.value.string_value | O valor é retirado do campo DHCPNTPSERVERENABLED no registo não processado. |
| DHCPV6CIDENABLED | additional.fields.value.string_value | O valor é retirado do campo DHCPV6CIDENABLED no registo não processado. |
| DHCPV6ENABLED | additional.fields.value.string_value | O valor é retirado do campo DHCPV6ENABLED no registo não processado. |
| DHCPV6ROLE | additional.fields.value.string_value | O valor é retirado do campo DHCPV6ROLE no registo não processado. |
| DHCPVENDORINFOTYPE | additional.fields.value.string_value | O valor é retirado do campo DHCPVENDORINFOTYPE no registo não processado. |
| DIR | additional.fields.value.string_value | O valor é retirado do campo DIR no registo não processado. |
| DIRECTION | network.direction | O valor é definido como "OUTBOUND" se o campo DIRECTION no registo não processado for "UP" (sem distinção entre maiúsculas e minúsculas), "INBOUND" se for "DOWN" e fica vazio caso contrário. |
| ENCAPSULATIONTYPE | additional.fields.value.string_value | O valor é retirado do campo ENCAPSULATIONTYPE no registo não processado. |
| GUARANTEEDA2NBW | additional.fields.value.string_value | O valor é retirado do campo GUARANTEEDA2NBW no registo não processado. |
| HCOSMGMTENABLED | additional.fields.value.string_value | O valor é retirado do campo HCOSMGMTENABLED no registo não processado. |
| INT | additional.fields.value.string_value | O valor é retirado do campo INT no registo não processado. |
| IPMODE | additional.fields.value.string_value | O valor é retirado do campo IPMODE no registo não processado. |
| IPV6ADDR | principal.ip | O valor é retirado do campo IPV6ADDR no registo não processado e analisado como um endereço IP. |
| IPV6ADDRPREFIXLENGTH | additional.fields.value.string_value | O valor é retirado do campo IPV6ADDRPREFIXLENGTH no registo não processado. |
| IPV6MTU | additional.fields.value.string_value | O valor é retirado do campo IPV6MTU no registo não processado. |
| ITAG | additional.fields.value.string_value | O valor é retirado do campo ITAG no registo não processado. |
| ITAGENABLED | additional.fields.value.string_value | O valor é retirado do campo ITAGENABLED no registo não processado. |
| LBMTXDESTTYPE | additional.fields.value.string_value | O valor é retirado do campo LBMTXDESTTYPE no registo não processado. |
| LBMTXNUMMSGS | additional.fields.value.string_value | O valor é retirado do campo LBMTXNUMMSGS no registo não processado. |
| LBMTXVLANDROPENABLE | additional.fields.value.string_value | O valor é retirado do campo LBMTXVLANDROPENABLE no registo não processado. |
| LBMTXVLANPRIORITY | additional.fields.value.string_value | O valor é retirado do campo LBMTXVLANPRIORITY no registo não processado. |
| LLRESPONDERENABLED | additional.fields.value.string_value | O valor é retirado do campo LLRESPONDERENABLED no registo não processado. |
| LLVIDLIST | additional.fields.value.string_value | O valor é retirado do campo LLVIDLIST no registo não processado. |
| LMDUALENDEDCOUNTALLPRIOS | additional.fields.value.string_value | O valor é retirado do campo LMDUALENDEDCOUNTALLPRIOS no registo não processado. |
| LMINPROFILEONLY | additional.fields.value.string_value | O valor é retirado do campo LMINPROFILEONLY no registo não processado. |
| LMRXCOUNTALLPRIOS | additional.fields.value.string_value | O valor é retirado do campo LMRXCOUNTALLPRIOS no registo não processado. |
| LMTXCOUNTALLPRIOS | additional.fields.value.string_value | O valor é retirado do campo LMTXCOUNTALLPRIOS no registo não processado. |
| LOC | additional.fields.value.string_value | O valor é retirado do campo LOC no registo não processado. |
| LOCN | additional.fields.value.string_value | O valor é retirado do campo LOCN no registo não processado. |
| LOGINTIMEOUT | additional.fields.value.string_value | O valor é retirado do campo LOGINTIMEOUT no registo não processado. |
| LOOPBACKBLOCKINGENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKBLOCKINGENABLED no registo não processado. |
| LOOPBACKCONFIG | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKCONFIG no registo não processado. |
| LOOPBACKDESTMAC | target.mac | O valor é retirado do campo LOOPBACKDESTMAC no registo não processado e analisado como um endereço MAC. |
| LOOPBACKDESTMACCONTROL | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKDESTMACCONTROL no registo não processado. |
| LOOPBACKINNERVLAN1 | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKINNERVLAN1 no registo não processado. |
| LOOPBACKINNERVLAN1ENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKINNERVLAN1ENABLED no registo não processado. |
| LOOPBACKINNERVLAN2 | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKINNERVLAN2 no registo não processado. |
| LOOPBACKINNERVLAN2ENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKINNERVLAN2ENABLED no registo não processado. |
| LOOPBACKINNERVLAN3 | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKINNERVLAN3 no registo não processado. |
| LOOPBACKINNERVLAN3ENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKINNERVLAN3ENABLED no registo não processado. |
| LOOPBACKOUTERITAG1 | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERITAG1 no registo não processado. |
| LOOPBACKOUTERITAG1ENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERITAG1ENABLED no registo não processado. |
| LOOPBACKOUTERITAG2 | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERITAG2 no registo não processado. |
| LOOPBACKOUTERITAG2ENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERITAG2ENABLED no registo não processado. |
| LOOPBACKOUTERITAG3 | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERITAG3 no registo não processado. |
| LOOPBACKOUTERITAG3ENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERITAG3ENABLED no registo não processado. |
| LOOPBACKOUTERVLAN1 | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERVLAN1 no registo não processado. |
| LOOPBACKOUTERVLAN1ENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERVLAN1ENABLED no registo não processado. |
| LOOPBACKOUTERVLAN2 | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERVLAN2 no registo não processado. |
| LOOPBACKOUTERVLAN2ENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERVLAN2ENABLED no registo não processado. |
| LOOPBACKOUTERVLAN3 | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERVLAN3 no registo não processado. |
| LOOPBACKOUTERVLAN3ENABLED | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKOUTERVLAN3ENABLED no registo não processado. |
| LOOPBACKSOURCEMAC | principal.mac | O valor é retirado do campo LOOPBACKSOURCEMAC no registo não processado e analisado como um endereço MAC. |
| LOOPBACKSWAPSADA | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKSWAPSADA no registo não processado. |
| LOOPBACKTIMER | additional.fields.value.string_value | O valor é retirado do campo LOOPBACKTIMER no registo não processado. |
| LOWESTPRIODEFECT | additional.fields.value.string_value | O valor é retirado do campo LOWESTPRIODEFECT no registo não processado. |
| LTMTXDESTTYPE | additional.fields.value.string_value | O valor é retirado do campo LTMTXDESTTYPE no registo não processado. |
| LTMTXEGRESSID | metadata.product_log_id | O valor é retirado do campo LTMTXEGRESSID no registo não processado. |
| LTMTXFLAGS | additional.fields.value.string_value | O valor é retirado do campo LTMTXFLAGS no registo não processado. |
| LTMTXTTL | additional.fields.value.string_value | O valor é retirado do campo LTMTXTTL no registo não processado. |
| MT | additional.fields.value.string_value | O valor é retirado do campo MT no registo não processado. |
| MAXIMUMA2NBW | additional.fields.value.string_value | O valor é retirado do campo MAXIMUMA2NBW no registo não processado. |
| MVAL | additional.fields.value.string_value | O valor é retirado do campo MVAL no registo não processado. |
| NOME | additional.fields.value.string_value | O valor é retirado do campo NAME no registo não processado. |
| NC | additional.fields.value.string_value | O valor é retirado do campo NC no registo não processado. |
| PORTEID | additional.fields.value.string_value | O valor é retirado do campo PORTEID no registo não processado. |
| PORTLLENABLED | additional.fields.value.string_value | O valor é retirado do campo PORTLLENABLED no registo não processado. |
| PRIMARYSERVER | target.ip | O valor é retirado do campo PRIMARYSERVER no registo não processado e analisado como um endereço IP. |
| PRIMARYVID | additional.fields.value.string_value | O valor é retirado do campo PRIMARYVID no registo não processado. |
| QUEUEPROFILEID | additional.fields.value.string_value | O valor é retirado do campo QUEUEPROFILEID no registo não processado. |
| RXSHAPEREID | additional.fields.value.string_value | O valor é retirado do campo RXSHAPEREID no registo não processado. |
| SATRESPONDENABLED | additional.fields.value.string_value | O valor é retirado do campo SATRESPONDENABLED no registo não processado. |
| SE | additional.fields.value.string_value | O valor é retirado do campo SE no registo não processado. |
| SHAREDVIM | additional.fields.value.string_value | O valor é retirado do campo SHAREDVIM no registo não processado. |
| SVLANENABLED | additional.fields.value.string_value | O valor é retirado do campo SVLANENABLED no registo não processado. |
| SVLANID | additional.fields.value.string_value | O valor é retirado do campo SVLANID no registo não processado. |
| SYSLOCATION | principal.location.country_or_region | O valor é retirado do campo SYSLOCATION no registo não processado. |
| THVAL | additional.fields.value.string_value | O valor é retirado do campo THVAL no registo não processado. |
| TIPO | additional.fields.value.string_value | O valor é retirado do campo TYPE no registo não processado. |
| USERACCESSTYPE | additional.fields.value.string_value | O valor é retirado do campo USERACCESSTYPE no registo não processado. |
| USERAUTHKEY | additional.fields.value.string_value | O valor é retirado do campo USERAUTHKEY no registo não processado. |
| USERAUTHKEYLOCAL | additional.fields.value.string_value | O valor é retirado do campo USERAUTHKEYLOCAL no registo não processado. |
| USERAUTHPROTOCOL | additional.fields.value.string_value | O valor é retirado do campo USERAUTHPROTOCOL no registo não processado. |
| USERENGINEID | additional.fields.value.string_value | O valor é retirado do campo USERENGINEID no registo não processado. |
| USERKEYSLOCAL | additional.fields.value.string_value | O valor é retirado do campo USERKEYSLOCAL no registo não processado. |
| NOME DE UTILIZADOR | principal.user.userid | O valor é retirado do campo USERNAME no registo não processado. |
| USERPRIVKEY | additional.fields.value.string_value | O valor é retirado do campo USERPRIVKEY no registo não processado. |
| USERPRIVKEYLOCAL | additional.fields.value.string_value | O valor é retirado do campo USERPRIVKEYLOCAL no registo não processado. |
| USERPRIVPROTOCOL | additional.fields.value.string_value | O valor é retirado do campo USERPRIVPROTOCOL no registo não processado. |
| USERSECURITYLEVEL | additional.fields.value.string_value | O valor é retirado do campo USERSECURITYLEVEL no registo não processado. |
| USERSECURITYNAME | principal.user.user_display_name | O valor é retirado do campo USERSECURITYNAME no registo não processado. |
| aplicação | principal.application | O valor é retirado do campo de aplicação extraído pelo analisador grok. |
| descrição | security_result.description | O valor é retirado do campo de descrição extraído pelo analisador grok. |
| metadata.description | O valor é definido como "Backup NTP Server Failed" se o campo CT no registo não processado for "Backup NTP Server Failed". | |
| metadata.event_timestamp.seconds | O valor é retirado do campo de data/hora extraído pelo analisador grok e convertido em segundos desde epoch. | |
| metadata.event_type | O valor é definido com base na seguinte lógica: - NETWORK_DHCP se network_dhcp_present for verdadeiro e principal_present ou target_present for verdadeiro. - NETWORK_CONNECTION se target_present e principal_present forem ambos verdadeiros. - USER_RESOURCE_ACCESS se user_present for verdadeiro. - STATUS_UPDATE se principal_present for verdadeiro. - GENERIC_EVENT caso contrário. |
|
| metadata.product_log_id | O valor é retirado do campo LTMTXEGRESSID no registo não processado. | |
| metadata.product_name | O valor é definido como "ADVA_FSP". | |
| metadata.vendor_name | O valor é definido como "ADVA_FSP". | |
| network.application_protocol | O valor é definido como "DHCP" se network_dhcp_present for verdadeiro e principal_present ou target_present for verdadeiro. | |
| principal.hostname | O valor é retirado do campo principal_hostname extraído pelo analisador grok, com os carateres de sublinhado removidos. | |
| principal.ip | O valor é retirado do campo IPADDR no registo não processado e analisado como um endereço IP. | |
| timestamp.seconds | O valor é retirado do campo de data/hora extraído pelo analisador grok e convertido em segundos desde epoch. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.