Introducción
En este artículo analizaremos el eBPF (Extended Berkley Packet Filter), un framework de Linux que permite el despliegue de snippets de código en espacios de kernel, así como la herramienta bpfvet del proyecto de GitHub de boratanrikulu.
Qué ocurrió
Recientemente, el proyecto en GitHub llamado bpfvet, que desarrolla un analizador de portabilidad para eBPF, ha llamado nuestra atención. Este proyecto de código abierto, escrito en Rust, nos permite compilar eBPF y reportar requerimientos mínimos de versiones de kernel, data flows y CO-RE coverage.
Impacto para DevOps / Infraestructura / Cloud / Seguridad
La herramienta bpfvet nos brinda beneficios significativos en el trabajo de infraestructura y DevOps. Específicamente, ahora tenemos una manera de reportar los requerimientos mínimos de kernel de eBPF para asegurar que nuestras herramientas funcionen adecuadamente en múltiples versiones de Linux, facilitando los despliegues de eBPF en servicios de producción.
Detalles técnicos
El BPF portability analyzer de bpfvet se divide en dos módulos principales: el compilador y el analizador. El compilador se encarga de tomar el código escrito en eBPF y compilarlo en un binario que se puede ejecutar en el kernel de Linux.
Por su parte, el analizador evalúa el binario y reporta los requerimientos mínimos de kernel necesarios, las data flow patterns y la CO-RE coverage. La CO-RE coverage nos permite identificar cuales son las interfaces entre eBPF y el kernel de Linux que tienen que ser respaldados por eBPF CO-RE (Compile Once – Run Everywhere).
Qué deberían hacer los administradores y equipos técnicos
Los administradores y equipos técnicos interesados en utilizar eBPF para optimizar el rendimiento de aplicaciones o monitorizar el tráfico en su infraestructura deberían considerar los siguientes pasos:
1. Familiarizarse con el proyecto bpfvet en GitHub.
2. Asegurarse que su versión de Linux soporta los requerimientos mínimos de eBPF según reportados por el BPF portability analyzer de bpfvet.
3. Considerar la implementación de GitHub Actions o GitLab CI para su implementación de eBPF.
Conclusión
El uso del BPF portability analyzer de bpfvet puede ser de gran ayuda para aquellos que desean implementar eBPF en sus infraestructuras de Linux. La herramienta nos permite reportar los requerimientos mínimos de kernel, data flows y CO-RE coverage, facilitando así el despliegue exitoso de eBPF en servicios de producción.
Fuentes
- GitHub: GitHub – boratanrikulu/bpfvet: BPF portability analyzer for compiled eBPF object files. Reports minimum kernel version requirements, data flow patterns, and CO-RE coverage. · GitHub
- The Register: Security
- Fortinet Blog: Threat Research