Zmniejszanie uprawnień i aplikacji z nadmiernie uprzywilejowanych

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. Poznasz termin nadmiernie uprzywilejowany i odkryjesz zalecenia i najlepsze rozwiązania dotyczące ograniczania uprawnień w aplikacjach w celu zarządzania dostępem i ulepszania zabezpieczeń.

Co to jest nadmiernie uprzywilejowane?

Nadmiernie uprzywilejowany występuje, gdy aplikacja żąda lub otrzymuje więcej uprawnień niż wymaga jej prawidłowego działania. Poniższe przykłady nieużywanych i reducible uprawnień poprawią zrozumienie naduprzywilejowanych uprawnień.

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 opisany w treści artykułu — trzy drzwi poniżej każdego z nich jest kluczem tego samego koloru co odpowiadające jej drzwi.

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.

Uprawnienia reducible

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

Diagram opisany w zawartości artykułu — trzy drzwi poniżej każdego z nich jest kluczem.

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

W świecie 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ępuje nadmiernie uprzywilejowany? 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.

Wykres po prawej stronie: oś Y — uprawnienia, oś X — czas; Górna krzywa — przyznane uprawnienia, dolna krzywa — używane uprawnienia; Statystyki po prawej stronie opisane w zawartości artykułu.

Oś X reprezentuje czas , a oś Y reprezentuje uprawnienia. Na początku mierzonego czasu żądasz i otrzymujesz uprawnienie dla aplikacji. Wraz z rozwojem firmy i zmianami w miarę upływu czasu dodajesz nowe uprawnienia do obsługi Twoich potrzeb i zwiększa się nachylenie uprawnień udzielonych . Używane uprawnienia mogą być niższe niż uprawnienia przyznane, gdy zapomnisz usunąć niepotrzebne uprawnienia (na przykład jeśli aplikacja nie zostanie przerwana), co spowoduje przerwanie uprawnień.

Oto interesujące obserwacje w Platforma tożsamości Microsoft.

  • W programie Microsoft Graph mamy ponad 4000 interfejsów API.
  • Ponad 200 uprawnień programu Microsoft Graph jest dostępnych w Platforma tożsamości Microsoft.
  • Deweloperzy mają dostęp do szerokiego zakresu danych i możliwość zastosowania stopnia szczegółowości do uprawnień, których żądają ich aplikacje.
  • W naszych badaniach ustaliliśmy, że aplikacje mają tylko 10% w pełni wykorzystywane uprawnienia do swoich scenariuszy.

Dokładnie zastanów się nad uprawnieniami, których aplikacja rzeczywiście wymaga. Uważaj na lukę uprawnień i regularnie sprawdzaj uprawnienia aplikacji.

Zabezpieczenia naruszone w przypadku nadmiernie uprzywilejowanych

Przyjrzyjmy się bliżej zagrożeniom, które wynikają z luk uprawnień w przykładzie. Ten obiecują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 używa Platforma tożsamości Microsoft i jest właścicielem aplikacji. Zadaniem Kelly jest zapewnienie, że aplikacje mają odpowiednie uprawnienia do wykonywania wymaganych zadań.

Typowy scenariusz naruszenia zabezpieczeń dla nadmiernie uprzywilejowanych zazwyczaj ma cztery etapy, jak pokazano i opisano poniżej.

Diagram opisany w artykule — etapy od jednego do czterech scenariuszy naruszenia zabezpieczeń.

  1. Najpierw deweloper rozpoczyna konfigurowanie aplikacji i dodawanie wymaganych uprawnień.
  2. Po drugie administrator IT przegląda wymagane uprawnienia i udziela zgody.
  3. Po trzecie, zły aktor rozpoczyna pękanie poświadczeń użytkownika i pomyślnie hackuje tożsamość użytkownika.
  4. Jeśli użytkownik jest właścicielem wielu aplikacji, jest również nadmiernie wywłaszczone. Nieprawidłowy aktor może szybko użyć tokenu przyznanego uprawnienia do pobierania poufnych danych.

Aplikacje ponaduprzywilejowane

