Всем привет!
Статья от Unit42 (Palo Alto) описывает сценарий повышения привилегий до уровня Cluster Admin в GKE.
Есть несколько допущений. Первое: злоумышленник уже обладает доступом к кластеру Kubernetes. Как именно? – ответ на этот вопрос не является частью статьи. Второе: на кластере установлен и используется Anthos (вариация Istio от Google).
Что дальше? Все достаточно просто! Сценарий, следующий:
🍭 Эксплуатация уязвимостей в контейнерах FluentBit. Это нужно, т.к. в GKE у него есть mount к
/var/lib/kubelet/pods и, как следствие, доступ к ServiceAccount Tokens🍭 Поиск token’a Anthos и его дальнейшее использование для создания
pod в namespace kube-system🍭 Предоставление создаваемому
pod роли clusterrole-aggregation-controller, обладающий повышенными привилегиями🍭 Повтор «трюка» с FluentBit для получения token’a только что созданного
podЗавершает статью набор советов и рекомендаций, позволяющих запретить / сильно осложнить реализацию того, что написано выше. Все, как обычно – контроль доступа, контроль конфигураций, устранение избыточных полномочий и контроль изменений. Вроде бы просто, но на деле это не совсем так, особенно на большим масштабах 😊