Recolha registos do F5 BIG-IP ASM

Compatível com:

Este documento explica como carregar registos do F5 BIG-IP Application Security Manager (ASM) para o Google Security Operations através do Bindplane. O analisador processa vários formatos de registo (syslog, CSV, CEF, etc.) e normaliza-os para o UDM. Usa padrões grok e extrações de chave-valor para analisar campos, filtragem XML para detalhes de violações, lógica condicional para categorização de eventos e mapeamento de gravidade, e une campos extraídos no esquema UDM.

Antes de começar

  • Certifique-se de que tem uma instância do Google Security Operations.
  • Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com systemd.
  • Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
  • Certifique-se de que tem acesso privilegiado ao F5 BIG-IP ASM.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. 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

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. 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

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda ao ficheiro de configuração:

    1. 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.
    2. Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro 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: F5_ASM
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID de cliente real.

  5. Atualize /path/to/ingestion-authentication-file.json para 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 do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, pode usar a consola Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o registo remoto no F5 BIG-IP ASM

  1. Inicie sessão na IU Web da consola do ASM.
  2. Aceda a Segurança > Registos de eventos > Perfis de registo.
  3. Clique em Criar.
  4. Faculte os seguintes detalhes de configuração:

    • Nome do perfil: introduza um nome exclusivo para o perfil.
    • Selecione Segurança da aplicação.
    • No separador Segurança da aplicação, selecione Avançadas (se forem necessárias configurações adicionais).
    • Destino de armazenamento: selecione Armazenamento remoto.
    • Formato de registo: selecione Formato de evento comum (CEF).
    • Limpe o armazenamento local.
    • Protocolo: selecione UDP ou TCP (consoante a configuração do agente Bindplane).
    • Endereços do servidor: introduza o endereço IP do agente do Bindplane.
    • Porta: selecionada por predefinição 514. Atualize a definição da porta de acordo com a configuração do agente Bindplane.
    • Clique em Adicionar.
    • Selecione Garantir registo.
    • Selecione Denunciar anomalias detetadas.
    • Facility: selecione LOG_LOCAL6 (opcionalmente, pode selecionar a categoria de instalações do tráfego registado. Os valores possíveis são LOG_LOCAL0 a LOG_LOCAL7).
  5. Clique em Concluído.

Associe um perfil de registo a uma política de segurança

  1. Clique em Tráfego local > Servidores virtuais.
  2. Clique no nome do servidor virtual usado pela política de segurança.
  3. No menu Segurança, selecione Políticas.
  4. Certifique-se de que a definição Política de segurança da aplicação está ativada e que a Política está definida para a política de segurança pretendida.
  5. Certifique-se de que a definição Registar perfil está definida como Ativado.
  6. Na lista Disponível, selecione o perfil a usar para a política de segurança e mova-o para a lista Selecionado.
  7. Clique em Atualizar.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
