Coletar registros do F5 AFM
Este documento explica como ingerir registros do F5 Advanced Firewall Management (AFM) no Google Security Operations usando o agente Bindplane.
O F5 BIG-IP AFM é um módulo de firewall de rede que gera mensagens syslog para ações de regras de firewall (aceitar, descartar, rejeitar), eventos de inteligência de IP e erros de TCP. O analisador extrai campos de registros formatados em CSV ou syslog 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 appliance F5 BIG-IP
- 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 privilegiado ao F5 BIG-IP e ao F5 Advanced Firewall Management
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 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: tcplog: listen_address: "0.0.0.0:5145" exporters: chronicle/f5_afm: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: F5_AFM raw_log_field: body service: pipelines: logs/f5_afm_to_chronicle: receivers: - tcplog exporters: - chronicle/f5_afm
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
5145é usada para geração de registros de alta velocidade do F5 AFM. Ajuste para corresponder à sua configuração do F5.
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:
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.
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
Ativar o F5 BIG-IP Advanced Firewall Manager
- Faça login no console de gerenciamento do dispositivo BIG-IP.
- Acesse Sistema > Licença.
- Verifique se o Advanced Firewall Manager está licenciado e ativado.
- Para ativar o Gerenciador avançado de firewall, acesse Sistema > Recurso > Provisionamento.
- Marque a caixa de seleção na coluna Provisionamento e selecione Nominal na lista.
- Clique em Enviar.
Configurar o pool de geração de registros no F5 AFM
- Acesse Tráfego local > Pools.
- Clique em Criar.
- Informe os seguintes detalhes de configuração:
- Nome: insira um nome para o pool de registros (por exemplo, logging_pool).
- Monitor de integridade: na lista Disponível, selecione TCP e clique em <<.
- Na guia Recurso, selecione o Pool de registros que você criou antes na lista Nome do nó.
- No campo Endereço, insira o endereço IP do agente do Bindplane.
- No campo Porta do serviço, insira
5145ou outra porta conforme definido no agente do Bindplane. - Clique em Adicionar.
- Clique em Concluir.
Configurar o destino do registro formatado no F5 AFM
- Acesse Sistema > Registros > Configuração > Destinos de registro.
- Clique em Criar.
- Informe os seguintes detalhes de configuração:
- Nome: insira um nome para o destino do formato de geração de registros (por exemplo,
Logging_Format_Destination). - Descrição: digite uma descrição.
- Tipo: selecione Syslog remoto.
- Formato do Syslog: selecione Syslog.
- Destino de registro de alta velocidade: selecione o destino de registro de alta velocidade (por exemplo,
Logging_HSL_Destination).
- Nome: insira um nome para o destino do formato de geração de registros (por exemplo,
- Clique em Concluído.
Configurar o editor de registros no F5 AFM
- Acesse Sistema > Registros > Configuração > Editores de registros.
- Clique em Criar.
- Informe os seguintes detalhes de configuração:
- Nome: insira um nome para o publisher (por exemplo,
Log_Publisher). - Descrição: digite uma descrição.
- Destinos: selecione o nome do destino de registro que você criou na etapa Configurar o pool de geração de registros no F5 AFM e clique em << para adicionar itens à lista Selecionados.
- Nome: insira um nome para o publisher (por exemplo,
Configurar o perfil de geração de registros no F5 AFM
- Acesse Segurança > Registros de eventos > Perfil de geração de registros.
- Clique em Criar.
- Informe os seguintes detalhes de configuração:
- Nome: insira um nome para o perfil de registro (por exemplo, Logging_Profile).
- Firewall de rede: marque a caixa de seleção Ativado.
- Editor: selecione o editor de registros que você configurou antes (por exemplo,
Log_Publisher). - Correspondências de regra de registro: marque as caixas de seleção Aceitar, Descartar e Rejeitar.
- Registrar erros de IP: marque a caixa de seleção Ativado.
- Registrar erros de TCP: marque a caixa de seleção Ativado.
- Registrar eventos TCP: marque a caixa de seleção Ativado.
- Formato de armazenamento: selecione Lista de campos.
- Delimitador: insira
,(vírgula) como o delimitador de eventos. - Opções de armazenamento: selecione todas as opções na lista Itens disponíveis e clique em <<.
- Na guia Inteligência de IP, selecione o editor de registros que você configurou (por exemplo,
Log_Publisher).
- Clique em Concluído.
Configurar a associação de perfil de servidor virtual no F5 AFM
- Acesse Tráfego local > Servidores virtuais.
- Selecione o servidor virtual a ser modificado.
- Acesse a guia Segurança > Políticas.
- Na lista Perfil de registro, selecione Ativado.
- No campo Perfil, selecione Logging_Profile e clique em <<.
- Clique em Atualizar.
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
| acl_policy_name | security_result.detection_fields.acl_policy_name | Valor de column22 se o formato de registro for SYSLOG. Caso contrário, valor de column13. |
| acl_policy_type | security_result.detection_fields.acl_policy_type | Valor de column21 se o formato de registro for SYSLOG, caso contrário, valor de column18 |
| acl_rule_name | security_result.rule_name | Valor de column23 se o formato de registro for SYSLOG, caso contrário, valor de column11 |
| acl_rule_uuid | security_result.rule_id | Valor do campo "acl_rule_uuid" do padrão grok. |
| ação | security_result.action | Se o valor de column25 for Drop, Reject ou Block, então BLOCK. Caso contrário, se o valor de column25 for Accept, Accept decisively, Established ou Allow, então ALLOW. |
| attackID | security_result.detection_fields.attackID | Valor de "column12" se o formato do registro for CSV sem src_ip |
| bigip_hostname | intermediary.hostname | Valor de column2 se o formato de registro for SYSLOG, caso contrário, valor de column3 |
| bigip_ip | intermediary.ip | Valor de column2 se o formato de registro for SYSLOG, caso contrário, valor de column1 |
| context_name | additional.fields.context_name.string_value | Valor de column4 se o formato de registro for SYSLOG. Caso contrário, valor de column10 se houver src_ip. Caso contrário, valor de column5. |
| context_type | additional.fields.context_type.string_value | Valor de column3 se o formato de registro for SYSLOG. Caso contrário, valor de column4 se houver src_ip. Caso contrário, valor de column4. |
| dest_fqdn | additional.fields.dest_fqdn.string_value | Valor de column7 se o formato de registro for SYSLOG. Caso contrário, valor de column13. |
| dest_geo | additional.fields.dest_geo.string_value | Valor da coluna14 |
| dest_ip | target.asset.ip, target.ip | Valor de column8 se o formato de registro for SYSLOG. Caso contrário, valor de column6 se houver src_ip. Caso contrário, valor de column6. |
| dest_port | target.port | Valor de column10 se o formato de registro for SYSLOG. Caso contrário, valor de column8 se houver src_ip. Caso contrário, valor de column8. |
| drop_reason | security_result.summary | Valor de column26 se o formato de registro for SYSLOG. Caso contrário, valor de column19. |
| eventId | additional.fields.eventId.string_value | Valor capturado no padrão grok |
| flow_id | additional.fields.flow_id.string_value | Valor de column29 se o formato de registro for SYSLOG. Caso contrário, valor de column17. |
| loglevel | security_result.severity | Se o valor do campo "loglevel" do padrão grok for warning, debug ou notice, será "MEDIUM". Se o valor for info ou informational, será "INFORMATIONAL". Se o valor for err ou error, será "HIGH". Se o valor for alert, crit ou emer, será "CRITICAL". |
| packetsReceived | network.received_packets | Valor de column15 se o formato de registro for CSV sem src_ip |
| difusão reversa que restaura | target.application | Valor do campo de processo do padrão grok. |
| protocol_number_src | network.ip_protocol | Valor de column12 se o formato de registro for SYSLOG. Caso contrário, o valor extraído da variável ip_protocol_out |
| route_domain | additional.fields.route_domain.string_value | Valor de column13 se o formato de registro for SYSLOG. Caso contrário, valor de column9. |
| source_fqdn | additional.fields.source_fqdn.string_value | Valor de column5 se o formato de registro for SYSLOG, caso contrário, valor de column7 |
| src_geo | additional.fields.src_geo.string_value | Valor de column8 |
| src_ip | principal.asset.ip, principal.ip | Valor de column6 se o formato de registro for SYSLOG. Caso contrário, valor de column9 se o formato de registro for CSV sem src_ip. Caso contrário, valor de column5. |
| src_port | principal.port | Valor de column9 se o formato de registro for SYSLOG. Caso contrário, valor de column7 se o formato de registro for CSV sem src_ip. Caso contrário, valor de column7. |
| ts | metadata.event_timestamp | Valor do campo "ts" do padrão grok |
| vlan | additional.fields.vlan.string_value | Valor de column11 se o formato de registro for SYSLOG. Caso contrário, valor de column21. |
| metadata.event_type | Se src_ip e dest_ip existirem, NETWORK_CONNECTION. Se apenas src_ip existir, STATUS_UPDATE. Caso contrário, GENERIC_EVENT. | |
| metadata.log_type | F5_AFM | |
| metadata.product_name | Gerenciamento avançado de firewall | |
| metadata.vendor_name | F5 |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.