Recopila registros de APM de BIG-IP de F5
En este documento, se explica cómo transferir registros de F5 BIG-IP APM a Google Security Operations con Bindplane.
El administrador de políticas de acceso (APM) de BIG-IP de F5 proporciona acceso seguro y unificado a aplicaciones, APIs y datos. Proporciona control de acceso basado en el contexto y con reconocimiento de la identidad con SSO, autenticación de varios factores y capacidades de VPN SSL para redes empresariales. El analizador extrae campos de los registros con formato syslog de APM de BIG-IP de F5. Utiliza grok o kv para analizar el mensaje de registro y, luego, asigna estos valores al Modelo de datos unificados (UDM). También establece valores de metadatos predeterminados para el origen y el tipo del evento.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Windows Server 2016 o versiones posteriores, o host de Linux con
systemd - Si se ejecuta detrás de un proxy, asegúrate de que los puertos de firewall estén abiertos según los requisitos del agente de Bindplane.
- Acceso privilegiado a la interfaz de administración de BIG-IP de F5
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará BindPlane.
Obtén el ID de cliente de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.
Instalación en Windows
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el comando siguiente:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietEspera a que se complete la instalación.
Ejecute el siguiente comando para verificar la instalación:
sc query observiq-otel-collector
El servicio debe mostrarse como RUNNING.
Instalación en Linux
- Abre una terminal con privilegios de administrador o sudo.
Ejecuta el comando siguiente:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shEspera a que se complete la instalación.
Ejecute el siguiente comando para verificar la instalación:
sudo systemctl status observiq-otel-collector
El servicio debería mostrarse como activo (en ejecución).
Recursos de instalación adicionales
Para obtener más opciones de instalación y solucionar problemas, consulta la guía de instalación del agente de Bindplane.
Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps
Ubica el archivo de configuración
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edita el archivo de configuración
Reemplaza todo el contenido de
config.yamlcon la siguiente configuración:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip creds_file_path: '/path/to/ingestion-authentication-file.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: 'F5_BIGIP_APM' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Parámetros de configuración
Reemplaza los marcadores de posición que se indican más abajo:
Configuración del receptor:
udplog: Usaudplogpara el registro del sistema UDP otcplogpara el registro del sistema TCP.0.0.0.0: Dirección IP en la que se realizará la escucha (0.0.0.0para escuchar en todas las interfaces)514: Número de puerto en el que se debe escuchar (puerto syslog estándar)
Configuración del exportador:
creds_file_path: Ruta de acceso completa al archivo de autenticación de la transferencia:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
YOUR_CUSTOMER_ID: ID de cliente de la sección Obtén el ID de clienteendpoint: URL del extremo regional:- EE.UU.:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Consulta Extremos regionales para obtener la lista completa.
- EE.UU.:
log_type: Tipo de registro tal como aparece en Chronicle (F5_BIGIP_APM)
Guarda el archivo de configuración
- Después de editarlo, guarda el archivo:
- Linux: Presiona
Ctrl+O, luegoEntery, después,Ctrl+X. - Windows: Haz clic en Archivo > Guardar
- Linux: Presiona
Reinicia el agente de Bindplane para aplicar los cambios
Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:
sudo systemctl restart observiq-otel-collectorVerifica que el servicio esté en ejecución:
sudo systemctl status observiq-otel-collectorRevisa los registros en busca de errores:
sudo journalctl -u observiq-otel-collector -f
Para reiniciar el agente de Bindplane en Windows, elige una de las siguientes opciones:
Símbolo del sistema o PowerShell como administrador:
net stop observiq-otel-collector && net start observiq-otel-collectorConsola de Services:
- Presiona
Win+R, escribeservices.mscy presiona Intro. - Busca observIQ OpenTelemetry Collector.
Haz clic con el botón derecho y selecciona Reiniciar.
Verifica que el servicio esté en ejecución:
sc query observiq-otel-collectorRevisa los registros en busca de errores:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Presiona
Configura el reenvío de syslog de APM de F5 BIG-IP
- Accede a la interfaz web de F5 BIG-IP (TMUI/utilidad de configuración).
- Ve a System > Logs > Configuration > Remote Logging.
- En la sección Registro remoto, proporciona los siguientes detalles de configuración:
- IP remota: Ingresa la dirección IP del host del agente de Bindplane.
- Puerto remoto: Ingresa
514.
- Haz clic en Agregar.
- Haz clic en Actualizar para guardar la configuración.
Para configurar el registro de alta velocidad (HSL) para los registros detallados de APM a través de la CLI, haz lo siguiente:
- Establece la conexión SSH al sistema F5 BIG-IP.
Ejecuta los siguientes comandos:
tmsh create ltm pool syslog_pool members add { BINDPLANE_IP:514 } tmsh create sys log-config destination remote-high-speed-log secops_hsl pool-name syslog_pool protocol udp tmsh create sys log-config destination remote-syslog secops_syslog remote-high-speed-log secops_hsl tmsh create sys log-config publisher secops_publisher destinations add { secops_syslog } tmsh save sys config- Reemplaza
BINDPLANE_IPpor la dirección IP del host del agente de Bindplane.
- Reemplaza
Asigna el publicador al perfil de acceso de APM:
- Ve a Access > Profiles / Policies > Access Profiles.
- Selecciona el perfil de acceso de destino.
- En la pestaña Log Settings, selecciona el editor creado.
- Haz clic en Actualizar.
Para verificar que se envíen los mensajes de syslog, consulta los registros del agente de Bindplane.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
| aplicación | principal.application | El valor se toma del campo de la aplicación que extrae el filtro de grok. |
| bytes_in | network.received_bytes | El valor se toma del campo bytes_in que extrae el filtro de grok y se convierte en un número entero sin signo. |
| bytes_out | network.sent_bytes | El valor se toma del campo bytes_out que extrae el filtro de grok y se convierte en un número entero sin signo. |
| cmd_data | principal.process.command_line | El valor se toma del campo cmd_data que extrae el filtro de kv. |
| destination_ip | target.ip | El valor se toma del campo destination_ip que extrae el filtro de grok. |
| destination_port | target.port | El valor se toma del campo destination_port que extrae el filtro de grok y se convierte en un número entero. |
| carpeta | principal.process.file.full_path | El valor se toma del campo de carpeta que extrae el filtro de kv. |
| geoCountry | principal.location.country_or_region | El valor se toma del campo geoCountry que extrae el filtro de grok. |
| geoState | principal.location.state | El valor se toma del campo geoState que extrae el filtro de grok. |
| inner_msg | security_result.description | El valor se toma del campo inner_msg que extrae el filtro de grok cuando no hay otra descripción específica disponible. |
| ip_protocol | network.ip_protocol | El valor se toma del campo ip_protocol que extrae el filtro de grok. |
| principal_hostname | principal.hostname | El valor se toma del campo principal_hostname que extrae el filtro de grok. |
| principal_ip | principal.ip | El valor se toma del campo principal_ip que extrae el filtro de grok. |
| process_id | principal.process.pid | El valor se toma del campo process_id que extrae el filtro de grok. |
| rol | user_role.name | El valor se toma del campo de rol que extrae el filtro de grok. Si el campo de rol contiene "admin" (sin distinción entre mayúsculas y minúsculas), el valor se establece en "ADMINISTRATOR". |
| gravedad, | security_result.severity_details | Aquí se almacena el valor original del mensaje de syslog. El valor se deriva del campo de gravedad con lógica condicional: , CRITICAL -> CRITICAL , ERR -> ERROR , ALERT, EMERGENCY -> HIGH , INFO, NOTICE -> INFORMATIONAL , DEBUG -> LOW , WARN -> MEDIUM |
| source_ip | principal.ip | El valor se toma del campo source_ip que extrae el filtro de grok. |
| source_port | principal.port | El valor se toma del campo source_port que extrae el filtro de grok y se convierte en un número entero. |
| estado | security_result.summary | El valor se toma del campo de estado que extrae el filtro de KV. |
| timestamp | metadata.event_timestamp, timestamp | El valor se toma del campo de marca de tiempo que extrae el filtro de grok y se analiza en un objeto de marca de tiempo. El campo de marca de tiempo en el objeto del evento de nivel superior también obtiene este valor. |
| usuario | principal.user.userid | El valor se toma del campo del usuario que extrae el filtro de grok, después de quitar los prefijos "id" o "ID". El valor se deriva en función de la presencia de otros campos: , Si existe el usuario: USER_UNCATEGORIZED , Si existen source_ip y destination_ip: NETWORK_CONNECTION , Si existen principal_ip o principal_hostname: STATUS_UPDATE , De lo contrario: GENERIC_EVENT Se codifica como "BIGIP_APM". Está codificado como "F5". Si el campo de resultado es "failed", el valor se establece en "BLOCK". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.