Skip to main content

Comment détecter et corriger la vulnérabilité Kubernetes CVE-2019-11249

Écrit par
Headshot of Hayley Denbraver

Hayley Denbraver

kubernetes tumb

11 mars 2020

0 minutes de lecture

Au cours des dernières années, Kubernetes s’est imposé dans le monde de la tech et est devenu le système d’orchestration de conteneurs cloud le plus populaire. Kubernetes reste un système open source puissant et utile pour les développeurs, mais, comme tout outil, il doit être utilisé avec précaution. Vous devez prendre des mesures pour sécuriser vos clusters. Aujourd’hui, nous allons parler de deux vulnérabilités récentes (CVE-2019-11247 et CVE-2019-11249) et des moyens de les corriger.

Vulnérabilités Kubernetes de traversée de répertoires

Une traversée de répertoires est un type d’attaque qui permet aux pirates d’accéder à des répertoires et fichiers restreints situés en dehors du répertoire racine du serveur. En manipulant les URL, il est possible de forcer une application à révéler des fichiers « restreints » ou à exécuter des commandes pour lesquelles l’utilisateur ne devrait techniquement pas avoir les autorisations.

Contrairement à d’autres types d’attaques, une traversée de répertoires exploite les failles d’une politique de sécurité des développeurs qui fonctionne par ailleurs correctement. Le code ne comporte pas nécessairement de bogue. Tout fonctionne comme prévu. En revanche, les autorisations, les chemins ou les configurations d’accès aux fichiers sont incorrects ou insuffisants.

Les problèmes ont commencé il y a près de deux ans avec une classique vulnérabilité de traversée de répertoires liée à l’opération kubectl cp. Dans ce cas, du code malveillant dans des conteneurs pouvait écrire n’importe quel fichier à n’importe quel emplacement sur le nœud (la machine) à partir duquel il était copié, en raison du traitement non sécurisé des données TAR. Il était facile de remonter dans l’arborescence pour découvrir les noms ou les fichiers.

Les correctifs suivants ont tenté d’assainir les chemins de répertoires en supprimant les traversées de chemins, mais le problème n’a pas été entièrement résolu. Après l’application du correctif, on a découvert que des acteurs malveillants pouvaient toujours manipuler les chemins en créant et en suivant des liens symboliques à partir des en-têtes des archives TAR.

Un troisième problème de traversée de répertoires a été identifié début 2019 avec l’opération kubectl cp. Des acteurs malveillants pouvaient copier des fichiers et des répertoires entre des conteneurs et des nœuds à l’aide d’un binaire TAR malveillant dans un conteneur téléchargé. Un pirate pouvait ainsi remplacer ou créer des fichiers sur la machine d’un utilisateur, même si cet emplacement se trouvait en dehors du répertoire de destination de l’opération kubectl cp.

CVE-2019-11249

En août, Kubernetes a publié CVE-2019-11249, qui comprenait un correctif résolvant enfin la vulnérabilité de traversée de répertoires. L’opération kubectl cp vérifie désormais beaucoup plus rigoureusement le chemin cible de chaque fichier lors de la décompression d’une archive TAR. Il n’est désormais plus possible de copier les fichiers décompressés vers des chemins situés en dehors du répertoire de destination de l’opération kubectl cp initiale.

Un aperçu de CPE-2019-11247

À peu près au moment où la vulnérabilité de traversée de répertoires a été corrigée, la vulnérabilité CVE-2019-11247 a été découverte. Elle permettait à des acteurs malveillants de lire, modifier ou supprimer des ressources personnalisées à l’échelle du cluster, même si leurs rôles d’autorisation ne leur permettaient d’accéder qu’aux ressources de leur propre espace de noms, ou section du cluster.

La vulnérabilité de traversée de répertoires et la vulnérabilité CPE-2019-11247 sont similaires : les utilisateurs pouvaient accéder à des parties du conteneur (et donc des nœuds) auxquelles ils ne devraient pas avoir accès.

Cependant, CPE-2019-11247 était une vulnérabilité liée à la façon dont le serveur d’API interprétait les autorisations de sécurité en fonction de la portée du point de terminaison de l’API. La vulnérabilité de traversée de répertoires, en revanche, résultait d’autorisations de sécurité insuffisantes. Il s’agissait fondamentalement d’un problème de contrôle d’accès basé sur les rôles (RBAC). Autrement dit, si une ressource personnalisée globale (à l’échelle du cluster) était associée à un espace de noms et que le compte qui y accédait disposait d’une définition de rôle particulière (comme un caractère générique), il était possible de contourner l’espace de noms et de manipuler des ressources globales.

Étapes de correction de CVE-2019-11247 et CVE-2019-11249

Ces deux vulnérabilités sont considérées comme présentant un risque moyen à élevé et doivent être corrigées dès que possible. Deux mesures sont recommandées pour corriger CVE-2019-11247 et CVE-2019-11249 :

  • Mettez Kubernetes à niveau vers une version corrigée :Il est vivement recommandé à tous les utilisateurs de mettre à niveau leurs clusters et leurs clients kubectl vers une version corrigée. Kubernetes 1.13.9, 1.14.5 et 1.15.2 incluent toutes des correctifs pour les deux vulnérabilités. Les utilisateurs qui exécutent la version 1.12 ou une version antérieure doivent consulter la documentation officielle pour déterminer la procédure de mise à niveau appropriée. Si vous utilisez la version 1.12 ou une version antérieure, il est temps de procéder à une mise à niveau : la version 1.12 n’est plus prise en charge.

  • Si la mise à niveau n’est pas possible, supprimez les définitions de rôles avec des caractères génériques dans l’ensemble du cluster :Certains utilisateurs de plateformes gérées ne pourront peut-être pas procéder immédiatement à une mise à niveau. Dans ce cas, supprimez les autorisations avec des caractères génériques (indiquées par un *) pour les ressources ou les apiGroups.

Ne supprimez pas RBAC d’un cluster

Les clusters pour lesquels RBAC n’est pas activé ne sont pas concernés par CVE-2019-11249 et, en théorie, ne sont pas non plus concernés par CVE-2019-11247. Toutefois, ne pas utiliser RBAC présente un risque de sécurité encore plus important, car tous les comptes disposent alors d’un accès root. Ne supprimez pas RBAC d’un cluster, même pour appliquer une « solution temporaire rapide ».

Conclusion

Les effets de cette vulnérabilité Kubernetes varient d’un cluster à l’autre, selon la nature de chaque cluster et les ressources qui y sont utilisées. Cependant, les vulnérabilités Kubernetes constituent un problème grave, car de plus en plus d’organisations s’appuient sur cette solution pour orchestrer leurs conteneurs cloud. Les derniers correctifs sont censés résoudre CVE-2019-11247 et CVE-2019-11249.

Cependant, la sécurité est un effort continu. Ces correctifs rappellent que les pirates trouveront toujours des moyens ingénieux d’exploiter les failles et les bogues du code. Pour rester en sécurité, maintenez vos systèmes à niveau et tenez-vous informé des dernières actualités sur la sécurité Kubernetes.

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.