Bezpieczeństwo w chmurze - znane również jako bezpieczeństwo przetwarzania w chmurze - to w zasadzie dyscyplina i praktyka zapewniania, że nasze środowiska chmurowe, dane, CNAPP, kod aplikacji oraz wszelkie inne informacje biznesowe przechowywane w chmurze są chronione. Bezpieczeństwo w chmurze obejmuje szereg działań mających na celu ochronę naszego środowiska chmurowego przed nieautoryzowanym użyciem/dostępem, atakami DDoS, hakerami, złośliwym oprogramowaniem oraz innymi problemami, które mogą pojawić się, gdy nasze środowisko chmurowe nie jest odpowiednio zabezpieczone.
Istnieje różnica między bezpieczeństwem w chmurze a bezpieczeństwem opartym na chmurze. Pierwsze zostało już wyjaśnione, natomiast bezpieczeństwo oparte na chmurze odnosi się do modelu dostarczania usług bezpieczeństwa jako oprogramowania (SaaS), które znajduje się w chmurze, a nie na lokalnych serwerach.
Aby zapewnić bezpieczne środowisko, organizacje muszą przyjąć zestaw polityk, procedur i kontroli, niezależnie od tego, czy używają chmury publicznej, hybrydowej, czy prywatnej. Głównym celem wdrożenia tych środków bezpieczeństwa jest ochrona wszelkich danych przechowywanych w chmurze, zapewnienie najlepszej formy uwierzytelniania i zarządzania dostępem - zarówno dla użytkowników, jak i urządzeń - wsparcie zgodności regulacyjnej oraz ochrona prywatności użytkowników.
Nie ma jednego, stałego sposobu na zabezpieczenie danych biznesowych w chmurze. Sposób, w jaki Twoja organizacja lub zespół ds. bezpieczeństwa zdecyduje się to zrobić, powinien zależeć od potrzeb biznesowych oraz wybranego dostawcy. Niezależnie od dostawcy, polityki, kontrole i zasady mogą być konfigurowane i zarządzane w jednym miejscu, co pozwala zespołom ds. bezpieczeństwa skupić się na innych obszarach działalności.
Sposób dostarczania bezpieczeństwa w chmurze zależy od konkretnego dostawcy lub wdrożonych rozwiązań. Jednak wdrożenie procesów bezpieczeństwa w chmurze powinno być wspólną odpowiedzialnością właściciela biznesu i dostawcy rozwiązań.
Znaczenie bezpieczeństwa w chmurze
Jeśli migrujesz z infrastruktury lokalnej (on-premise) do chmury, ważne jest, aby wiedzieć, że choć niemożliwe jest zapewnienie, że nasze systemy są całkowicie bezpieczne, równie niemożliwe jest osiągnięcie idealnie bezpiecznej chmury. Jeśli tak jest, to dlaczego warto przejść na chmurę? Łatwo jest utrzymać bezpieczny kod aplikacji, aplikacje natywne dla chmury oraz inne zasoby, stosując najlepsze praktyki. Ponadto współpraca z dostawcą zdejmuje z nas ten ciężar, ponieważ oferuje on bezpieczne środowisko dopasowane do naszej infrastruktury. Proces ten staje się coraz łatwiejszy dzięki łatwej dostępności wielu technologii open source. W dalszej części artykułu omówię najlepsze praktyki, ale najpierw przyjrzyjmy się korzyściom bezpieczeństwa natywnego dla chmury.
Bezpieczeństwo w chmurze oferuje wiele korzyści, w tym:
- Centralizacja bezpieczeństwa: Podczas gdy przetwarzanie w chmurze centralizuje aplikacje i dane, bezpieczeństwo w chmurze zapewnia centralizowaną ochronę tych danych i zasobów.
- Optymalizacja kosztów: Główną zaletą podejścia natywnego dla chmury jest brak konieczności posiadania własnych dedykowanych serwerów, co zmniejsza koszty ich utrzymania oraz konieczność zatrudniania administratorów. Bezpieczeństwo w chmurze pozwala na proaktywne zarządzanie bezpieczeństwem przy minimalnym lub zerowym udziale człowieka.
- Mniejsze obciążenie administracyjne: Przeniesienie do chmury eliminuje potrzebę zarządzania serwerami, gdyż robi to dostawca. Zabezpieczenie aplikacji natywnych jest łatwiejsze, ponieważ można skupić się na rozwoju aplikacji, a dostawca zajmuje się bezpieczeństwem natywnym.
- Niezawodność: Niezawodność infrastruktury chmurowej jest zwykle wyższa niż tradycyjnej infrastruktury lokalnej.

