OpenShift - SCC bypass
Oryginalnym autorem tej strony jest Guillaume
Przestrzenie nazw uprzywilejowane
Domyślnie SCC nie jest stosowane w następujących projektach:
default
kube-system
kube-public
openshift-node
openshift-infra
openshift
Jeśli wdrożysz moduły w jednej z tych przestrzeni nazw, żadne SCC nie będzie egzekwowane, co pozwala na wdrożenie uprzywilejowanych modułów lub montowanie systemu plików hosta.
Etykieta przestrzeni nazw
Istnieje sposób na wyłączenie stosowania SCC w twoim module zgodnie z dokumentacją RedHat. Będziesz musiał mieć co najmniej jedno z następujących uprawnień:
Utwórz przestrzeń nazw i utwórz moduł w tej przestrzeni nazw
Edytuj przestrzeń nazw i utwórz moduł w tej przestrzeni nazw
Specyficzna etykieta openshift.io/run-level
umożliwia użytkownikom obejście SCC dla aplikacji. Zgodnie z dokumentacją RedHat, gdy ta etykieta jest wykorzystywana, żadne SCC nie są egzekwowane na wszystkich podach w tej przestrzeni nazw, efektywnie usuwając wszelkie ograniczenia.
Dodaj Etykietę
Aby dodać etykietę w swojej przestrzeni nazw:
Aby utworzyć przestrzeń nazw z etykietą za pomocą pliku YAML:
Teraz wszystkie nowe pody utworzone w przestrzeni nazw nie powinny mieć żadnego SCC
W przypadku braku SCC nie ma żadnych ograniczeń dotyczących definicji twojego pada. Oznacza to, że złośliwy pod może łatwo zostać utworzony, aby uciec na system hosta.
Teraz stało się łatwiejsze eskalowanie uprawnień w celu uzyskania dostępu do systemu hosta, a następnie przejęcie całego klastra, uzyskując uprawnienia „cluster-admin”. Szukaj części Node-Post Exploitation na następnej stronie:
Niestandardowe etykiety
Co więcej, w zależności od konfiguracji docelowej, niektóre niestandardowe etykiety / adnotacje mogą być używane w ten sam sposób jak w poprzednim scenariuszu ataku. Nawet jeśli nie są do tego przeznaczone, etykiety mogą być używane do nadawania uprawnień, ograniczania lub nie ograniczania dostępu do określonych zasobów.
Spróbuj znaleźć niestandardowe etykiety, jeśli możesz odczytać niektóre zasoby. Oto lista interesujących zasobów:
Pod
Deployment
Namespace
Service
Route
Wymień wszystkie uprzywilejowane przestrzenie nazw
Zaawansowany exploit
W OpenShift, jak już pokazano wcześniej, posiadanie uprawnień do wdrażania poda w przestrzeni nazw z etykietą openshift.io/run-level
może prowadzić do prostego przejęcia klastra. Z perspektywy ustawień klastra, ta funkcjonalność nie może zostać wyłączona, ponieważ jest ona nieodłączna od projektu OpenShift.
Jednakże środki łagodzące, takie jak Open Policy Agent GateKeeper, mogą zapobiec użytkownikom w ustawianiu tej etykiety.
Aby ominąć reguły GateKeeper'a i ustawić tę etykietę w celu wykonania przejęcia klastra, atakujący musieliby zidentyfikować alternatywne metody.
Referencje
Last updated