
Escáner de vulnerabilidades de clúster Kubernetes que detecta CVE-2018-1002105 probando acceso API no autenticado y escalada de privilegios mediante solicitudes malformadas.
Utilidad de prueba que verifica si un clúster está afectado por la vulnerabilidad grave de Kubernetes publicada aquí. Un análisis para partes interesadas sobre CVE-2018-1002105 se encuentra en https://gravitational.com/blog/kubernetes-websocket-upgrade-security-vulnerability/
Ejecutar esta prueba a través de balanceadores de carga de capa 7 o proxies situados frente al apiserver de Kubernetes puede no ser fiable y producir resultados incorrectos. Esta prueba funciona conectándose al apiserver y verificando efectos secundarios del apiserver que evidencian el error en Kubernetes. Ejecutar esta prueba de concepto a través de un balanceador de carga de capa 7 puede indicar falsamente que la API es vulnerable a CVE-2018-1002105.
Esta herramienta tiende a generar falsos positivos. Si su API de Kubernetes es proporcionada por un proveedor importante de la nube (como Amazon AWS EKS, Google Cloud GKE o Microsoft Azure AKS), es casi seguro que dicho proveedor ya ha parcheado su apiserver y usted ya no se ve afectado por CVE-2018-1002105. Agradeceríamos las solicitudes de extracción que mejoren la detección de endpoints de apiserver no vulnerables.
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
La herramienta intentará probar dos cosas: si el clúster permite acceso no autenticado a la API, lo que permitiría acceso no autenticado al endpoint de la API agregada; también intentará encontrar un pod y verificar si el apiserver mantiene abierta la conexión ante una solicitud malformada, lo que indica que el clúster es susceptible a CVE-2018-1002105.
Testing for unauthenticated access...
> API allows unauthenticated access
Testing for privilege escalation...
> API is vulnerable to CVE-2018-1002105
Si ve API allows unauthenticated access, indica que la prueba pudo detectar acceso no autenticado al clúster. Esta prueba es bastante básica, pero debería detectar una configuración predeterminada donde se permite el acceso anónimo al clúster.
Si ve API is vulnerable to CVE-2018-1002105, significa que, utilizando el kubeconfig proporcionado, la herramienta pudo probar y confirmar que su clúster es vulnerable.