Coletar registros do balanceador de carga de rede A10
Este documento explica como exportar os registros do balanceador de carga de rede A10 para as operações de segurança do Google usando um agente do Bindplane. O analisador primeiro usa padrões grok
para extrair campos relevantes. Em seguida, ele usa instruções condicionais (if
) para mapear os campos extraídos para o modelo de dados unificado (UDM) com base na presença e no conteúdo deles, categorizando o tipo de evento.
Antes de começar
- Verifique se você tem uma instância do Google SecOps.
- Verifique se você está usando o Windows 2016 ou uma versão mais recente ou um host Linux com
systemd
. - Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
- Verifique se você tem acesso privilegiado ao A10 Load Balancer.
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.
- Faça o download do arquivo de autenticação de transferência. Salve o arquivo com segurança no sistema em que o 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
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 raiz 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 processar o Syslog e enviar ao Google SecOps
Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml
. Normalmente, ele está 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 Notepad).
- 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: A10_LOAD_BALANCER 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 real do cliente.Atualize
/path/to/ingestion-authentication-file.json
para o caminho em que o arquivo de autenticação foi salvo na seção Receber o arquivo de autenticação de transferência 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 Services ou digite o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar o servidor Syslog no balanceador de carga A10
- Estabeleça uma conexão SSH com o A10 Load Balancer usando um cliente SSH.
Entre no modo de configuração executando o seguinte comando:
config
Configure o servidor syslog remoto usando o seguinte comando:
logging host <bindplane-server-ip> <port-number>
- Substitua
<bindplane-server-ip>
pelo endereço IP do BindPlane e<port-number>
pelo configurado no BindPlane. Por exemplo,514
.
- Substitua
Defina o nível de gravidade usando o seguinte comando:
logging level information
- Isso vai enviar mensagens informativas (como avisos e erros) para o agente do Bindplane.
Para verificar se a geração de registros do syslog está ativada, execute:
logging enable
Salve a configuração para garantir que ela persista após uma reinicialização:
write memory
Exemplo de uma configuração completa da CLI:
config logging host 192.168.1.100 514 logging level info logging enable write memory
Tabela de mapeamento do UDM
Campo de registro | Mapeamento de UDM | Lógica |
---|---|---|
dns | additional.fields.dns.value.string_value | O valor é extraído do campo dns pelo padrão grok. |
dns_server | additional.fields.dns_server.value.string_value | O valor é extraído do campo dns_server pelo padrão grok. |
gslb | additional.fields.gslb.value.string_value | O valor é extraído do campo gslb pelo padrão grok. |
host_name | principal.hostname principal.asset.hostname |
O valor é extraído do campo host_name pelo padrão grok. |
httpmethod | network.http.method | O valor é extraído do campo httpmethod pelo padrão grok. |
partion_id | additional.fields.partion_id.value.string_value | O valor é extraído do campo partion_id pelo padrão grok. |
prin_ip | principal.ip principal.asset.ip |
O valor é extraído do campo prin_ip pelo padrão grok. |
prin_mac | principal.mac | O valor é retirado do campo prin_mac extraído pelo padrão grok, com pontos removidos e dois-pontos inseridos a cada dois caracteres. |
prin_port | principal.port | O valor é extraído do campo prin_port , extraído pelo padrão grok e convertido em um número inteiro. |
proto | network.ip_protocol | O valor é extraído do campo proto pelo padrão grok. Se o campo message contiver UDP , o valor será definido como UDP . |
sessionid | network.session_id | O valor é extraído do campo sessionid pelo padrão grok. |
status_code | network.http.response_code | O valor é extraído do campo status_code , extraído pelo padrão grok e convertido em um número inteiro. |
tar_ip | target.ip target.asset.ip |
O valor é extraído do campo tar_ip pelo padrão grok. |
tar_mac | target.mac | O valor é retirado do campo tar_mac extraído pelo padrão grok, com pontos removidos e dois-pontos inseridos a cada dois caracteres. |
tar_port | target.port | O valor é extraído do campo tar_port , extraído pelo padrão grok e convertido em um número inteiro. |
tempo | metadata.event_timestamp.seconds | O valor é analisado do campo time extraído pelo padrão grok, usando vários formatos de data possíveis. |
url | target.url | O valor é extraído do campo url pelo padrão grok. |
usuário | principal.user.userid | O valor é extraído do campo user pelo padrão grok. |
N/A | metadata.event_type | Determinado pela lógica do analisador com base na presença de informações principais e de destino: - NETWORK_CONNECTION : se as informações principais e de destino estiverem presentes.- STATUS_UPDATE : se apenas as informações principais estiverem presentes.- GENERIC_EVENT : caso contrário. |
N/A | metadata.log_type | Fixado em A10_LOAD_BALANCER . |
N/A | network.application_protocol | Defina como HTTP se o campo proto for HTTP . |
Alterações
2024-12-27
Melhoria:
- Foram adicionados padrões Grok para analisar registros não analisados.
- Um bloco KV foi adicionado para analisar os registros.
- Mapeamento de
prin_host
paraprincipal.hostname
eprincipal.asset.hostname
. app
foi mapeado paratarget.application
.device_version
foi mapeado parametadata.product_version
.device_vendor
foi mapeado parametadata.vendor_name
.device_product
foi mapeado parametadata.product_name
.- Mapeamento de
event_name
edevice_event_class_id
paramadeta.product_event_type
. severity
foi mapeado parasecurity_result.severity
.- Mapeamento de
src
paraprincipal.ip
eprincipal.asset.ip
. spt
foi mapeado paraprincipal.port
.- Mapeamento de
dst
paratarget.ip
etarget.asset.ip
. dpt
foi mapeado paratarget.port
.msg
foi mapeado parametadata.description
.suser
foi mapeado paraprincipal.user.user_display_name
.- Mapeamento de
act
ecn1
paraadditional.fields
. method
foi mapeado paranetwork.http.method
.app_proto
foi mapeado paranetwork.application_protocol
.tls_version
foi mapeado paranetwork.tls.version
.
2024-01-28
- Parser recém-criado.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.