Openshift - SCC

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

L’auteur original de cette page est Guillaume

Définition

Dans le contexte d’OpenShift, SCC signifie Security Context Constraints. Les Security Context Constraints sont des politiques qui contrĂŽlent les permissions pour les pods exĂ©cutĂ©s sur les clusters OpenShift. Elles dĂ©finissent les paramĂštres de sĂ©curitĂ© sous lesquels un pod est autorisĂ© Ă  s’exĂ©cuter, y compris les actions qu’il peut effectuer et les ressources auxquelles il peut accĂ©der.

Les SCC aident les administrateurs Ă  appliquer des politiques de sĂ©curitĂ© Ă  travers le cluster, garantissant que les pods s’exĂ©cutent avec des permissions appropriĂ©es et respectent les normes de sĂ©curitĂ© organisationnelles. Ces contraintes peuvent spĂ©cifier divers aspects de la sĂ©curitĂ© des pods, tels que :

  1. CapacitĂ©s Linux : Limiter les capacitĂ©s disponibles pour les conteneurs, comme la capacitĂ© d’effectuer des actions privilĂ©giĂ©es.
  2. Contexte SELinux : Appliquer des contextes SELinux pour les conteneurs, qui définissent comment les processus interagissent avec les ressources sur le systÚme.
  3. SystĂšme de fichiers racine en lecture seule : EmpĂȘcher les conteneurs de modifier des fichiers dans certains rĂ©pertoires.
  4. Répertoires et volumes hÎtes autorisés : Spécifier quels répertoires et volumes hÎtes un pod peut monter.
  5. ExĂ©cuter en tant que UID/GID : SpĂ©cifier les identifiants d’utilisateur et de groupe sous lesquels le processus du conteneur s’exĂ©cute.
  6. Politiques rĂ©seau : ContrĂŽler l’accĂšs rĂ©seau pour les pods, comme restreindre le trafic sortant.

En configurant les SCC, les administrateurs peuvent s’assurer que les pods s’exĂ©cutent avec le niveau appropriĂ© d’isolement de sĂ©curitĂ© et de contrĂŽles d’accĂšs, rĂ©duisant ainsi le risque de vulnĂ©rabilitĂ©s de sĂ©curitĂ© ou d’accĂšs non autorisĂ© au sein du cluster.

Fondamentalement, chaque fois qu’un dĂ©ploiement de pod est demandĂ©, un processus d’admission est exĂ©cutĂ© comme suit :

Cette couche de sĂ©curitĂ© supplĂ©mentaire interdit par dĂ©faut la crĂ©ation de pods privilĂ©giĂ©s, le montage du systĂšme de fichiers hĂŽte, ou la dĂ©finition d’attributs pouvant conduire Ă  une Ă©lĂ©vation de privilĂšges.

Pod Escape Privileges

Liste SCC

Pour lister tous les SCC avec le client 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

Tous les utilisateurs ont accĂšs aux SCC par dĂ©faut “restricted” et “restricted-v2” qui sont les SCC les plus stricts.

Utiliser SCC

Le SCC utilisé pour un pod est défini dans une annotation :

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

Lorsque un utilisateur a accÚs à plusieurs SCC, le systÚme utilisera celui qui correspond aux valeurs de contexte de sécurité. Sinon, il déclenchera une erreur interdite.

$ 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

Contournement de SCC

OpenShift - SCC bypass

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks