Zabezpieczanie wdrożeń typu 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
  • Zmienianie fokusu zabezpieczeń na podstawie podejścia opartego na sieci na zabezpieczenia obwodowe skoncentrowane 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 dotyczących zabezpieczeń i mechanizmach kontroli, które należy wziąć pod uwagę na każdym etapie cyklu życia tworzenia oprogramowania podczas tworzenia aplikacji dla chmury.

Zalety zabezpieczeń w chmurze

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 powoduje utworzenie środowiska, 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 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 PaaS w chmurze

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

Zalety zabezpieczeń paaS

Począwszy od dołu stosu, infrastruktura fizyczna, firma Microsoft ogranicza typowe zagrożenia 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, atakujący prawdopodobnie przejdzie do innego celu.

W środku stosu nie ma różnicy między wdrożeniem usługi PaaS i ś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ę do najlepszych rozwiązań dotyczących 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 już nie trzeba 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 linków i centrów danych. Aby uniknąć wpływu dużych ataków DDoS, możesz skorzystać z podstawowej możliwości chmury platformy Azure, umożliwiając 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 zalecanych artykułach dotyczących rozwiązań.

Modernizacja myślenia usługi Defender for Cloud

Dzięki wdrożeniom paaS można zmienić ogólne podejście 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 tego, co definiuje 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 uzyskiwania 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 do obwodu tożsamości. Bezpieczeństwo staje się mniej o obronę sieci, a także o obronę danych, a także zarządzanie zabezpieczeniami aplikacji i użytkowników. Kluczową różnicą jest to, że chcesz wypchnąć zabezpieczenia bliżej 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 Azure SQL) nie zapewniają niewielkiej lub żadnej tradycyjnej ochrony obwodowej sieci. Zrozumiałe było, że celem elementu było uwidocznienie w Internecie (roli internetowej) i że uwierzytelnianie zapewnia nowy obwód (na przykład obiekt BLOB lub Azure SQL).

Nowoczesne praktyki w zakresie zabezpieczeń zakładają, że przeciwnik naruszył obwód sieci. W związku z tym nowoczesne praktyki obronne przeniosły się 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 są dostępne od dziesięcioleci. Natomiast branża ma stosunkowo mniejsze doświadczenie w używaniu tożsamości jako podstawowego obwodu zabezpieczeń. W tym przypadku zebraliś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żna 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ń i 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 bota 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: Mogą być używane protokoły zdalnego zarządzania, takie jak SSH, RDP i zdalne połączenia zdalne 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 Azure AD Multi-Factor Authentication).

Najlepsze rozwiązanie: użyj silnych platform uwierzytelniania i autoryzacji. Szczegóły: użyj tożsamości federacyjnych w Azure AD zamiast niestandardowych magazynów użytkowników. W przypadku korzystania z tożsamości federacyjnych korzystasz z podejścia opartego na platformie i delegujesz zarządzanie autoryzowanymi tożsamościami do partnerów. 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żyj 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 zakresie zabezpieczeń i jest mało prawdopodobne, aby pamiętać o subtelnościach i najnowszych zmianach 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 jest obecnie standardem uwierzytelniania i autoryzacji, ponieważ pozwala uniknąć słabych punktów zabezpieczeń związanych z nazwą użytkownika i typami haseł uwierzytelniania. Dostęp do interfejsów zarządzania platformy Azure (portal/zdalnego programu PowerShell) oraz usług przeznaczonych dla klientów należy zaprojektować i skonfigurować do korzystania z usługi Azure AD Multi-Factor Authentication.

Użyj standardowych protokołów uwierzytelniania, takich jak OAuth2 i Kerberos. Te protokoły zostały szeroko przeanalizowane w sposób równorzędny i prawdopodobnie są implementowane w ramach bibliotek platformy na potrzeby uwierzytelniania i autoryzacji.

Korzystanie z modelowania zagrożeń podczas projektowania aplikacji

