Coletar registros do F5 BIG-IP LTM

Compatível com:

Este documento descreve como coletar registros do Local Traffic Manager (LTM) do F5 BIG-IP usando um encaminhador do Google Security Operations.

Para mais informações, consulte Ingestão de dados no Google Security Operations.

Um rótulo de ingestão identifica o analisador que normaliza dados de registro brutos para o formato UDM estruturado. As informações neste documento se aplicam ao analisador com o rótulo de ingestão F5_BIGIP_LTM.

Configurar o F5 BIG-IP LTM

  1. Faça login no SSH usando as credenciais de administrador.
  2. Faça login no shell de gerenciamento de tráfego (tmsh) com o seguinte comando:

    tmsh

  3. Envie mensagens de registro filtradas para servidores syslog remotos com o seguinte comando:

    modify /sys syslog remote-servers none

  4. Remova a instrução remote-servers e adicione uma instrução syslog include que defina uma regra de filtro e o servidor remoto.

  5. Para definir o filtro syslog necessário que faz referência ao servidor remoto, use o seguinte comando:

    edit /sys syslog all-properties

  6. Substitua o comando include none pelo filtro a seguir e adicione o endereço IP e o número da porta.

    include "
    
    filter f_remote_loghost {
    
    level(debug..emerg);
    
    };
    
    filter f_ssl_acc {
    
    not match(\"ssl_acc\");
    
    };
    
    filter f_ssl_req {
    
    not match(\"ssl_req\");
    
    };
    
    destination d_remote_loghost {
    
    udp(IP_ADDRESS PORT);
    
    };
    
    log {
    
    source(s_syslog_pipe);
    
    filter(f_remote_loghost);
    
    filter(f_ssl_acc);
    
    filter(f_ssl_req);
    
    destination(d_remote_loghost);
    
    };
    
    "
    

    Substitua IP_ADDRESS pelo endereço IP do encaminhador do Google Security Operations e port pelo número da porta alta.

  7. Para sair do editor de texto, pressione Esc e digite wq!.

  8. Salve a configuração com o seguinte comando:

    save /sys config

Configurar o encaminhador e o syslog do Google Security Operations para ingerir registros do F5 BIG-IP LTM

  1. Acesse Configurações do SIEM > Encaminhadores.
  2. Clique em Adicionar novo encaminhador.
  3. No campo Nome do encaminhador, insira um nome exclusivo para ele.
  4. Clique em Enviar. O encaminhador é adicionado, e a janela Adicionar configuração do coletor aparece.
  5. No campo Nome do coletor, digite um nome.
  6. Selecione F5 BIGIP LTM como o Tipo de registro.
  7. Selecione Syslog como o Tipo de coletor.
  8. Configure os seguintes parâmetros de entrada obrigatórios:
    • Protocolo: especifique o protocolo.
    • Endereço: especifique o endereço IP do encaminhador do Google Security Operations.
    • Porta: especifique a porta.
  9. Clique em Enviar.

Para mais informações sobre encaminhadores do Google Security Operations, consulte a documentação sobre encaminhadores do Google Security Operations. Para informações sobre os requisitos de cada tipo de encaminhador, consulte Configuração do encaminhador por tipo.

Se você tiver problemas ao criar encaminhadores, entre em contato com o suporte do Google Security Operations.

Referência de mapeamento de campos

Esse analisador normaliza os registros do F5 BIG-IP Local Traffic Manager (LTM), processando formatos de chave-valor e syslog. Ele extrai campos como endereços IP, nomes de usuário, ações e descrições, mapeando-os para a UDM, e categoriza eventos com base no conteúdo do registro e nos campos extraídos, incluindo conexões de rede, logins/logouts de usuários e eventos genéricos.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
Access_Profile event.idm.read_only_udm.additional.fields[].key:"Access_Profile", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente da chave Access_Profile nos pares de chave-valor analisados.
Client_IP event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Mapeado diretamente da chave Client_IP nos pares de chave-valor analisados. Também usado para preencher o IP do recurso principal. Define has_principal como "true".
Country event.idm.read_only_udm.principal.location.country_or_region Mapeado diretamente da chave Country nos pares de chave-valor analisados.
Listener event.idm.read_only_udm.additional.fields[].key:"Listener", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente da chave Listener nos pares de chave-valor analisados.
Session_ID event.idm.read_only_udm.network.session_id Mapeado diretamente da chave Session_ID nos pares de chave-valor analisados.
State event.idm.read_only_udm.principal.location.state Mapeado diretamente da chave State nos pares de chave-valor analisados.
Virtual_IP event.idm.read_only_udm.target.ip[], event.idm.read_only_udm.target.asset.ip[] Mapeado diretamente da chave Virtual_IP nos pares de chave-valor analisados. Também usado para preencher o IP do recurso de destino. Define has_target como "true".
about event.idm.read_only_udm.about Preenchido com vários campos, como snat, vs_name, path, query, node, pool_member, vs, client, blade e device, se eles estiverem presentes no registro bruto e forem analisados corretamente.
action_data event.idm.read_only_udm.target.process.command_line Mapeado diretamente para registros de processo scriptd.
attack_type event.idm.read_only_udm.security_result.category_details[] Mapeado diretamente.
blade event.idm.read_only_udm.about.resource.attribute.labels[].key:"blade", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente da chave blade nos pares de chave-valor analisados.
bytes_in event.idm.read_only_udm.network.received_bytes Mapeado diretamente, convertido para número inteiro sem sinal.
bytes_out event.idm.read_only_udm.network.sent_bytes Mapeado diretamente, convertido para número inteiro sem sinal.
captcha_result event.idm.read_only_udm.additional.fields[].key:"captcha_result", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
client event.idm.read_only_udm.about.resource.attribute.labels[].key:"client", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente da chave client nos pares de chave-valor analisados.
client_ip event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Mapeado diretamente. Também usado para preencher o IP do recurso principal. Define has_principal como "true".
client_port event.idm.read_only_udm.principal.port Mapeado diretamente, convertido em número inteiro.
collection_time event.timestamp O carimbo de data/hora da entrada de registro é usado como o carimbo de data/hora do evento.
command_line event.idm.read_only_udm.target.process.command_line Mapeado diretamente para registros de processo CROND e alguns registros logger.
data message A mensagem de registro bruta. Ele é analisado e usado para preencher vários campos da UDM.
dgl_count event.idm.read_only_udm.principal.resource.attribute.labels[].key:"DataGroup_Value", event.idm.read_only_udm.principal.resource.attribute.labels[].value Mapeado diretamente.
dgl_value event.idm.read_only_udm.principal.resource.attribute.labels[].key:"DataGroup_List", event.idm.read_only_udm.principal.resource.attribute.labels[].value Mapeado diretamente.
description event.idm.read_only_udm.metadata.description, event.idm.read_only_udm.security_result.description Mapeado diretamente para alguns tipos de registros ou usado como parte da descrição do resultado de segurança.
device event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.about.resource.attribute.labels[].key:"device", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente. Também usado para preencher o nome de host do recurso principal. Define has_principal como "true".
dest_ip event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip Mapeado diretamente. Também usado para preencher o IP do recurso de destino. Define has_principal como "true".
dest_port event.idm.read_only_udm.target.port Mapeado diretamente.
dvc event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.intermediary.hostname Analisado para extrair o nome do host ou o IP. Usado para preencher o nome do host principal ou intermediário.
errdefs_msgno event.idm.read_only_udm.additional.fields[].key:"errdefs_msgno", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente da chave errdefs_msgno nos pares de chave-valor analisados.
error_reason event.idm.read_only_udm.principal.resource.attribute.labels[].key:"error_reason", event.idm.read_only_udm.principal.resource.attribute.labels[].value Mapeado diretamente.
false_positive event.idm.read_only_udm.additional.fields[].key:"false_positive", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
function_id event.idm.read_only_udm.principal.resource.attribute.labels[].key:"function_id", event.idm.read_only_udm.principal.resource.attribute.labels[].value Mapeado diretamente.
geoContinent event.idm.read_only_udm.principal.location.continent Não mapeado no exemplo fornecido, mas seria mapeado para o continente se estivesse disponível.
geoCountry event.idm.read_only_udm.principal.location.country_or_region Mapeado diretamente.
geoState event.idm.read_only_udm.principal.location.state Mapeado diretamente.
header.Referer event.idm.read_only_udm.network.http.referral_url Mapeado diretamente.
header.User-Agent event.idm.read_only_udm.network.http.user_agent, event.idm.read_only_udm.network.http.parsed_user_agent Mapeado diretamente. Também convertido para user agent analisado.
header.X-Forwarded-For event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Analisados para extrair IPs e mesclá-los no IP principal e no IP do recurso principal.
host event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname Mapeado diretamente. Também usado para preencher o nome do host do recurso de destino. Define has_target como "true".
http_host event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname Mapeado diretamente. Também usado para preencher o nome do host do recurso de destino. Define has_target como "true".
http_method event.idm.read_only_udm.network.http.method Mapeado diretamente. Define event_type como NETWORK_HTTP, se houver.
ip_client event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Mapeado diretamente. Também usado para preencher o IP do recurso principal. Define has_principal como "true".
kv_msg Vários campos Analisados como pares de chave-valor e usados para preencher vários campos de UDM.
Level event.idm.read_only_udm.security_result.severity Mapeado para gravidade se o campo severity não estiver presente. Convertido para valores de gravidade da UDM (por exemplo, "Info" -> "INFORMATIONAL").
Listener event.idm.read_only_udm.additional.fields[].key:"Listener", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
log_message event.idm.read_only_udm.principal.resource.attribute.labels[].value, event.idm.read_only_udm.security_result.description Analisado para extrair request_uri ou description.
log_type event.idm.read_only_udm.metadata.log_type Mapeado diretamente do campo log_type do registro bruto.
loglevel event.idm.read_only_udm.security_result.severity Mapeado para gravidade. Convertido para valores de gravidade da UDM (por exemplo, "warning" -> "MEDIUM", "err" -> "HIGH"). Também usado para lógica de alerta/evento significativo.
manage_ip_addr event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Mapeado diretamente. Também usado para preencher o IP do recurso principal. Define has_principal como "true".
method event.idm.read_only_udm.network.http.method Mapeado diretamente. Define event_type como NETWORK_HTTP.
method_req event.idm.read_only_udm.network.http.method Mapeado diretamente.
msg1 event.idm.read_only_udm.security_result.description Usado como a descrição do resultado de segurança se não for analisado mais detalhadamente.
node event.idm.read_only_udm.about.resource.attribute.labels[].key:"node", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente da chave node nos pares de chave-valor analisados.
partition_name event.idm.read_only_udm.additional.fields[].key:"partition_name", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
path event.idm.read_only_udm.target.url, event.idm.read_only_udm.about.resource.attribute.labels[].key:"path", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente.
policy_name event.idm.read_only_udm.security_result.detection_fields[].key:"policy_name", event.idm.read_only_udm.security_result.detection_fields[].value Mapeado diretamente.
pool_member event.idm.read_only_udm.about.resource.attribute.labels[].key:"pool_member", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente da chave pool_member nos pares de chave-valor analisados.
principalHost event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname Mapeado diretamente. Também usado para preencher o nome de host do recurso principal. Define has_principal como "true".
principalIp event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[], event.idm.read_only_udm.observer.ip Mapeado diretamente. Também usado para preencher o IP do recurso principal e o IP do observador. Define has_principal como "true".
principalPort event.idm.read_only_udm.principal.port Mapeado diretamente, convertido em número inteiro.
process event.idm.read_only_udm.target.application Mapeado diretamente.
product_event_type event.idm.read_only_udm.metadata.product_event_type Mapeado diretamente.
proto event.idm.read_only_udm.network.ip_protocol Mapeado para o protocolo IP após a conversão do número para o nome do protocolo usando uma pesquisa.
query event.idm.read_only_udm.about.resource.attribute.labels[].key:"query", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente da chave query nos pares de chave-valor analisados.
query_string event.idm.read_only_udm.additional.fields[].key:"query_string", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
reason event.idm.read_only_udm.security_result.description Mapeado diretamente para registros de processo apmd com nível de registro de aviso ou erro.
reason_code event.idm.read_only_udm.principal.resource.attribute.labels[].key:"reason_code", event.idm.read_only_udm.principal.resource.attribute.labels[].value Mapeado diretamente.
req_status event.idm.read_only_udm.security_result.detection_fields[].key:"req_status", event.idm.read_only_udm.security_result.detection_fields[].value Mapeado diretamente.
request event.idm.read_only_udm.principal.resource.attribute.labels[].key:"request_type", event.idm.read_only_udm.principal.resource.attribute.labels[].value, event.idm.read_only_udm.network.application_protocol Usado para determinar o protocolo de aplicativo (HTTP) e mapeado como um rótulo.
request_status event.idm.read_only_udm.additional.fields[].key:"request_status", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
request_uri event.idm.read_only_udm.target.url Mapeado diretamente.
resp_code event.idm.read_only_udm.network.http.response_code Mapeado diretamente, convertido em número inteiro.
response_code event.idm.read_only_udm.network.http.response_code Mapeado diretamente, convertido em número inteiro.
rule_name event.idm.read_only_udm.security_result.rule_name Mapeado diretamente.
sec_action event.idm.read_only_udm.security_result.action[] Mapeado para ação. "Continue" é convertido em "ALLOW". Outros valores são convertidos em "BLOCK".
security_result event.idm.read_only_udm.security_result Unido ao objeto "security_result".
session_id event.idm.read_only_udm.network.session_id Mapeado diretamente.
severity event.idm.read_only_udm.security_result.severity Mapeado para gravidade. Convertido para valores de gravidade da UDM (por exemplo, "Error" -> "ERROR", "Informational" -> "INFORMATIONAL").
sig_ids event.idm.read_only_udm.additional.fields[].key:"sig_ids", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
sig_names event.idm.read_only_udm.additional.fields[].key:"sig_names", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
sni_host event.idm.read_only_udm.network.tls.client.server_name Mapeado diretamente.
snat event.idm.read_only_udm.about.resource.attribute.labels[].key:"snat", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente da chave snat nos pares de chave-valor analisados.
snat_ip event.idm.read_only_udm.principal.nat_ip[] Mapeado diretamente.
snat_port event.idm.read_only_udm.principal.nat_port Mapeado diretamente, convertido em número inteiro.
src_ip event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Mapeado diretamente. Também usado para preencher o IP do recurso principal.
src_port event.idm.read_only_udm.principal.port Mapeado diretamente.
ssl_cipher event.idm.read_only_udm.network.tls.cipher Mapeado diretamente.
ssl_function event.idm.read_only_udm.principal.resource.attribute.labels[].key:"ssl_function", event.idm.read_only_udm.principal.resource.attribute.labels[].value Mapeado diretamente.
ssl_version event.idm.read_only_udm.network.tls.version_protocol Mapeado diretamente.
staged_sig_ids event.idm.read_only_udm.additional.fields[].key:"staged_sig_ids", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
staged_sig_names event.idm.read_only_udm.additional.fields[].key:"staged_sig_names", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
staged_sig_set_names event.idm.read_only_udm.additional.fields[].key:"staged_sig_set_names", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
staged_threat_campaign_names event.idm.read_only_udm.additional.fields[].key:"staged_threat_campaign_names", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
status event.idm.read_only_udm.security_result.summary Mapeado diretamente para registros de processo scriptd.
summary event.idm.read_only_udm.security_result.summary Mapeado diretamente para alguns tipos de registros.
support_id event.idm.read_only_udm.additional.fields[].key:"Support_Id", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
systems event.idm.read_only_udm.principal.asset.attribute.labels[].key, event.idm.read_only_udm.principal.asset.attribute.labels[].value Analisados para extrair informações do sistema e mapeá-las como rótulos para o recurso principal.
targetFile event.idm.read_only_udm.target.file.full_path Mapeado diretamente para registros de processo scriptd.
targetIp event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip Mapeado diretamente. Também usado para preencher o IP do recurso de destino. Define has_target como "true".
targetPort event.idm.read_only_udm.target.port Mapeado diretamente, convertido em número inteiro.
threat_campaign_names event.idm.read_only_udm.additional.fields[].key:"threat_campaign_names", event.idm.read_only_udm.additional.fields[].value.string_value Mapeado diretamente.
timestamp event.timestamp Mapeado diretamente após a análise e a redefinição da base.
tls_version event.idm.read_only_udm.network.tls.version Mapeado diretamente.
tlsproto event.idm.read_only_udm.network.tls.version_protocol Mapeado diretamente. Se o valor for HTTP/1.1, "HTTP" será mapeado.
unit_host event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname Mapeado diretamente. Também usado para preencher o nome de host do recurso principal. Define has_principal como "true".
uri event.idm.read_only_udm.target.url Mapeado diretamente.
uri_path event.idm.read_only_udm.target.url Mapeado diretamente, concatenado com uri_query, se presente.
url event.idm.read_only_udm.principal.url Mapeado diretamente.
url_string event.idm.read_only_udm.network.http.referral_url Mapeado diretamente.
user_agent event.idm.read_only_udm.network.http.user_agent Mapeado diretamente.
userId event.idm.read_only_udm.principal.user.userid, event.idm.read_only_udm.target.user.userid Mapeado diretamente. Também usado para preencher o ID do usuário de destino. Define has_principal_user como "true".
vendor_name event.idm.read_only_udm.metadata.vendor_name Codificado como "F5".
violations event.idm.read_only_udm.security_result.detection_fields[].key:"violations", event.idm.read_only_udm.security_result.detection_fields[].value Mapeado diretamente.
vs event.idm.read_only_udm.about.resource.attribute.labels[].key:"vs", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente da chave vs nos pares de chave-valor analisados.
vs_name event.idm.read_only_udm.about.resource.attribute.labels[].key:"vs_name", event.idm.read_only_udm.about.resource.attribute.labels[].value Mapeado diretamente da chave vs_name nos pares de chave-valor analisados.
N/A event.idm.read_only_udm.metadata.event_type Determinado pela lógica do analisador com base na presença de determinados campos. O valor padrão é GENERIC_EVENT. Pode ser NETWORK_CONNECTION, USER_LOGIN, USER_LOGOUT, USER_UNCATEGORIZED, STATUS_UPDATE ou NETWORK_HTTP.
N/A event.idm.read_only_udm.metadata.product_name Codificado como "BIG-IP Local Traffic Manager (LTM)".
N/A event.idm.read_only_udm.metadata.vendor_name Codificado como "F5".
N/A event.idm.read_only_udm.metadata.event_timestamp Copiado do event.timestamp de nível superior.
N/A event.idm.read_only_udm.security_result.severity Determinado pela lógica do analisador com base nos campos severity ou Level, se presentes. O padrão é UNKNOWN_SEVERITY. Pode ser INFORMATIONAL, LOW, MEDIUM, HIGH ou CRITICAL.
N/A event.idm.read_only_udm.security_result.summary Defina como "Falha na autenticação" para registros específicos de apmd.
N/A event.idm.read_only_udm.extensions.auth.type Definido como "VPN" para registros específicos de apmd e sshd. Caso contrário, defina como AUTHTYPE_UNSPECIFIED para eventos USER_LOGIN e USER_LOGOUT.
N/A event.idm.read_only_udm.network.ip_protocol O padrão é "TCP" se proto não estiver presente. Caso contrário, determinado pelo campo proto.

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