Udostępnij za pośrednictwem


Rekomendacje dotyczące ochrony wpisów tajnych aplikacji

Dotyczy tego Power Platform zalecenia dotyczącego listy kontrolnej zabezpieczeń o dobrze zaprojektowanej architekturze:

SE:07 Ochrona wpisów tajnych aplikacji przez ich przechowanie i ograniczenie dostępu do danych oraz ich manipulowania, a także przez inspekcję tych akcji. Uruchom niezawodny i regularnie przetwarzany proces, który może improwizować rotacje w sytuacjach awaryjnych.

W tym przewodniku opisano zalecenia dotyczące zabezpieczania informacji poufnych w obciążeniach. Odpowiednie zarządzanie tajnymi danymi ma decydujące znaczenie dla zapewnienia bezpieczeństwa i integralności aplikacji, obciążenia i skojarzonych z nimi danych. Nieprawidłowa obsługa tajnych danych może powodować awarie danych, zakłócenie działania usług, naruszenie przepisów i inne problemy.

Poświadczenia, takie jak klucze interfejsu API, tokeny Open Authorization (OAuth) i klucze Secure Shell (SSH) są wpisami tajnymi. Wymagania dotyczące zgodności mogą spowodować, że ustawienia konfiguracji, które nie są zwykle traktowane jako wpisy tajne, będą uważane za wpisy tajne aplikacji.

Definicje

Termin Definicja
Certyfikaty Pliki cyfrowe z kluczami publicznymi do szyfrowania lub odszyfrowywania.
Poświadczenia Informacje służące do sprawdzania tożsamości wydawcy lub klienta w kanałach komunikacyjnych.
Skanowanie poświadczeń Proces sprawdzania poprawności kodu źródłowego w celu upewniania się, że nie są uwzględniane tajne dane.
Szyfrowanie Proces, którego dane są nieprzeczytane i zablokowane za pomocą kodu źródłowego.
Key Kod źródłowy używany do blokowania lub odblokowania szyfrowanych danych.
Dostęp z najniższym prawem dostępu Zasada Zero Trust, która pozwala zminimalizować zbiór uprawnień do wykonania funkcji zadania.
Tożsamość zarządzana Tożsamość przypisana do zasobów i zarządzana przez platformę Azure.
Inne niż tajne Informacje, które nie wpływają na bezpieczeństwo prac, jeśli wyciekną.
Rotation Proces regularnie aktualizowanego tajnego oprogramowania, dzięki czemu jeśli zostanie naruszone bezpieczeństwo, będzie dostępny tylko przez ograniczony czas.
Klucz tajny Poufny składnik systemu, który ułatwia komunikację między składnikami obciążenia. Jeśli wpisy tajne wyciekną, mogą spowodować naruszenie zabezpieczeń.
X.509 Standard definiujący format certyfikatów kluczy publicznych.

Ważne

Nie należy traktuj wpisów innych niż tajne jak wpisów tajnych. Tajne dane wymagają operacyjnych rygorów, które nie są potrzebne do pracy niezabezpieczonych i które mogą powodować dodatkowe koszty.

Ustawienia aplikacji, które nie są wpisami tajnymi, na przykład adresy URL interfejsów API potrzebne aplikacji, powinny być oddzielone od kodu aplikacji lub tajnych danych aplikacji. Aby przechowywać konfigurację aplikacji, należy rozważyć użycie niestandardowego łącznika lub zmiennych środowiska. Inną opcją jest użycie tabeli Dataverse do przechowywania metadanych dotyczących konfiguracji aplikacji. Należy jednak znaleźć sposób na wypełnienie tych danych w nowym środowisku, na przykład przeniesienie danych konfiguracyjnych z projektowania do testowania lub produkcji. W tym celu możesz użyć przepływów danych.

Kluczowe strategie projektowania

