Coletar registros do F5 AFM

Versão do analisador:23.0

Compatível com:

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 dispositivo 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 do 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

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão.
  4. Salve o arquivo com segurança no sistema em que o agente do Bindplane será instalado.

Receber o ID de cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. 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

  1. Abra o prompt de comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sc query observiq-otel-collector
    

    O serviço vai aparecer como EM EXECUÇÃO.

Instalação do Linux

  1. Abra um terminal com privilégios de root ou sudo.
  2. Execute este comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sudo systemctl status observiq-otel-collector
    

    O 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.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Editar o arquivo de configuração

  • Substitua todo o conteúdo de config.yaml pela 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.0 para ouvir 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
    • customer_id: ID do cliente copiado do console do Google SecOps
    • endpoint: 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.

Salvar o arquivo de configuração

  • Depois de editar, salve o arquivo:
    • Linux: pressione Ctrl+O, Enter e Ctrl+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 o seguinte comando:

    sudo systemctl restart observiq-otel-collector
    
    1. Verifique se o serviço está em execução:

      sudo systemctl status observiq-otel-collector
      
    2. Verifique 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-collector
      
    • Console de serviços:

      1. Pressione Win+R, digite services.msc e pressione Enter.
      2. Localize o Coletor do OpenTelemetry da observIQ.
      3. Clique com o botão direito do mouse e selecione Reiniciar.
      4. Verifique se o serviço está em execução:

        sc query observiq-otel-collector
        
      5. Verifique se há erros nos registros:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Ativar o F5 BIG-IP Advanced Firewall Manager

  1. Faça login no console de gerenciamento do dispositivo BIG-IP.
  2. Acesse Sistema > Licença.
  3. Verifique se o Advanced Firewall Manager está licenciado e ativado.
  4. Para ativar o Gerenciador avançado de firewall, acesse Sistema > Recurso > Provisionamento.
  5. Marque a caixa de seleção na coluna Provisionamento e selecione Nominal na lista.
  6. Clique em Enviar.

Configurar o pool de geração de registros no F5 AFM

  1. Acesse Tráfego local > Pools.
  2. Clique em Criar.
  3. 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 <<.
  4. Na guia Recurso, selecione o Pool de registros que você criou antes na lista Nome do nó.
  5. No campo Endereço, insira o endereço IP do agente do Bindplane.
  6. No campo Porta do serviço, insira 5145 ou outra porta conforme definido no agente do Bindplane.
  7. Clique em Adicionar.
  8. Clique em Concluir.

Configurar o destino do registro formatado no F5 AFM

  1. Acesse Sistema > Registros > Configuração > Destinos de registro.
  2. Clique em Criar.
  3. 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 Syslog: selecione Syslog.
    • Destino de registro de alta velocidade: selecione o destino de registro de alta velocidade (por exemplo, Logging_HSL_Destination).
  4. Clique em Concluído.

Configurar o editor de registros no F5 AFM

  1. Acesse Sistema > Registros > Configuração > Editores de registros.
  2. Clique em Criar.
  3. 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 registros no F5 AFM e clique em << para adicionar itens à lista Selecionado.

Configurar o perfil de geração de registros no F5 AFM

  1. Acesse Segurança > Registros de eventos > Perfil de geração de registros.
  2. Clique em Criar.
  3. 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).
  4. Clique em Concluído.

Configurar a associação de perfil de servidor virtual no F5 AFM

  1. Acesse Tráfego local > Servidores virtuais.
  2. Selecione o servidor virtual que você quer modificar.
  3. Acesse a guia Segurança > Políticas.
  4. Na lista Perfil de registro, selecione Ativado.
  5. No campo Perfil, selecione Logging_Profile e clique em <<.
  6. Clique em Atualizar.

Tabela de mapeamento de UDM

