Czym jest bezpieczeństwo kontenerów?

tball

Zabezpieczanie kontenerów polega na implementacji narzędzi i zasad bezpieczeństwa dających pewność, że wszystko w kontenerze działa prawidłowo. Dotyczy to także ochrony infrastruktury, łańcucha dostaw oprogramowania, środowiska wykonawczego i wszystkiego pomiędzy.

Zalety kontenerów

Bezpieczeństwo kontenerów ma wiele zalet:

Zmienia wdrażanie aplikacji poprzez zwiększenie szybkości, wydajności zasobów i skalowalności. Może również enkapsulować aplikacje i ich zależności, przyspieszając wdrażanie i poprawiając wydajność wykorzystania zasobów systemowych.

Można je łatwo skalować w górę lub w dół, dzięki czemu idealnie nadają się do dynamicznych obciążeń. Jedną z najważniejszych zalet kontenerów jest ich przenośność w różnych środowiskach i platformach. Dzięki temu aplikacje mogą działać spójnie niezależnie od tego, gdzie są wdrażane, lokalnie, w chmurze lub w środowiskach hybrydowych.

Utrzymując spójne środowisko, bezpieczeństwo kontenerów eliminuje problem „działa na mojej maszynie”, prowadząc do najbardziej wydajnych przejść i bardziej niezawodnych wdrożeń

Cykl życia bezpieczeństwa kontenerów

Zabezpiecz swoje kontenery na wszystkich etapach ich cyklu życia

  • Podczas wdrożenia: Kontrola wdrożeń oparta na politykach zapewnia, że obrazy kontenerów są uruchamiane tylko wtedy, gdy spełniają zdefiniowane przez Ciebie kryteria bezpieczeństwa.
  • Po wdrożeniu: Ciągłe zapewnianie zgodności umożliwia okresowe skanowanie kontenerów po ich wdrożeniu.
  • Podczas działania: Ochrona w czasie działania zapewnia wgląd w każdą aktywność kontenerów, która narusza konfigurowalny zestaw reguł.
What is Container Security

Dlaczego bezpieczeństwo kontenerów jest ważne?

Zapewnianie bezpieczeństwa kontenerów to proces ciągły. Powinien zostać zintegrowany z procesem tworzenia, zautomatyzowany, aby wyeliminować konieczność ręcznej ingerencji, oraz rozszerzony na konserwację i obsługę podstawowej infrastruktury. To oznacza konieczność ochrony procesu budowy obrazów kontenerów i hosta stanowiącego środowisko wykonawcze, platformy oraz warstw aplikacji. Implementacja zabezpieczeń w ramach cyklu ciągłego dostarczania pozwala ograniczyć ryzyko i zmniejszyć liczbę luk bezpieczeństwa na nieustannie rosnącej powierzchni ataku.

Przy zabezpieczaniu kontenerów najważniejsze są:

  • Bezpieczeństwo hosta kontenerów
  • Ruch sieciowy kontenera
  • Bezpieczeństwo aplikacji w kontenerze
  • Złośliwe zachowania w aplikacji
  • Zabezpieczanie mechanizmów zarządzania kontenerami
  • Podstawowe warstwy aplikacji
  • Integralność procesu ciągłego dostarczania.

Celem cyberzabezpieczeń jest zapewnienie, aby to, co jest dostarczane w sposób ciągły, działało dokładnie tak, jak powinno.

Illustration of main concerns

Jak zabezpieczyć kontener

Zabezpieczanie hosta zaczyna się od wyboru systemu operacyjnego. W miarę możliwości zawsze należy wybierać dystrybucje zoptymalizowane pod kątem obsługi kontenerów. Jeśli wybierzesz standardową dystrybucję systemu Linux® lub wersję Microsoft® Windows®, wyłącz lub usuń wszystkie niepotrzebne usługi i wzmocnij ogólny poziom bezpieczeństwa. Następnie dodaj kolejną warstwę zabezpieczeń i narzędzia monitoringu pozwalające kontrolować, czy host zachowuje się zgodnie z oczekiwaniami. Bardzo przydatne są narzędzia do kontroli aplikacji i systemy zapobiegania włamaniom (IPS).

Kiedy kontener zostanie wdrożony do środowiska produkcyjnego, będzie musiał komunikować się z innymi kontenerami i zasobami. Ten wewnętrzny ruch kontenerów musi być monitorowany i zabezpieczony, w związku z czym powinien w całości przechodzić przez system IPS. Nie pozostaje to bez znaczenia dla sposobu, w jaki należy wdrożyć środki bezpieczeństwa Zamiast implementować małą liczbę bardzo dużych tradycyjnych silników IPS na obwodzie, lepiej jest zaimplementować mniejsze rozwiązanie tego typu na każdym hoście. To umożliwia efektywniejsze monitorowanie całego ruchu bez uszczerbku dla wydajności.

Kontener działający w środowisku produkcyjnym nieustannie przetwarza dane aplikacji, generuje dzienniki, buforuje pliki itd. Środki bezpieczeństwa dają pewność, że żadne z tych działań nie jest przejawem złośliwej aktywności. Ochrona przed złośliwym oprogramowaniem zawartości kontenera w czasie rzeczywistym ma kluczowe znaczenie dla bezpieczeństwa.

Ważną rolę w tym wszystkim odgrywa także system IPS z tzw. funkcją wirtualnego wdrażania poprawek. Narzędzie to potrafi wykrywać próby wykorzystania exploitów i w przypadku zdalnego ujawnienia takiej luki może zastosować pakiety chroniące Twoją aplikację. W ten sposób zyskujesz czas na usunięcie przyczyny problemu w następnej wersji kontenera zamiast wdrażać poprawkę w trybie awaryjnym.

Poznaj niektóre nazwy związane z technologiami kontenerowymi: Docker®, Kubernetes®, Amazon Web Services™ (AWS) oraz Microsoft®.

Zabezpieczanie środowiska Docker

Zanim zaczniesz zabezpieczać swoje kontenery, musisz poznać najważniejszych graczy w tej branży. Docker, lider w dziedzinie konteneryzacji, to platforma umożliwiająca budowę, zabezpieczanie aplikacji i zarządzanie nimi. Przy jej użyciu można wdrażać wszystkie rodzaje aplikacji, od tradycyjnych po najnowsze mikrousługi. Jak każda inna platforma tego typu, wymaga odpowiedniej ochrony. Więcej na temat  Bezpieczeństwa kontenerów w środowisku Docker.

Zabezpieczanie kontenerów w środowisku Kubernetes

Kubernetes to kolejna ważna nazwa, którą należy znać. Kryje się za nią przenośna, rozszerzalna platforma typu open source umożliwiająca hostowanie zadań i usług w formie kontenerów. Choć Kubernetes zapewnia własne mechanizmy zabezpieczeń, rosnąca liczba ataków na klastry tej platformy wskazuje, że warto pokusić się o specjalne rozwiązania bezpieczeństwa dla niej. Przeczytaj więcej na temat zabezpieczania środowiska Kubernetes.

Amazon Web Services i bezpieczeństwo kontenerów

Następną ważną technologią jest Amazon Web Services (AWS). Twórcy tego rozwiązania rozumieją zapotrzebowanie na kontenery umożliwiające programistom szybsze dostarczanie aplikacji w bardziej skoordynowany sposób. Dlatego oferują wydajną usługę orkiestracji kontenerów wspierającą kontenery Docker o nazwie Amazon Elastic Container Service (Amazon ECS). Eliminuje ona konieczność samodzielnego zarządzania maszynami wirtualnymi i środowiskiem kontenerowym oraz umożliwia łatwe uruchamianie i skalowanie kontenerowych aplikacji AWS. Jednak podobnie jak w przypadku pozostałych kluczowych graczy opisanych powyżej, aby w pełni wykorzystać jej możliwości, należy zaimplementować odpowiednie zabezpieczenia. Przeczytaj więcej na temat Bezpieczeństwa kontenerów w środowisku AWS.

Zabezpieczanie usługi Microsoft Azure Container Instances

Ostatnia, ale nie mniej istotna od poprzednich, jest usługa Microsoft® Azure™ Container Instances (ACI). To rozwiązanie umożliwiające programistom wdrażanie kontenerów w chmurze publicznej Microsoft® Azure™ bez konieczności uruchamiania ani obsługi potrzebnej do tego infrastruktury. Użytkownik po prostu tworzy nowy kontener w portalu Microsoft® Azure™, a Microsoft automatycznie dostarcza i skaluje odpowiednie zasoby komputerowe. Usługa Azure Container Instances jest szybka i elastyczna, ale wymaga odpowiednich zabezpieczeń, aby można było w pełni wykorzystać jej możliwości. 

Znasz już technologie najważniejszych graczy w branży, czas więc dowiedzieć się, jak zapewnić im ogólne bezpieczeństwo. Ewentualnie możesz też skorzystać z powyższych odnośników, aby przejść do szczegółów na temat wybranego rozwiązania. Przeczytaj więcej na temat  Zabezpieczania usługi Microsoft Azure Container Instances.

Zabezpieczanie hosta

Zabezpieczanie hosta zaczyna się od wyboru systemu operacyjnego. W miarę możliwości należy używać rozproszonego systemu operacyjnego zoptymalizowanego do uruchamiania kontenerów. Jeśli używasz standardowych dystrybucji Linux® lub Microsoft® Windows®, upewnij się, że wyłączasz lub usuwasz zbędne usługi oraz wzmacniasz ogólne bezpieczeństwo systemu operacyjnego. Następnie dodaj warstwę narzędzi bezpieczeństwa i monitorowania, aby upewnić się, że host działa zgodnie z oczekiwaniami. Narzędzia takie jak kontrola aplikacji czy system zapobiegania włamaniom (IPS) są w tej sytuacji bardzo przydatne.

Gdy kontener działa w środowisku produkcyjnym, musi komunikować się z innymi kontenerami i zasobami. Ten wewnętrzny ruch musi być monitorowany i zabezpieczony poprzez zapewnienie, że cały ruch sieciowy z kontenerów przechodzi przez system IPS. Zmienia to sposób wdrażania kontroli bezpieczeństwa. Zamiast wdrażać niewielką liczbę dużych tradycyjnych silników IPS na obrzeżach sieci, wdrażasz IPS na każdym hoście, co pozwala skutecznie monitorować cały ruch bez znacznego wpływu na wydajność.

Zabezpieczanie aplikacji w kontenerze

Po uruchomieniu kontenera w środowisku produkcyjnym, stale przetwarza on dane aplikacji, generuje pliki dziennika, buforuje pliki itd. Kontrole bezpieczeństwa pomagają upewnić się, że są to zwykłe działania, a nie złośliwe. Kluczowe znaczenie dla powodzenia mają działające w czasie rzeczywistym kontrole antymalware analizujące zawartość kontenera.

System IPS odgrywa tu również rolę w modelu zwanym wirtualnym łataniem (virtual patching). Jeśli luka bezpieczeństwa jest narażona na atak zdalny, silnik IPS może wykryć próby jej wykorzystania i odrzucić pakiety, aby chronić aplikację. Daje to czas na usunięcie przyczyny problemu w następnej wersji kontenera, zamiast wprowadzania awaryjnej poprawki.

Monitorowanie aplikacji

Przy wdrażaniu aplikacji na kontenerze dobrym pomysłem może być wykorzystanie funkcji samoochrony aplikacji w środowisku wykonawczym (runtime application self-protection – RASP). Funkcja taka działa w kodzie aplikacji i często przechwytuje kluczowe wywołania lub się pod nie podłącza. Funkcja RASP nie tylko zapewnia szereg usprawnień bezpieczeństwa, takich jak monitoring SQL, sprawdzanie zależności i rozwiązywanie związanych z nimi problemów, weryfikacja adresów URL i wiele innych, ale dodatkowo ułatwia identyfikację przyczyn problemu, która zawsze stanowi jedno z największych wyzwań.

Dzięki obecności w kodzie aplikacji funkcja ta może powiązać incydent bezpieczeństwa z wierszem kodu, który za niego odpowiada. Trudno przecenić wartość takiego narzędzia w zakresie jego wpływu na poprawę stanu bezpieczeństwa całego systemu.

Zabezpieczanie mechanizmów zarządzania kontenerami

Z punktu widzenia bezpieczeństwa często pomijanym elementem jest mechanizm zarządzania i koordynacji kontenerów. Każda organizacja poważnie podchodząca do wdrażania kontenerów nieuchronnie będzie miała do czynienia z dwiema kluczowymi technologiami wspomagającymi zarządzanie: prywatnym rejestrem kontenerów, takim jak Amazon ECS i platformą Kubernetes do orkiestracji wdrożeń kontenerów.

Połączenie rejestru kontenerów i platformy Kubernetes umożliwia automatyczne egzekwowanie przestrzegania zbioru zasad dotyczących jakości i bezpieczeństwa w odniesieniu do kontenerów przed ich ponownym wdrożeniem w środowisku oraz w trakcie tego procesu.

Rejestry ułatwiają współdzielenie kontenerów i wykorzystywanie istniejących jednostek do budowy nowych. Aby jednak mieć pewność, że każdy kontener spełnia podstawowe wymogi bezpieczeństwa i nie tylko, należy korzystać z automatycznego skanera. Skanowanie każdego kontenera pod kątem znanych luk bezpieczeństwa, złośliwego oprogramowania i zawartości tajnych danych przed jego udostępnieniem w rejestrze pozwala ograniczyć skalę problemów na dalszych etapach.

Ponadto należy także upewnić się, że rejestr również jest dobrze chroniony. Powinien być hostowany w systemie o podniesionym poziomie bezpieczeństwa lub w usłudze chmurowej o bardzo dobrej reputacji. Nawet w przypadku modelu usługowego należy pamiętać o podziale odpowiedzialności i zaimplementować solidny system dostępu do rejestru oparty na rolach.

Jeśli chodzi o orkiestrację, wdrożona i działająca w środowisku platforma Kubernetes zapewnia szereg istotnych udogodnień pozwalających Twoim zespołom optymalnie wykorzystać możliwości tego środowiska. Ponadto Kubernetes umożliwia implementację różnych środków bezpieczeństwa i operacyjnych, takich jak kapsuły (zasoby poziomu klastra) i zasady bezpieczeństwa sieci, dzięki czemu możesz elastycznie dostosowywać różne opcje do swojego poziomu tolerancji ryzyka.

Budowa aplikacji na bezpiecznym fundamencie: skanowanie kontenerów

Aby mieć pewność, że wykorzystywane przez Ciebie kontenery są godne zaufania i bezpieczne od typowych zagrożeń, musisz wdrożyć proces skanowania ich obrazów. Służące do tego narzędzia skanują zawartość kontenera w poszukiwaniu problemów zanim zostanie on wykorzystany do budowy aplikacji. Ponadto wykonują szereg testów ostatecznych przed wdrożeniem kontenera w środowisku produkcyjnym.

Prawidłowo zaimplementowany skaner staje się naturalnym elementem procesu tworzenia kodu. Jest to w pełni automatyczne narzędzie, które szybko i sprawnie identyfikuje wszelkie problemy powstałe w trakcie tworzenia aplikacji i jej kontenerów. 

Zapewnianie integralności procesu budowy

