Openshift - SCC

L'auteur original de cette page est Guillaume

Définition

Dans le contexte d'OpenShift, SCC signifie Security Context Constraints. Les contraintes de contexte de sécurité sont des politiques qui contrôlent les autorisations des pods s'exécutant sur les clusters OpenShift. Elles définissent les paramètres de sécurité selon 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 les autorisations 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 : Imposer des contextes SELinux pour les conteneurs, qui définissent comment les processus interagissent avec les ressources du 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écution en tant qu'UID/GID : Spécifier les IDs utilisateur et de groupe sous lesquels s'exécute le processus du conteneur.

  6. Politiques réseau : Contrôler l'accès réseau des pods, comme restreindre le trafic de sortie.

En configurant les SCC, les administrateurs peuvent garantir que les pods s'exécutent avec le niveau approprié d'isolation 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.

Essentiellement, 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 de tout attribut pouvant entraîner une élévation de privilèges.

Pod Escape Privileges

Liste des 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 au 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 à l'intérieur d'une annotation :

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

Lorsqu'un utilisateur a accès à plusieurs SCC, le système utilisera celui qui correspond aux valeurs du contexte de sécurité. Sinon, une erreur interdite sera déclenchée.

$ 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

Last updated