OpenShift - SCC bypass
L'auteur original de cette page est Guillaume
Espaces de noms privilégiés
Par défaut, SCC ne s'applique pas aux projets suivants :
default
kube-system
kube-public
openshift-node
openshift-infra
openshift
Si vous déployez des pods dans l'un de ces espaces de noms, aucun SCC ne sera appliqué, permettant le déploiement de pods privilégiés ou le montage du système de fichiers hôte.
Étiquette d'espace de noms
Il existe un moyen de désactiver l'application SCC sur votre pod selon la documentation de RedHat. Vous devrez avoir au moins l'une des autorisations suivantes :
Créer un espace de noms et créer un pod dans cet espace de noms
Modifier un espace de noms et créer un pod dans cet espace de noms
Le label spécifique openshift.io/run-level
permet aux utilisateurs de contourner les SCC pour les applications. Selon la documentation de RedHat, lorsque ce label est utilisé, aucun SCC n'est appliqué à tous les pods dans cet espace de noms, supprimant ainsi efficacement toutes les restrictions.
Ajouter un Label
Pour ajouter le label dans votre espace de noms :
Pour créer un espace de nom avec l'étiquette via un fichier YAML :
Maintenant, tous les nouveaux pods créés dans l'espace de noms ne doivent pas avoir de SCC
En l'absence de SCC, il n'y a aucune restriction sur la définition de votre pod. Cela signifie qu'un pod malveillant peut être facilement créé pour s'échapper sur le système hôte.
Maintenant, il est devenu plus facile d'escalader les privilèges pour accéder au système hôte et prendre ensuite le contrôle de l'ensemble du cluster, en obtenant des privilèges de 'cluster-admin'. Recherchez la partie Post-exploitation du nœud sur la page suivante :
Étiquettes personnalisées
De plus, en fonction de la configuration cible, certaines étiquettes / annotations personnalisées peuvent être utilisées de la même manière que dans le scénario d'attaque précédent. Même si ce n'est pas prévu, les étiquettes pourraient être utilisées pour accorder des autorisations, restreindre ou non un certain type de ressource.
Essayez de rechercher des étiquettes personnalisées si vous pouvez lire certaines ressources. Voici une liste de ressources intéressantes :
Pod
Déploiement
Espace de noms (Namespace)
Service
Route
Liste de tous les espaces de noms privilégiés
Exploitation avancée
Dans OpenShift, comme démontré précédemment, avoir la permission de déployer un pod dans un espace de noms avec l'étiquette openshift.io/run-level
peut conduire à une prise de contrôle directe du cluster. D'un point de vue des paramètres du cluster, cette fonctionnalité ne peut pas être désactivée, car elle est inhérente à la conception d'OpenShift.
Cependant, des mesures d'atténuation telles que Open Policy Agent GateKeeper peuvent empêcher les utilisateurs de définir cette étiquette.
Pour contourner les règles de GateKeeper et définir cette étiquette pour exécuter une prise de contrôle du cluster, les attaquants devraient identifier des méthodes alternatives.
Références
Last updated