Cómo mitigar el problema Copy Fail con eBPF en Kubernetes
(github.com/iwanhae)Mientras operaba K8s, me llegó una solicitud de respuesta urgente sobre este problema, así que armé algo sencillo.
Salió una vulnerabilidad llamada Copy Fail con la que, simplemente abriendo un socket que usa AF_ALG, se puede escalar a privilegios de root del host desde dentro de un Pod de K8s.
https://es.news.hada.io/topic?id=29031
Aunque ya salió un parche del kernel, en la mayoría de los entornos en producción es difícil aplicarlo rápido. Además, en kernels recientes esa función viene activada como kernel built-in, así que tampoco es posible desactivar el módulo del kernel.
Para resolver este problema de forma más simple, este es un programa que, cuando detecta en eBPF la function call relacionada, hace una de estas dos cosas:
- (si el kernel lo soporta) hace que esa
function callfalle - (si no lo soporta) mata ese proceso
Lo dejé preparado para que se pueda usar desplegando solo un K8s DaemonSet, así que si a alguien le sirve, siéntase libre de usarlo~
1 comentarios
¡Gracias!
FYI) El perfil seccomp de Docker también lo creó @achimnol. https://github.com/moby/profiles/issues/19