Zabezpieczenia kontenerów w usłudze AKS włączone przez usługę Azure Arc
Dotyczy: usługa AKS w usłudze Azure Stack HCI 22H2, AKS w systemie Windows Server
W tym artykule opisano różne metody zabezpieczania kontenerów używanych do tworzenia pakietów i wdrażania aplikacji oraz unikania wprowadzania luk w zabezpieczeniach w usłudze AKS włączonej przez usługę Azure Arc.
Kontenery zapewniają korzyści operacyjne i zabezpieczeń, ponieważ aplikacje i usługi są oddzielone w środowisku. Kontenery pomagają również zmniejszyć skutki awarii w całym systemie ze względu na ich abstrakcję, co zapewnia czas pracy i zapobiega atakom, które mogą naruszyć bezpieczeństwo aplikacji lub usług. Kontenery zwykle działają w warstwie abstrakcyjnej na podstawie systemu operacyjnego hosta, a abstrakcja oferuje pewną barierę separacji i możliwość zastosowania modelu obrony warstwowej.
Można również skonfigurować ciągłe zabezpieczenia kontenerów, zabezpieczając potok kontenera, aplikację i środowisko wdrażania kontenera. W poniższych sekcjach opisano kilka zalecanych rozwiązań dotyczących implementowania zabezpieczeń kontenera.
Zabezpieczanie obrazów
Aby zapobiec nieautoryzowanemu dostępowi, hostuj obrazy w bezpiecznym i zaufanym rejestrze. Obrazy powinny mieć certyfikat TLS z zaufanym głównym urzędem certyfikacji, a rejestr powinien używać kontroli dostępu opartej na rolach (RBAC) z silnym uwierzytelnianiem. Podczas projektowania ciągłej integracji/ciągłego wdrażania dla kompilacji i dostarczania kontenera należy dołączyć rozwiązanie do skanowania obrazów. Rozwiązanie do skanowania obrazów ułatwia identyfikowanie typowych luk w zabezpieczeniach i ekspozycji (CVE) oraz zapewnia, że obrazy, które można wykorzystać, nie są wdrażane bez korygowania.
Wzmacnianie zabezpieczeń środowiska hosta
Ważnym aspektem zabezpieczeń kontenerów jest konieczność wzmacniania zabezpieczeń systemów, na których działają kontenery, oraz sposobu ich działania w czasie wykonywania. Zabezpieczenia kontenerów powinny skupić się na całym stosie, w tym na hoście i demonach. Należy usunąć usługi z hosta, który nie jest krytyczny i nie należy wdrażać niezgodnych kontenerów w środowisku. Dzięki temu dostęp do hosta może wystąpić tylko za pośrednictwem kontenerów i kontroli jest scentralizowany dla demona kontenera, usuwając hosta z obszaru ataku. Te kroki są szczególnie przydatne w przypadku używania serwerów proxy do uzyskiwania dostępu do kontenerów, co może przypadkowo pominąć mechanizmy kontroli zabezpieczeń kontenera.
Ograniczanie zasobów kontenera
Gdy kontener zostanie naruszony, osoby atakujące mogą podjąć próbę użycia podstawowych zasobów hosta w celu wykonania złośliwych działań. Dobrym rozwiązaniem jest ustawienie limitów użycia pamięci i procesora CPU w celu zminimalizowania wpływu naruszeń.
Prawidłowe zabezpieczanie wpisów tajnych
Wpis tajny to obiekt zawierający poufne informacje, które mogą wymagać przekazania między hostem i kontenerem, na przykład hasła, certyfikaty SSL/TLS, klucze prywatne SSH, tokeny, parametry połączenia i inne dane, które nie powinny być przesyłane w postaci zwykłego tekstu lub przechowywane niezaszyfrowane. Wszystkie wpisy tajne należy przechowywać poza obrazami i instalować je za pośrednictwem aparatu aranżacji kontenerów lub zewnętrznego menedżera wpisów tajnych.
Praktyka izolacji
Użyj izolacji i nie używaj uprzywilejowanego użytkownika ani użytkownika głównego do uruchamiania aplikacji w kontenerze. Unikaj uruchamiania kontenerów w trybie uprzywilejowanym, ponieważ dzięki temu osoba atakująca może łatwo eskalować uprawnienia w przypadku naruszenia zabezpieczeń kontenera. Znajomość identyfikatora UID (unikatowego kodu identyfikacyjnego) i GID (kod identyfikacji grupy) użytkownika głównego w kontenerze może umożliwić osobie atakującej dostęp do plików zapisanych przez użytkownika głównego na maszynie hosta i modyfikowanie ich. Należy również użyć zasady najmniejszych uprawnień, w których aplikacja ma dostęp tylko do wpisów tajnych, których potrzebuje. Aby uruchomić proces aplikacji, możesz utworzyć użytkownika aplikacji.
Wdrażanie monitorowania zabezpieczeń środowiska uruchomieniowego
Ponieważ nadal istnieje prawdopodobieństwo naruszenia zabezpieczeń nawet po podjęciu środków ostrożności przed atakami na infrastrukturę, ważne jest, aby stale monitorować i rejestrować zachowanie aplikacji w celu zapobiegania i wykrywania złośliwych działań. Narzędzia takie jak Prometheus zapewniają skuteczny sposób monitorowania infrastruktury.