Campo de registro Mapeamento de 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 de 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 de column14
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 do 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
partition event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
level event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
tty event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
attempts event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
start event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
end event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
prin_ip event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mapeado do registro de mudanças
internal_tag event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
src_zone event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
dest_zone event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
translated_dest_ip event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
translated_dest_port event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
translated_source_ip event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
translated_source_port event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
syslog_reporter_host event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
sa_translation_pool event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
sa_translation_type event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
translated_route_domain event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
send_to_vs event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
src_zone event.idm.read_only_udm.principal.resource.attribute.labels Mapeado do registro de mudanças
dest_zone event.idm.read_only_udm.target.resource.attribute.labels Mapeado do registro de mudanças
acl_policy_name event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
acl_policy_type event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
chronicle_log_type event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
chronicle_namespace event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
flow_id event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
vlan event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
route_domain event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
partition_name event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
source_ipint_categories event.idm.read_only_udm.principal.resource.attribute.labels Mapeado do registro de mudanças
src_geo event.idm.read_only_udm.principal.resource.attribute.labels Mapeado do registro de mudanças
source_fqdn event.idm.read_only_udm.principal.resource.attribute.labels Mapeado do registro de mudanças
dest_ipint_categories event.idm.read_only_udm.target.resource.attribute.labels Mapeado do registro de mudanças
dst_geo event.idm.read_only_udm.target.resource.attribute.labels Mapeado do registro de mudanças
dest_fqdn event.idm.read_only_udm.target.resource.attribute.labels Mapeado do registro de mudanças
acl_rule_name event.idm.read_only_udm.security_result.rule_name Mapeado do registro de mudanças
acl_rule_id event.idm.read_only_udm.security_result.rule_id Mapeado do registro de mudanças
action event.idm.read_only_udm.security_result.action Mapeado do registro de mudanças
bigip_mgmt_ip event.idm.read_only_udm.intermediary.ip Mapeado do registro de mudanças
context_name event.idm.read_only_udm.target.resource.name Mapeado do registro de mudanças
context_type event.idm.read_only_udm.target.resource.type Mapeado do registro de mudanças
date_time event.idm.read_only_udm.metadata.event_timestamp Mapeado do registro de mudanças
dest_ip event.idm.read_only_udm.target.ip e event.idm.read_only_udm.target.asset.ip Mapeado do registro de mudanças
net.peer.ip event.idm.read_only_udm.target.ip e event.idm.read_only_udm.target.asset.ip Mapeado do registro de mudanças
dest_port event.idm.read_only_udm.target.port Mapeado do registro de mudanças
net.peer.port event.idm.read_only_udm.target.port Mapeado do registro de mudanças
device_version event.idm.read_only_udm.metadata.product_version Mapeado do registro de mudanças
drop_reason event.idm.read_only_udm.security_result.summary Mapeado do registro de mudanças
hostname event.idm.read_only_udm.principal.hostname e event.idm.read_only_udm.principal.asset.hostname Mapeado do registro de mudanças
ip_protocol event.idm.read_only_udm.network.ip_protocol Mapeado do registro de mudanças
source_ip event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mapeado do registro de mudanças
net.host.ip event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mapeado do registro de mudanças
source_port event.idm.read_only_udm.principal.port Mapeado do registro de mudanças
net.host.port event.idm.read_only_udm.principal.port Mapeado do registro de mudanças
errdefs_msg_name event.idm.read_only_udm.metadata.product_event_type Mapeado do registro de mudanças
errdefs_msgno event.idm.read_only_udm.metadata.product_log_id Mapeado do registro de mudanças
source_user event.idm.read_only_udm.principal.user.userid Mapeado do registro de mudanças
source_user_group event.idm.read_only_udm.principal.user.group_identifiers Mapeado do registro de mudanças
severity event.idm.read_only_udm.security_result.severity_details Mapeado do registro de mudanças
dvchost event.idm.read_only_udm.intermediary.hostname e event.idm.read_only_udm.intermediary.asset.hostname Mapeado do registro de mudanças
dvc event.idm.read_only_udm.intermediary.ip e event.idm.read_only_udm.intermediary.asset.ip Mapeado do registro de mudanças
c6a2 event.idm.read_only_udm.principal.resource.attribute.labels Mapeado do registro de mudanças
F5SrcZone event.idm.read_only_udm.principal.resource.attribute.labels Mapeado do registro de mudanças
F5SrcFqdn event.idm.read_only_udm.principal.resource.attribute.labels Mapeado do registro de mudanças
F5SrcUser event.idm.read_only_udm.principal.user.attribute.labels Mapeado do registro de mudanças
c6a3 event.idm.read_only_udm.target.resource.attribute.labels Mapeado do registro de mudanças
F5DstZone event.idm.read_only_udm.target.resource.attribute.labels Mapeado do registro de mudanças
F5DstVlan event.idm.read_only_udm.target.resource.attribute.labels Mapeado do registro de mudanças
F5DstFqdn event.idm.read_only_udm.target.resource.attribute.labels Mapeado do registro de mudanças
F5SendToVs event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
F5SrcIpiCategories event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
F5DstIpiCategories event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
module event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
tid event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
cpu event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
cmd_line event.idm.read_only_udm.target.process.command_line Mapeado do registro de mudanças
msg_data event.idm.read_only_udm.security_result.summary Mapeado do registro de mudanças
pid event.idm.read_only_udm.principal.process.pid Mapeado do registro de mudanças
user event.idm.read_only_udm.principal.user.userid Mapeado do registro de mudanças
folder_path event.idm.read_only_udm.principal.file.full_path Mapeado do registro de mudanças
status event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
cmd_data event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
target_ip event.idm.read_only_udm.target.ip e event.idm.read_only_udm.target.asset.ip Mapeado do registro de mudanças
desc metadata.description Mapeado do registro de mudanças
prin_port principal.port Mapeado do registro de mudanças
target_port target.port Mapeado do registro de mudanças
ts2 metadata.event_timestamp Mapeado do registro de mudanças
tls_ver network.tls.version Mapeado do registro de mudanças
cipher network.tls.cipher Mapeado do registro de mudanças
prod_event_type metadata.product_event_type Mapeado do registro de mudanças
path target.url Mapeado do registro de mudanças
response_size network.sent_bytes Mapeado do registro de mudanças
received_size network.received_bytes Mapeado do registro de mudanças
usr principal.user.userid Mapeado do registro de mudanças
schema_version target.resource.attribute.labels Mapeado do registro de mudanças
severity_info security_result.severity_details Mapeado do registro de mudanças
target_pid target.process.pid Mapeado do registro de mudanças
additional1 additional.fields Mapeado do registro de mudanças
dvc intermediary.hostname Mapeado do registro de mudanças
metadata.event_type USER_UNCATEGORIZED Mapeado do registro de mudanças
prin_ip principal.ip Mapeado do registro de mudanças
F5FlowID additional.fields Mapeado do registro de mudanças
F5TranslatedVlan additional.fields Mapeado do registro de mudanças
F5SrcTranslationType additional.fields Mapeado do registro de mudanças
F5SrcTranslationPool additional.fields Mapeado do registro de mudanças
F5SrcGeo additional.fields Mapeado do registro de mudanças
F5DstGeo additional.fields Mapeado do registro de mudanças
F5RouteDomain additional.fields Mapeado do registro de mudanças
Column12 security_result.detection_fields Mapeado do registro de mudanças
Column14 security_result.action 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.