Recopila registros de LTM de BIG-IP de F5

Compatible con:

En este documento, se describe cómo recopilar registros de F5 BIG-IP Local Traffic Manager (LTM) con un agente de reenvío de Google Security Operations.

Para obtener más información, consulta Transferencia de datos a Google Security Operations.

Una etiqueta de transferencia identifica el analizador que normaliza los datos de registro sin procesar al formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta de transferencia F5_BIGIP_LTM.

Configura LTM de BIG-IP de F5

  1. Accede a SSH con las credenciales de raíz.
  2. Accede a Traffic Management Shell (tmsh) con el siguiente comando:

    tmsh

  3. Envía mensajes de registro filtrados a servidores syslog remotos con el siguiente comando:

    modify /sys syslog remote-servers none

  4. Quita la sentencia remote-servers y, luego, agrega una sentencia syslog include que defina una regla de filtro y el servidor remoto.

  5. Para definir el filtro de syslog requerido que hace referencia al servidor remoto, usa el siguiente comando:

    edit /sys syslog all-properties

  6. Reemplaza el comando include none por el siguiente filtro y agrega 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);
    
    };
    
    "
    

    Reemplaza IP_ADDRESS por la dirección IP del reenvío de Google Security Operations y port por el número de puerto alto.

  7. Para salir del editor de texto, presiona Esc y, luego, ingresa wq!.

  8. Guarda la configuración con el siguiente comando:

    save /sys config

Configura el reenvío de Google Security Operations y Syslog para transferir registros de LTM de F5 BIG-IP

  1. Ve a Configuración del SIEM > Reenviadores.
  2. Haz clic en Agregar un nuevo reenvío.
  3. En el campo Nombre del reenviador, ingresa un nombre único para el reenviador.
  4. Haz clic en Enviar. Se agregará el reenvío y aparecerá la ventana Add collector configuration.
  5. En el campo Nombre del recopilador, escribe un nombre.
  6. Selecciona F5 BIGIP LTM como el Tipo de registro.
  7. Selecciona Syslog como el Tipo de recopilador.
  8. Configura 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.
  9. Haz clic en Enviar.

Para obtener más información sobre los retransmisores de Google Security Operations, consulta la documentación de los retransmisores de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de reenvío, consulta Configuración del reenvío por tipo.

Si tienes problemas para crear reenvíos, comunícate con el equipo de asistencia de Operaciones de seguridad de Google.

Referencia de la asignación de campos