Gdy jednostka prosi o lub otrzymuje więcej uprawnień niż potrzebuje, jest ona nadmiernie uprzywilejowana. Definicja aplikacji nadmiernie uprzywilejowanej w Platforma tożsamości Microsoft to "każda aplikacja, która otrzymała nieużywane lub reducible uprawnienia".

Użyjmy programu Microsoft Graph w ramach Platforma tożsamości Microsoft w rzeczywistym przykładzie, aby lepiej zrozumieć nieużywane uprawnienia i uprawnienia do reducible.

Lewa kolumna: Nieużywane — przyznawanie co najmniej jednego uprawnienia, które nie są w ogóle niezbędne do wywołania interfejsu API. Prawa kolumna: Reducible — uprawnienie, które ma alternatywę z niższymi uprawnieniami, która nadal zapewnia dostęp do wymaganych zadań.

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 uprawnień 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 reducible jest trudniejsze do odnalezienia. Występuje, gdy aplikacja otrzymuje kilka uprawnień, ale ma niższą alternatywę uprzywilejowaną, która zapewni wystarczający dostęp do wymaganych zadań. W przykładzie aplikacji kalendarza aplikacja żąda i otrzymuje Files.ReadWrite.All uprawnienia. 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 jest używana Files.ReadWrite.All tylko częściowo, więc należy obniżyć jej dół do Files.Read.Allklasy .

Rekomendacje w celu zmniejszenia liczby scenariuszy z nadmierną wyjątkiem

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

  • Zapobieganie
  • Inspekcja
  • Korekty

Na poniższym diagramie przedstawiono zalecenia dotyczące zmniejszania scenariuszy z nadmierną wyjątkiem.

Diagram opisany w artykule — zalecenia dotyczące zapobiegania, przeprowadzania inspekcji i korygowania scenariuszy z naduprzywilejowanym.

  • Zapobieganie: Podczas tworzenia aplikacji należy w pełni zrozumieć uprawnienia wymagane przez wywołania interfejsu API, które aplikacja musi wykonać, i zażądać tylko tego, co jest niezbędne do włączenia scenariusza. Dokumentacja programu Microsoft Graph zawiera jasne odwołania do uprawnień najniższych uprawnień do najbardziej uprzywilejowanych uprawnień 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, należy zatrzymać żądanie tokenów dla uprawnień naduprzywilejowanych. Administratorzy IT powinni odwołać udzielone zgody. Ten krok zwykle wymaga zmiany kodu.

Najlepsze rozwiązania dotyczące utrzymywania uprawnień najniższych uprawnień

Dwie główne zachęty do utrzymania uprawnień najniższych uprawnień w aplikacjach napędzają wdrażanie aplikacji i zatrzymują rozprzestrzenianie się, jak podsumowano poniżej.

Lewa kolumna: Wspieranie wdrażania — tworzenie wiarygodnej aplikacji innej firmy dla klientów, unikając nadmiernych żądań uprawnień. Prawa kolumna: Zatrzymaj rozprzestrzenianie — osoby atakujące nie mogą użyć nadmiernych uprawnień w celu uzyskania dalszego dostępu.

  • Wspieranie wdrażania przez utworzenie wiarygodnej aplikacji innej firmy 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 osobom atakującym możliwość korzystania z nadmiernych uprawnień w celu uzyskania dalszego dostępu. Podczas tworzenia aplikacji, która prosi o niepotrzebne uprawnienia, będzie najmniej prawdopodobne, aby otrzymać zatwierdzenie lub całkowicie odmówić. Najlepszym sposobem kontrolowania uszkodzeń jest uniemożliwienie osobom atakującym uzyskania podwyższonego poziomu uprawnień, co zwiększa zakres naruszenia zabezpieczeń. Jeśli na przykład aplikacja musi User.ReadBasic.All odczytywać tylko podstawowe informacje o użytkowniku, wówczas zabezpieczenia aplikacji OneDrive, Outlook, Teams i wszelkie poufne dane są bezpieczne w przypadku naruszenia zabezpieczeń aplikacji.

Następne kroki