Pełny zakres bezpieczeństwa w chmurze obejmuje ochronę następujących elementów, niezależnie od Twoich obowiązków:
- Fizyczne sieci i urządzenia, takie jak routery, zasilanie elektryczne, kable ethernet itp.
- Urządzenia do przechowywania danych, takie jak dyski twarde
- Serwery - zarówno maszyny fizyczne, jak i maszyny wirtualne
- Middleware, takie jak API, niezależnie od tego, czy są wdrażane na pojedynczym serwerze, w kontenerze, czy z użyciem Kubernetes
- Systemy operacyjne
- Dane
- Środowisko uruchomieniowe
- Aplikacje: tradycyjne usługi programowe (e-mail, oprogramowanie podatkowe, pakiety biurowe itp.)
- Urządzenia końcowe użytkowników, takie jak telefony komórkowe, tablety, urządzenia IoT itp.
Wyzwania bezpieczeństwa w chmurze
- Brak widoczności i kontroli: Proces tworzenia nowych instancji lub zasobów przez użytkowników lub organizacje jest w chmurze uproszczony, co stanowi duży problem. Należy wprowadzić procesy zarządzania autoryzacją dostępu do tworzenia zasobów. Na szczęście, można to skutecznie kontrolować przez infrastrukturę jako kod (Infrastructure as Code). Ponadto, korzystanie z chmury oznacza, że nie posiadamy sprzętu, na którym działa nasz kod, więc ważne jest zrozumienie, jak dostawca zabezpiecza środowisko.
- Transfer danych (ingress i egress): Aplikacje natywne dla chmury oparte są na architekturze mikroserwisów, więc dane przepływają między nimi przez API. Ważne jest, aby zespoły developerskie odpowiednio konfigurowały dostęp, aby zapobiec nieautoryzowanemu dostępowi do danych.
- Domyślne poświadczenia i sekrety: Zasoby aplikacji (kod, obrazy kontenerów, funkcje serverless) mogą zawierać domyślne poświadczenia, co stanowi ryzyko. Należy stosować menedżery sekretów, które chronią je przed odgadnięciem i wyciekiem.
- Multi-tenancy: Choć współdzielenie zasobów pozwala na oszczędności skali, rodzi obawy o izolację danych i prywatność.
- Problemy ze skalowalnością: Automatyzacja i skalowalność to główne zalety chmury, ale także źródło podatności, błędów konfiguracji i innych problemów bezpieczeństwa.
- Wykrywanie zagrożeń wewnętrznych: Zagrożenia pochodzące od pracowników są trudne do wykrycia i mogą być bardzo szkodliwe. Wymagana jest silna wiedza na temat zarządzania tożsamością i dostępem, by minimalizować ryzyko.
- Dynamiczne i złożone obciążenia: Zasoby w chmurze są dynamicznie tworzone i usuwane z dużą prędkością, zwłaszcza w środowiskach multi-cloud. Tradycyjne narzędzia bezpieczeństwa często nie sprawdzają się w takim środowisku. Na szczęście dostawcy oferują narzędzia wspierające ochronę, a także istnieje możliwość korzystania z narzędzi firm trzecich.
- DevOps i DevSecOps: Organizacje stosujące CI/CD muszą wcześnie włączać zabezpieczenia do kodu i szablonów infrastruktury, ponieważ zmiany bezpieczeństwa po wdrożeniu mogą osłabić poziom ochrony i wydłużyć czas wdrożenia.
- Zarządzanie uprawnieniami i kluczami: Zasada najmniejszych uprawnień powinna być zawsze przestrzegana, aby uniknąć niezamierzonych działań. Nieprawidłowa konfiguracja kluczy i uprawnień na poziomie aplikacji zwiększa ryzyko naruszeń.
- Zgodność i nadzór: Chociaż wielu dostawców spełnia normy takie jak PCI 3.2, NIST 800-53, GDPR czy HIPAA, to klient jest odpowiedzialny za zapewnienie zgodności swoich danych i procesów. Dostępnych jest wiele narzędzi wspierających ten proces.

