|
| 1 | +--- |
| 2 | +title: eBPF |
| 3 | +status: Completed |
| 4 | +category: Tecnología |
| 5 | +tags: ["arquitectura", "redes", "seguridad"] |
| 6 | +--- |
| 7 | + |
| 8 | +eBPF, o "extended Berkeley Packet Filter", es una tecnología que permite a pequeños programas o scripts aislados ejecutarse en el espacio del kernel de un sistema Linux sin necesidad de cambiar el código fuente ni cargar módulos al kernel Linux. |
| 9 | + |
| 10 | +Un sistema Linux tiene dos espacios: el de kernel y el de usuario. |
| 11 | +El kernel representa el sistema operativo y es la única parte |
| 12 | +con acceso ilimitado al hardware. |
| 13 | + |
| 14 | +Las aplicaciones quedan en el espacio de usuario y, cuando necesitan permisos más elevados, |
| 15 | +envían una solicitud al kernel. |
| 16 | +Para aplicaciones que requieren más flexibilidad, como el acceso directo al hardware, |
| 17 | +el kernel puede ser extendido mediante lo que se conoce como el enfoque de "módulos |
| 18 | +del kernel Linux". Este enfoque amplía la funcionalidad predeterminada del kernel, |
| 19 | +permitiendo a las aplicaciones un acceso más profundo a los componentes básicos. |
| 20 | +Sin embargo, este enfoque también introduce riesgos de seguridad, lo que hace que eBPF sea una alternativa atractiva. |
| 21 | + |
| 22 | +## Problema que soluciona |
| 23 | +Típicamente, las aplicaciones se ejecutan en el espacio de usuario y, si la aplicación requiere algunos privilegios del kernel (por ejemplo, para acceder a algún hardware), |
| 24 | +lo solicita al kernel a través de una llamada al sistema conocida como "system call". |
| 25 | +En la mayoría de los casos, este enfoque funciona bien. Sin embargo, hay casos en los que los desarrolladores requieren más flexibilidad para acceder al sistema a nivel bajo. |
| 26 | +La observabilidad, la seguridad y las redes son buenos ejemplos. |
| 27 | +Para lograrlo, podemos utilizar módulos del kernel Linux, ampliando la base del kernel sin modificar el código principal del kernel. |
| 28 | +Si bien hay beneficios en el uso de módulos del kernel Linux, también introduce riesgos de seguridad. |
| 29 | +Como operan dentro del espacio del kernel, los módulos del kernel Linux pueden hacer que el kernel falle y, cuando el kernel falla, también lo hace toda la máquina. |
| 30 | +Además, los módulos del kernel tienen privilegios elevados y acceso directo a los recursos del sistema. Y si no están adecuadamente aseguradas, los atacantes pueden explotarlas. |
| 31 | + |
| 32 | +## ¿Cómo ayuda? |
| 33 | +eBPF proporciona un entorno más controlado y contenido para ejecutar programas definidos por el usuario que los módulos del kernel Linux. |
| 34 | +Se ejecuta en un entorno aislado dentro del kernel, proporcionando aislamiento y mitigando riesgos. |
| 35 | +Si se explota una vulnerabilidad o defecto en un programa eBPF, su impacto generalmente se limita al entorno aislado. |
| 36 | +Además, antes de que un programa eBPF pueda comenzar a ejecutarse en el kernel, debe pasar por algunas verificaciones. |
| 37 | +El componente verificador verifica el programa eBPF en busca de posibles violaciones de seguridad, |
| 38 | +como el acceso a memoria fuera de límites, ciclos infinitos y funciones del kernel no autorizadas. |
| 39 | +De esta manera, asegura que el programa no entre en un ciclos infinitos y provoque un fallo del kernel. |
| 40 | +Estos controles de seguridad hacen que eBPF sea una opción más segura para ejecutar aplicaciones en el kernel Linux que los módulos del kernel Linux. |
0 commit comments