Bezpieczeństwo Kubernetes: od czego zacząć
Kubernetes daje ogromną elastyczność i równie dużą powierzchnię ataku. Omawiamy najczęstsze błędy — RBAC, sekrety, sieć — i priorytety hardeningu.
Kubernetes stał się domyślnym sposobem uruchamiania aplikacji w chmurze i na własnej infrastrukturze. Daje elastyczność, ale też dużą, złożoną powierzchnię ataku: klaster to sieć, tożsamości, sekrety i obrazy w jednym. W testach najczęściej widzimy te same błędy — i od nich warto zacząć hardening.
Najczęstsze błędy konfiguracji
- Zbyt szeroki RBAC. Konta serwisowe i użytkownicy z uprawnieniami
cluster-admin„żeby działało” sprawiają, że przejęcie jednego poda daje kontrolę nad klastrem. To ten sam grzech nadmiarowych uprawnień, co w chmurze. - Brak polityk sieciowych. Domyślnie każdy pod może rozmawiać z każdym. Bez
NetworkPolicyprzejęty kontener swobodnie porusza się po klastrze. - Sekrety w jawnej postaci. Hasła i tokeny w zmiennych środowiskowych, manifestach czy repozytorium git zamiast w menedżerze sekretów.
- Nadmierne przywileje podów. Kontenery uruchamiane jako root, z
privileged, dostępem do hosta czy socketa Dockera — to gotowa droga ucieczki z kontenera. - Odsłonięty panel i API. Publicznie dostępne API serwera lub dashboard bez silnego uwierzytelniania.
Priorytety hardeningu
- Ogranicz RBAC do najmniejszych uprawnień — osobne konta serwisowe per aplikacja, żadnego
cluster-admin„na zapas”. - Wdróż polityki sieciowe z domyślną odmową i jawnie dozwolonym ruchem między usługami.
- Wymuś standardy bezpieczeństwa podów (Pod Security Standards): brak roota, brak trybu privileged, tylko niezbędne capabilities.
- Zarządzaj sekretami poza manifestami (zewnętrzny menedżer, szyfrowanie w etcd).
- Zabezpiecz obrazy — skanowanie podatności, zaufane rejestry, podpisy; to część łańcucha dostaw.
Nie zapomnij o monitoringu
Hardening to nie wszystko — potrzebujesz też widoczności. Włącz audit log API serwera, zbieraj logi i alertuj na podejrzane działania (tworzenie kont o wysokich uprawnieniach, uruchamianie podów privileged, nietypowe exec do kontenerów). Dobrym punktem odniesienia jest CIS Kubernetes Benchmark, ale — jak przy hardeningu Linuksa — stosuj go ze zrozumieniem, a nie na ślepo.
Jeśli chcesz sprawdzić, jak odporny jest Twój klaster i jak daleko zaszedłby atakujący po przejęciu jednego poda, umów test.
Źródła i dalsza lektura: CIS Kubernetes Benchmark, Kubernetes — Security.