Openshift - SCC

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 le autorizzazioni per i pod in esecuzione sui cluster OpenShift. Definiscono i parametri di sicurezza con cui è consentito eseguire un pod, inclusi quali azioni può eseguire e a quali risorse può accedere.

Le SCC aiutano gli amministratori a far rispettare le politiche di sicurezza in tutto il cluster, garantendo che i pod vengano eseguiti con le autorizzazioni appropriate e rispettino gli standard di sicurezza dell'organizzazione. Questi vincoli possono specificare vari aspetti della sicurezza del pod, come:

  1. Capacità di Linux: Limitare le capacità disponibili ai contenitori, come la capacità di eseguire azioni privilegiate.

  2. Contesto SELinux: Imporre i contesti SELinux per i contenitori, che definiscono come i processi interagiscono con le risorse del sistema.

  3. File system radice in sola lettura: Impedire ai contenitori di modificare file in determinate directory.

  4. Directory e volumi dell'host consentiti: Specificare quali directory e volumi dell'host un pod può montare.

  5. Esegui come UID/GID: Specificare gli ID utente e di gruppo con cui viene eseguito il processo del contenitore.

  6. Politiche di rete: Controllare l'accesso di rete per i pod, ad esempio limitando il traffico in uscita.

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

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

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

Pod Escape Privileges

Elenco SCC

Per elencare tutte le SCC con l'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

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

Utilizzare SCC

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

$ 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à generato un errore di tipo forbidden.

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

OpenShift - SCC bypass

References

Last updated