Este analizador normaliza los registros de F5 BIG-IP Local Traffic Manager (LTM) y controla los formatos de syslog y de clave-valor. Extrae campos como direcciones IP, nombres de usuario, acciones y descripciones, los asigna al UDM y categoriza los eventos según el contenido del registro y los campos extraídos, incluidas las conexiones de red, los accesos 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 en 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 en los pares clave-valor analizados. También se usa para completar la IP del activo principal. Establece has_principal como verdadero.
Country event.idm.read_only_udm.principal.location.country_or_region Se asigna directamente desde la clave Country en 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 en los pares clave-valor analizados.
Session_ID event.idm.read_only_udm.network.session_id Se asigna directamente desde la clave Session_ID en los pares clave-valor analizados.
State event.idm.read_only_udm.principal.location.state Se asigna directamente desde la clave State en 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 en los pares clave-valor analizados. También se usa para propagar la IP del activo de destino. Establece has_target como verdadero.
about event.idm.read_only_udm.about Se completa 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 analizaron 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[] Se asigna directamente.
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 en los pares clave-valor analizados.
bytes_in event.idm.read_only_udm.network.received_bytes Se asigna directamente y se convierte en un número entero sin signo.
bytes_out event.idm.read_only_udm.network.sent_bytes Se asigna directamente y se convierte en un número 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 Se asigna directamente.
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 en 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. También se usa para completar la IP del activo principal. Establece has_principal como verdadero.
client_port event.idm.read_only_udm.principal.port Se asigna directamente y se convierte en un número 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 Es el mensaje de registro sin procesar. Se analiza y se usa para completar 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 Se asigna directamente.
dgl_value event.idm.read_only_udm.principal.resource.attribute.labels[].key:"DataGroup_List", event.idm.read_only_udm.principal.resource.attribute.labels[].value Se asigna directamente.
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 Se asigna directamente. También se usa para completar el nombre de host del activo principal. Establece has_principal como verdadero.
dest_ip event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip Se asigna directamente. También se usa para propagar la IP del activo de destino. Establece has_principal como verdadero.
dest_port event.idm.read_only_udm.target.port Se asigna directamente.
dvc event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.intermediary.hostname Se analizó para extraer el nombre de host o la IP. Se usa para completar el nombre de host principal o el nombre de host intermedio.
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 en 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 Se asigna directamente.
false_positive event.idm.read_only_udm.additional.fields[].key:"false_positive", event.idm.read_only_udm.additional.fields[].value.string_value Se asigna directamente.
function_id event.idm.read_only_udm.principal.resource.attribute.labels[].key:"function_id", event.idm.read_only_udm.principal.resource.attribute.labels[].value Se asigna directamente.
geoContinent event.idm.read_only_udm.principal.location.continent No se asigna en el ejemplo proporcionado, pero se asignaría al continente si estuviera disponible.
geoCountry event.idm.read_only_udm.principal.location.country_or_region Se asigna directamente.
geoState event.idm.read_only_udm.principal.location.state Se asigna directamente.
header.Referer event.idm.read_only_udm.network.http.referral_url Se asigna directamente.
header.User-Agent event.idm.read_only_udm.network.http.user_agent, event.idm.read_only_udm.network.http.parsed_user_agent Se asigna directamente. También se convirtió en un usuario-agente analizado.
header.X-Forwarded-For event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Se analizan para extraer las IPs y combinarlas en la IP principal y la IP del activo principal.
host event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname Se asigna directamente. También se usa para completar el nombre de host del recurso de destino. Establece has_target como verdadero.
http_host event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname Se asigna directamente. También se usa para completar el nombre de host del recurso de destino. Establece has_target como verdadero.
http_method event.idm.read_only_udm.network.http.method Se asigna directamente. Establece event_type en NETWORK_HTTP si está presente.
ip_client event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Se asigna directamente. También se usa para completar la IP del activo principal. Establece has_principal como verdadero.
kv_msg Varios campos Se analizan como pares clave-valor y se usan para completar varios campos de UDM.
Level event.idm.read_only_udm.security_result.severity Se asigna a la gravedad si el campo severity no está presente. Se convirtió a valores de gravedad del UDM (p.ej., "Info" -> "INFORMATIONAL").
Listener event.idm.read_only_udm.additional.fields[].key:"Listener", event.idm.read_only_udm.additional.fields[].value.string_value Se asigna directamente.
log_message event.idm.read_only_udm.principal.resource.attribute.labels[].value, event.idm.read_only_udm.security_result.description Se analiza aún más 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 Se asigna a la gravedad. Se convirtió a valores de gravedad del UDM (p.ej., "warning" -> "MEDIUM", "err" -> "HIGH"). También se usa para la lógica de alertas y eventos significativos.
manage_ip_addr event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Se asigna directamente. También se usa para completar la IP del activo principal. Establece has_principal como verdadero.
method event.idm.read_only_udm.network.http.method Se asigna directamente. Establece event_type en NETWORK_HTTP.
method_req event.idm.read_only_udm.network.http.method Se asigna directamente.
msg1 event.idm.read_only_udm.security_result.description Se usa como la 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 en 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 Se asigna directamente.
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 Se asigna directamente.
policy_name event.idm.read_only_udm.security_result.detection_fields[].key:"policy_name", event.idm.read_only_udm.security_result.detection_fields[].value Se asigna directamente.
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 en los pares clave-valor analizados.
principalHost event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname Se asigna directamente. También se usa para completar el nombre de host del activo principal. Establece has_principal como verdadero.
principalIp event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[], event.idm.read_only_udm.observer.ip Se asigna directamente. También se usa para completar la IP del activo principal y la IP del observador. Establece has_principal como verdadero.
principalPort event.idm.read_only_udm.principal.port Se asigna directamente y se convierte en un número entero.
process event.idm.read_only_udm.target.application Se asigna directamente.
product_event_type event.idm.read_only_udm.metadata.product_event_type Se asigna directamente.
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 con 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 en 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 Se asigna directamente.
reason event.idm.read_only_udm.security_result.description Se asigna directamente a los registros del proceso 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 Se asigna directamente.
req_status event.idm.read_only_udm.security_result.detection_fields[].key:"req_status", event.idm.read_only_udm.security_result.detection_fields[].value Se asigna directamente.
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 la 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 Se asigna directamente.
request_uri event.idm.read_only_udm.target.url Se asigna directamente.
resp_code event.idm.read_only_udm.network.http.response_code Se asigna directamente y se convierte en un número entero.
response_code event.idm.read_only_udm.network.http.response_code Se asigna directamente y se convierte en un número entero.
rule_name event.idm.read_only_udm.security_result.rule_name Se asigna directamente.
sec_action event.idm.read_only_udm.security_result.action[] Se asignó 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 combinó en el objeto security_result.
session_id event.idm.read_only_udm.network.session_id Se asigna directamente.
severity event.idm.read_only_udm.security_result.severity Se asigna a la gravedad. Se convirtió a valores de gravedad del UDM (p.ej., "Error" -> "ERROR", "Informativo" -> "INFORMATIONAL").
sig_ids event.idm.read_only_udm.additional.fields[].key:"sig_ids", event.idm.read_only_udm.additional.fields[].value.string_value Se asigna directamente.
sig_names event.idm.read_only_udm.additional.fields[].key:"sig_names", event.idm.read_only_udm.additional.fields[].value.string_value Se asigna directamente.
sni_host event.idm.read_only_udm.network.tls.client.server_name Se asigna directamente.
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 en los pares clave-valor analizados.
snat_ip event.idm.read_only_udm.principal.nat_ip[] Se asigna directamente.
snat_port event.idm.read_only_udm.principal.nat_port Se asigna directamente y se convierte en un número entero.
src_ip event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] Se asigna directamente. También se usa para completar la IP del activo principal.
src_port event.idm.read_only_udm.principal.port Se asigna directamente.
ssl_cipher event.idm.read_only_udm.network.tls.cipher Se asigna directamente.
ssl_function event.idm.read_only_udm.principal.resource.attribute.labels[].key:"ssl_function", event.idm.read_only_udm.principal.resource.attribute.labels[].value Se asigna directamente.
ssl_version event.idm.read_only_udm.network.tls.version_protocol Se asigna directamente.
staged_sig_ids event.idm.read_only_udm.additional.fields[].key:"staged_sig_ids", event.idm.read_only_udm.additional.fields[].value.string_value Se asigna directamente.
staged_sig_names event.idm.read_only_udm.additional.fields[].key:"staged_sig_names", event.idm.read_only_udm.additional.fields[].value.string_value Se asigna directamente.
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 Se asigna directamente.
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 Se asigna directamente.
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 asigna directamente para algunos 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 Se asigna directamente.
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 activo 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 Se asigna directamente. También se usa para propagar la IP del activo de destino. Establece has_target como verdadero.
targetPort event.idm.read_only_udm.target.port Se asigna directamente y se convierte en un número 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 Se asigna directamente.
timestamp event.timestamp Se asigna directamente después del análisis y la rebase.
tls_version event.idm.read_only_udm.network.tls.version Se asigna directamente.
tlsproto event.idm.read_only_udm.network.tls.version_protocol Se asigna directamente. 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 Se asigna directamente. También se usa para completar el nombre de host del activo principal. Establece has_principal como verdadero.
uri event.idm.read_only_udm.target.url Se asigna directamente.
uri_path event.idm.read_only_udm.target.url Se asigna directamente y se concatena con uri_query si está presente.
url event.idm.read_only_udm.principal.url Se asigna directamente.
url_string event.idm.read_only_udm.network.http.referral_url Se asigna directamente.
user_agent event.idm.read_only_udm.network.http.user_agent Se asigna directamente.
userId event.idm.read_only_udm.principal.user.userid, event.idm.read_only_udm.target.user.userid Se asigna directamente. También se usa para completar el ID del usuario objetivo. Establece has_principal_user como verdadero.
vendor_name event.idm.read_only_udm.metadata.vendor_name Está 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 Se asigna directamente.
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 en 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 en los pares clave-valor analizados.
N/A event.idm.read_only_udm.metadata.event_type La lógica del analizador determina este valor según la presencia de ciertos campos. La configuración predeterminada 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 Se codifica como "BIG-IP Local Traffic Manager (LTM)".
N/A event.idm.read_only_udm.metadata.vendor_name Está codificado como "F5".
N/A event.idm.read_only_udm.metadata.event_timestamp Se copió del event.timestamp de nivel superior.
N/A event.idm.read_only_udm.security_result.severity La lógica del analizador determina este valor en función de los campos severity o Level, si están presentes. La configuración predeterminada es UNKNOWN_SEVERITY. Puede ser INFORMATIONAL, LOW, MEDIUM, HIGH o CRITICAL.
N/A event.idm.read_only_udm.security_result.summary Se establece en "Falla de autenticación" para registros de apmd específicos.
N/A event.idm.read_only_udm.extensions.auth.type Se establece en "VPN" para los registros de apmd y sshd específicos. De lo contrario, se establece en AUTHTYPE_UNSPECIFIED para los eventos USER_LOGIN y USER_LOGOUT.
N/A event.idm.read_only_udm.network.ip_protocol El valor predeterminado es "TCP" si proto no está presente. De lo contrario, se determina según el campo proto.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.