
Utilitaire de test pour cve-2018-1002105
Utilitaire de test qui vérifie un cluster pour le CVE Kubernetes de haute sévérité publié ici. Une analyse au niveau des parties prenantes du CVE-2018-1002105 peut être trouvée à l'adresse https://gravitational.com/blog/kubernetes-websocket-upgrade-security-vulnerability/
Exécuter ce test via des équilibreurs de charge de couche 7 ou des proxys devant votre serveur API Kubernetes peut être peu fiable et produire des résultats incorrects. Ce test fonctionne en se connectant au serveur API et en vérifiant les effets secondaires du serveur API qui montrent le bug dans Kubernetes. Exécuter cette preuve de concept via un équilibreur de charge de couche 7 peut indiquer à tort que l'API est vulnérable au CVE-2018-1002105
Cet outil penche vers les faux positifs. Si votre API Kubernetes est fournie par un grand fournisseur de cloud (tel qu'Amazon AWS EKS, Google Cloud GKE ou Microsoft Azure AKS), ce fournisseur de services a très probablement déjà corrigé votre serveur API et vous n'êtes plus affecté par CVE-2018-1002105. Nous accueillerions volontiers les pull requests qui améliorent la détection des points de terminaison de serveur API non vulnérables.
go get github.com/gravitational/cve-2018-1002105
cd $GOPATH/src/github.com/gravitational/cve-2018-1002105
go run main.go
docker run -it --rm -v $HOME/.kube/config:/kubeconfig: quay.io/gravitational/cve-2018-1002105:latest
L'outil tentera de tester deux choses : si le cluster permet un accès non authentifié à l'API, ce qui permettra ensuite un accès non authentifié au point de terminaison de l'API agrégée. Il tentera également de trouver un pod et de tester si le serveur API laisse la connexion ouverte sur une requête malformée, ce qui indique que le cluster est susceptible d'être vulnérable au CVE-2018-1002105.
Testing for unauthenticated access...
> API allows unauthenticated access
Testing for privilege escalation...
> API is vulnerable to CVE-2018-1002105
Si vous voyez API allows unauthenticated access, cela indique que le test a pu détecter un accès non authentifié au cluster. Ce test est assez basique, mais devrait détecter une configuration par défaut où l'accès anonyme au cluster est autorisé.
Si vous voyez API is vulnerable to CVE-2018-1002105, cela signifie qu'en utilisant le kubeconfig fourni, l'outil a pu tester et confirmer que votre cluster est vulnérable.