Wygląda na to, że Kubernetes, oprogramowanie od dłuższego czasu święcące triumfy na polu orkiestracji kontenerów, doczekało się pierwszej poważnej luki. Potwierdzono, że podatność (CVE-2018-1002105) jest krytyczna i może być wykorzystana do eskalacji uprawnień.
Pierwsza tak poważna luka w Kubernetes
Red Hat nie stara się mydlić nikomu oczu – w oficjalnym komunikacie na temat podatności podkreślono, że sprawa jest poważna i konieczna jest natychmiastowa aktualizacja Kubernetes. Podatność umożliwia bowiem atakującemu uzyskanie pełnych uprawnień administratora, zaś dokonać tego może każdy zdalnie – nie jest konieczna jakakolwiek wcześniejsza penetracja czy wykorzystanie innych luk.
Jak to możliwe? Problem tkwi w serwerze OpenShift API, czyli komponencie OpenShift Container Platform 3, który obsługuje wywołania API. Komponent ten posiada typ upgradeawarehandler, który działa jako odwrotne proxy. Typ nie zamykał poprawnie połączeń, gdy występował w nich błąd. To zaś pozwalało użytkownikom na wysyłanie żądania, które skutkuje eskalacją przywilejów. Tak spreparowane żądanie jest ponadto autoryzowane przez TLS.
Jak się chronić przed eskalacją uprawnień?
Jak informuje Red Hat, podatne na atak są wszystkie usługi oparte na Kubernetes w wersji od 1.0.x do 1.9.x: Red Hat OpenShift Container Platform 3.x, Red Hat OpenShift Online, and Red Hat OpenShift Dedicated. Wszystkie usługi, które wykorzystywane są do ataku są domyślnie włączone. Atakujący nie tylko mogą uzyskać dostęp do wrażliwych danych, ale także wstrzyknąć złośliwy kod, który będzie następnie rozsiewany wśród użytkowników.
Niestety, brakuje sposobu na łatwe zidentyfikowanie czy do ataku już doszło. Na szczęście dostępne są już łatki bezpieczeństwa. W repozytorium GitHub udostępniono już wersje bez krytycznej podantości – załatane Kubernetes dostępne jest wersji 1.10.11, 1.11.5, 1.12.3 oraz 1.13.0 (RC1).