Coletar registros do Netscout Arbor Sightline
Este documento explica como ingerir registros do Netscout Arbor Sightline no Google Security Operations usando o agente Bindplane.
O Netscout Arbor Sightline (antigo Peakflow SP) é uma plataforma de detecção de DDoS e visibilidade de rede que oferece recursos robustos, desde o planejamento de capacidade em toda a rede até a identificação e o gerenciamento da mitigação de DDoS e outras ameaças à rede. O Sightline coleta e analisa dados de fluxo, informações de roteamento BGP e dados SNMP para detectar anomalias, gerar alertas e coordenar respostas de mitigação.
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 appliance Netscout Arbor Sightline
- Se você 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 administrativo à interface da Web do Netscout Arbor Sightline
- Acesso administrativo à interface de linha de comando (CLI) do Netscout Arbor Sightline para configuração de alertas do sistema
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 de cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
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
- 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/arbor_sightline: compression: gzip creds_file_path: '<CREDS_FILE_PATH>' customer_id: '<CUSTOMER_ID>' endpoint: malachiteingestion-pa.googleapis.com log_type: ARBOR_SIGHTLINE raw_log_field: body ingestion_labels: env: production service: pipelines: logs/arbor_to_chronicle: receivers: - udplog exporters: - chronicle/arbor_sightlineSubstitua os seguintes marcadores de posição:
Configuração do receptor:
- O receptor está configurado para escutar na porta UDP 514 em todas as interfaces (
0.0.0.0:514) - Se você precisar usar uma porta diferente (por exemplo,
1514para instalações Linux não raiz), modifique o valorlisten_address. - Se você preferir o syslog TCP, substitua
udplogportcplogna seção de receptores e no pipeline.
- O receptor está configurado para escutar na porta UDP 514 em todas as interfaces (
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 de cliente da etapa anteriorendpoint: URL do endpoint regional (o padrão mostrado é da região dos EUA):- 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:
log_type: defina comoARBOR_SIGHTLINE(é necessária uma correspondência exata)ingestion_labels: rótulos opcionais no formato YAML. Modifique conforme necessário para seu ambiente.
Exemplo de configuração
receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/arbor_sightline: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6' endpoint: malachiteingestion-pa.googleapis.com log_type: ARBOR_SIGHTLINE raw_log_field: body ingestion_labels: env: production source: sightline service: pipelines: logs/arbor_to_chronicle: receivers: - udplog exporters: - chronicle/arbor_sightline
Salve o arquivo de configuração.
Depois de editar, salve o arquivo:
- Linux: pressione
Ctrl+O,EntereCtrl+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 este comando:
sudo systemctl restart observiq-otel-collectorVerifique se o serviço está em execução:
sudo systemctl status observiq-otel-collectorVerifique se há erros nos registros:
sudo journalctl -u observiq-otel-collector -f
Para reiniciar o agente do Bindplane em 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.
- Pressione
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"
Configurar o encaminhamento de syslog do Netscout Arbor Sightline
Para enviar registros ao Google SecOps, configure o Netscout Arbor Sightline para encaminhar eventos syslog ao agente Bindplane. Isso envolve criar um grupo de notificações, configurar as configurações globais de notificação e definir regras de notificação de alerta.
Criar um grupo de notificações
- Faça login na interface da Web do Netscout Arbor Sightline como administrador.
- Acesse Administração > Notificação > Grupos.
- Clique em Adicionar grupo de notificação.
- Informe os seguintes detalhes de configuração:
- Destinos: insira o endereço IP do host do agente do Bindplane (por exemplo,
192.168.1.100). - Porta: digite
514ou a porta configurada no agente do Bindplane, como1514. - Instalação: selecione uma instalação do syslog (por exemplo,
local0ouuser). - Gravidade: selecione
info. A gravidade informativa coleta todas as mensagens de eventos no nível informativo e de gravidade maior.
- Destinos: insira o endereço IP do host do agente do Bindplane (por exemplo,
- Clique em Salvar.
Clique em Commit da configuração para aplicar as mudanças.
Configurar as definições de notificação globais
As notificações globais no Netscout Arbor Sightline fornecem notificações do sistema que não estão associadas a regras de alerta específicas.
- Na interface da Web do Netscout Arbor Sightline, acesse Administração > Notificação > Configurações globais.
- No campo Grupo de notificação padrão, selecione o grupo de notificação que você criou para o Google SecOps.
- Clique em Salvar.
- Clique em Commit da configuração para aplicar as mudanças.
Ativar notificações de alerta do sistema
Os alertas do sistema exigem mais configurações pela interface de linha de comando (CLI).
- Faça login na interface de linha de comando do Netscout Arbor Sightline como administrador.
Liste a configuração atual de alertas do sistema:
services sp alerts system_errors showPara listar os nomes de campos de alertas do sistema disponíveis que podem ser configurados, execute:
services sp alerts system_errors ?Ative as notificações para alertas do sistema. Para cada tipo de alerta que você quer ativar, execute:
services sp alerts system_errors <alert_name> notifications enableSubstitua
<alert_name>pelo nome do campo de alerta do sistema específico (por exemplo,disk_full,flow_collector_down,license_expiring).Confirme as mudanças de configuração:
config write
Configurar regras de notificação de alerta
As regras de notificação de alerta determinam quais alertas acionam notificações do syslog para o Google SecOps.
- Na interface da Web do Netscout Arbor Sightline, acesse Administração > Notificação > Regras.
- Escolha uma das seguintes opções:
- Clique em uma regra para editar.
- Clique em Adicionar regra para criar uma regra de notificação.
- Configure os seguintes valores:
- Nome: insira um nome descritivo para a regra. Por exemplo,
Chronicle-DDoS-Alerts. - Recurso: insira um endereço CIDR ou selecione um objeto gerenciado na lista de recursos do Sightline. Para aplicar a regra a todos os recursos, deixe este campo vazio ou selecione Todos.
- Importância: selecione o nível mínimo de importância para alertas (por exemplo,
Low,Medium,HighouCritical). Os alertas nesse nível ou acima dele vão acionar notificações. - Grupo de notificação: selecione o grupo de notificação criado para o Google SecOps.
- Nome: insira um nome descritivo para a regra. Por exemplo,
- Repita essas etapas para configurar outras regras conforme necessário para diferentes recursos ou níveis de importância.
- Clique em Salvar.
Clique em Commit da configuração para aplicar as mudanças.
Testar a conectividade do syslog
Depois de configurar o grupo e as regras de notificação, verifique se as mensagens syslog estão sendo enviadas ao agente do Bindplane.
Na CLI do Netscout Arbor Sightline, teste a conexão syslog:
services sp notification test syslog group <notification_group_name>Substitua
<notification_group_name>pelo nome do grupo de notificação que você criou.O comando retornará:
Server returned: SuccessVerifique os registros do agente do Bindplane para confirmar se as mensagens de teste estão sendo recebidas:
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"No console do Google SecOps, acesse Pesquisar e verifique se os registros do Netscout Arbor Sightline estão aparecendo com o rótulo de ingestão
ARBOR_SIGHTLINE.
Tipos de eventos encaminhados para o Google SecOps
O Netscout Arbor Sightline encaminha as seguintes categorias de eventos via syslog:
- Eventos de negação de serviço (DoS): alertas de detecção de ataques DDoS, incluindo ataques volumétricos, de protocolo e de camada de aplicativo.
- Eventos de autenticação: sucessos e falhas de login do usuário, tentativas de autenticação
- Eventos de exploração: tentativas de exploração detectadas e padrões de tráfego suspeitos
- Eventos de atividade suspeita: comportamento anômalo do tráfego e possíveis ameaças à segurança
- Eventos do sistema: integridade do appliance, status do serviço, mudanças de configuração e alertas operacionais
- Eventos de mitigação: início, interrupção e atualizações de status da mitigação de ataques DDoS
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
| msg1 | additional.fields | Mesclado com rótulos de cada campo, se não estiver vazio, usando chaves específicas, como "message_description" para msg1, "config_version" para config_version etc. |
| config_version | additional.fields | |
| prin_user | additional.fields | |
| old_bgp_attributes | additional.fields | |
| new_bgp_attributes | additional.fields | |
| reason | additional.fields | |
| sample_rate | additional.fields | |
| proto | additional.fields | |
| em instantes | additional.fields | |
| identificador | additional.fields | |
| expected_bps | additional.fields | |
| actual_bps | additional.fields | |
| servidor | additional.fields | |
| status | additional.fields | |
| porcentagem | additional.fields | |
| taxa | additional.fields | |
| rateunit | additional.fields | |
| flags | additional.fields | |
| roteador | additional.fields | |
| interface | additional.fields | |
| ip_ver | additional.fields | |
| protocol_id | additional.fields | |
| router_name | additional.fields | |
| interface_id | additional.fields | |
| interface_name | additional.fields | |
| prioridade | additional.fields | |
| log_level | additional.fields | |
| piscina | additional.fields | |
| thread_id | additional.fields | |
| timeout | additional.fields | |
| tentativas | additional.fields | |
| vulns | extensions.vulns.vulnerabilities | Mesclado se vulns não estiver vazio |
| desc | metadata.description | Definido como "%{desc}: %{desc2}" se desc e desc2 não estiverem vazios. Caso contrário, será desc. Substituído por message_desc se não estiver vazio. |
| desc2 | metadata.description | |
| message_desc | metadata.description | |
| event_time | metadata.event_timestamp | Convertido usando o filtro de data com o formato MMM dd HH:mm:ss ou MMM d HH:mm:ss, fuso horário Europe/London |
| desc2 | metadata.event_type | Definido como "SCAN_PROCESS" se desc2 corresponder a "(DNS Amplification |
| mensagem | metadata.event_type | |
| src_ip | metadata.event_type | |
| has_target_ip | metadata.event_type | |
| has_network_protocol | metadata.event_type | |
| host_name | metadata.event_type | |
| mensagem | metadata.product_event_type | Definido como "Detecção de host" se a mensagem corresponder a "Detecção de host"; "Mitigação de TMS iniciada" se a mensagem corresponder a "iniciada"; "Mitigação de TMS interrompida" se a mensagem corresponder a "interrompida" |
| metadata.product_name | metadata.product_name | Definido como "ARBOR_SIGHTLINE" |
| metadata.vendor_name | metadata.vendor_name | Defina como "NETSCOUT" |
| direção | network.direction | Definido como "INBOUND" se a direção for "incoming" |
| proto | network.ip_protocol | Defina como "TCP" se proto for "6". Caso contrário, defina como network_protocol em maiúsculas se corresponder a "(?i)(TCP |
| network_protocol | network.ip_protocol | |
| bytes | network.sent_bytes | Valor copiado diretamente, convertido em uinteger |
| pacotes | network.sent_packets | Valor copiado diretamente, convertido em número inteiro |
| duration | network.session_duration.seconds | Valor copiado diretamente se não estiver vazio e não for "0", convertido em número inteiro |
| host_name | principal.hostname | Valor copiado diretamente |
| src_ip | principal.ip | Mesclado de src_ip e nameserver_ip |
| nameserver_ip | principal.ip | |
| namespace | principal.namespace | Valor copiado diretamente |
| filename | principal.process.file.full_path | Valor copiado diretamente |
| alert_id | principal.process.pid | Valor copiado diretamente |
| prin_url | principal.url | Valor copiado diretamente |
| prin_user | principal.user.userid | Valor copiado diretamente |
| impacto | security_result.detection_fields | Mesclado com as chaves "Impact" de impact, "Importance" de importance, "Signature" de signature, "Leader" de leader, "parent_managed_object" de parent_managed_object e "Alert ID" de alert_id |
| importância | security_result.detection_fields | |
| signature | security_result.detection_fields | |
| líder | security_result.detection_fields | |
| parent_managed_object | security_result.detection_fields | |
| alert_id | security_result.detection_fields | |
| gravidade, | security_result.severity | Definido como "INFORMATIONAL" se a gravidade estiver em ["10","9"]; "LOW" se estiver em ["8","7"]; "MEDIUM" se for "6"; "HIGH" se estiver em ["5","4"]; "CRITICAL" se estiver em ["3","2","1"] |
| desc2 | security_result.threat_status | Definido como "ACTIVE" se a descrição corresponder a "Alerta de detecção de host" e a mensagem for "start" e não "stop"; "CLEARED" se a descrição corresponder a "Alerta de detecção de host" e a mensagem for "stop" |
| mensagem | security_result.threat_status | |
| intem_host | target.group.product_object_id | Valor copiado diretamente |
| dst_ip | target.ip | Valor copiado diretamente |
| dst_port | target.port | Valor copiado diretamente, convertido em número inteiro |
| file_path | target.process.file.full_path | Valor copiado diretamente |
| stop_time | vulns.vulnerabilities.scan_end_time | Convertido usando o filtro de data com o formato aaaa-MM-dd HH:mm:ss |
| start_time | vulns.vulnerabilities.scan_start_time | Convertido usando o filtro de data com o formato aaaa-MM-dd HH:mm:ss ou aaaa-MM-dd |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.