Los contenedores de Linux caben en 500 líneas de código

Linux containers in 500 lines of code

Lizzie disecciona cómo construir contenedores Linux desde cero en apenas 500 líneas de C, usando namespaces y capacidades del kernel. El artículo explora los riesgos de seguridad de los user namespaces, que permiten a un usuario sin privilegios recuperar capacidades como CAP_NET_ADMIN y atacar el subsistema de red. Incluye ejemplos de código, parches de Ubuntu, Debian y grsecurity, y muestra cómo aislar procesos con clone, uid_map y pid namespaces.

Si un usuario root (real) ha perdido la capacidad SYS_CAP_ADMIN, pero luego crea un user namespace, esta capacidad se restaura para el usuario root (falso). Es decir, antes de crear el namespace, 'mount' sería denegado, pero tras la creación del user namespace, la llamada al sistema 'mount' funcionaría mágicamente de nuevo, aunque de forma limitada.

Más de este día

2026-10-05