Udostępnij za pośrednictwem


Zabezpieczanie wdrożeń PaaS

Ten artykuł zawiera informacje ułatwiające:

  • Omówienie zalet zabezpieczeń hostowania aplikacji w chmurze
  • Ocena zalet zabezpieczeń platformy jako usługi (PaaS) w porównaniu z innymi modelami usług w chmurze
  • Zmień swój fokus zabezpieczeń ze skoncentrowanych na sieci na podejście do zabezpieczeń obwodowych skoncentrowanych na tożsamości
  • Implementowanie ogólnych zaleceń dotyczących najlepszych rozwiązań w zakresie zabezpieczeń paaS

Opracowywanie bezpiecznych aplikacji na platformie Azure to ogólny przewodnik po pytaniach zabezpieczających i mechanizmach kontroli, które należy wziąć pod uwagę na każdej fazie cyklu tworzenia oprogramowania podczas tworzenia aplikacji dla chmury.

Zalety zabezpieczeń chmury

Ważne jest, aby zrozumieć podział odpowiedzialności między Tobą a firmą Microsoft. Lokalnie jesteś właścicielem całego stosu, ale w miarę przechodzenia do chmury niektóre obowiązki są przenoszone do firmy Microsoft.

Istnieją zalety zabezpieczeń związane z byciem w chmurze. W środowisku lokalnym organizacje prawdopodobnie mają niezaspokojonych obowiązków i ograniczone zasoby dostępne do inwestowania w zabezpieczenia, co tworzy środowisko, w którym osoby atakujące mogą wykorzystać luki w zabezpieczeniach we wszystkich warstwach.

Organizacje mogą poprawić czas wykrywania zagrożeń i reagowania na nie, korzystając z możliwości zabezpieczeń opartych na chmurze dostawcy i analizy w chmurze. Przenosząc obowiązki do dostawcy usług w chmurze, organizacje mogą uzyskać więcej pokrycia zabezpieczeń, co umożliwia im reallokowanie zasobów zabezpieczeń i budżetu na inne priorytety biznesowe.

Zalety zabezpieczeń modelu usługi w chmurze PaaS

Przyjrzyjmy się zaletom zabezpieczeń wdrożenia paaS platformy Azure w porównaniu z środowiskiem lokalnym.

Zalety zabezpieczeń paaS

Rozpoczynając od najniższego poziomu stosu, czyli infrastruktury fizycznej, firma Microsoft zmniejsza typowe ryzyko i obowiązki. Ponieważ chmura firmy Microsoft jest stale monitorowana przez firmę Microsoft, trudno jest atakować. Nie ma sensu, aby atakujący obrał chmurę Microsoft za cel. Jeśli osoba atakująca nie ma dużo pieniędzy i zasobów, osoba atakująca prawdopodobnie przejdzie do innego celu.

W środku stosu nie ma różnicy między wdrożeniem paaS a środowiskiem lokalnym. W warstwie aplikacji i warstwie zarządzania kontami i dostępem istnieją podobne zagrożenia. W następnej sekcji kroków tego artykułu przeprowadzimy Cię przez najlepsze rozwiązania dotyczące eliminowania lub minimalizowania tych zagrożeń.

Na szczycie stosu zagadnień zarządzania danymi i prawami podejmujesz jedno ryzyko, które może być zminimalizowane przez zarządzanie kluczami. (Zarządzanie kluczami zostało omówione w najlepszych rozwiązaniach). Chociaż zarządzanie kluczami jest dodatkową odpowiedzialnością, masz obszary wdrożenia PaaS, którymi nie trzeba już zarządzać, aby można było przenieść zasoby do zarządzania kluczami.

Platforma Azure zapewnia również silną ochronę przed atakami DDoS przy użyciu różnych technologii opartych na sieci. Jednak wszystkie typy metod ochrony przed atakami DDoS opartymi na sieci mają swoje limity dla poszczególnych łączy i poszczególnych centrów danych. Aby uniknąć wpływu dużych ataków DDoS, możesz skorzystać z podstawowej funkcjonalności chmury platformy Azure, która pozwala na szybkie i automatyczne skalowanie w celu obrony przed atakami DDoS. Bardziej szczegółowo omówimy sposób, w jaki można to zrobić, w artykułach z zalecanymi rozwiązaniami.

Modernizacja myślenia usługi Defender for Cloud

W przypadku wdrożeń PaaS nastąpi zmiana ogólnego podejścia do zabezpieczeń. Przechodzisz od potrzeby kontrolowania wszystkiego samodzielnie do dzielenia odpowiedzialności z firmą Microsoft.

