Recoger registros de F5 BIG-IP LTM
En este documento se describe cómo puede recoger registros de F5 BIG-IP Local Traffic Manager (LTM) mediante un reenviador de Google Security Operations.
Para obtener más información, consulta Ingestión de datos en Google Security Operations.
Una etiqueta de ingestión identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta de ingestión F5_BIGIP_LTM
.
Configurar F5 BIG-IP LTM
- Inicia sesión en SSH con las credenciales de root.
Inicia sesión en Traffic Management Shell (tmsh) con el siguiente comando:
tmsh
Envía mensajes de registro filtrados a servidores syslog remotos con el siguiente comando:
modify /sys syslog remote-servers none
Elimine la instrucción remote-servers y, a continuación, añada una instrucción syslog
include
que defina una regla de filtro y el servidor remoto.Para definir el filtro syslog necesario que hace referencia al servidor remoto, usa el siguiente comando:
edit /sys syslog all-properties
Sustituye el comando
include none
por el siguiente filtro y añade la dirección IP y el número de puerto.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); }; "
Sustituye IP_ADDRESS por la dirección IP del reenviador de Google Security Operations y port por el número de puerto alto.
Para salir del editor de texto, pulsa Esc y, a continuación, introduce wq!.
Guarda la configuración con el siguiente comando:
save /sys config
Configurar el reenviador de Google Security Operations y syslog para ingerir registros de F5 BIG-IP LTM
- Ve a Configuración de SIEM > Reenviadores.
- Haz clic en Añadir nuevo remitente.
- En el campo Nombre del reenviador, introduce un nombre único para el reenviador.
- Haz clic en Enviar. Se añade el reenviador y se muestra la ventana Añadir configuración de recopilador.
- En el campo Nombre del recolector, escribe un nombre.
- Selecciona F5 BIGIP LTM como Tipo de registro.
- Seleccione Syslog como Tipo de recogida.
- Configure los siguientes parámetros de entrada obligatorios:
- Protocolo: especifica el protocolo.
- Dirección: especifica la dirección IP del reenviador de Google Security Operations.
- Puerto: especifica el puerto.
- Haz clic en Enviar.
Para obtener más información sobre los reenviadores de Google Security Operations, consulta la documentación de los reenviadores de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de reenviador, consulta Configuración de reenviadores por tipo.
Si tienes problemas al crear reenviadores, ponte en contacto con el equipo de Asistencia de Google Security Operations.
Referencia de asignación de campos
Este analizador normaliza los registros de F5 BIG-IP Local Traffic Manager (LTM) y gestiona los formatos de pares clave-valor y syslog. Extrae campos como direcciones IP, nombres de usuario, acciones y descripciones, los asigna al UDM y clasifica los eventos en función del contenido de los registros y los campos extraídos, incluidas las conexiones de red, los inicios y cierres de sesión de los usuarios y los eventos genéricos.
Tabla de asignación de UDM
Campo de registro | Asignación de 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 |
Se asigna directamente desde la clave Access_Profile de los pares clave-valor analizados. |
Client_IP |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
Se asigna directamente desde la clave Client_IP de los pares clave-valor analizados. También se usa para rellenar la IP del recurso principal. Asigna el valor true a has_principal . |
Country |
event.idm.read_only_udm.principal.location.country_or_region |
Se asigna directamente desde la clave Country de los pares clave-valor analizados. |
Listener |
event.idm.read_only_udm.additional.fields[].key:"Listener", event.idm.read_only_udm.additional.fields[].value.string_value |
Se asigna directamente desde la clave Listener de los pares clave-valor analizados. |
Session_ID |
event.idm.read_only_udm.network.session_id |
Se asigna directamente desde la clave Session_ID de los pares clave-valor analizados. |
State |
event.idm.read_only_udm.principal.location.state |
Se asigna directamente desde la clave State de los pares clave-valor analizados. |
Virtual_IP |
event.idm.read_only_udm.target.ip[], event.idm.read_only_udm.target.asset.ip[] |
Se asigna directamente desde la clave Virtual_IP de los pares clave-valor analizados. También se usa para rellenar la IP del recurso de destino. Asigna el valor true a has_target . |
about |
event.idm.read_only_udm.about |
Se rellena con varios campos, como snat , vs_name , path , query , node , pool_member , vs , client , blade y device , si están presentes en el registro sin procesar y se han analizado correctamente. |
action_data |
event.idm.read_only_udm.target.process.command_line |
Se asigna directamente a los registros de procesos de scriptd . |
attack_type |
event.idm.read_only_udm.security_result.category_details[] |
Asignación directa. |
blade |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"blade", event.idm.read_only_udm.about.resource.attribute.labels[].value |
Se asigna directamente desde la clave blade de los pares clave-valor analizados. |
bytes_in |
event.idm.read_only_udm.network.received_bytes |
Asignado directamente y convertido en un entero sin signo. |
bytes_out |
event.idm.read_only_udm.network.sent_bytes |
Asignado directamente y convertido en un entero sin signo. |
captcha_result |
event.idm.read_only_udm.additional.fields[].key:"captcha_result", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
client |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"client", event.idm.read_only_udm.about.resource.attribute.labels[].value |
Se asigna directamente desde la clave client de los pares clave-valor analizados. |
client_ip |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
Asignación directa. También se usa para rellenar la IP del recurso principal. Asigna el valor true a has_principal . |
client_port |
event.idm.read_only_udm.principal.port |
Asignado directamente, convertido en entero. |
collection_time |
event.timestamp |
La marca de tiempo de la entrada de registro se usa como marca de tiempo del evento. |
command_line |
event.idm.read_only_udm.target.process.command_line |
Se asignan directamente a los registros de procesos de CROND y a algunos registros de logger . |
data |
message |
El mensaje de registro sin procesar. Se analiza y se usa para rellenar varios campos de 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 |
Asignación directa. |
dgl_value |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"DataGroup_List", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
Asignación directa. |
description |
event.idm.read_only_udm.metadata.description , event.idm.read_only_udm.security_result.description |
Se asigna directamente a algunos tipos de registros o se usa como parte de la descripción del resultado de seguridad. |
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 |
Asignación directa. También se usa para rellenar el nombre de host del recurso principal. Asigna el valor true a has_principal . |
dest_ip |
event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip |
Asignación directa. También se usa para rellenar la IP del recurso de destino. Asigna el valor true a has_principal . |
dest_port |
event.idm.read_only_udm.target.port |
Asignación directa. |
dvc |
event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.intermediary.hostname |
Analizado para extraer el nombre de host o la IP. Se usa para rellenar el nombre de host principal o el nombre de host intermediario. |
errdefs_msgno |
event.idm.read_only_udm.additional.fields[].key:"errdefs_msgno", event.idm.read_only_udm.additional.fields[].value.string_value |
Se asigna directamente desde la clave errdefs_msgno de los pares clave-valor analizados. |
error_reason |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"error_reason", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
Asignación directa. |
false_positive |
event.idm.read_only_udm.additional.fields[].key:"false_positive", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
function_id |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"function_id", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
Asignación directa. |
geoContinent |
event.idm.read_only_udm.principal.location.continent |
No se ha asignado en el ejemplo proporcionado, pero se asignaría al continente si estuviera disponible. |
geoCountry |
event.idm.read_only_udm.principal.location.country_or_region |
Asignación directa. |
geoState |
event.idm.read_only_udm.principal.location.state |
Asignación directa. |
header.Referer |
event.idm.read_only_udm.network.http.referral_url |
Asignación directa. |
header.User-Agent |
event.idm.read_only_udm.network.http.user_agent, event.idm.read_only_udm.network.http.parsed_user_agent |
Asignación directa. También se ha convertido en un user-agent analizado. |
header.X-Forwarded-For |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
Se analiza para extraer las IPs y combinarlas en la IP principal y la IP del recurso principal. |
host |
event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname |
Asignación directa. También se usa para rellenar el nombre de host del recurso de destino. Asigna el valor true a has_target . |
http_host |
event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname |
Asignación directa. También se usa para rellenar el nombre de host del recurso de destino. Asigna el valor true a has_target . |
http_method |
event.idm.read_only_udm.network.http.method |
Asignación directa. Define event_type como NETWORK_HTTP si está presente. |
ip_client |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
Asignación directa. También se usa para rellenar la IP del recurso principal. Asigna el valor true a has_principal . |
kv_msg |
Varios campos | Se analizan como pares clave-valor y se usan para rellenar varios campos de UDM. |
Level |
event.idm.read_only_udm.security_result.severity |
Se asigna a la gravedad si no se incluye el campo severity . Convertido a valores de gravedad de UDM (por ejemplo, "Info" -> "INFORMATIONAL"). |
Listener |
event.idm.read_only_udm.additional.fields[].key:"Listener", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
log_message |
event.idm.read_only_udm.principal.resource.attribute.labels[].value, event.idm.read_only_udm.security_result.description |
Se analiza más a fondo para extraer request_uri o description . |
log_type |
event.idm.read_only_udm.metadata.log_type |
Se asigna directamente desde el campo log_type del registro sin procesar. |
loglevel |
event.idm.read_only_udm.security_result.severity |
Asignado a la gravedad. Convertido a valores de gravedad de UDM (por ejemplo, "warning" -> "MEDIUM", "err" -> "HIGH"). También se usa para la lógica de alertas o eventos significativos. |
manage_ip_addr |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
Asignación directa. También se usa para rellenar la IP del recurso principal. Asigna el valor true a has_principal . |
method |
event.idm.read_only_udm.network.http.method |
Asignación directa. Asigna el valor NETWORK_HTTP a event_type . |
method_req |
event.idm.read_only_udm.network.http.method |
Asignación directa. |
msg1 |
event.idm.read_only_udm.security_result.description |
Se usa como descripción del resultado de seguridad si no se analiza más. |
node |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"node", event.idm.read_only_udm.about.resource.attribute.labels[].value |
Se asigna directamente desde la clave node de los pares clave-valor analizados. |
partition_name |
event.idm.read_only_udm.additional.fields[].key:"partition_name", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
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 |
Asignación directa. |
policy_name |
event.idm.read_only_udm.security_result.detection_fields[].key:"policy_name", event.idm.read_only_udm.security_result.detection_fields[].value |
Asignación directa. |
pool_member |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"pool_member", event.idm.read_only_udm.about.resource.attribute.labels[].value |
Se asigna directamente desde la clave pool_member de los pares clave-valor analizados. |
principalHost |
event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname |
Asignación directa. También se usa para rellenar el nombre de host del recurso principal. Asigna el valor true a has_principal . |
principalIp |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[], event.idm.read_only_udm.observer.ip |
Asignación directa. También se usa para rellenar la IP del recurso principal y la IP del observador. Asigna el valor true a has_principal . |
principalPort |
event.idm.read_only_udm.principal.port |
Asignado directamente, convertido en entero. |
process |
event.idm.read_only_udm.target.application |
Asignación directa. |
product_event_type |
event.idm.read_only_udm.metadata.product_event_type |
Asignación directa. |
proto |
event.idm.read_only_udm.network.ip_protocol |
Se asigna al protocolo IP después de convertir el número de protocolo en el nombre del protocolo mediante una búsqueda. |
query |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"query", event.idm.read_only_udm.about.resource.attribute.labels[].value |
Se asigna directamente desde la clave query de los pares clave-valor analizados. |
query_string |
event.idm.read_only_udm.additional.fields[].key:"query_string", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
reason |
event.idm.read_only_udm.security_result.description |
Se ha asignado directamente a los registros de procesos de apmd con el nivel de registro de advertencia o error. |
reason_code |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"reason_code", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
Asignación directa. |
req_status |
event.idm.read_only_udm.security_result.detection_fields[].key:"req_status", event.idm.read_only_udm.security_result.detection_fields[].value |
Asignación directa. |
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 |
Se usa para determinar el protocolo de aplicación (HTTP) y se asigna como etiqueta. |
request_status |
event.idm.read_only_udm.additional.fields[].key:"request_status", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
request_uri |
event.idm.read_only_udm.target.url |
Asignación directa. |
resp_code |
event.idm.read_only_udm.network.http.response_code |
Asignado directamente, convertido en entero. |
response_code |
event.idm.read_only_udm.network.http.response_code |
Asignado directamente, convertido en entero. |
rule_name |
event.idm.read_only_udm.security_result.rule_name |
Asignación directa. |
sec_action |
event.idm.read_only_udm.security_result.action[] |
Asignado a la acción. "Continue" se convierte en "ALLOW". Los demás valores se convierten en "BLOCK". |
security_result |
event.idm.read_only_udm.security_result |
Se ha combinado en el objeto security_result. |
session_id |
event.idm.read_only_udm.network.session_id |
Asignación directa. |
severity |
event.idm.read_only_udm.security_result.severity |
Asignado a la gravedad. Convertido a valores de gravedad de UDM (por ejemplo, "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 |
Asignación directa. |
sig_names |
event.idm.read_only_udm.additional.fields[].key:"sig_names", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
sni_host |
event.idm.read_only_udm.network.tls.client.server_name |
Asignación directa. |
snat |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"snat", event.idm.read_only_udm.about.resource.attribute.labels[].value |
Se asigna directamente desde la clave snat de los pares clave-valor analizados. |
snat_ip |
event.idm.read_only_udm.principal.nat_ip[] |
Asignación directa. |
snat_port |
event.idm.read_only_udm.principal.nat_port |
Asignado directamente, convertido en entero. |
src_ip |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
Asignación directa. También se usa para rellenar la IP del recurso principal. |
src_port |
event.idm.read_only_udm.principal.port |
Asignación directa. |
ssl_cipher |
event.idm.read_only_udm.network.tls.cipher |
Asignación directa. |
ssl_function |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"ssl_function", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
Asignación directa. |
ssl_version |
event.idm.read_only_udm.network.tls.version_protocol |
Asignación directa. |
staged_sig_ids |
event.idm.read_only_udm.additional.fields[].key:"staged_sig_ids", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
staged_sig_names |
event.idm.read_only_udm.additional.fields[].key:"staged_sig_names", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
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 |
Asignación directa. |
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 |
Asignación directa. |
status |
event.idm.read_only_udm.security_result.summary |
Se asigna directamente a los registros de procesos de scriptd . |
summary |
event.idm.read_only_udm.security_result.summary |
Se asignan directamente a algunos tipos de registro. |
support_id |
event.idm.read_only_udm.additional.fields[].key:"Support_Id", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
systems |
event.idm.read_only_udm.principal.asset.attribute.labels[].key, event.idm.read_only_udm.principal.asset.attribute.labels[].value |
Se analiza para extraer información del sistema y asignarla como etiquetas al recurso principal. |
targetFile |
event.idm.read_only_udm.target.file.full_path |
Se asigna directamente a los registros de procesos de scriptd . |
targetIp |
event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip |
Asignación directa. También se usa para rellenar la IP del recurso de destino. Asigna el valor true a has_target . |
targetPort |
event.idm.read_only_udm.target.port |
Asignado directamente, convertido en entero. |
threat_campaign_names |
event.idm.read_only_udm.additional.fields[].key:"threat_campaign_names", event.idm.read_only_udm.additional.fields[].value.string_value |
Asignación directa. |
timestamp |
event.timestamp |
Se asigna directamente después de analizar y rebasar. |
tls_version |
event.idm.read_only_udm.network.tls.version |
Asignación directa. |
tlsproto |
event.idm.read_only_udm.network.tls.version_protocol |
Asignación directa. Si el valor es HTTP/1.1, se asigna "HTTP". |
unit_host |
event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname |
Asignación directa. También se usa para rellenar el nombre de host del recurso principal. Asigna el valor true a has_principal . |
uri |
event.idm.read_only_udm.target.url |
Asignación directa. |
uri_path |
event.idm.read_only_udm.target.url |
Asignado directamente, concatenado con uri_query si está presente. |
url |
event.idm.read_only_udm.principal.url |
Asignación directa. |
url_string |
event.idm.read_only_udm.network.http.referral_url |
Asignación directa. |
user_agent |
event.idm.read_only_udm.network.http.user_agent |
Asignación directa. |
userId |
event.idm.read_only_udm.principal.user.userid, event.idm.read_only_udm.target.user.userid |
Asignación directa. También se usa para rellenar el ID de usuario objetivo. Asigna el valor true a has_principal_user . |
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 |
Asignación directa. |
vs |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"vs", event.idm.read_only_udm.about.resource.attribute.labels[].value |
Se asigna directamente desde la clave vs de los pares clave-valor analizados. |
vs_name |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"vs_name", event.idm.read_only_udm.about.resource.attribute.labels[].value |
Se asigna directamente desde la clave vs_name de los pares clave-valor analizados. |
N/A | event.idm.read_only_udm.metadata.event_type |
Determinado por la lógica del analizador en función de la presencia de determinados campos. El valor predeterminado es GENERIC_EVENT . Puede ser NETWORK_CONNECTION , USER_LOGIN , USER_LOGOUT , USER_UNCATEGORIZED , STATUS_UPDATE o 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 del nivel superior event.timestamp . |
N/A | event.idm.read_only_udm.security_result.severity |
Determinado por la lógica del analizador en función de los campos severity o Level , si están presentes. El valor predeterminado es UNKNOWN_SEVERITY . Puede ser INFORMATIONAL , LOW , MEDIUM , HIGH o CRITICAL . |
N/A | event.idm.read_only_udm.security_result.summary |
Se establece en "Authentication failure" (Fallo de autenticación) para registros apmd específicos. |
N/A | event.idm.read_only_udm.extensions.auth.type |
Se define como "VPN" para registros específicos de apmd y sshd . De lo contrario, asigna el valor AUTHTYPE_UNSPECIFIED a los eventos USER_LOGIN y USER_LOGOUT . |
N/A | event.idm.read_only_udm.network.ip_protocol |
Si no se incluye proto , el valor predeterminado es "TCP". De lo contrario, se determina mediante el campo proto . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.