Zagadnienia dotyczące zabezpieczeń usługi Azure Container Instances

W tym artykule przedstawiono zagadnienia dotyczące zabezpieczeń dotyczące używania usługi Azure Container Instances do uruchamiania aplikacji kontenerów. Tematy obejmują:

  • Zalecenia dotyczące zabezpieczeń dotyczące zarządzania obrazami i wpisami tajnymi dla usługi Azure Container Instances
  • Zagadnienia dotyczące ekosystemu kontenerów w całym cyklu życia kontenera dla dowolnej platformy kontenerów

Aby uzyskać kompleksowe zalecenia, które pomogą Ci poprawić stan zabezpieczeń wdrożenia, zobacz Punkt odniesienia zabezpieczeń platformy Azure dla usługi Container Instances.

Zalecenia dotyczące zabezpieczeń dla usługi Azure Container Instances

Korzystanie z rejestru prywatnego

Kontenery są kompilowane na podstawie obrazów przechowywanych w co najmniej jednym repozytorium. Te repozytoria mogą należeć do rejestru publicznego, takiego jak Docker Hub, lub do rejestru prywatnego. Przykładem rejestru prywatnego jest rejestr Docker Trusted Registry, który można zainstalować w środowisku lokalnym lub w wirtualnej chmurze prywatnej. Możesz również użyć usług rejestru kontenerów prywatnych opartych na chmurze, w tym usługi Azure Container Registry.

Publicznie dostępny obraz kontenera nie gwarantuje bezpieczeństwa. Obrazy kontenerów składają się z wielu warstw oprogramowania, a każda warstwa oprogramowania może mieć luki w zabezpieczeniach. Aby zmniejszyć zagrożenie atakami, należy przechowywać i pobierać obrazy z rejestru prywatnego, takiego jak Usługa Azure Container Registry lub Zaufany rejestr platformy Docker. Oprócz udostępniania zarządzanego rejestru prywatnego usługa Azure Container Registry obsługuje uwierzytelnianie oparte na jednostce usługi za pośrednictwem identyfikatora Entra firmy Microsoft na potrzeby podstawowych przepływów uwierzytelniania. To uwierzytelnianie obejmuje dostęp oparty na rolach dla uprawnień tylko do odczytu (ściągania), zapisu (wypychania) i innych uprawnień.

Monitorowanie i skanowanie obrazów kontenerów

Skorzystaj z rozwiązań do skanowania obrazów kontenerów w prywatnym rejestrze i identyfikowania potencjalnych luk w zabezpieczeniach. Ważne jest, aby zrozumieć głębokość wykrywania zagrożeń, jakie zapewniają różne rozwiązania.

Na przykład usługa Azure Container Registry opcjonalnie integruje się z Microsoft Defender dla Chmury w celu automatycznego skanowania wszystkich obrazów systemu Linux wypychanych do rejestru. zintegrowany skaner Qualys Microsoft Defender dla Chmury wykrywa luki w zabezpieczeniach obrazów, klasyfikuje je i udostępnia wskazówki dotyczące korygowania.

Rozwiązania do monitorowania zabezpieczeń i skanowania obrazów, takie jak Twistlock i Aqua Security , są również dostępne za pośrednictwem witryny Azure Marketplace.

Ochrona poświadczeń

Kontenery mogą być rozmieszczone w kilku klastrach i regionach świadczenia usługi Azure. Dlatego należy zabezpieczyć poświadczenia wymagane do logowania lub dostępu do interfejsu API, takich jak hasła lub tokeny. Upewnij się, że tylko uprzywilejowani użytkownicy mogą uzyskiwać dostęp do tych kontenerów podczas przesyłania i magazynowania. Utwórz spis wszystkich wpisów tajnych poświadczeń, a następnie wymagaj od deweloperów używania nowych narzędzi do zarządzania wpisami tajnymi przeznaczonymi dla platform kontenerów. Upewnij się, że twoje rozwiązanie obejmuje zaszyfrowane bazy danych, szyfrowanie TLS dla danych wpisów tajnych podczas przesyłania i kontrolę dostępu opartą na rolach na platformie Azure (Azure RBAC). Azure Key Vault to usługa w chmurze, która chroni klucze szyfrowania i wpisy tajne (takie jak certyfikaty, parametry połączenia i hasła) dla konteneryzowanych aplikacji. Ponieważ te dane są poufne i krytyczne dla działania firmy, bezpieczny dostęp do magazynów kluczy, dzięki czemu tylko autoryzowane aplikacje i użytkownicy mogą uzyskiwać do nich dostęp.

