Bulletins

Microsoft corrige une vulnérabilité permettant de prendre le contrôle des conteneurs Azure

bs1.jpg

Microsoft a corrigé une vulnérabilité dans Azure Container Instances appelée Azurescape qui permettait à un adversaire d’exécuter des commandes dans les conteneurs des autres utilisateurs et avoir accès à toutes leurs données déployées sur la plateforme, indiquent les chercheurs.

Azure Container Instances (ACI) de Microsoft est un service basé sur le cloud qui permet aux entreprises de déployer des applications packagées (conteneurs) sur le cloud.

Lorsque les conteneurs sont déployés, ACI les isole des autres conteneurs en cours d'exécution pour les empêcher de partager l'espace mémoire et d'interagir les uns avec les autres.

Microsoft a informé les clients, potentiellement touchés par Azurescape, de modifier les informations d'identification privilégiées pour les conteneurs déployés sur la plate-forme avant le 31 août.

"Si vous n'avez pas reçu de notification de santé du service, aucune action n'est requise. La vulnérabilité est corrigée et notre enquête n'a révélé aucun accès non autorisé dans d'autres clusters" –a déclaré Microsoft

Yuval Avrahami, un chercheur de Palo Alto Networks, explique que leur découverte du problème a commencé par la constatation que ACI utilisait un code publié il y a près de cinq ans, qui était vulnérable aux bogues d'échappement des conteneurs.

"RunC v1.0.0-rc2 a été publié le 1er octobre 2016 et était vulnérable à au moins deux CVE d'échappement de conteneur. De retour en 2019, nous avons analysé l'une de ces vulnérabilités, CVE-2019-5736 ", explique le chercheur.

L'exploitation de CVE-2019-5736 était suffisante pour sortir du conteneur et obtenir une exécution de code avec des privilèges élevés sur l'hôte sous-jacent, un nœud Kubernetes.

Le chercheur a résumé les étapes pour obtenir un accès non autorisé à d'autres conteneurs comme suit :

  • Sur le nœud, surveiller le trafic sur le port Kubelet (port 10250), et attendre une requête qui inclut un jeton JWT dans l'en-tête Authorization.
  • Lancer az container exec pour exécuter une commande sur le conteneur téléchargé. Le pod bridge va maintenant envoyer une requête exec au Kubelet sur le noeud compromis.
  • Sur le nœud, extraire le jeton de pont de l'en-tête d'autorisation de la demande et l'utiliser pour ouvrir un shell sur le serveur API.

Pour démontrer l'attaque, Palo Alto Networks a publié une vidéo montrant comment un attaquant aurait pu sortir de son conteneur pour obtenir des privilèges d'administrateur pour l'ensemble du cluster.