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
  • Zmiana fokusu zabezpieczeń na skoncentrowany na sieci do podejścia zabezpieczeń obwodowego skoncentrowanego na tożsamościach
  • 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.

Security advantages of PaaS

Począwszy od dołu stosu, infrastruktura fizyczna, 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 osoba atakująca realizowała chmurę firmy Microsoft jako 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ń.

W górnej części stosu zarządzanie danymi i zarządzanie prawami podejmujesz jedno ryzyko, które można ograniczyć 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 możliwości chmury platformy Azure, aby umożliwić szybkie i automatyczne skalowanie w poziomie 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 Defender dla Chmury

W przypadku wdrożeń PaaS nastąpi zmiana ogólnego podejścia do zabezpieczeń. Musisz kontrolować wszystko samodzielnie, aby dzielić się 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 obwodem zabezpieczeń była sieć, a większość lokalnych projektów zabezpieczeń używa sieci jako podstawowego elementu przestawnego zabezpieczeń. W przypadku wdrożeń PaaS lepiej jest rozważyć tożsamość jako podstawowy obwód zabezpieczeń.

Wdrażanie zasad tożsamości jako podstawowego obwodu zabezpieczeń

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 stają się mniej o obronę sieci i więcej na temat obrony danych, a także zarządzania zabezpieczeniami aplikacji i użytkowników. Kluczową różnicą jest to, że chcesz przybliżyć zabezpieczenia do tego, co jest ważne dla Twojej firmy.

Identity as new security perimeter

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 (roli internetowej) i że uwierzytelnianie zapewnia nowy obwód (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 rozwiązania w zakresie obrony zostały przeniesione do 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 wpisy tajne przez szyfrowanie kluczy uwierzytelniania, kluczy konta magazynu, kluczy szyfrowania danych, plików pfx i haseł przy użyciu kluczy chronionych przez moduły 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ą gorsza niż utrata kluczy i poświadczeń jest posiadanie nieautoryzowanej strony uzyskania dostępu do nich. 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 komunikacji zdalnej programu PowerShell. 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ą przerywani i że informacje muszą zostać odzwierciedlone za pośrednictwem wielu systemów 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 szeroko analizowany zabezpieczeń.

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. Te protokoły zostały szeroko przeanalizowane za pomocą komunikacji równorzędnej i prawdopodobnie są implementowane w ramach bibliotek platformy na potrzeby 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.

Zagrożenie Właściwość zabezpieczeń Potencjalne środki zaradcze dotyczące platformy Azure
Spoofing (fałszowanie) Uwierzytelnianie Wymagaj połączeń HTTPS.
Tampering (manipulowanie) Integralność Zweryfikuj certyfikaty TLS/SSL.
Repudiation (wypieranie się) Niemożność wyparcia się Włącz monitorowanie i diagnostykę platformy Azure.
Information disclosure (ujawnienie informacji) Poufność Szyfrowanie poufnych danych magazynowanych przy użyciu certyfikatów usługi.
Denial of service (odmowa usługi) Dostępność Monitorowanie metryk wydajności pod kątem potencjalnych warunków odmowy usługi. Zaimplementuj filtry połączeń.
Elevation of privilege (podniesienie uprawnień) Autoryzacja Użyj usługi Privileged Identity Management.

Programowanie w usłudze aplikacja systemu Azure

aplikacja systemu Azure 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 ona także nowe funkcje automatyzacji 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 prostoty deweloperów klientów, zapewniając jednocześnie określone przepływy autoryzacji dla aplikacji internetowych, aplikacji klasycznych 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.

Najlepsze rozwiązanie: ogranicz dostęp w oparciu o konieczność znajomości i najniższych uprawnień zabezpieczeń. Szczegóły: Ograniczanie dostępu jest konieczne dla organizacji, które chcą wymusić zasady zabezpieczeń na potrzeby dostępu do danych. Kontrola dostępu oparta na rolach platformy Azure umożliwia przypisywanie uprawnień do użytkowników, grup i aplikacji 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 wpisów tajnych (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). W celu zapewnienia dodatkowego bezpieczeństwa 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: użyj Microsoft Defender dla Chmury do monitorowania środowisk usługi App Service. Gdy Defender dla Chmury 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 aplikacja systemu Azure Service, ta technologia jest przeznaczona do obsługi aplikacji, które są skalowalne, niezawodne i niedrogie do działania. W ten sam sposób, w jaki usługa App Service jest hostowana na maszynach wirtualnych, tak samo jak w usługach 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 coraz częściej stają się obiektami złośliwych ataków wykorzystujących 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 z poziomu kodu aplikacji może być trudne. Może też wymagać rygorystycznego przestrzegania harmonogramu konserwacji, poprawek i monitorowania na wielu warstwach topologii aplikacji. Scentralizowana zapora aplikacji internetowej ułatwia zarządzanie zabezpieczeniami oraz zapewnia lepszą ochronę administratorów aplikacji przed zagrożeniami i intruzami. Zapora aplikacji internetowej może reagować na zagrożenia bezpieczeństwa szybciej — poprzez wdrażanie poprawek zapobiegających wykorzystaniu znanych luk w zabezpieczeniach w centralnej lokalizacji zamiast w poszczególnych aplikacjach 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. Skuteczna strategia monitorowania pomaga w zrozumieniu szczegółów działania 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.

Użyj aplikacja systemu Azure Szczegółowe informacje, aby monitorować dostępność, wydajność i użycie aplikacji, niezależnie od tego, czy jest hostowana w chmurze, czy lokalnie. Korzystając z Szczegółowe informacje aplikacji, można szybko identyfikować i diagnozować błędy w aplikacji bez oczekiwania na ich zgłaszanie przez użytkownika. Dzięki zbieranym informacjom można podejmować świadome decyzje w zakresie konserwacji i ulepszeń aplikacji.

Usługa Application Insights ma szeroką gamę narzędzi do interakcji z danymi, które zbiera. Usługa Application Insights przechowuje dane we wspólnym 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.

Następne 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 aplikacja systemu Azure 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:

  • Cykl życia produktu firmy Microsoft — w celu zapewnienia spójnych i przewidywalnych wytycznych dotyczących pomocy technicznej w całym życiu produktu
  • Centrum zabezpieczeń firmy Microsoft — gdzie luki w zabezpieczeniach firmy Microsoft, w tym problemy z platformą Azure, mogą być zgłaszane lub za pośrednictwem poczty e-mail secure@microsoft.com