Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Contexto de seguridad del pod

5 tareas · 45 min · Principiante

Un contenedor no es una máquina virtual: comparte el núcleo del nodo, y lo que lo separa del resto son las opciones con las que el pod lo arranca. Un manifiesto que pide privilegios de más convierte cualquier fallo de la aplicación en un problema del nodo. En el repositorio de despliegue de Cardumen Pagos hay cuatro manifiestos con ajustes peligrosos y uno cuidado como contraste. Aprendes a leerlos con los dos niveles de Kubernetes para pods, Baseline y Restricted, y a redactar la corrección. Es lectura de manifiestos de ejemplo: nada se aplica a ningún clúster.

0 de 5 · 0%

Objetivo de la sala

Un contenedor no es una máquina virtual: comparte el núcleo del nodo, y lo que lo separa del resto son las opciones con las que el pod lo arranca. Un manifiesto que pide privilegios de más convierte cualquier fallo de la aplicación en un problema del nodo. En el repositorio de despliegue de Cardumen Pagos hay cuatro manifiestos con ajustes peligrosos y uno cuidado como contraste. Aprendes a leerlos con los dos niveles de Kubernetes para pods, Baseline y Restricted, y a redactar la corrección. Es lectura de manifiestos de ejemplo: nada se aplica a ningún clúster.

Kubernetes define tres estándares de seguridad de pods: Privileged (sin restricciones), Baseline y Restricted. Baseline impide las escaladas de privilegios más conocidas: no admite contenedores privilegiados, ni compartir las redes o los procesos del nodo (hostNetwork, hostPID, hostIPC), ni montar rutas del nodo con hostPath, y limita las capacidades que se pueden añadir a una lista corta. Restricted incluye todo eso y exige además runAsNonRoot, allowPrivilegeEscalation: false, un perfil seccomp definido y descartar todas las capacidades.

El sistema de archivos de solo lectura (readOnlyRootFilesystem) es una buena práctica, pero no forma parte de ninguno de los niveles.

Responde para continuar

¿Qué diferencia a Restricted de Baseline?

Ver pista de ayuda

Restricted es Baseline más requisitos extra, no menos.

Un contenedor privilegiado casi no tiene el aislamiento que ofrece el sistema operativo: accede a los dispositivos del nodo y casi nada lo contiene. Es la configuración que más vale la pena buscar primero, porque un solo contenedor así pone en juego al nodo entero y a lo que ejecuta en él. Casi siempre aparece porque «con eso arrancó» y nadie averiguó el permiso concreto que faltaba.

Responde para continuar

¿Qué despliegue tiene un contenedor con `privileged: true`? Escribe su nombre.

Ver pista de ayuda

`grep -r privileged .` dentro de la carpeta de manifiestos.

Linux divide el poder de root en capacidades (capabilities). Un contenedor puede correr como root y aun así tener pocas, o correr sin root y tener muchas. La buena práctica es el camino de Restricted: descartar todas y añadir solo la que la aplicación demuestre necesitar. Algunas capacidades equivalen casi a un root completo del nodo y no están en la lista corta de Baseline.

Revisa worker-conciliacion.yaml: además de correr como usuario 0 y permitir la escalada de privilegios, añade una capacidad.

Responde para continuar

¿Qué capacidad añade el worker de conciliación? Escribe su nombre tal como aparece.

Ver pista de ayuda

Busca la clave `add` dentro de `capabilities`.

Un volumen hostPath monta una ruta del nodo dentro del pod. Si esa ruta es el socket del motor de contenedores, quien controle ese contenedor puede hablar con el motor y manejar los demás contenedores del nodo. Baseline lo prohíbe por eso. La necesidad real del portal («listar contenedores para mostrar su estado») se resuelve con la API de Kubernetes y un permiso de lectura, no con el socket del nodo.

Responde para continuar

El portal monta una ruta del nodo con hostPath. ¿Cómo se llama el archivo de socket que monta? Escribe solo el nombre del archivo.

Ver pista de ayuda

`cat portal-web.yaml` y mira la ruta bajo `hostPath`; el nombre es lo último tras la última barra.

El agente de métricas corre sin root, sin escalar privilegios y descarta todas las capacidades, pero comparte la red y los procesos del nodo. Con Baseline como objetivo, lo que hay que atender es lo que Baseline prohíbe, no lo que solo Restricted exige. Revisa agente-metricas.yaml y niveles.txt.

Responde para continuar

¿Qué cambio deja al agente de métricas dentro de Baseline?

Ver pista de ayuda

Baseline prohíbe los espacios de nombres del host; compara con lo que el manifiesto ya cumple.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad