Openshift - SCC

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

El autor original de esta página es Guillaume

Definición

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

Las SCC ayudan a los administradores a hacer cumplir las políticas de seguridad en todo el clúster, asegurando que los pods se ejecuten con los permisos apropiados y cumplan con los estándares de seguridad organizacionales. Estas restricciones pueden especificar varios aspectos de la seguridad del pod, tales como:

  1. Capacidades de Linux: Limitando las capacidades disponibles para los contenedores, como la capacidad de realizar acciones privilegiadas.
  2. Contexto SELinux: Haciendo cumplir los contextos SELinux para los contenedores, que definen cómo los procesos interactúan con los recursos en el sistema.
  3. Sistema de archivos raíz de solo lectura: Previniendo que los contenedores modifiquen archivos en ciertos directorios.
  4. Directorios y volúmenes de host permitidos: Especificando qué directorios y volúmenes de host puede montar un pod.
  5. Ejecutar como UID/GID: Especificando los IDs de usuario y grupo bajo los cuales se ejecuta el proceso del contenedor.
  6. Políticas de red: Controlando el acceso a la red para los pods, como restringir el tráfico de salida.

Al configurar las SCC, los administradores pueden asegurarse de que los pods se ejecuten con el nivel apropiado 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 el siguiente:

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

Pod Escape Privileges

Listar SCC

Para listar todas las SCC con el Openshift Client :

$ 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 a la SCC predeterminada “restricted” y “restricted-v2”, que son las SCC más estrictas.

Uso de SCC

La SCC utilizada para 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á el que se alinee con los valores del contexto de seguridad. De lo contrario, se activará 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

Bypass de SCC

OpenShift - SCC bypass

Referencias

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks