-: Najnowszym typem wirtualizacji,
który staje się popularny w naszych sieciach,
jest wirtualizacja oparta na kontenerach, znana
również jako konteneryzacja.
Ten typ wirtualizacji jest jednak znacznie bardziej skoncentrowany
na serwerach niż na użytkowniku końcowym.
W przypadku tego typu wirtualizacji jądro
systemu operacyjnego jest współdzielone przez
wiele maszyn wirtualnych, ale przestrzeń użytkownika dla każdej maszyny
wirtualnej jest tworzona i zarządzana w unikalny sposób.
Konteneryzacja to rodzaj wirtualizacji stosowany
przez system operacyjny hosta w celu zapewnienia izolowanego
środowiska wykonawczego dla aplikacji.
Konteneryzacja jest uważana za dość bezpieczną,
ponieważ wymusza segmentację i separację
zasobów na poziomie systemu operacyjnego.
Obecnie konteneryzacja jest powszechnie
stosowana w serwerach Linux, a niektóre
przykłady wirtualizacji opartej
na kontenerach obejmują takie rzeczy jak Docker, Parallels
Virtuozzo i projekt OpenVZ.
Jak naprawdę wygląda konteneryzacja?
Cóż, masz kawałek sprzętu, a następnie
na tym sprzęcie masz system operacyjny hosta, zwykle
Linux, a następnie masz menedżera kontenerów.
Coś takiego jak Kubernetes, Docker lub coś podobnego.
Teraz ten menedżer kontenerów będzie używany do tworzenia
różnych kontenerów zawierających różne aplikacje.
W tym przypadku mam trzy pojemniki.
Mam pierwsze środowisko, które jest oparte
na jądrze systemu operacyjnego hosta, w tym przykładzie
używanego systemu Linux.
Mamy więc kontener z systemem Linnux, który
zawiera kilka aplikacji.
Teraz pojemnik drugi może zrobić to samo, a
pojemnik trzeci może zrobić to samo.
Ponieważ wszystkie trzy kontenery współdzielą
te same pliki systemu operacyjnego hosta.
Zajmuje to znacznie mniej zasobów niż
czysta wirtualizacja przy użyciu maszyn wirtualnych.
Podobnie jak w przypadku wirtualizacji.
Jeśli zamiast tego użylibyśmy pojedynczych maszyn wirtualnych, każda
z nich potrzebowałaby własnej kopii systemu operacyjnego.
Może to być od 8 do 10 gigabajtów na każdy z nich.
Ale dzięki kontenerom wszyscy
możemy współdzielić ten sam system operacyjny.
Konteneryzacja wykorzystuje więc znacznie mniej pamięci masowej
i wymaga znacznie mniej mocy obliczeniowej.
Jest to prawdziwa zaleta korzystania z czegoś takiego jak
kontener z perspektywy operacyjnej.
Teraz, ponieważ te kontenery są logicznie odizolowane.
W rzeczywistości nie mogą one ze sobą współpracować.
Jeśli chcę, aby dwa kontenery ze sobą rozmawiały,
muszę połączyć je za pośrednictwem sieci wirtualnej i wykonać
odpowiedni routing i przełączanie,
aby umożliwić im rozmowę.
Domyślnie nie mają one możliwości komunikowania się ze
sobą i jest to świetna rzecz z punktu widzenia bezpieczeństwa,
ponieważ mamy tę segmentację.
Oto najważniejsze ostrzeżenie, jeśli chodzi
o kontenery.
Jeśli atakujący włamie się do systemu operacyjnego hosta,
na przykład systemu operacyjnego Linux,
o którym właśnie mówiłem, zgadnij, co się stanie?
Cóż, ten atak ma teraz dostęp do wszystkich kontenerów w swoich
danych, ponieważ ten jeden system operacyjny jest
używany przez wszystkie hostowane kontenery.
Jest to jedna z największych luk w zabezpieczeniach
podczas korzystania z kontenerów.
Mogę mieć system kontenerowy, który obsługuje
obecnie 50 różnych serwerów.
Na każdym z nich działają różne serwery
i usługi wykorzystujące konteneryzację.
Ale jeśli ktoś jest w stanie dostać się do tego jednego serwera
pod tym systemem operacyjnym Linux, ma teraz dostęp do wszystkich
50 hostowanych serwerów i wszystkich ich danych.
Kolejnym ryzykiem, które należy wziąć pod uwagę,
jest sposób hostowania kontenerów i innych maszyn wirtualnych.
Gdy zaczynamy polegać na wirtualizacji i przetwarzaniu w chmurze,
bardzo ważne staje się rozpoznanie, że
nasze dane mogą być hostowane na tym samym serwerze fizycznym,
co dane innej organizacji.
W ten sposób wprowadzamy pewne luki w zabezpieczeniach
naszych systemów.
Po pierwsze, jeśli serwer fizyczny ulegnie awarii z powodu działań
jednej z innych organizacji, może to faktycznie
wpłynąć na wszystkie
organizacje na tym samym serwerze.
Podobnie, jeśli jedna organizacja nie utrzymuje bezpieczeństwa
swoich środowisk wirtualnych, są one
hostowane na tym fizycznym serwerze, istnieje
możliwość, że atakujący może to wykorzystać ze szkodą dla
wszystkich innych organizacji hostowanych na tym
samym serwerze.
Podobnie jak istnieją obawy związane z łączeniem naszych
sieci z sieciami innych firm, istnieją również obawy
związane z przechowywaniem danych wielu organizacji
na tym samym serwerze fizycznym.
Ważne jest dla nas prawidłowe skonfigurowanie, zarządzanie
i audytowanie dostępu użytkowników do maszyn wirtualnych
hostowanych na tych serwerach.
Ponadto chcemy mieć pewność, że nasze maszyny wirtualne mają
zainstalowane najnowsze łatki, programy antywirusowe,
animwire i kontrolę dostępu.
Aby zminimalizować ryzyko przeciążenia
zasobów serwerów fizycznych, zawsze dobrym pomysłem jest skonfigurowanie
naszych maszyn wirtualnych z odpowiednim przełączaniem
awaryjnym, redundancją i elastycznością.
Monitorując wydajność sieci
i zasoby serwerów fizycznych, powinniśmy
być w stanie zrównoważyć obciążenie
na kilku maszynach fizycznych, zamiast
polegać tylko na jednej.
Inną luką, która może zostać wykorzystana
przez atakującego, jest użycie tego samego typu
hypervisora na wszystkich naszych maszynach wirtualnych.
Na przykład, jeśli nasza organizacja polega wyłącznie
na hiperwizorze ESXi firmy VMware i zostanie stworzony
nowy exploit dla tego hiperwizora, atakujący może
użyć go przeciwko wszystkim naszym systemom.
Tak więc, jeśli odniesie sukces na jednym z naszych serwerów, prawdopodobnie
wypróbują go na pozostałych naszych serwerach.
A jeśli wszystkie nasze serwery używają tej samej
platformy, w tym przypadku ESXi firmy VMware, ta luka może zostać
wykorzystana w całej naszej organizacji.
Wyzwanie z tym związane polega jednak na tym,
że ponownie, jeśli korzystamy z wielu platform hypervisor,
nasze koszty wsparcia i wymagania szkoleniowe
również wzrosną.
Z tego powodu większość organizacji decyduje się na korzystanie
z jednej platformy, ale przynajmniej podejmują
decyzję o wyważonym ryzyku.
Aby ograniczyć to ryzyko, organizacja powinna stosować
odpowiednie konfiguracje, upewnić się, że hypervisor
jest zawsze załatany i aktualny oraz dostępny
tylko za pośrednictwem bezpiecznego interfejsu zarządzania,
a także ściśle kontrolować dostęp.
Są to niektóre z rzeczy, które należy wziąć pod uwagę, gdy
zaczynasz zastanawiać się, czy zamierzasz zwirtualizować
swoje systemy i przenieść je do rozwiązania lokalnego
lub opartego na chmurze.
Po pierwsze, czy zamierzasz wirtualizować?
Jeśli tak, to czy zamierzasz korzystać z tradycyjnych maszyn
wirtualnych, czy też z konteneryzacji?
Jaki jest stosunek ryzyka do zysku?
Trzeba zachować równowagę.
Jest to decyzja biznesowa,
a także decyzja dotycząca cyberbezpieczeństwa.
Będziesz więc musiał zmierzyć te rzeczy
i zdecydować, co najlepiej wybrać dla swojej organizacji i jej
konkretnych przypadków użycia.