Cykl życia tworzenia 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 Threat Modeling Tool 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 platformy Azure
Fałszowanie Uwierzytelnianie Wymagaj połączeń HTTPS.
Manipulowanie Integralność Zweryfikuj certyfikaty TLS/SSL.
Wypieranie się Weryfikacja tożsamości Włącz monitorowanie i diagnostykę platformy Azure.
Ujawnienie informacji Poufność Szyfruj poufne dane magazynowane przy użyciu 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 Privileged Identity Management.

Programowanie na Azure App Service

Azure App Service to oferta PaaS, która umożliwia tworzenie aplikacji internetowych i mobilnych dla dowolnej platformy lub urządzenia oraz łączenie się z danymi w dowolnym miejscu, w chmurze lub lokalnie. 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 funkcji dla scenariuszy sieci Web, urządzeń przenośnych i integracji.

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

Najlepsze rozwiązanie: Uwierzytelnianie za pośrednictwem usługi Azure Active Directory. Szczegóły: App Service udostępnia usługę OAuth 2.0 dostawcy tożsamości. Protokół OAuth 2.0 koncentruje się na prostotze deweloperów klienta, zapewniając jednocześnie określone przepływy autoryzacji dla aplikacji internetowych, aplikacji klasycznych i telefonów komórkowych. Azure AD używa protokołu OAuth 2.0, aby umożliwić autoryzowanie dostępu do aplikacji mobilnych i internetowych.

Najlepsze rozwiązanie: Ograniczanie dostępu w oparciu o konieczność znajomości i najniższych uprawnień zabezpieczeń. Szczegóły: Ograniczanie dostępu jest konieczne dla organizacji, które chcą wymuszać 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. Za pomocą Key Vault można szyfrować klucze i wpisy tajne (takie 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. Można również użyć Key Vault do zarządzania certyfikatami TLS za pomocą automatycznego odnawiania.

Najlepsze rozwiązanie: ograniczanie przychodzących źródłowych adresów IP. Szczegóły: App Service Environment ma funkcję integracji sieci wirtualnej, która pomaga ograniczyć przychodzące źródłowe adresy 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 App Service. Szczegóły: użyj Microsoft Defender dla chmury, aby monitorować środowiska App Service. Gdy usługa Defender for Cloud zidentyfikuje potencjalne luki w zabezpieczeniach, tworzy zalecenia, które przeprowadzą Cię przez proces konfigurowania wymaganych mechanizmów kontroli.

usług Azure Cloud Services

Usługa Azure Cloud Services jest przykładem usługi PaaS. Podobnie jak Azure App Service, ta technologia jest przeznaczona do obsługi aplikacji skalowalnych, niezawodnych i niedrogich do działania. W taki sam sposób, w jaki App Service jest hostowana na maszynach wirtualnych, więc jest to też Cloud Services platformy Azure. Masz jednak większą kontrolę nad maszynami wirtualnymi. Możesz zainstalować własne oprogramowanie na maszynach wirtualnych korzystających z usługi Azure Cloud Services i uzyskać 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.

Web Application Firewall (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 proces 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 to zwiększyć czas pracy, powiadamiając Cię o krytycznych problemach, aby można je było rozwiązać, zanim staną się problemami. Pomaga również wykrywać anomalie, które mogą być związane z zabezpieczeniami.

Użyj usługi aplikacja systemu Azure Insights, aby monitorować dostępność, wydajność i użycie aplikacji, niezależnie od tego, czy jest ona hostowana w chmurze, czy lokalnie. Za pomocą 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 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 jako standardową część procesu kompilacji i wdrażania. Zaplanuj regularne testy zabezpieczeń i skanowanie luk w zabezpieczeniach we 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 i zabezpieczeń usługi Azure PaaS 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 Azure App Service, Azure SQL Database i Azure Synapse Analytics, Azure Storage i Azure Cloud Services. W miarę udostępniania artykułów na temat 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 zabezpieczające i mechanizmy kontroli, które należy wziąć pod uwagę w 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ń w zakresie 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ług firmy Microsoft:

  • Cykl życia produktu firmy Microsoft — w celu zapewnienia spójnych i przewidywalnych wytycznych dotyczących pomocy technicznej przez cały okres życia 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