Przed przechowywaniem wpisów tajnych i zarządzaniem nimi należy rozważyć następujące obszary przechowywania i zarządzania tajnymi danymi:

  • Przy użyciu kontroli dostępu należy zachować w bezpiecznym magazynie utworzone wpisy tajne.
  • Rotacja wpisów aktywnych to operacja proaktywna, podczas gdy odwoływanie jest reaktywne.
  • Dostęp do tajnych danych powinny mieć tylko zaufane tożsamości.
  • Należy zachować dziennik inspekcji, aby sprawdzać i sprawdzać dostęp do tajnych danych.

Należy utworzyć strategię działania mającą na celu zapobieganie budowaniu tożsamości, uniknięciu ponownej weryfikacji i zminimalizowaniu zbędnych błędów w informacjach.

Bezpieczne praktyki dotyczące zarządzania wpisami tajnymi

Zaleca się, aby klucze miały trzy różne role: użytkownik, administrator i audytor. Rozróżnienie ról pomaga zagwarantować, że tylko zaufane tożsamości mają dostęp do tajnych danych o odpowiednim poziomie uprawnień. Należy pouczyć deweloperów, administratorów i innych odpowiednich pracowników o znaczeniu najlepszych praktyk w zakresie zarządzania wpisami tajnymi i zabezpieczeniami.

Klucze wstępnie udostępnione

Dostęp można kontrolować, tworząc osobne klucze dla każdego klienta. Na przykład klient, podobnie jak aplikacja lub przepływ, komunikuje się z interfejsem API innej firmy za pomocą wstępnie udostępnionego klucza. Jeśli inny klient musi uzyskać dostęp do tego samego interfejsu API, musi użyć innego klucza. Nie należy udostępniać kluczy, nawet jeśli dwie osoby mają takie same wzorce dostępu lub role. Zakresy klientów mogą się zmieniać w czasie i nie można niezależnie aktualizować uprawnień ani rozróżniać wzorców użycia po udostępnieniu klucza. Również odrębne prawa dostępu ułatwiają odwoływanie się. Jeśli zostanie naruszone bezpieczeństwo klucza klienta, łatwiej jest cofnąć ten klucz lub anulować go, nie wpływając na inne bezpieczeństwo.

To wskazówki dotyczą różnych środowisk. Tego samego klucza nie należy używać zarówno w środowiskach przedprodukcyjnych, jak i produkcyjnych. Jeśli użytkownik jest odpowiedzialny za tworzenie kluczy wstępnie udostępnionych, należy upewnić się, że istnieje wiele kluczy do obsługi wielu klientów.

Aby uzyskać dalsze informacje, zobacz Zalecenia dotyczące zarządzania tożsamościami i dostępem.

Magazyn wpisów tajnych

Użyj systemu zarządzania wpisami tajnymi, takiego jak Azure Key Vault, do przechowywania wpisów tajnych w wzmocnionym środowisku, szyfrowania danych magazynowanych i przesyłanych oraz inspekcji dostępu i zmian wpisów tajnych. Aby zachować tajne dane aplikacji, warto je zachować poza kodem źródłowym, aby można było je łatwo usunąć.

Dedykowany system zarządzania wpisami tajnymi ułatwia przechowywanie, dystrybuowanie i kontrolowanie dostępu do wpisów tajnych aplikacji. Do magazynów danych powinny mieć dostęp tylko autoryzowane tożsamości i usługi. Dostęp do systemu można ograniczyć za pomocą uprawnień. Podczas przypisywania uprawnień zawsze należy stosować podejście dotyczące najmniejszych uprawnień.

Należy również kontrolować dostęp na poziomie wpisu tajnego. Każdy wpis tajny powinien mieć dostęp tylko do jednego zakresu zasobów. Tworzenie ograniczeń izolacji w taki sposób, aby składnik mógł używać tylko tajnych danych. Jeśli zostanie naruszone bezpieczeństwo wyodrębnianego składnika, nie może on uzyskać kontroli nad innymi tajnymi wpisami i potencjalnie całym obciążeniem. Jednym ze sposobów izolowania wpisów tajnych jest użycie wielu magazynów kluczy. Nie ma żadnych dodatkowych kosztów tworzenia dodatkowych magazynów kluczy.

Zaimplementuj inspekcję i monitorowanie dostępu do plików. Rejestruj osoby, które mają dostęp do tajnych danych i kiedy można zidentyfikować nieautoryzowane lub nielegalne działanie. Aby uzyskać informacje na temat rejestrowania z punktu widzenia zabezpieczeń, zobacz Zalecenia dotyczące monitorowania i wykrywania zagrożeń.

Rotacja wpisów tajnych

Czy jest w niej zachowywany proces, który obsługuje porządek wpisów tajnych. Długotrwałość wpisów tajnych wpływa na zarządzanie tym wpisem tajnym. Aby zmniejszyć liczbę wektorów ataków, należy jak najszybciej wycofać tajne dane i zastąpić je nowymi tajnymi hasłami.

Z tokenami dostępu należy OAuth obchodzić się ostrożnie, biorąc pod uwagę ich czas życia. Należy rozważyć, czy wymaga dostosowania okna ujawnienia do krótszego okresu. Tokeny odświeżania muszą być przechowywane w sposób bezpieczny z ograniczonymi ograniczeniami dla aplikacji. Odnowiony certyfikat powinien także korzystać z nowego klucza. Aby uzyskać informacje na temat tokenów odświeżania, zobacz Secure OAuth 2.0 On-Behalf-Of refresh tokens.

Zastąp tajne wpisy po zakończeniu ich cyklu życia, nie są już używane przez obciążenie ani jeśli zostały naruszone. Nie należy wycofywać aktywnych wpisów, jeśli jest to sytuacja awaryjna. Stan wpisu tajnego można określić, przeglądając dzienniki dostępu. Procesy rotacji wpisów tajnych nie powinny mieć wpływu na niezawodność i wydajność obciążenia. Należy użyć strategii tworzenia nadmiarowości we wpisach tajnych, konsumentach i uzyskiwania dostępu do metod bezproblemowego zarządzania.

Bezpieczne praktyki w przypadku używania wpisów tajnych

Jako osoba generująca wpisy tajne lub ich operator musisz w sposób bezpieczny dystrybuować te wpisy. Wiele organizacji używa narzędzi do bezpiecznego dzielenia się wpisami tajnymi zarówno w ramach organizacji, jak i do partnerów z zewnątrz. W przypadku braku narzędzia należy przygotować proces poprawnego przekazywania poświadczeń do autoryzowanych adresatów. Plany odzyskiwania po awarii powinny zawierać procedury odzyskiwania wpisów tajnych. Istnieje proces w sytuacjach, gdy zostanie naruszone bezpieczeństwo klucza lub gdy klucz wycieknie i musi być ponownie wygenerowany na żądanie. Podczas używania wpisów tajnych należy wziąć pod uwagę następujące wskazówki dotyczące bezpieczeństwa:

Zapobieganie kodowaniu na stałe

Nie twórz wpisów tajnych kodu jako tekstu statycznego w artefaktach kodu, takich jak przepływy w chmurze i aplikacje kanwy, pliki konfiguracji i potoki kompilacji-wdrażania. Ta praktyka wysokiego ryzyka powoduje, że kod jest zagrożony, ponieważ tajne wpisy są widoczne dla wszystkich osób mających dostęp do odczytu.

Korzystaj z narzędzi, które okresowo wykrywają uwidocznione wpisy tajne w kodzie aplikacji i artefaktach kompilacji. Te narzędzia można dodać jako część potoku wdrożenia w celu monitorowania poświadczeń przed wdrożeniem kodu źródłowego. Przejrzyj i odczytuj dzienniki aplikacji regularnie, aby się upewnić, że przypadkowo nie zostaną zapisane żadne wpisy tajne. Wykrywanie duplikatów można również wykrywać za pomocą przeglądanych przez innych użytkowników.

Uwaga

Jeśli narzędzia skanowania wykryją wpis tajny, należy uznać, że zabezpieczenia tego wpisu zostały naruszone. Należy cofnąć jego odwołanie.

