Openshift - SCC

O autor original desta página é Guillaume

Definição

No contexto do OpenShift, SCC significa Security Context Constraints. As Restrições de Contexto de Segurança são políticas que controlam as permissões para pods em execução nos clusters do OpenShift. Elas definem os parâmetros de segurança sob os quais um pod pode ser executado, incluindo quais ações ele pode realizar e a quais recursos pode acessar.

As SCCs ajudam os administradores a impor políticas de segurança em todo o cluster, garantindo que os pods estejam em execução com permissões apropriadas e em conformidade com os padrões de segurança organizacionais. Essas restrições podem especificar vários aspectos da segurança do pod, como:

  1. Capacidades do Linux: Limitando as capacidades disponíveis para os contêineres, como a capacidade de realizar ações privilegiadas.

  2. Contexto SELinux: Aplicando contextos SELinux para contêineres, que definem como os processos interagem com os recursos no sistema.

  3. Sistema de arquivos raiz somente leitura: Impedindo que os contêineres modifiquem arquivos em determinados diretórios.

  4. Diretórios e volumes do host permitidos: Especificando quais diretórios e volumes do host um pod pode montar.

  5. Executar como UID/GID: Especificando os IDs de usuário e grupo nos quais o processo do contêiner é executado.

  6. Políticas de rede: Controlando o acesso à rede para os pods, como restringir o tráfego de saída.

Ao configurar SCCs, os administradores podem garantir que os pods estejam em execução com o nível apropriado de isolamento de segurança e controles de acesso, reduzindo o risco de vulnerabilidades de segurança ou acesso não autorizado dentro do cluster.

Basicamente, toda vez que é solicitado um deployment de pod, um processo de admissão é executado da seguinte forma:

Esta camada de segurança adicional, por padrão, proíbe a criação de pods privilegiados, montagem do sistema de arquivos do host ou configuração de quaisquer atributos que possam levar à escalada de privilégios.

Pod Escape Privileges

Listar SCC

Para listar todas as SCC com o Cliente 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 os usuários têm acesso ao SCC padrão "restricted" e "restricted-v2", que são os SCCs mais restritos.

Usar SCC

O SCC usado por um pod é definido dentro de uma anotação:

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

Quando um usuário tem acesso a vários SCCs, o sistema utilizará aquele que está alinhado com os valores de contexto de segurança. Caso contrário, irá disparar um erro de proibido.

$ 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

Referências

Last updated