Kolejną znaczącą różnicą między wdrożeniami PaaS i tradycyjnymi wdrożeniami lokalnymi jest nowy widok definiujący podstawowy obwód zabezpieczeń. W przeszłości podstawowym lokalnym perymetrem zabezpieczeń była sieć, a większość lokalnych projektów zabezpieczeń używa sieci jako głównego punktu odniesienia zabezpieczeń. W przypadku wdrożeń PaaS lepiej jest rozważyć tożsamość jako podstawowy obwód zabezpieczeń.

Przyjmowanie polityki tożsamości jako podstawowego perymetru bezpieczeństwa

Jedną z pięciu podstawowych cech przetwarzania w chmurze jest szeroki dostęp do sieci, co sprawia, że myślenie skoncentrowane na sieci jest mniej istotne. Celem dużej części przetwarzania w chmurze jest umożliwienie użytkownikom dostępu do zasobów niezależnie od lokalizacji. Dla większości użytkowników ich lokalizacja będzie gdzieś w Internecie.

Na poniższej ilustracji pokazano, jak obwód zabezpieczeń ewoluował z obwodu sieci po obwód tożsamości. Zabezpieczenia coraz mniej dotyczą obrony sieci, a bardziej kwestią obrony danych oraz zarządzania bezpieczeństwem aplikacji i użytkowników. Kluczową różnicą jest to, że chcesz przybliżyć zabezpieczenia do tego, co jest ważne dla Twojej firmy.

Tożsamość jako nowy obwód zabezpieczeń

Początkowo usługi PaaS platformy Azure (na przykład role internetowe i usługa Azure SQL) zapewniały niewielkie lub żadne tradycyjne zabezpieczenia obwodowe sieci. Rozumie się, że celem elementu było uwidocznienie w Internecie (rola sieciowa) i że uwierzytelnianie wyznacza nowy obszar zabezpieczeń (na przykład BLOB lub Azure SQL).

Nowoczesne rozwiązania w zakresie zabezpieczeń zakładają, że przeciwnik naruszył obwód sieci. W związku z tym, nowoczesne praktyki obronne skupiły się na tożsamości. Organizacje muszą ustanowić obwód zabezpieczeń oparty na tożsamościach z silnym uwierzytelnianiem i higieną autoryzacji (najlepsze rozwiązania).

Zasady i wzorce dla obwodu sieci były dostępne od dziesięcioleci. Z kolei branża ma stosunkowo mniejsze doświadczenie w używaniu tożsamości jako podstawowego obwodu zabezpieczeń. Z tego względu zgromadziliśmy wystarczająco dużo doświadczenia, aby zapewnić pewne ogólne zalecenia, które są sprawdzone w tej dziedzinie i mają zastosowanie do prawie wszystkich usług PaaS.

Poniżej przedstawiono najlepsze rozwiązania dotyczące zarządzania obwodem tożsamości.

Najlepsze rozwiązanie: zabezpieczanie kluczy i poświadczeń w celu zabezpieczenia wdrożenia usługi PaaS. Szczegóły: Utrata kluczy i poświadczeń jest typowym problemem. Możesz użyć scentralizowanego rozwiązania, w którym klucze i wpisy tajne mogą być przechowywane w sprzętowych modułach zabezpieczeń (HSM). Usługa Azure Key Vault chroni klucze i tajne dane poprzez szyfrowanie kluczy uwierzytelniania, kluczy konta magazynu, kluczy szyfrowania danych, plików .pfx i haseł przy użyciu kluczy chronionych modułami HSM.

Najlepsze rozwiązanie: nie umieszczaj poświadczeń ani innych wpisów tajnych w kodzie źródłowym ani w usłudze GitHub. Szczegóły: Jedyną rzeczą gorszą niż utrata kluczy i poświadczeń jest to, że nieautoryzowana osoba uzyska do nich dostęp. Osoby atakujące mogą korzystać z technologii botów w celu znajdowania kluczy i wpisów tajnych przechowywanych w repozytoriach kodu, takich jak GitHub. Nie umieszczaj kluczy i wpisów tajnych w tych publicznych repozytoriach kodu.

Najlepsze rozwiązanie: ochrona interfejsów zarządzania maszynami wirtualnymi w hybrydowych usługach PaaS i IaaS przy użyciu interfejsu zarządzania, który umożliwia bezpośrednie zdalne zarządzanie tymi maszynami wirtualnymi. Szczegóły: Można używać protokołów zdalnego zarządzania, takich jak SSH, RDP i PowerShell Remoting. Ogólnie rzecz biorąc, zaleca się, aby nie włączać bezpośredniego dostępu zdalnego do maszyn wirtualnych z Internetu.