Zagadnienia dotyczące ekosystemu kontenerów

Następujące środki zabezpieczeń, wdrożone dobrze i skutecznie zarządzane, mogą pomóc w zabezpieczeniu i ochronie ekosystemu kontenerów. Te miary mają zastosowanie w całym cyklu życia kontenera, od programowania przez wdrożenie produkcyjne oraz do wielu koordynatorów kontenerów, hostów i platform.

Używanie zarządzanie lukami w zabezpieczeniach w ramach cyklu projektowania kontenerów

Korzystając z efektywnych zarządzanie lukami w zabezpieczeniach w całym cyklu projektowania kontenerów, można poprawić szanse identyfikowania i rozwiązywania problemów z zabezpieczeniami, zanim staną się one poważniejsze.

Skanowanie pod kątem luk w zabezpieczeniach

Nowe luki w zabezpieczeniach są wykrywane przez cały czas, więc skanowanie pod kątem i identyfikowanie luk w zabezpieczeniach jest procesem ciągłym. Uwzględnij skanowanie luk w zabezpieczeniach w całym cyklu życia kontenera:

  • W ramach ostatecznego sprawdzenia potoku programowania należy przeprowadzić skanowanie w poszukiwaniu luk w zabezpieczeniach na kontenerach przed wypchnięciem obrazów do rejestru publicznego lub prywatnego.
  • Kontynuuj skanowanie obrazów kontenerów w rejestrze, aby zidentyfikować wszelkie błędy, które zostały w jakiś sposób pominięte podczas programowania, i rozwiązać wszelkie nowo wykryte luki w zabezpieczeniach, które mogą istnieć w kodzie używanym w obrazach kontenerów.

Mapuj luki w zabezpieczeniach obrazu do uruchomionych kontenerów

Musisz mieć metodę mapowania luk w zabezpieczeniach zidentyfikowanych w obrazach kontenerów do uruchomionych kontenerów, aby można było rozwiązać lub rozwiązać problemy z zabezpieczeniami.

Upewnij się, że w danym środowisku są używane tylko zatwierdzone obrazy

Istnieje wystarczająca zmiana i zmienność w ekosystemie kontenerów bez zezwalania na nieznane kontenery. Zezwalaj tylko na zatwierdzone obrazy kontenerów. Narzędzia i procesy są używane do monitorowania obrazów kontenerów niezatwierdzonych i zapobiegania ich używaniu.

Skutecznym sposobem zmniejszenia obszaru ataków i zapobiegania deweloperom popełniania krytycznych błędów zabezpieczeń jest kontrolowanie przepływu obrazów kontenerów w środowisku deweloperów. Na przykład można uznać pojedynczą dystrybucję systemu Linux za obraz podstawowy, najlepiej taki, który jest chudy (Alpine lub CoreOS, a nie Ubuntu), aby zminimalizować powierzchnię potencjalnych ataków.

Podpisywanie obrazów lub odciski palców może zapewnić łańcuch nadzoru, który umożliwia zweryfikowanie integralności kontenerów. Na przykład usługa Azure Container Registry obsługuje model zaufania zawartości platformy Docker, który umożliwia wydawcom obrazów podpisywanie obrazów wypychanych do rejestru, a odbiorcy obrazów mogą ściągać tylko podpisane obrazy.

Zezwalanie tylko na zatwierdzone rejestry

Rozszerzenie zapewniania, że środowisko używa tylko zatwierdzonych obrazów, polega na umożliwieniu korzystania tylko z zatwierdzonych rejestrów kontenerów. Wymaganie użycia zatwierdzonych rejestrów kontenerów zmniejsza narażenie na ryzyko przez ograniczenie możliwości wprowadzenia nieznanych luk w zabezpieczeniach lub problemów z zabezpieczeniami.

Zapewnianie integralności obrazów w całym cyklu życia

Częścią zarządzania zabezpieczeniami w całym cyklu życia kontenera jest zapewnienie integralności obrazów kontenerów w rejestrze i w miarę ich zmiany lub wdrażania w środowisku produkcyjnym.

  • Obrazy z lukami w zabezpieczeniach, nawet drobne, nie powinny być dozwolone do uruchamiania w środowisku produkcyjnym. Najlepiej, aby wszystkie obrazy wdrożone w środowisku produkcyjnym były zapisywane w prywatnym rejestrze dostępnym dla kilku. Zachowaj małą liczbę obrazów produkcyjnych, aby zapewnić efektywne zarządzanie nimi.

  • Ponieważ trudno jest wskazać pochodzenie oprogramowania z publicznie dostępnego obrazu kontenera, twórz obrazy ze źródła, aby zapewnić wiedzę o pochodzeniu warstwy. Gdy w samodzielnie kompilowanym obrazie kontenera pojawi się luka w zabezpieczeniach, klienci będą mogli szybciej znaleźć ścieżkę do rozwiązania. W przypadku obrazu publicznego klienci muszą znaleźć katalog główny obrazu publicznego, aby go naprawić lub uzyskać inny bezpieczny obraz od wydawcy.

  • Dokładnie zeskanowany obraz wdrożony w środowisku produkcyjnym nie gwarantuje aktualności przez cały okres istnienia aplikacji. Luki w zabezpieczeniach można zgłaszać dla warstw obrazu, które nie były wcześniej znane lub pojawiły się po wdrożeniu produkcyjnym.

    Okresowo przeprowadzaj inspekcję obrazów wdrożonych w środowisku produkcyjnym w celu identyfikowania nieaktualnych obrazów lub nie zostały przez jakiś czas zaktualizowane. Możesz użyć niebieskich zielonych metodologii wdrażania i mechanizmów uaktualniania stopniowego, aby aktualizować obrazy kontenerów bez przestojów. Obrazy można skanować przy użyciu narzędzi opisanych w poprzedniej sekcji.

  • Użyj potoku ciągłej integracji z zintegrowanym skanowaniem zabezpieczeń, aby utworzyć bezpieczne obrazy i wypchnąć je do prywatnego rejestru. Skanowanie luk w zabezpieczeniach wbudowane w rozwiązaniu CI gwarantuje, że obrazy, które przejdą wszystkie testy, zostaną wypchnięte do rejestru prywatnego, z poziomu którego odbywa się wdrażanie obciążeń produkcyjnych.

    Awaria potoku ciągłej integracji gwarantuje, że obrazy podatne na zagrożenia nie są wypychane do rejestru prywatnego używanego na potrzeby wdrożeń obciążeń produkcyjnych. Automatyzuje również skanowanie zabezpieczeń obrazów, jeśli istnieje znaczna liczba obrazów. W przeciwnym razie proces ręcznego przeprowadzania inspekcji obrazów w celu wyszukania luk w zabezpieczeniach może być niezwykle żmudny i narażony na błędy.

Wymuszanie najmniejszych uprawnień w środowisku uruchomieniowym

Koncepcja najmniejszych uprawnień jest podstawowym najlepszym rozwiązaniem w zakresie zabezpieczeń, które dotyczy również kontenerów. Gdy luka w zabezpieczeniach jest wykorzystywana, zazwyczaj daje atakującemu dostęp i uprawnienia równe dostępowi do naruszonej aplikacji lub procesu. Zapewnienie, że kontenery działają z najniższymi uprawnieniami i dostępem wymaganym do wykonania zadania, zmniejsza narażenie na ryzyko.

Zmniejszanie obszaru ataków kontenera przez usunięcie niepotrzebnych uprawnień

Można również zminimalizować potencjalny obszar ataków, usuwając wszelkie nieużywane lub niepotrzebne procesy lub uprawnienia ze środowiska uruchomieniowego kontenera. Kontenery uprzywilejowane są uruchamiane jako główne. Jeśli złośliwy użytkownik lub obciążenie zostanie uniknięci w uprzywilejowanym kontenerze, kontener zostanie uruchomiony jako katalog główny w tym systemie.

Preapprove pliki i pliki wykonywalne, do których kontener może uzyskiwać dostęp lub uruchamiać

Zmniejszenie liczby zmiennych lub nieznanych pomaga zachować stabilne, niezawodne środowisko. Ograniczanie kontenerów w celu uzyskiwania dostępu do plików i plików wykonywalnych oraz uruchamiania ich tylko wstępnie zatwierdzonych lub bezpiecznych plików wykonywalnych jest sprawdzoną metodą ograniczania narażenia na ryzyko.

Zarządzanie bezpieczną listą jest o wiele łatwiejsze podczas wdrażania od początku. Bezpieczna lista zapewnia miarę kontroli i możliwości zarządzania, gdy dowiesz się, jakie pliki i pliki wykonywalne są wymagane do poprawnego działania aplikacji.

Bezpieczna lista nie tylko zmniejsza obszar ataków, ale może również zapewnić punkt odniesienia dla anomalii i zapobiec przypadkom użycia "hałaśliwego sąsiada" i scenariuszy podziału kontenera.

Wymuszanie segmentacji sieci na uruchomionych kontenerach

Aby chronić kontenery w jednej podsieci przed zagrożeniami bezpieczeństwa w innej podsieci, należy zachować segmentację sieci (lub nano segmentację) lub segregację między uruchomionymi kontenerami. Utrzymywanie segmentacji sieci może być również konieczne do używania kontenerów w branżach, które są wymagane do spełnienia wymogów zgodności.

Na przykład narzędzie partnerskie Aqua zapewnia zautomatyzowane podejście do segmentacji nanosegmentacji. Aqua monitoruje działania sieciowe kontenerów w środowisku uruchomieniowym. Identyfikuje wszystkie przychodzące i wychodzące połączenia sieciowe do/z innych kontenerów, usług, adresów IP i publicznego Internetu. Segmentacja nano jest tworzona automatycznie na podstawie monitorowanego ruchu.

Monitorowanie aktywności kontenera i dostępu użytkowników

Podobnie jak w przypadku dowolnego środowiska IT, należy stale monitorować aktywność i dostęp użytkowników do ekosystemu kontenerów, aby szybko identyfikować wszelkie podejrzane lub złośliwe działania. Platforma Azure udostępnia rozwiązania do monitorowania kontenerów, w tym:

  • Usługa Azure Monitor dla kontenerów monitoruje wydajność obciążeń wdrożonych w środowiskach Kubernetes hostowanych w usłudze Azure Kubernetes Service (AKS). Usługa Azure Monitor dla kontenerów zapewnia widoczność wydajności, zbierając metryki pamięci i procesora z kontrolerów, węzłów i kontenerów dostępnych na platformie Kubernetes za pośrednictwem interfejsu API metryk.

  • Rozwiązanie do monitorowania kontenerów platformy Azure ułatwia wyświetlanie innych hostów kontenerów platformy Docker i systemu Windows oraz zarządzanie nimi w jednej lokalizacji. Na przykład:

    • Wyświetl szczegółowe informacje o inspekcji, które zawierają polecenia używane z kontenerami.
    • Rozwiązywanie problemów z kontenerami przez wyświetlanie i wyszukiwanie scentralizowanych dzienników bez konieczności zdalnego wyświetlania hostów platformy Docker lub windows.
    • Znajdź kontenery, które mogą być hałaśliwe i zużywają nadmiar zasobów na hoście.
    • Wyświetlanie scentralizowanego procesora CPU, pamięci, magazynu i informacji o użyciu sieci i wydajności kontenerów.

    Rozwiązanie obsługuje orkiestratory kontenerów, w tym Docker Swarm, DC/OS, niezarządzane Kubernetes, Service Fabric i Red Hat OpenShift.

Monitorowanie aktywności zasobów kontenera

Monitoruj aktywność zasobów, na przykład pliki, sieć i inne zasoby, do których uzyskują dostęp kontenery. Monitorowanie aktywności zasobów i zużycia jest przydatne zarówno do monitorowania wydajności, jak i jako środka zabezpieczeń.

Usługa Azure Monitor umożliwia podstawowe monitorowanie usług platformy Azure, umożliwiając zbieranie metryk, dzienników aktywności i dzienników diagnostycznych. Na przykład dziennik aktywności informuje o utworzeniu lub zmodyfikowaniu nowych zasobów.

Są dostępne metryki, które dostarczają statystyki wydajności dla różnych zasobów, a nawet systemu operacyjnego w maszynie wirtualnej. Można wyświetlić te dane za pomocą jednego z eksploratorów w witrynie Azure Portal i utworzyć alerty na podstawie tych metryk. Usługa Azure Monitor dostarcza najszybszy potok metryk (w zakresie od 5 minut do 1 minuty), dlatego należy jej używać do krytycznych czasowo alertów i powiadomień.

Rejestrowanie dostępu wszystkich użytkowników administracyjnych kontenera na potrzeby inspekcji

Zachowaj dokładny dziennik inspekcji dostępu administracyjnego do ekosystemu kontenerów, w tym klaster Kubernetes, rejestr kontenerów i obrazy kontenerów. Te dzienniki mogą być niezbędne do celów inspekcji i będą przydatne jako dowody kryminalistyczne po każdym zdarzeniu zabezpieczeń. Rozwiązania platformy Azure obejmują:

Następne kroki