act security_result.action Se act for blocked, mapeia para BLOCK. Se act for passed ou legal, mapeia para PERMITIR. Se act contiver alerted, é mapeado para QUARENTENA. Caso contrário, a predefinição é ALLOW para o formato Splunk.
app network.application_protocol Mapeia diretamente para HTTPS, se estiver presente no registo não processado.
attack_type security_result.category_details, metadata.description Usado em conjunto com outros campos para determinar security_result.category. Se não estiver disponível outra descrição, esta torna-se a descrição do evento. Para registos no formato Splunk, é usado para determinar a categoria e o resumo se violations estiver vazio.
client_ip principal.ip, principal.asset.ip Mapeia diretamente o IP principal.
cn1 network.http.response_code Mapeia diretamente para o código de resposta HTTP.
cn2 security_result.severity_details Mapeia diretamente os detalhes da gravidade do resultado de segurança. Usado com response_code para determinar se um evento é um alerta.
column1 principal.ip, principal.asset.ip Mapeia para o IP principal para determinados registos formatados em CSV.
column2 target.port Mapeia para a porta de destino determinados registos formatados em CSV.
column3 target.ip, target.asset.ip Mapeia o IP de destino para determinados registos formatados em CSV.
column4 security_result.severity Mapeia a gravidade do resultado de segurança para determinados registos formatados em CSV. Os valores Information, Informational, 0 e 4 são mapeados para INFORMATIONAL. Warning, 1 e 3 são mapeados para MÉDIO. Error e 2 são mapeados para ERROR. Critical, CRITICAL e critical são mapeados para CRÍTICO.
column7 security_result.detection_fields, network.http.response_code Contém dados XML. viol_name dentro de request-violations é extraído e adicionado como campos de deteção com a chave Request Violation Name_index. viol_name dentro de response_violations é extraído e adicionado como campos de deteção com a chave Response Violation Name_index. response_code em response_violations é mapeado para network.http.response_code.
column8 security_result.rule_name Mapeia o nome da regra do resultado de segurança para determinados registos formatados em CSV.
cs1 security_result.rule_name Mapeia diretamente o nome da regra do resultado de segurança.
cs2 security_result.summary Mapeia diretamente o resumo dos resultados de segurança.
cs5 principal.ip, principal.asset.ip, additional.fields Se cs5 contiver um URL LDAP JNDI, é adicionado como um campo adicional com a chave JNDI_LDAP_URL. Caso contrário, se contiver IPs separados por vírgulas, qualquer IP diferente de principal_ip é adicionado como um IP principal adicional.
cs6 principal.location.country_or_region Mapeia diretamente o país ou a região da localização principal.
data network.session_id, network.sent_bytes, network.tls.version Se estiver presente, é analisado como JSON para extrair sessionid, bits (mapeado para sent_bytes) e version.
date_time metadata.event_timestamp Mapeia diretamente a data/hora do evento após a análise e a conversão para o formato correto.
dest_ip target.ip, target.asset.ip Mapeia diretamente o IP de destino.
dest_port target.port Mapeia diretamente para a porta de destino.
dhost target.hostname Mapeia diretamente o nome do anfitrião de destino.
dpt target.port Mapeia diretamente para a porta de destino.
dst target.ip Mapeia diretamente o IP de destino.
dvc intermediary.ip Mapeia diretamente para o IP do intermediário.
dvchost target.hostname, intermediary.hostname Mapeia diretamente o nome do anfitrião de destino e o nome do anfitrião intermediário.
errdefs_msgno additional.fields Adicionado como um campo adicional com a chave errdefs_msgno.
externalId additional.fields Adicionado como um campo adicional com a chave Support_Id.
f5_host target.hostname, intermediary.hostname Mapeia diretamente o nome do anfitrião de destino e o nome do anfitrião intermediário.
geo_info principal.location.country_or_region, security_result.detection_fields Mapeia o país ou a região da localização principal. Também adicionado como um campo de deteção com a chave geo_info.
host target.hostname Mapeia diretamente o nome do anfitrião de destino.
ids additional.fields Analisado como uma lista de IDs de apoio técnico separados por vírgulas. Cada ID é adicionado a um campo adicional com vários valores com a chave supportid.
ip_addr_intelli security_result.detection_fields Adicionado como um campo de deteção com a chave ip_addr_intelli.
ip_client principal.ip Mapeia diretamente o IP principal.
ip_route_domain principal.ip, principal.asset.ip A parte do IP é extraída e mapeada para o IP principal.
irule security_result.rule_name Mapeia diretamente o nome da regra do resultado de segurança.
irule-version security_result.rule_version Mapeia diretamente para a versão da regra de resultado de segurança.
level security_result.severity, security_result.severity_details Usado para determinar a gravidade do resultado de segurança. error ou warning mapeado para ALTO. notice é mapeado para MÉDIO. information ou info para BAIXO. O valor não processado também é mapeado para severity_details.
logtime metadata.event_timestamp Mapeia diretamente a data/hora do evento após a análise.
management_ip_address, management_ip_address_2 intermediary.ip Mapeia diretamente para o IP do intermediário.
method network.http.method Mapeia diretamente para o método HTTP.
msg security_result.summary, metadata.description Mapeia diretamente para o resumo dos resultados de segurança para alguns formatos de registo. Se não estiver disponível outra descrição, esta torna-se a descrição do evento.
policy_name security_result.about.resource.name, security_result.rule_name Mapeia diretamente para o nome do recurso do resultado de segurança ou o nome da regra.
process target.application Mapeia diretamente a aplicação de destino.
process_id principal.process.pid Mapeia diretamente para o ID do processo principal.
protocol network.application_protocol, network.ip_protocol, app_protocol Mapeia diretamente para o protocolo de aplicação ou o protocolo IP, consoante o formato do registo.
proxy_id security_result.rule_id Mapeia diretamente para o ID da regra do resultado de segurança.
query_string additional.fields Adicionado como um campo adicional com a chave query_string.
referrer network.http.referral_url Mapeia diretamente para o URL de referência HTTP.
req_method network.http.method Mapeia diretamente para o método HTTP.
req_status security_result.action, security_result.action_details, security_result.detection_fields Se blocked, mapeia security_result.action para BLOCK. Se passed ou legal, mapeia para PERMITIR. Se contiver alerted, é mapeado para QUARENTENA. O valor não processado também é mapeado para action_details e adicionado como um campo de deteção com a chave req_status.
request target.url Mapeia diretamente para o URL de destino.
requestMethod network.http.method Mapeia diretamente para o método HTTP.
resp security_result.detection_fields Adicionado como um campo de deteção com a chave resp.
resp_code network.http.response_code Mapeia diretamente para o código de resposta HTTP.
response security_result.summary Mapeia diretamente o resumo dos resultados de segurança.
response_code network.http.response_code Mapeia diretamente para o código de resposta HTTP.
route_domain additional.fields Adicionado como um campo adicional com a chave route_domain.
rt metadata.event_timestamp Mapeia diretamente a data/hora do evento após a análise.
sev security_result.severity, security_result.severity_details Usado para determinar a gravidade do resultado de segurança. ERROR mapeia para ERROR. O valor não processado também é mapeado para severity_details.
severity security_result.severity, security_result.severity_details Usado para determinar a gravidade do resultado de segurança. Informational é mapeado para BAIXO, Error ou warning é mapeado para ALTO, critical é mapeado para CRÍTICO, notice é mapeado para MÉDIO, information ou info é mapeado para BAIXO. O valor não processado também é mapeado para severity_details.
sig_ids security_result.rule_id Mapeia diretamente para o ID da regra do resultado de segurança.
sig_names security_result.rule_name Mapeia diretamente o nome da regra do resultado de segurança.
snat_ip principal.nat_ip Mapeia diretamente para o IP NAT principal.
snat_port principal.nat_port Mapeia diretamente para a porta NAT principal.
src principal.ip, principal.asset.ip Mapeia diretamente o IP principal.
spt principal.port Mapeia diretamente para a porta principal.
sub_violates security_result.about.resource.attribute.labels Adicionado como uma etiqueta com a chave Sub Violations aos atributos do recurso de resultado de segurança.
sub_violations security_result.about.resource.attribute.labels Adicionado como uma etiqueta com a chave Sub Violations aos atributos do recurso de resultado de segurança.
summary security_result.summary Mapeia diretamente o resumo dos resultados de segurança.
support_id metadata.product_log_id Tem o prefixo support_id - e está mapeado para o ID do registo do produto.
suid network.session_id Mapeia diretamente para o ID da sessão de rede.
suser principal.user.userid Mapeia diretamente para o ID do utilizador principal.
timestamp metadata.event_timestamp Mapeia diretamente a data/hora do evento após a análise e a conversão para o formato correto.
unit_host principal.hostname, principal.asset.hostname Mapeia diretamente para o nome do anfitrião principal.
uri principal.url Mapeia diretamente para o URL principal.
user_id principal.user.userid Mapeia diretamente para o ID do utilizador principal.
user_name principal.user.user_display_name Mapeia diretamente o nome a apresentar do utilizador principal.
username principal.user.userid Mapeia diretamente para o ID do utilizador principal.
useragent network.http.user_agent, network.http.parsed_user_agent Mapeia diretamente para o agente do utilizador HTTP. Também analisado e mapeado para o agente do utilizador analisado.
virtualserver network.tls.client.server_name Mapeia diretamente para o nome do servidor do cliente TLS.
violate_details security_result.detection_fields, network.http.response_code Contém dados XML. viol_name dentro de request-violations é extraído e adicionado como campos de deteção com a chave Request Violation Name_index. viol_name dentro de response_violations é extraído e adicionado como campos de deteção com a chave Response Violation Name_index. response_code em response_violations é mapeado para network.http.response_code.
violate_rate security_result.detection_fields Adicionado como um campo de deteção com a chave violate_rate.
violation_rating security_result.about.resource.attribute.labels Adicionado como uma etiqueta com a chave Violations Rating aos atributos do recurso de resultado de segurança.
violations security_result.description Mapeia diretamente a descrição do resultado de segurança. Para registos no formato Splunk, é usado para determinar o resumo, se estiver presente.
virus_name security_result.threat_name Mapeia diretamente o nome da ameaça do resultado de segurança.
vs_name network.tls.client.server_name Mapeia diretamente para o nome do servidor do cliente TLS.
websocket_direction network.direction Se clientToServer, mapeia para INBOUND. Se ServerToclient, mapeia para OUTBOUND.
websocket_message_type security_result.detection_fields Adicionado como um campo de deteção com a chave WebsocketMessageType.
x_fwd_hdr_val principal.ip, principal.asset.ip Mapeia diretamente o IP principal.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.