Coletar registros do F5 BIG-IP LTM
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
- Faça login no SSH usando as credenciais de administrador.
Faça login no shell de gerenciamento de tráfego (tmsh) com o seguinte comando:
tmsh
Envie mensagens de registro filtradas para servidores syslog remotos com o seguinte comando:
modify /sys syslog remote-servers none
Remova a instrução remote-servers e adicione uma instrução syslog
include
que defina uma regra de filtro e o servidor remoto.Para definir o filtro syslog necessário que faz referência ao servidor remoto, use o seguinte comando:
edit /sys syslog all-properties
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.
Para sair do editor de texto, pressione Esc e digite wq!.
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
- Acesse Configurações do SIEM > Encaminhadores.
- Clique em Adicionar novo encaminhador.
- No campo Nome do encaminhador, insira um nome exclusivo para ele.
- Clique em Enviar. O encaminhador é adicionado, e a janela Adicionar configuração do coletor aparece.
- No campo Nome do coletor, digite um nome.
- Selecione F5 BIGIP LTM como o Tipo de registro.
- Selecione Syslog como o Tipo de coletor.
- 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.
- 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.