
Test utility for cve-2018-1002105
Утилита для проверки, которая проверяет кластер на наличие критической уязвимости Kubernetes, опубликованной здесь. Обзор этой уязвимости для заинтересованных сторон можно найти по адресу https://gravitational.com/blog/kubernetes-websocket-upgrade-security-vulnerability/
Запуск этого теста через балансировщики нагрузки 7 уровня или прокси перед вашим Kubernetes apiserver может быть ненадежным и давать неверные результаты. Этот тест работает путем подключения к apiserver и проверки побочных эффектов, которые проявляют ошибку в Kubernetes. Запуск этой proof-of-concept через балансировщик нагрузки 7 уровня может ложно указать, что API уязвим к CVE-2018-1002105
Этот инструмент склонен к ложным срабатываниям: если ваш Kubernetes API предоставляется крупным облачным провайдером (таким как Amazon AWS EKS, Google Cloud GKE или Microsoft Azure AKS), этот провайдер почти наверняка уже исправил ваш apiserver, и вы больше не подвержены CVE-2018-1002105. Мы будем рады пул-реквестам, улучшающим обнаружение неуязвимых конечных точек apiserver.
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
Инструмент попытается проверить две вещи: позволяет ли кластер неаутентифицированный доступ к API, что затем позволит неаутентифицированный доступ к конечной точке агрегированного API. Он также попытается найти под и проверить, оставляет ли apiserver соединение открытым при неверно сформированном запросе, что указывает на уязвимость кластера к CVE-2018-1002105.
Testing for unauthenticated access...
> API allows unauthenticated access
Testing for privilege escalation...
> API is vulnerable to CVE-2018-1002105
Если вы видите API allows unauthenticated access, это означает, что тест смог обнаружить неаутентифицированный доступ к кластеру. Этот тест довольно прост, но должен обнаружить конфигурацию по умолчанию, где разрешен анонимный доступ к кластеру.
Если вы видите API is vulnerable to CVE-2018-1002105, это означает, что с использованием предоставленного kubeconfig инструмент смог протестировать и подтвердить, что ваш кластер уязвим.