Kluczowe filary bezpieczeństwa w chmurze
Nowoczesni dostawcy chmur, tacy jak AWS, Azure i GCP, oferują wiele natywnych funkcji i usług bezpieczeństwa, ale dodatkowe rozwiązania firm trzecich lub open source są niezbędne do uzyskania ochrony na poziomie przedsiębiorstwa przed naruszeniami, wyciekami danych i atakami. Tylko zintegrowany stos zabezpieczeń chmurowych i firm trzecich zapewnia centralną widoczność i kontrolę opartą na politykach, umożliwiając wdrożenie najlepszych praktyk branżowych:
- Szczegółowe, oparte na politykach kontrole uwierzytelniania: Zaleca się zarządzanie dostępem użytkowników za pomocą grup i ról zamiast na poziomie pojedynczych kont IAM, co ułatwia aktualizację definicji. Przyznawaj tylko niezbędne uprawnienia.
- Zero-trust w sieciach chmurowych, obejmujące logicznie izolowane sieci i mikrosegmenty: Umieszczaj krytyczne zasoby w izolowanych sekcjach chmury, np. VPC lub vNET (Azure). Stosuj subnety do segmentacji obciążeń i odpowiednie polityki bezpieczeństwa na bramach.
- Egzekwowanie polityk ochrony wirtualnych serwerów, w tym zarządzanie zmianami i aktualizacjami oprogramowania: Dostawcy oferują narzędzia Cloud Security Posture Management, które automatycznie audytują i korygują konfiguracje serwerów.
- Ochrona aplikacji za pomocą zapór sieciowych (firewalli): Zapory skutecznie kontrolują ruch przychodzący i wychodzący.
- Zwiększona ochrona danych: Szyfrowanie na wszystkich warstwach, bezpieczne udostępnianie plików, ciągłe zarządzanie ryzykiem i zgodnością oraz dbanie o higienę zasobów danych (np. wykrywanie błędnie skonfigurowanych bucketów).
- Inteligencja zagrożeń: Automatyczne wykrywanie i neutralizowanie zagrożeń przez analizę danych logów, skanery podatności, publiczne źródła informacji o zagrożeniach i geolokalizację. Dostępne są narzędzia wizualizujące i przyspieszające reakcję na incydenty.

Czym różni się bezpieczeństwo w chmurze od tradycyjnego bezpieczeństwa on-premise?
Chociaż bezpieczeństwo w chmurze to nowoczesna forma cyberbezpieczeństwa, wyróżnia się kilkoma cechami:
- Skalowalność: Główną korzyścią chmury jest możliwość szybkiego skalowania zasobów, co jednak wymaga znajomości specyfiki ochrony aplikacji natywnych dla chmury.
- Przechowywanie danych: Tradycyjne systemy IT polegały na lokalnym przechowywaniu danych, co wiązało się z dużym obciążeniem zarządzania. W chmurze kontrola jest ograniczona przez dostawcę.
- Bliskość innych systemów: W sieci słabe ogniwo może zagrozić całemu środowisku. Dostawcy chmury są narażeni na zagrożenia pochodzące od wielu użytkowników końcowych, którym świadczą usługi. Odpowiedzialność za bezpieczeństwo sieci spoczywa na dostawcach, którzy oferują swoje produkty w modelu SaaS zamiast lokalnie na systemach użytkowników.
Należy pamiętać, że odpowiedzialność za bezpieczeństwo środowiska nie spoczywa wyłącznie na dostawcy. To współdzielona odpowiedzialność. Dostawca odpowiada za zabezpieczenie chmury, Ty za zabezpieczenie wszystkiego, co w chmurze się znajduje. Konieczne jest także wprowadzenie proaktywnego monitoringu w celu wykrywania luk i zagrożeń.