eBPF para la supervisión avanzada del rendimiento y la seguridad de Linux

Ya están disponibles los parches de php2shell (CVE-2026-109618 y CVE-2026-109619) para PHP en fin de vida útil. Dado que las respuestas del departamento de ventas están tardando más de lo habitual debido a la elevada demanda, la forma más rápida de obtener los paquetes parcheados es comprar ELS para Runtimes en línea (se abre en una pestaña nueva). Lee las preguntas frecuentes sobre los parches

Ir directamente al resumen generado por IA de esta entrada del blog

  • Resume esta entrada con Perplexity
  • Resume esta publicación con Gemini

Supervisar el rendimiento y la seguridad de Linux no es fácil, y las herramientas tradicionales a menudo pasan por alto detalles críticos. eBPF (filtro de paquetes de Berkeley ampliado) está cambiando esta situación, permitiendo a los administradores realizar un seguimiento de las llamadas al sistema, la actividad de la red, el uso de la CPU y mucho más, todo ello con una sobrecarga mínima. En este artículo, explicaremos cómo funciona eBPF, para qué se utiliza en diversas aplicaciones del mundo real y qué herramientas lo hacen accesible.

¿Qué es el eBPF?

 

eBPF, o Extended Berkeley Packet Filter, es una nueva tecnología que permite la ejecución segura y eficiente de programas definidos por el usuario en el kernel de Linux. A diferencia de los enfoques tradicionales que se basan en un muestreo incompleto o en módulos del núcleoen eBPF, todo ello es posible sin modificar directamente el código fuente del kernel ni cargar módulos del kernel. Desarrollado inicialmente para el filtrado de paquetes, eBPF está ahora muy evolucionado, por lo que es un marco increíblemente completo para la monitorización, la seguridad y la mejora del rendimiento.

 

¿Cómo funciona el eBPF?

 

eBPF recopila y procesa datos a través de puntos de conexión dentro del kernel (y a veces aplicaciones en el espacio de usuario), almacenando los resultados en mapas accesibles desde el espacio de usuario. Existe un verificador incorporado que hace muy difícil que los programas eBPF bloqueen el núcleo debido a fallos en su lógica. Piense en ello como una pequeña máquina virtual conectada a los eventos clave del sistema -desde el tráfico de red y las llamadas al sistema hasta las ejecuciones de funciones- sin añadir una carga de latencia a esas cosas. 

Evolución de BPF a eBPF

 

El origen de la historia de eBPF se remonta a Berkeley Packet Filter (BPF) en 1992. BPF pretendía filtrar paquetes de red de forma eficaz y segura dentro del núcleo. Los desarrolladores podían escribir programas en un lenguaje restringido similar a C, y BPF compilaría entonces bytecode para su ejecución en el núcleo.

Con el tiempo, el BPF ha demostrado su utilidad más allá del filtrado de paquetes. No obstante, tenía sus limitaciones debido a su diseño original. Tenía conjuntos de instrucciones limitados y se centraba esencialmente en operaciones de red. Esta constatación dio lugar a importantes ampliaciones para superar estas limitaciones y ganar en funcionalidad más allá de lo que el BPF anterior podía realizar, dando lugar finalmente a lo que hoy llamamos BPF extendido (eBPF).

Con la introducción de eBPF en las versiones del kernel de Linux, la funcionalidad se amplió drásticamente. Se amplía el conjunto de instrucciones, lo que lo hace mucho más versátil y permite utilizarlo para una gama de propósitos mucho más amplia que el filtrado de paquetes.

Además, es de vital importancia que los programas eBPF se ejecuten en un entorno aislado en el kernel, lo que les impide bloquear el kernel al tiempo que refuerza esa protección mediante un verificador, que comprueba los programas antes de que se carguen. eBPF también introdujo los mapas, estructuras de datos que permiten a los programas eBPF comunicarse con las aplicaciones del espacio de usuario. Estos avances transformaron BPF de un simple filtro de paquetes en un marco de propósito general para la instrumentación del kernel.

Casos prácticos de eBPF

 

Desde su introducción, eBPF ha sido ampliamente adoptado en diversos ámbitos:

 

Observabilidad de la red: Proporciona una visión profunda del comportamiento de la red que incluye la inspección de paquetes, el ajuste del rendimiento y la supervisión avanzada de la red sin la sobrecarga de los métodos tradicionales. Por ejemplo, eBPF puede aplicarse para analizar retransmisiones TCP, mediciones de latencia de red y equilibrio de carga personalizado.Supervisión y observabilidad del rendimiento: Con eBPF, los administradores de sistemas pueden obtener métricas de rendimiento detalladas y rastrear eventos en el kernel e incluso en aplicaciones de espacio de usuario. Esto ayuda a mejorar el rendimiento de las aplicaciones y la fiabilidad del sistema con visibilidad en tiempo real de sistemas complejos. Herramientas como Cilium y Falco aprovechan eBPF para proporcionar una mayor observabilidad y seguridad para Kubernetes y entornos nativos de la nube. Puede ayudar a identificar los puntos calientes de la CPU, analizar la E/S del disco y rastrear las llamadas al sistema para resaltar los cuellos de botella en el rendimiento.

Mejoras de seguridad: Los programas de seguridad utilizan eBPF para crear sistemas de detección de intrusosfiltrado de llamadas al sistema y aplicación de la seguridad en tiempo de ejecución. Al restringir las capacidades del software potencialmente malicioso a nivel del núcleo, aumenta la seguridad general del sistema. Por ejemplo, eBPF puede supervisar las llamadas execve en busca de comandos sospechosos, o rastrear el acceso a archivos para detectar modificaciones no autorizadas.

eBPF para la supervisión del rendimiento

 

La capacidad de conectarse a varios eventos del kernel y del espacio de usuario, junto con una eficaz recopilación y análisis de datos, convierten a eBPF en una potente tecnología para la supervisión del rendimiento. Exploremos algunos casos de uso clave:

Rastreo de llamadas al sistema

 

Las llamadas al sistema definen las interfaces entre las aplicaciones y el núcleo. Al adjuntar kprobes a llamadas al sistema como read, write, open, close, execve, etc., eBPF puede proporcionar información detallada sobre el comportamiento de las aplicaciones. Las mediciones de latencia de estas llamadas al sistema pueden utilizarse para ayudar a localizar cuellos de botella de E/S; la medición de bytes leídos o escritos puede ser útil para comprender el rendimiento de los datos; y el rastreo de argumentos de llamadas al sistema permite comprender en profundidad el comportamiento de la aplicación. Por ejemplo, el uso de eBPF para rastrear las llamadas al sistema de lectura y escritura asociadas con el acceso al disco puede determinar por qué una consulta a una base de datos se ejecuta con lentitud.

Perfilar el uso de la CPU

 

Identificar los puntos calientes de la CPU es importante para la optimización del rendimiento de las aplicaciones. eBPF puede utilizar perf_events para hacer posible este perfilado para el código del núcleo y del espacio de usuario. Puede utilizar perf_event para activar programas eBPF en eventos de CPU como pérdidas de caché o errores de predicción de bifurcación, lo que le permite determinar con precisión los cuellos de botella de rendimiento a un nivel granular. Por otro lado, las sondas ascendentes se utilizan para perfilar funciones de aplicaciones en el espacio de usuario con el fin de identificar puntos críticos de rendimiento dentro del código de la aplicación. Esto puede ser útil para optimizar rutas de código críticas o descubrir algoritmos ineficaces.

 

Supervisión del rendimiento de la red

 

El rendimiento de la red es importante para muchas aplicaciones. eBPF puede supervisar los paquetes de red y las actividades de los sockets a medida que se producen. Puede realizar un seguimiento de las retransmisiones TCP, medir los tiempos de establecimiento de conexión, analizar la pérdida de paquetes o inspeccionar las cabeceras de los paquetes para comprender los patrones de tráfico con los programas eBPF. Por ejemplo, puede escribir un programa eBPF para identificar una cantidad excesiva de retransmisiones TCP, ayudándole a diagnosticar la congestión de la red o un hardware de red defectuoso.

Análisis de E/S de disco

 

La lentitud de las E/S de disco puede afectar negativamente al rendimiento de las aplicaciones. Las actividades de lectura y escritura en disco pueden rastrearse a través de la monitorización eBPF, que proporciona información detallada sobre la latencia del disco, el rendimiento y los patrones de E/S. De este modo, también se pueden detectar las aplicaciones con E/S limitadas, los dispositivos de almacenamiento lentos y los tipos de operaciones de E/S que se realizan. Un ejemplo sería escribir un programa eBPF para determinar qué procesos están causando la mayor parte de la E/S de disco, lo que debería ayudar a optimizar el uso del almacenamiento o a identificar aplicaciones que se beneficiarían de un almacenamiento más rápido. 

Métricas y cuadros de mando en tiempo real

 

Puede utilizar herramientas como Prometheus y Grafana para agregar y visualizar los datos recopilados por los programas eBPG. Esto le permite crear paneles en tiempo real que muestran una imagen completa del rendimiento de su sistema. Puede recopilar métricas personalizadas y utilizar Prometheus para almacenar y consultar esos datos. A continuación, Grafana puede utilizarse para crear cuadros de mando visualmente atractivos que faciliten la supervisión del rendimiento de su sistema y la detección de posibles problemas.

Empresas como Netflix, Facebook y Cloudflare utilizan eBPF para diagnosticar problemas de rendimiento, optimizar su infraestructura y obtener información más detallada sobre sus sistemas. Por ejemplo, Netflix lo utiliza para analizar el rendimiento de la red e identificar cuellos de botella en su red de distribución de contenidos, mientras que Facebook lo utiliza para supervisar el rendimiento de sus bases de datos e identificar consultas lentas.

eBPF para mejorar la seguridad

 

Más allá de sus aplicaciones para la supervisión del rendimiento, eBPF se ha convertido en una tecnología importante en materia de seguridad. Su capacidad para inspeccionar en detalle el comportamiento del sistema y ejecutar programas dentro del núcleo lo hace idóneo para crear soluciones de seguridad fundamentales.

 

Auditoría de llamadas al sistema

 

Las llamadas al sistema son la interfaz a través de la cual las aplicaciones interactúan con el kernel. Al supervisar las llamadas al sistema con eBPF, puede seguir de cerca el comportamiento de las aplicaciones y detectar eventos no autorizados. Por ejemplo, puede realizar un seguimiento de las llamadas execve para supervisar la ejecución de comandos o de las llamadas open para detectar el acceso a archivos confidenciales. Permite crear sofisticados sistemas de auditoría para informar de posibles actividades maliciosas en tiempo real, como intentos de un proceso de escalar privilegios o acceder a recursos restringidos.

Seguridad de las redes

 

Con eBPF es posible construir potentes sistemas de detección y prevención de intrusiones en la red (NIDS/NIPS). Como los programas eBPF pueden adjuntarse a los paquetes de red, permiten realizar análisis en tiempo real sin la sobrecarga de las técnicas tradicionales de filtrado de paquetes. Actividades de red maliciosas, como escaneos de puertos ataques de denegación de servicioo la comunicación con malware, y los paquetes pueden eliminarse o modificarse para mitigar la amenaza. Por ejemplo, un programa eBPF podría detectar y bloquear el tráfico hacia y desde direcciones IP maliciosas conocidas o rastrear patrones consistentes con un ataque DDoS, como altos volúmenes de paquetes SYN o inundaciones ICMP.

Seguridad de los contenedores

 

Mientras que contenedores han revolucionado el despliegue de aplicaciones, la contenedorización también ha dado lugar a una serie de nuevos retos de seguridad. eBPF es cada vez más esencial para asegurar los entornos en contenedores. Al supervisar las llamadas al sistema y la actividad de red dentro de los contenedores, puede empezar a aplicar sus políticas de aislamiento de contenedores para evitar brechas de seguridad. Por ejemplo, puede utilizar eBPF para permitir que un contenedor realice sólo determinadas llamadas al sistema, restringiendo así su superficie de ataque. Además, puede supervisar el tráfico de red para asegurarse de que sus contenedores sólo se comunican con entidades autorizadas.

Supervisión de la integridad de los archivos

 

Detectar modificaciones no autorizadas en archivos críticos es esencial para mantener la integridad del sistema. Puede utilizarse para realizar un seguimiento de los cambios en los archivos y alertarle cuando se produzca una actividad sospechosa. Por ejemplo, podría escribir un programa eBPF para realizar un seguimiento de los cambios realizados en los archivos de configuración o binarios del sistema para detectar posibles intrusiones o infecciones de malware.

Aplicación de la seguridad en tiempo de ejecución

 

Los programas eBPF pueden utilizarse para evitar comportamientos maliciosos bloqueando o modificando las llamadas al sistema antes de que se ejecuten. Por ejemplo, puede impedir que un proceso acceda a un archivo sensible o restringir los argumentos que se pueden pasar en una llamada al sistema concreta.

Reflexiones finales

 

eBPF está cambiando la forma en que supervisamos y protegemos los sistemas Linux al permitir la observabilidad en tiempo real con una sobrecarga mínima. Desde la identificación de cuellos de botella en el rendimiento hasta la aplicación de políticas de seguridad, proporciona un enfoque potente y eficaz. A medida que aumente su adopción por parte de las empresas, eBPF desempeñará un papel aún más importante en la observabilidad de los sistemas y la detección de amenazas.

Pero la supervisión es sólo la mitad de la batalla: mantener seguro el núcleo de Linux es igualmente crítico. Es necesario parchear del núcleo es necesario para mitigar las vulnerabilidades, pero las actualizaciones tradicionales a menudo requieren tiempo de inactividad. KernelCare Enterprise de TuxCare de TuxCare elimina este problema con la aplicación de parches en directo, lo que le permite aplicar correcciones de seguridad al núcleo de Linux sin reiniciar ni interrumpir el servicio. KernelCare es compatible con las principales distribuciones de Linux para empresas, como CentOSRHEL, AlmaLinuxRocky Linux, Ubuntu, Amazon Linux y Oracle Linux.

Resumen
eBPF para la supervisión avanzada del rendimiento y la seguridad de Linux
Nombre del artículo
eBPF para la supervisión avanzada del rendimiento y la seguridad de Linux
Descripción
Descubra cómo eBPF mejora la supervisión y la seguridad de Linux con capacidad de observación en tiempo real, creación de perfiles de baja sobrecarga y detección avanzada de amenazas.
Autor
Nombre del editor
TuxCare
Logotipo de la editorial

Únase a más de 4.500 profesionales de Linux y el código abierto.

2 veces al mes. Sin spam.

Índice
Obtenga las respuestas de seguridad de código abierto que necesita

Únase a más de 4.500 profesionales de Linux y el código abierto.

2 veces al mes. Sin spam.