Reagowanie na rotację wpisów tajnych

Jako właściciel obciążenia musisz zrozumieć plan i zasady rotacji wpisów tajnych, aby przy minimalnym zakłóceniu dostępu użytkowników wprowadzać nowe wpisy tajne. Podczas rotacji wpisu tajnego może się pojawić okno, kiedy stary wpis tajny jest nieprawidłowy, ale jeszcze nie wprowadzono nowego. W trakcie tego okna składnik, do którego próbuje dotrzeć obciążenie, nie potwierdza żądań. Problemy te można zminimalizować, tworząc logikę ponownych prób w kodzie. Można również używać jednocześnie wzorców dostępu, które pozwalają na używanie wielu poświadczeń, które można bezpiecznie zmieniać bez wzajemnego wpływu.

Pracuj z zespołem operacyjnym i bądź częścią procesu zarządzania zmianami. Po wycofaniu części obciążenia, w którym są używane poświadczenia, które nie są już potrzebne, należy pamiętać o właścicielach poświadczeń.

Zintegruj pobieranie i konfigurację wpisów tajnych z automatycznym potokiem wdrażania. Pobieranie wpisów tajnych pomaga zapewnić automatyczne pobieranie wpisów tajnych podczas wdrażania. Można również użyć wzorców wstrzykiwania wpisów tajnych w celu wstawiania tajnych danych do kodu aplikacji lub konfiguracji w czasie wykonywania, co uniemożliwia przypadkowe ujawnienie wpisów tajnych do dzienników lub kontroli wersji.

Ułatwienia Power Platform

W poniższych sekcjach przedstawiono funkcje i możliwości Power Platform, których można użyć do zarządzania wpisami tajnymi aplikacji.

Używanie wpisów tajnych usługi Azure Key Vault

Zmienne środowiskowe umożliwiają odwoływanie się do wpisów tajnych przechowywanych w magazynie Azure Key Vault. Te wpisy tajne są następnie dostępne do użytku z przepływami usługi Power Automate i łącznikami niestandardowymi. Należy zauważyć, że wpisy tajne nie są dostępne do użycia w innych dostosowaniach ani ogólnie za pośrednictwem interfejsu API.

Rzeczywiste klucze tajne są przechowywane w Azure Key Vault, a zmienna środowiskowa odwołuje się do lokalizacji klucza tajnego magazynu kluczy. Używanie wpisów tajnych magazynu Azure Key Vault ze zmiennymi środowiskowymi wymaga skonfigurowania magazynu Azure Key Vault tak, aby usługa Power Platform mogła odczytywać konkretne wpisy tajne, do których chcesz się odwołać. Aby uzyskać więcej informacji, zobacz tematy Używanie zmiennych środowiskowych w rozwiązaniach i Używanie zmiennych środowiskowych w łącznikach niestandardowych rozwiązania.

Używanie kontrolera rozwiązań

Dzięki funkcji sprawdzania rozwiązania możesz przeprowadzać bogate analizy statyczne na rozwiązaniach dla zestawu reguł najlepszych metod postępowania i szybko określać te problematyczne wzorce. Po zakończeniu sprawdzania otrzymujesz szczegółowy raport zawierający listę stwierdzonych problemów, składniki i kod, na które wywarty został wpływ oraz łącza do dokumentacji, w której opisano sposób rozwiązania każdego problemu. Przejrzyj dostępne reguły kontrolera rozwiązań w kategorii Zabezpieczenia. Aby uzyskać dalsze informacje, zobacz Weryfikowanie rozwiązań za pomocą kontrolera rozwiązań.

Używanie akcji CyberArk

CyberArk oferuje platformę bezpieczeństwa tożsamości, która zabezpiecza ludzkie i maszynowe tożsamości od końca do końca. Przepływy pulpitu Power Automate umożliwiają pobieranie poświadczeń z CyberArk. Aby uzyskać więcej informacji, zobacz CyberArk — akcje.

Lista kontrolna zabezpieczeń

Zapoznaj się z kompletną zestawem zaleceń.