Hackerzy zaczynają przeprowadzać ataki na coraz wcześniejszych etapach procesu ciągłej integracji/ciągłego dostarczania (CI/CD). Jeśli cyberprzestępcy uda się złamać zabezpieczenia serwera budowania, repozytorium kodu lub stacji roboczych programistów, to może przetrwać w Twoim środowisku znacznie dłużej. Dlatego musisz utrzymywać solidny zbiór aktualnych środków bezpieczeństwa.

Zaimplementuj mocną strategię kontroli dostępu obejmującą cały proces, zaczynając od repozytorium kodu i strategię rozgałęziania, po repozytorium kontenerów. Ściśle przestrzegaj zasady najmniejszych możliwych uprawnień – udzielania jak najmniejszych praw dostępu umożliwiających realizację wymaganych zadań – i regularnie ją weryfikuj.

Illustration of devops

Spięcie wszystkiego razem

Zabezpieczanie kontenerów wymaga kompleksowego podejścia. Musisz upewnić się, że odpowiadasz na potrzeby wszystkich zespołów w Twojej organizacji. Zastosuj podejście, które można zautomatyzować w sposób pasujący do Twoich bieżących procesów DevOps przy zachowaniu pewności, że nie ucierpi na tym bezpieczeństwo, terminy zostaną dotrzymane, a aplikacje – szybko dostarczone. Bezpieczeństwa nie można już pomijać, przypominając sobie o nim w ostatniej chwili i żądając zmian w procesach roboczych. Budowa godnych zaufania zabezpieczeń i automatycznych procesów od samego początku pozwala rozwiązywać problemy dotyczące bezpieczeństwa i ułatwia współpracę. 

Gdzie mogę uzyskać pomoc w zakresie bezpieczeństwa kontenerów?

Zabezpieczenie kontenerów wymaga kompleksowego podejścia do bezpieczeństwa. Musisz upewnić się, że zaspokajasz potrzeby wszystkich zespołów w swojej organizacji. Upewnij się, że twoje podejście można zautomatyzować, aby pasowało do procesów DevOps, umożliwiając dotrzymywanie terminów i szybkie dostarczanie aplikacji przy jednoczesnej ochronie każdej grupy. Bezpieczeństwo nie może być już pomijane ani wprowadzane w ostatniej chwili z żądaniami zmiany sposobu pracy.

Trend Vision One™ Container Security umożliwia konfigurowanie zasad bezpieczeństwa i zestawów reguł skanowania w czasie działania, monitorowanie wykrywania podatności i zdarzeń bezpieczeństwa oraz używanie skanera artefaktów do skanowania przed uruchomieniem klastrów Kubernetes. Tworzenie zaufanych mechanizmów bezpieczeństwa i zautomatyzowanych procesów od samego początku pomaga rozwiązywać problemy z bezpieczeństwem i ułatwia współpracę między zespołami.

fernando

Vice President of Product Management

pen

Fernando Cardoso  jest  wiceprezesem ds. zarządzania produktami w Trend Micro, skupiając się na stale zmieniającym się świecie sztucznej inteligencji i chmury. Rozpoczął karierę jako inżynier ds.  sieci  i  sprzedaży, gdzie doskonalił swoje umiejętności w centrach danych, chmurze, DevOps i cyberbezpieczeństwie — obszarach, które nadal napędzają jego pasję.

Dzięki ponad  13-letniemu doświadczeniu  w branży cyberbezpieczeństwa Fernando kierował wieloma inicjatywami w zakresie bezpieczeństwa  chmury, DevSecOps i  sztucznej inteligencji, ściśle współpracując z globalnymi klientami i strategicznymi partnerami, takimi jak AWS, NVIDIA i Microsoft. Jest również uznanym liderem opinii i częstym prelegentem podczas globalnych wydarzeń, od AWS re:Invent po NVIDIA GTC i AI Summit w Black Hat.

Fernando kieruje globalnym zespołem menedżerów produktów, realizując strategie  wejścia na rynek, przeprowadzając badania  rynku i dostarczając innowacje, które nadal kształtują przyszłość bezpiecznych, inteligentnych środowisk chmurowych.