Jeśli to możliwe, użyj alternatywnych metod, takich jak używanie wirtualnych sieci prywatnych w sieci wirtualnej platformy Azure. Jeśli alternatywne podejścia nie są dostępne, upewnij się, że używasz złożonych haseł i uwierzytelniania dwuskładnikowego (takiego jak uwierzytelnianie wieloskładnikowe firmy Microsoft).

Najlepsze rozwiązanie: używanie silnych platform uwierzytelniania i autoryzacji. Szczegóły: Użyj tożsamości federacyjnych w usłudze Microsoft Entra ID zamiast niestandardowych magazynów użytkowników. Korzystając z tożsamości federacyjnych, korzystasz z podejścia opartego na platformie i delegujesz zarządzanie autoryzowanymi tożsamościami partnerom. Podejście do tożsamości federacyjnej jest szczególnie ważne, gdy pracownicy są zwalniani, a te informacje muszą zostać odzwierciedlone w wielu systemach tożsamości i autoryzacji.

Używaj mechanizmów uwierzytelniania i autoryzacji dostarczonych przez platformę zamiast kodu niestandardowego. Przyczyną jest to, że tworzenie niestandardowego kodu uwierzytelniania może być podatne na błędy. Większość Twoich deweloperów nie jest ekspertami w dziedzinie zabezpieczeń i prawdopodobnie nie zdaje sobie sprawy z subtelności i najnowszych zmian w zakresie uwierzytelniania i autoryzacji. Kod komercyjny (na przykład od firmy Microsoft) jest często poddawany szerokim analizom bezpieczeństwa.

Użyj uwierzytelniania dwuskładnikowego. Uwierzytelnianie dwuskładnikowe to bieżący standard uwierzytelniania i autoryzacji, ponieważ pozwala uniknąć słabości zabezpieczeń związanych z nazwą użytkownika i typami haseł uwierzytelniania. Dostęp do interfejsów zarządzania platformy Azure (portal/zdalnego programu PowerShell) i usług przeznaczonych dla klientów należy zaprojektować i skonfigurować do korzystania z uwierzytelniania wieloskładnikowego firmy Microsoft.

Używaj standardowych protokołów uwierzytelniania, takich jak OAuth2 i Kerberos. Protokoły te zostały poddane szerokiej ocenie ekspertów i prawdopodobnie są implementowane w ramach bibliotek platformy dla uwierzytelniania i autoryzacji.

Korzystanie z modelowania zagrożeń podczas projektowania aplikacji

Cykl projektowania zabezpieczeń firmy Microsoft określa, że zespoły powinny zaangażować się w proces nazywany modelowaniem zagrożeń w fazie projektowania. Aby ułatwić ten proces, firma Microsoft utworzyła narzędzie do modelowania zagrożeń SDL. Modelowanie projektu aplikacji i wyliczanie zagrożeń STRIDE we wszystkich granicach zaufania może wcześnie przechwytywać błędy projektowe.

W poniższej tabeli wymieniono zagrożenia STRIDE i przedstawiono przykładowe środki zaradcze korzystające z funkcji platformy Azure. Środki zaradcze nie będą działać w każdej sytuacji.

Groźba Właściwość zabezpieczeń Potencjalne środki zaradcze dotyczące platformy Azure
Fałszowanie Uwierzytelnianie Wymagaj połączeń HTTPS.
Manipulowanie Integralność Zweryfikuj certyfikaty TLS/SSL.
Odrzucenie Niezaprzeczalność Włącz monitorowanie i diagnostykę platformy Azure.
Ujawnienie informacji Poufność Szyfruj poufne dane w spoczynku za pomocą certyfikatów usługi.
Odmowa usługi Dostępność Monitorowanie metryk wydajności pod kątem potencjalnych warunków odmowy usługi. Zaimplementuj filtry połączeń.
Podniesienie uprawnień Autoryzacja Użyj usługi Privileged Identity Management.

Programowanie w usłudze Azure App Service

Usługa Azure App Service to oferta PaaS, która umożliwia tworzenie aplikacji internetowych i mobilnych dla dowolnej platformy lub urządzenia i łączenie się z danymi w dowolnym miejscu, w chmurze lub lokalnie. Usługa App Service obejmuje funkcje internetowe i mobilne, które zostały wcześniej dostarczone oddzielnie jako usługi Azure Websites i Azure Mobile Services. Obejmuje również nowe możliwości automatyzowania procesów biznesowych i hostowania interfejsów API w chmurze. Jako pojedyncza zintegrowana usługa App Service oferuje bogaty zestaw możliwości dla scenariuszy internetowych, mobilnych i integracji.

Poniżej przedstawiono najlepsze rozwiązania dotyczące korzystania z usługi App Service.

Najlepsze rozwiązanie: uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft. Szczegóły: usługa App Service udostępnia usługę OAuth 2.0 dostawcy tożsamości. Protokół OAuth 2.0 koncentruje się na ułatwieniu pracy deweloperom klientów, zapewniając jednocześnie określone przepływy autoryzacji dla aplikacji internetowych, aplikacji desktopowych i telefonów komórkowych. Identyfikator Entra firmy Microsoft używa protokołu OAuth 2.0, aby umożliwić autoryzowanie dostępu do aplikacji mobilnych i internetowych.

Najlepsza praktyka: ogranicz dostęp oparty na zasadzie konieczności posiadania wiedzy i zasady najmniejszych uprawnień bezpieczeństwa. Szczegóły: Ograniczanie dostępu jest konieczne dla organizacji, które chcą wymusić zasady zabezpieczeń na potrzeby dostępu do danych. Możesz użyć Azure RBAC do przypisywania uprawnień użytkownikom, grupom i aplikacjom w określonym zakresie. Aby dowiedzieć się więcej na temat udzielania użytkownikom dostępu do aplikacji, zobacz Wprowadzenie do zarządzania dostępem.

Najlepsze rozwiązanie: Ochrona kluczy. Szczegóły: usługa Azure Key Vault pomaga chronić klucze kryptograficzne i wpisy tajne używane przez aplikacje i usługi w chmurze. Usługa Key Vault umożliwia szyfrowanie kluczy i sekretów (takich jak klucze uwierzytelniania, klucze konta magazynu, klucze szyfrowania danych, pliki .PFX i hasła) przy użyciu kluczy chronionych przez sprzętowe moduły zabezpieczeń (HSM). Aby zapewnić dodatkową pewność, możesz zaimportować lub wygenerować klucze w modułach HSM. Aby dowiedzieć się więcej, zobacz Azure Key Vault . Za pomocą usługi Key Vault można również zarządzać certyfikatami TLS przy użyciu automatycznego odnawiania.

Najlepsze rozwiązanie: ograniczanie przychodzących źródłowych adresów IP. Szczegóły: środowisko App Service Environment ma funkcję integracji sieci wirtualnej, która ułatwia ograniczanie przychodzących źródłowych adresów IP za pośrednictwem sieciowych grup zabezpieczeń. Sieci wirtualne umożliwiają umieszczanie zasobów platformy Azure w sieci nieinternetowej, do której kontrolujesz dostęp. Aby dowiedzieć się więcej, zobacz Integrowanie aplikacji z siecią wirtualną platformy Azure.

Najlepsze rozwiązanie: Monitorowanie stanu zabezpieczeń środowisk usługi App Service. Szczegóły: monitorowanie środowisk usługi App Service za pomocą usługi Microsoft Defender for Cloud. Gdy usługa Defender for Cloud identyfikuje potencjalne luki w zabezpieczeniach, tworzy zalecenia, które przeprowadzą Cię przez proces konfigurowania wymaganych mechanizmów kontroli.

Azure Cloud Services

Usługa Azure Cloud Services jest przykładem usługi PaaS. Podobnie jak usługa Azure App Service, ta technologia jest przeznaczona do obsługi aplikacji skalowalnych, niezawodnych i niedrogich do działania. W ten sam sposób, w jaki usługa App Service jest hostowana na maszynach wirtualnych (VM), tak samo jest z Azure Cloud Services. Masz jednak większą kontrolę nad maszynami wirtualnymi. Możesz zainstalować własne oprogramowanie na maszynach wirtualnych korzystających z usług Azure Cloud Services i uzyskiwać do nich dostęp zdalny.

Instalowanie zapory aplikacji internetowej

Aplikacje internetowe są coraz bardziej celem złośliwych ataków, które wykorzystują typowe znane luki w zabezpieczeniach. Wśród nich często zdarzają się np. ataki polegające na iniekcji SQL i ataki z użyciem skryptów wykorzystywanych w wielu witrynach. Zapobieganie takim atakom w kodzie aplikacji może być trudne i może wymagać rygorystycznej konserwacji, stosowania poprawek i monitorowania w wielu warstwach topologii aplikacji. Scentralizowana zapora aplikacji internetowej ułatwia zarządzanie zabezpieczeniami i zapewnia lepszą gwarancję administratorom aplikacji przed zagrożeniami lub włamaniami. Rozwiązanie zapory aplikacji internetowej może również szybciej reagować na zagrożenie bezpieczeństwa, stosując poprawki do znanej luki w zabezpieczeniach w centralnej lokalizacji, w porównaniu do konieczności zabezpieczania każdej z poszczególnych aplikacji internetowych.

