Openshift - SCC

Reading time: 2 minutes

L'autore originale di questa pagina è Guillaume

Definizione

Nel contesto di OpenShift, SCC sta per Security Context Constraints. Le Security Context Constraints sono politiche che controllano i permessi per i pod in esecuzione sui cluster OpenShift. Definiscono i parametri di sicurezza sotto i quali un pod è autorizzato a funzionare, inclusi quali azioni può eseguire e quali risorse può accedere.

Le SCC aiutano gli amministratori a far rispettare le politiche di sicurezza in tutto il cluster, garantendo che i pod funzionino con permessi appropriati e rispettino gli standard di sicurezza organizzativi. Queste restrizioni possono specificare vari aspetti della sicurezza del pod, come:

  1. Capacità Linux: Limitare le capacità disponibili per i container, come la possibilità di eseguire azioni privilegiate.
  2. Contesto SELinux: Far rispettare i contesti SELinux per i container, che definiscono come i processi interagiscono con le risorse sul sistema.
  3. File system root di sola lettura: Prevenire che i container modifichino file in determinate directory.
  4. Directory e volumi host consentiti: Specificare quali directory e volumi host un pod può montare.
  5. Esegui come UID/GID: Specificare gli ID utente e gruppo sotto i quali il processo del container viene eseguito.
  6. Politiche di rete: Controllare l'accesso di rete per i pod, come limitare il traffico in uscita.

Configurando le SCC, gli amministratori possono garantire che i pod funzionino con il livello appropriato di isolamento di sicurezza e controlli di accesso, riducendo il rischio di vulnerabilità di sicurezza o accesso non autorizzato all'interno del cluster.

Fondamentalmente, ogni volta che viene richiesta una distribuzione di pod, viene eseguito un processo di ammissione come segue:

Questo ulteriore strato di sicurezza per impostazione predefinita vieta la creazione di pod privilegiati, il montaggio del file system host o l'impostazione di attributi che potrebbero portare a un'escalation di privilegi.

Pod Escape Privileges

Elenco SCC

Per elencare tutte le SCC con il client Openshift:

bash
$ 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

Tutti gli utenti hanno accesso al SCC predefinito "restricted" e "restricted-v2" che sono i SCC più rigorosi.

Utilizzare SCC

Il SCC utilizzato per un pod è definito all'interno di un'annotazione :

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

Quando un utente ha accesso a più SCC, il sistema utilizzerà quello che si allinea con i valori del contesto di sicurezza. Altrimenti, verrà attivato un errore di accesso vietato.

bash
$ 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

SCC Bypass

OpenShift - SCC bypass

Riferimenti