Опубликованы первые эксплоиты для уязвимости в Kubernetes
Уже в первые дни после раскрытия уязвимости появились демонстрационные эксплоиты.
Новость о недавно обнаруженной уязвимости в Kubernetes (CVE-2018-1002105) серьезно всколыхнула ИБ-сообщество и неспроста. К настоящему времени появился уже целый ряд демо-эксплоитов для нее в совокупности с доступными инструкциями. Уязвимость позволяет неавторизованному пользователю повысить свои привилегии и запускать команды для получения полного контроля над узлом. С помощью особым образом сконфигурированных запросов атакующий может установить связь с конечным сервером через сервер Kubernetes API. Настройки системы по умолчанию позволяют любому пользователю, как авторизованному, так и неавторизованному, отправлять запросы на обнаружение API, что существенно облегчает задачу злоумышленникам.
Исправление для уязвимости существует, однако, как отметил исследователь из Twistlock Ариэль Зеливански (Ariel Zelivansky), его «невозможно применить без того, чтобы не сломать что-то в кластере». Единственный надежный способ защититься от атак – обновить Kubernetes до версии 1.10.11, 1.11.5, 1.12.3 или 1.13.0-rc.1.
Вскоре после обнаружения уязвимости Зеливански написал простой скрипт на Ruby для атаки на агрегатор metrics-server, используемый для мониторинга ресурсов ЦП и RAM контейнера (metrics-server использует функцию расширений для сервера API). В опубликованном им видео показано, как эксплоит позволяет получить информацию о модулях из всех пространств имен в кластере. Скрипт может быть выполнен из любого модуля и работает при условии развертывания metrics-server и дефолтной конфигурации.
5 декабря, всего через два дня после раскрытия уязвимости, свой PoC-эксплоит опубликовала на GitHub компания Gravitational. Инструмент представляет собой утилиту для проверки наличия уязвимости в кластере Kubernetes. Однако, как предупредили разработчики, утилита может выдавать «некорректные результаты при определенных обстоятельствах».
Третий эксплоит был представлен пользователем Twitter под псевдонимом Vincent. Изначально с его помощью неавторизованный пользователь мог похитить информацию из модуля etcd-kubernetes, где по умолчанию хранятся критически важные данные. Однако на прошлых выходных Vincent написал код для эксплуатации уязвимости с целью повысить привилегии без аутентификации.