
Atténuer CVE-2020-8554 avec Policy Controller dans Anthos
Ce dépôt contient des fichiers de configuration pour utiliser Policy Controller, qui est basé sur le projet open source OPA Gatekeeper, afin de bloquer l'accès des Services Kubernetes aux IP publiques.
L'avis de sécurité pour ce problème indique :
Un problème de sécurité a été découvert avec Kubernetes affectant les clusters multi-locataires. Si un attaquant potentiel peut déjà créer ou modifier des services et des pods, il peut alors intercepter le trafic provenant d'autres pods (ou nœuds) du cluster.
Ce problème a été jugé de sévérité moyenne (CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L) et a reçu l'identifiant CVE-2020-8554.
Un attaquant capable de créer un service ClusterIP et de définir le champ spec.externalIPs peut intercepter le trafic vers cette IP. Un attaquant capable de modifier le statut (qui est considéré comme une opération privilégiée et ne devrait généralement pas être accordée aux utilisateurs) d'un service LoadBalancer peut définir status.loadBalancer.ingress.ip avec un effet similaire.
Ce dépôt contient un modèle et une contrainte qui restreignent les Services à une liste d'autorisation spécifique d'IP publiques, limitant ainsi la capacité d'un attaquant à ajouter des IP en dehors des valeurs de confiance.
Vous pouvez appliquer ces politiques à l'aide de Policy Controller, qui est inclus dans Anthos Config Management. Pour personnaliser les adresses IP autorisées, modifiez ou ajoutez des éléments à la liste 'allowedIPs' dans k8sExternalIPs_constraint.yaml.
Si vous souhaitez simplement empêcher une IP dans une plage CIDR spécifique, utilisez les fichiers k8sExternalIPsCIDR_constraint.yaml et k8sExternalIPsCIDR_template.yaml. Par exemple, si vous voulez empêcher un attaquant de définir le champ spec.externalIPs sur le CIDR par défaut des Services Kubernetes.