Zapora aplikacji internetowej (WAF) zapewnia scentralizowaną ochronę aplikacji internetowych przed typowymi programami wykorzystującymi luki w zabezpieczeniach i lukami w zabezpieczeniach.

Ochrona przed atakami DDoS

Usługa Azure DDoS Protection w połączeniu z najlepszymi rozwiązaniami dotyczącymi projektowania aplikacji zapewnia ulepszone funkcje ograniczania ryzyka ataków DDoS w celu zapewnienia większej ochrony przed atakami DDoS. Należy włączyć usługę Azure DDOS Protection w dowolnej sieci wirtualnej obwodowej.

Monitorowanie wydajności aplikacji

Monitorowanie to czynność zbierania i analizowania danych w celu określenia wydajności, kondycji i dostępności aplikacji. Efektywna strategia monitorowania pomaga zrozumieć szczegółową operację składników aplikacji. Pomaga zwiększyć czas pracy, powiadamiając o krytycznych problemach, aby można było je rozwiązać, zanim staną się problemami. Pomaga również wykrywać anomalie, które mogą być związane z zabezpieczeniami.

Usługa Azure Application Insights umożliwia monitorowanie dostępności, wydajności i użycia aplikacji niezależnie od tego, czy jest ona hostowana w chmurze, czy lokalnie. Korzystając z usługi Application Insights, można szybko identyfikować i diagnozować błędy w aplikacji bez oczekiwania na ich zgłaszanie przez użytkownika. Dzięki zebranym informacjom możesz dokonać świadomych wyborów dotyczących konserwacji i ulepszeń aplikacji.

Usługa Application Insights oferuje rozbudowane narzędzia do interakcji z zbieranymi danymi. Usługa Application Insights przechowuje swoje dane w typowym repozytorium. Może korzystać z funkcji udostępnionych, takich jak alerty, pulpity nawigacyjne i głęboka analiza za pomocą języka zapytań Kusto.

Przeprowadzanie testów penetracyjnych zabezpieczeń

Weryfikowanie zabezpieczeń ochrony jest równie ważne, jak testowanie innych funkcji. Przetestuj testy penetracyjne w standardowej części procesu kompilacji i wdrażania. Zaplanuj regularne testy zabezpieczeń i skanowanie luk w zabezpieczeniach na wdrożonych aplikacjach oraz monitoruj otwarte porty, punkty końcowe i ataki.

Testowanie rozmyte to metoda znajdowania błędów programu (błędów kodu), dostarczając źle sformułowane dane wejściowe do interfejsów programu (punktów wejścia), które analizują i zużywają te dane.

Dalsze kroki

W tym artykule skupiliśmy się na zaletach zabezpieczeń wdrożenia paaS platformy Azure i najlepszych rozwiązań w zakresie zabezpieczeń dla aplikacji w chmurze. Następnie zapoznaj się z zalecanymi rozwiązaniami dotyczącymi zabezpieczania rozwiązań internetowych i mobilnych PaaS przy użyciu określonych usług platformy Azure. Zaczniemy od usług Azure App Service, Azure SQL Database i Azure Synapse Analytics, Azure Storage i Azure Cloud Services. W miarę udostępniania artykułów dotyczących zalecanych rozwiązań dotyczących innych usług platformy Azure linki będą dostępne na następującej liście:

Zobacz Tworzenie bezpiecznych aplikacji na platformie Azure , aby uzyskać pytania dotyczące zabezpieczeń i mechanizmów kontroli, które należy wziąć pod uwagę na każdej fazie cyklu tworzenia oprogramowania podczas tworzenia aplikacji dla chmury.

Zobacz Najlepsze rozwiązania i wzorce zabezpieczeń platformy Azure , aby uzyskać więcej najlepszych rozwiązań dotyczących zabezpieczeń, które należy stosować podczas projektowania, wdrażania i zarządzania rozwiązaniami w chmurze przy użyciu platformy Azure.

Dostępne są następujące zasoby, aby uzyskać bardziej ogólne informacje na temat zabezpieczeń platformy Azure i powiązanych usługi firmy Microsoft: