Udostępnij za pośrednictwem


Zmniejszanie nadmiernych uprawnień i aplikacji

Jako deweloper mający na celu projektowanie i implementowanie aplikacji, które są zgodne z podstawowymi zasadami zero trust, chcesz zwiększyć bezpieczeństwo aplikacji z najniższymi uprawnieniami. Konieczne jest zmniejszenie obszaru ataków aplikacji i wpływu naruszenia zabezpieczeń.

W tym artykule dowiesz się, dlaczego aplikacje nie powinny żądać większej liczby uprawnień niż są potrzebne. Poznajesz termin overprivilege. Odkryjesz zalecenia i najlepsze rozwiązania, aby ograniczyć uprawnienia w aplikacjach, zarządzać dostępem i poprawiać bezpieczeństwo.

Czym jest nadmierne przywilejowanie?

Overprivilege występuje, gdy aplikacja żąda lub otrzymuje więcej uprawnień niż wymaga jej prawidłowego działania. Popraw swoją wiedzę na temat nadmiernych uprawnień, korzystając z przykładów nieużywanych i zredukowanych uprawnień w pozostałej części tego artykułu.

Nieużywane uprawnienia

W tym przykładzie nieużywanego klucza załóżmy, że istnieją trzy zablokowane drzwi (niebieskie, żółte i zielone), jak pokazano na poniższym diagramie.

Diagram przedstawia trzy drzwi z odpowiednimi kluczami, aby zilustrować nieużywane uprawnienia.

Twoje zasoby znajdują się za drzwiami. Masz trzy klucze (niebieskie, żółte i zielone), które umożliwiają otwarcie odpowiednich drzwi. Na przykład niebieski klucz może otworzyć niebieskie drzwi. Jeśli potrzebujesz tylko dostępu do żółtych drzwi, możesz nosić tylko żółty klucz.

Aby najlepiej chronić zasoby, należy nosić klucze potrzebne tylko wtedy, gdy są one potrzebne i zachować nieużywane klucze w bezpiecznej lokalizacji.

Redukowalne uprawnienia

Przykład kluczy redukowalnych jest bardziej skomplikowany niż przykład nieużywanego klucza, do którego teraz dodajemy dwa klucze specjalne, jak pokazano na poniższym diagramie.

Diagram przedstawia trzy drzwi z odpowiednimi kluczami, aby zilustrować uprawnienia redukowalne.

Pierwszy czarny klucz to klucz, który może otwierać wszystkie drzwi. Drugi czarny klucz może otworzyć żółte i zielone drzwi. Gdy potrzebujesz tylko dostępu do żółtych i zielonych drzwi, nosisz tylko drugi klucz. Klucz dostępu należy zachować w bezpiecznej lokalizacji z nadmiarowym zielonym kluczem.

W przypadku platformy tożsamości firmy Microsoft klucze są uprawnieniami dostępu. Twoje zasoby i ty, właściciel klucza, są aplikacjami. Jeśli rozumiesz ryzyko przenoszenia niepotrzebnych kluczy, wiesz o ryzyku, że aplikacje mają niepotrzebne uprawnienia.

Luka w uprawnieniach i ryzyko

W jaki sposób drzwi i klucze mogą pomóc zrozumieć, jak występują nadmierne przywileje? Dlaczego aplikacja może mieć odpowiednie uprawnienia do wykonywania zadania, ale nadal może być nadmiernie uprzywilejowana? Przyjrzyjmy się lukom uprawnień, które mogą spowodować rozbieżność na poniższym diagramie.

Diagram przedstawia uprawnienia i czas dla przyznanych uprawnień oraz używanych uprawnień.

Oś X reprezentuje czas , a oś Y reprezentuje uprawnienia. Na początku mierzonego czasu żądasz i otrzymujesz pozwolenie dla swojej aplikacji. W miarę jak firma rozwija się i zmienia z biegiem czasu, dodajesz nowe uprawnienia, aby sprostać swoim potrzebom, co prowadzi do wzrostu nachylenia Udzielonych Uprawnień. Używane uprawnienia mogą być niższe niż uprawnienia przyznane, w przypadku zapomnienia o usunięciu zbędnych uprawnień (na przykład, jeśli aplikacja się nie psuje), co spowoduje lukę w uprawnieniach.

Poniżej przedstawiono interesujące obserwacje na platformie tożsamości firmy Microsoft.

  • W programie Microsoft Graph mamy ponad 4000 interfejsów API.
  • Ponad 200 uprawnień programu Microsoft Graph jest dostępnych na platformie tożsamości firmy Microsoft.
  • Deweloperzy mają dostęp do szerokiego zakresu danych i mogą zastosować stopień szczegółowości do uprawnień, których żądają ich aplikacje.
  • W naszych badaniach ustaliliśmy, że aplikacje w pełni wykorzystują tylko 10% uprawnień w swoich scenariuszach.

Dokładnie zastanów się nad uprawnieniami wymaganymi przez aplikację. Uważaj na lukę uprawnień i regularnie sprawdzaj uprawnienia aplikacji.

Zabezpieczenia naruszone z powodu nadmiernych uprawnień

Przyjrzyjmy się bliżej zagrożeniom, które wynikają z luk uprawnień w przykładzie. Ten kompromitujący scenariusz obejmuje dwie role: administrator IT, i deweloper.

  • Administrator IT: Jeff jest administratorem dzierżawy, który zapewnia, że aplikacje w identyfikatorze Entra firmy Microsoft są wiarygodne i bezpieczne. Częścią zadania Jeffa jest udzielenie zgody na uprawnienia wymagane przez deweloperów aplikacji.
  • Deweloper: Kelly jest deweloperem aplikacji, który korzysta z platformy tożsamości firmy Microsoft i jest właścicielem aplikacji. Zadaniem Kelly jest zapewnienie, że aplikacje mają odpowiednie uprawnienia do wykonywania wymaganych zadań.

Poniższy często spotykany scenariusz naruszenia zabezpieczeń z powodu nadmiernych uprawnień zwykle ma cztery etapy.

Diagram przedstawia cztery etapy scenariusza naruszenia zabezpieczeń.

  1. Deweloper rozpoczyna konfigurowanie aplikacji i dodawanie wymaganych uprawnień.
  2. Administrator IT przegląda wymagane uprawnienia i udziela zgody.
  3. Złośliwy aktor rozpoczyna łamanie poświadczeń użytkownika i pomyślnie włamuje się do tożsamości użytkownika.
  4. Jeśli użytkownik jest właścicielem wielu aplikacji, jest również nadmiernie uprzywilejowany. Złośliwy podmiot może szybko wykorzystać token przyznanych uprawnień do pobrania poufnych danych.

Aplikacje ponaduprzywilejowane

Jednostka jest nadmiernie nadprzywilejowana, gdy pyta lub otrzymuje więcej uprawnień niż potrzebuje. Definicja aplikacji ponadprzywilejowanej na platformie tożsamości firmy Microsoft jest dowolną aplikacją z nieużywanymi lub redukowalnymi uprawnieniami.

Użyjmy Microsoft Graph jako części platformy Microsoft Identity w praktycznym przykładzie, aby lepiej zrozumieć nieużywane uprawnienia i ograniczalne uprawnienia.

Diagram przedstawia przykład nieużywanych i redukowalnych uprawnień.

Nieużywane uprawnienie występuje, gdy aplikacja otrzymuje uprawnienia, które nie są niezbędne dla żądanych zadań. Na przykład tworzysz aplikację kalendarza. Aplikacja kalendarza żąda i otrzymuje Files.ReadWrite.All uprawnienia. Aplikacja nie integruje się z żadnymi interfejsami API plików. W związku z tym aplikacja ma nieużywane Files.ReadWrite.All uprawnienia.

Uprawnienie redukowalne jest trudniejsze do zidentyfikowania. Występuje, gdy aplikacja otrzymuje niewiele uprawnień, ale ma mniej uprzywilejowaną alternatywę, która zapewni dostateczny poziom dostępu do wykonywania zadań. W przykładzie aplikacji kalendarza, Twoja aplikacja żąda i otrzymuje uprawnienia Files.ReadWrite.All. Jednak musi tylko odczytywać pliki z usługi OneDrive zalogowanego użytkownika i nigdy nie musi tworzyć nowych plików ani modyfikować istniejących. W takim przypadku aplikacja korzysta z Files.ReadWrite.All tylko częściowo, więc należy obniżyć wersję do Files.Read.All.

Zalecenia dotyczące ograniczania sytuacji z nadmiernymi uprawnieniami

Bezpieczeństwo to podróż, a nie miejsce docelowe. Cykl życia zabezpieczeń obejmuje trzy odrębne fazy:

  • Profilaktyka
  • Auditing
  • Remediation

Na poniższym diagramie przedstawiono zalecenia dotyczące zmniejszania scenariuszy nadmiernie uprzywilejowanych.

Diagram przedstawia zalecenia dotyczące zapobiegania, audytu i korygowania scenariuszy z nadmiernymi uprawnieniami.

  • Zapobiegaj: Podczas tworzenia aplikacji w pełni zrozum wymagane uprawnienia dla wywołań interfejsu API, które musi wykonać twoja aplikacja. Zażądaj tylko tego, co jest niezbędne do włączenia scenariusza. Dokumentacja programu Microsoft Graph zawiera jasne odwołania do uprawnień o najmniejszym stopniu uprzywilejowania do najbardziej uprzywilejowanych dla wszystkich punktów końcowych. Należy pamiętać o scenariuszach z nadmiernymi uprawnieniami podczas określania potrzebnych uprawnień.
  • Inspekcja: Ty i administratorzy IT powinni regularnie przeglądać wcześniej przyznane uprawnienia istniejących aplikacji.
  • Korygowanie: jeśli ty lub administratorzy IT zauważysz nadprzywilejowaną aplikację w ekosystemie, przestań żądać tokenów dla uprawnień naduprzywilejowanych. Administratorzy IT powinni odwołać udzielone zgody. Ten krok zwykle wymaga zmiany kodu.

Najlepsze praktyki utrzymywania zasady najmniejszych uprawnień

Dwie główne zachęty do utrzymania zasady najmniejszych uprawnień w aplikacjach to zwiększenie adopcji aplikacji i powstrzymanie ich rozprzestrzeniania się.

Diagram przedstawia wdrażanie i zatrzymywanie rozprzestrzeniania się.

  • Wspieranie wdrażania przez utworzenie wiarygodnej aplikacji dla klientów, którzy unikają nadmiernego żądania uprawnień. Ogranicz uprawnienia aplikacji tylko do tego, czego potrzebuje do ukończenia zadania. Ta praktyka zmniejsza potencjalny promień ataków i zwiększa wdrażanie aplikacji przez klientów. Zastosuj większą kontrolę podczas przeglądania uprawnień, które aplikacje żądają i decydują, czy przyznać uprawnienia aplikacji.
  • Zatrzymaj rozprzestrzenianie się, zapewniając, że źli aktorzy nie mogą korzystać z nadmiernych uprawnień w celu uzyskania dalszego dostępu. Podczas tworzenia aplikacji, która prosi o niepotrzebne uprawnienia, jest mało prawdopodobne, aby została zatwierdzona lub jej prośba została całkowicie odrzucona. Najlepszym sposobem kontroli szkód jest uniemożliwienie złośliwym podmiotom uzyskania podwyższonych uprawnień, które zwiększają zakres naruszenia. Jeśli na przykład twoja aplikacja ma User.ReadBasic.All do odczytu wyłącznie podstawowych informacji o użytkowniku, wówczas dane w OneDrive, Outlook, Teams oraz wszelkie inne poufne informacje pozostają bezpieczne nawet w przypadku naruszenia zabezpieczeń aplikacji.

Następne kroki