Openshift - SCC

El autor original de esta página es Guillaume

Definición

En el contexto de OpenShift, SCC significa Security Context Constraints. Los Security Context Constraints son políticas que controlan los permisos para las pods que se ejecutan en clústeres de OpenShift. Definen los parámetros de seguridad bajo los cuales se permite que una pod se ejecute, incluyendo las acciones que puede realizar y los recursos a los que puede acceder.

Los SCC ayudan a los administradores a hacer cumplir políticas de seguridad en todo el clúster, asegurando que las pods se estén ejecutando con los permisos adecuados y cumpliendo con los estándares de seguridad organizativos. Estas restricciones pueden especificar varios aspectos de la seguridad de las pods, como:

  1. Capacidades de Linux: Limitar las capacidades disponibles para los contenedores, como la capacidad de realizar acciones privilegiadas.

  2. Contexto SELinux: Aplicar contextos SELinux para los contenedores, que definen cómo interactúan los procesos con los recursos en el sistema.

  3. Sistema de archivos raíz de solo lectura: Evitar que los contenedores modifiquen archivos en ciertos directorios.

  4. Directorios y volúmenes de host permitidos: Especificar qué directorios y volúmenes de host puede montar una pod.

  5. Ejecutar como UID/GID: Especificar los IDs de usuario y grupo bajo los cuales se ejecuta el proceso del contenedor.

  6. Políticas de red: Controlar el acceso a la red para las pods, como restringir el tráfico de salida.

Al configurar SCCs, los administradores pueden asegurarse de que las pods se estén ejecutando con el nivel adecuado de aislamiento de seguridad y controles de acceso, reduciendo el riesgo de vulnerabilidades de seguridad o acceso no autorizado dentro del clúster.

Básicamente, cada vez que se solicita un despliegue de pod, se ejecuta un proceso de admisión como se muestra a continuación:

Esta capa de seguridad adicional por defecto prohíbe la creación de pods privilegiadas, el montaje del sistema de archivos del host o el establecimiento de cualquier atributo que pueda llevar a una escalada de privilegios.

Pod Escape Privileges

Listar SCC

Para listar todos los SCC con el Cliente de Openshift:

$ oc get scc #List all the SCCs

$ oc auth can-i --list | grep securitycontextconstraints #Which scc user can use

$ oc describe scc $SCC #Check SCC definitions

Todos los usuarios tienen acceso al SCC predeterminado "restricted" y "restricted-v2" que son los SCC más estrictos.

Usar SCC

El SCC utilizado por un pod se define dentro de una anotación:

$ oc get pod MYPOD -o yaml | grep scc
openshift.io/scc: privileged

Cuando un usuario tiene acceso a múltiples SCCs, el sistema utilizará aquel que se alinee con los valores de contexto de seguridad. De lo contrario, desencadenará un error de prohibido.

$ oc apply -f evilpod.yaml #Deploy a privileged pod
Error from server (Forbidden): error when creating "evilpod.yaml": pods "evilpod" is forbidden: unable to validate against any security context constrain

Salto de Control de Seguridad (SCC)

OpenShift - SCC bypass

Referencias

Last updated