Reduzieren von überprivilegierten Berechtigungen und Apps

Als Entwickler, der Anwendungen entwerfen und implementieren möchte, die den Leitprinzipien von Zero Trust folgen, sollten Sie die Anwendungssicherheit mit geringstmöglichen Zugriffsberechtigungen erhöhen. Es ist zwingend erforderlich, die Angriffsfläche Ihrer Anwendung und die Auswirkungen einer Sicherheitsverletzung zu reduzieren.

In diesem Artikel erfahren Sie, warum Anwendungen nicht mehr Berechtigungen anfordern sollten, als sie benötigen. Sie verstehen den Begriff überprivilegiert und entdecken Empfehlungen und bewährte Methoden zum Einschränken von Berechtigungen in Ihren Anwendungen, um den Zugriff zu verwalten und die Sicherheit zu verbessern.

Was ist überprivilegiert?

Überprivilegiert tritt auf, wenn eine Anwendung mehr Berechtigungen anfordert oder erhält, als sie für die ordnungsgemäße Funktion benötigt. Im restlichen Teil dieses Artikels verbessern Sie Ihr Verständnis von „überprivilegiert“ anhand von Beispielen für nicht verwendete und reduzierbare Berechtigungen.

Nicht verwendete Berechtigungen

Stellen Sie sich für dieses Beispiel nicht verwendeter Schlüssel vor, es gäbe drei versperrte Türen (blau, gelb und grün), wie im folgenden Diagramm dargestellt.

Das Diagramm zeigt drei Türen mit den zugehörigen Schlüsseln, um nicht verwendete Berechtigungen zu veranschaulichen.

Ihre Vermögenswerte befinden sich hinter den Türen. Sie haben drei Schlüssel (blau, gelb und grün), mit denen Sie die entsprechende Tür öffnen können. Beispielsweise kann der blaue Schlüssel die blaue Tür öffnen. Wenn Sie nur Zugang zu der gelben Tür benötigen, brauchen Sie nur den gelben Schlüssel.

Um Ihre Ressourcen optimal zu schützen, tragen Sie nur die Schlüssel, die Sie benötigen, wenn Sie sie benötigen, und bewahren Sie nicht verwendete Schlüssel an einem sicheren Ort auf.

Reduzierbare Berechtigungen

Das Beispiel für reduzierbare Schlüssel ist komplizierter als das Beispiel für nicht verwendete Schlüssel, dem wir nun zwei Spezialschlüssel hinzufügen, wie im folgenden Diagramm dargestellt.

Das Diagramm zeigt drei Türen mit entsprechenden Schlüsseln, um reduzierbare Berechtigungen zu veranschaulichen.

Der erste schwarze Schlüssel ist ein Generalschlüssel, der alle Türen öffnen kann. Der zweite schwarze Schlüssel kann die gelbe und die grüne Tür öffnen. Wenn Sie nur Zugang zur gelben und grünen Tür benötigen, tragen Sie nur den zweiten schwarzen Schlüssel. Sie bewahren Ihren Generalschlüssel an einem sicheren Ort mit dem redundanten grünen Schlüssel auf.

In der Microsoft Identity-Welt sind die Schlüssel Zugriffsberechtigungen. Ihre Ressourcen und Sie, der Schlüsselinhaber, sind Anwendungen. Wenn Sie das Risiko kennen, unnötige Schlüssel mit sich zu tragen, sind Sie sich des Risikos Ihrer Anwendungen bewusst, dass sie unnötige Berechtigungen besitzen.

Berechtigungslücke und Risiko

Wie können Türen und Schlüssel dabei helfen, den Begriff „überprivilegiert“ zu erklären? Warum verfügt Ihre Anwendung möglicherweise über die richtigen Berechtigungen zum Ausführen einer Aufgabe, ist aber dennoch überprivilegiert? Sehen wir uns die Berechtigungslücke an, die die Diskrepanz im folgenden Diagramm verursachen kann.

Diagramm rechts: Y-Achse - Berechtigungen, X-Achse - Zeit; Obere Kurve - Erteilte Berechtigungen, niedrigere Kurve - Verwendete Berechtigungen; Statistiken zu Rechten, die in Artikelinhalten beschrieben werden.

Die X-Achse stellt Zeit und die Y-Achse Berechtigungen dar. Am Anfang der gemessenen Zeit fordern Sie die Berechtigung für Ihre Anwendung an und erhalten sie. Wenn das Unternehmen im Laufe der Zeit wächst und sich ändert, fügen Sie neue Berechtigungen zur Unterstützung Ihrer Anforderungen hinzu, und die Kurve der gewährten Berechtigungen geht nach oben. Die verwendeten Berechtigungen sind möglicherweise niedriger als die erteilten Berechtigungen, wenn Sie vergessen, unnötige Berechtigungen zu entfernen (z. B. wenn die Anwendung weiterhin funktioniert), was zu einer Berechtigungslücke führt.

Es folgen einige interessante Beobachtungen in der Microsoft Identity Platform.

  • Wir verfügen über mehr als 4.000 APIs in Microsoft Graph.
  • Mehr als 200 Microsoft Graph-Berechtigungen sind auf der Microsoft Identity Platform verfügbar.
  • Entwickler haben Zugriff auf eine Vielzahl von Daten und die Möglichkeit, Granularität auf die von ihren Apps angeforderten Berechtigungen anzuwenden.
  • In unseren Untersuchungen haben wir festgestellt, dass Apps nur 10 % voll ausgelastete Berechtigungen für ihre Szenarien haben.

Überlegen Sie sorgfältig, welche Berechtigungen Ihre App tatsächlich benötigt. Achten Sie auf die Berechtigungslücke, und überprüfen Sie regelmäßig Ihre Anwendungsberechtigungen.

Bei überprivilegierten Berechtigungen ist die Sicherheit kompromittiert

Lassen Sie uns nun mit einem Beispiel die Risiken näher ansehen, die aus Berechtigungslücken resultieren. Dieses Kompromittierungsszenario umfasst zwei Rollen: IT-Administrator und Entwickler.

  • IT-Administrator: Jeff ist ein Mandantenadministrator, der sicherstellt, dass Anwendungen in Microsoft Entra ID vertrauenswürdig und sicher sind. Ein Teil der Aufgabe von Jeff besteht darin, Berechtigungen zu erteilen, die App-Entwickler benötigen.
  • Entwickler: Kelly ist eine App-Entwicklerin, die Microsoft Identity Platform verwendet und Apps besitzt. Kellys Aufgabe besteht darin, sicherzustellen, dass Anwendungen über die richtigen Berechtigungen zum Ausführen erforderlicher Aufgaben verfügen.

Das folgende häufige Sicherheitskompromittierungsszenario für „überprivilegiert“ weist in der Regel vier Phasen auf.

Diagramm, das im Artikelinhalt beschrieben wird: vier Phasen eines Sicherheitskompromittierungsszenarios.

  1. Zuerst beginnt der Entwickler mit der Konfiguration der Anwendung und dem Hinzufügen erforderlicher Berechtigungen.
  2. Zweitens überprüft der IT-Administrator die erforderlichen Berechtigungen und erteilt die Zustimmung.
  3. Im dritten Schritt beginnt der Hacker, Benutzeranmeldeinformationen zu knacken und die Benutzeridentität erfolgreich zu hacken.
  4. Wenn der Benutzer mehrere Anwendungen besitzt, ist er ebenfalls überprivilegiert. Der Hacker kann das Token der erteilten Berechtigung zum Abrufen vertraulicher Daten schnell verwenden.

Überprivilegierte Anwendungen

Eine Entität ist überprivilegiert, wenn sie mehr Berechtigungen anfordert oder erhält, als sie benötigt. Die Definition der überprivilegierten Anwendung in der Microsoft Identity Platform lautet „jede Anwendung mit nicht verwendeten oder reduzierbaren Berechtigungen“.

Lassen Sie uns Microsoft Graph als Teil der Microsoft Identity Platform in einem realen Beispiel verwenden, um nicht verwendete und reduzierte Berechtigungen besser zu verstehen.

Linke Spalte: Nicht verwendet – Erteilung von mindestens einer Berechtigung, die für den API-Aufruf überhaupt nicht erforderlich ist. Rechte Spalte: Reducible – Berechtigung, für die es eine Alternative mit niedrigeren Rechten gibt, die auch den Zugriff auf die erforderlichen Aufgaben ermöglichen würde.

Nicht verwendete Berechtigungen treten auf, wenn Ihre Anwendung Berechtigungen empfängt, die für die gewünschten Aufgaben nicht erforderlich sind. Sie erstellen beispielsweise eine Kalender-App. Ihre Kalender-App fordert und erhält die Files.ReadWrite.All Berechtigung. Ihre App lässt sich nicht in die APIs von Dateien integrieren. Daher verfügt Ihre Anwendung über eine nicht verwendete Files.ReadWrite.All Berechtigung.

Reduzierte Berechtigungen sind nicht so einfach festzustellen. Sie treten auf, wenn Ihre Anwendung nur wenige Berechtigungen erhält, aber eine niedrigere privilegierte Alternative hat, die ausreichenden Zugriff für erforderliche Aufgaben bieten würde. Im Beispiel der Kalender-App beantragt und erhält Ihre App die Files.ReadWrite.All Berechtigung. Sie muss jedoch nur Dateien aus dem OneDrive des angemeldeten Benutzers lesen und muss niemals neue Dateien erstellen oder vorhandene ändern. In diesem Fall verwendet Ihre Anwendung Files.ReadWrite.All nur begrenzt, sodass Sie ein Downgrade auf Files.Read.All vornehmen müssen.

Empfehlungen zur Reduzierung überprivilegierter Szenarien

Sicherheit ist eine Reise und nicht das Ziel. Im Sicherheitslebenszyklus gibt es drei verschiedene Phasen:

  • Prävention
  • Überwachung
  • Behebung

Das folgende Diagramm veranschaulicht Empfehlungen zur Reduzierung überprivilegierter Szenarien.

Diagramm, das in Artikelinhalten beschrieben wird – Empfehlungen zum Verhindern, Überwachen und Beheben von überprivilegierten Szenarien.

  • Vermeidung: Bei der Erstellung einer Anwendung müssen Sie sich vollständig über die Berechtigungen im klaren sein, die für von Ihrer Anwendung vorgenommene API-Anfragen erforderlich sind, und Sie dürfen nur die Berechtigungen anfordern, die unbedingt für Ihr Szenario erforderlich ist. Die Microsoft Graph-Dokumentation verfügt über klare Verweise auf die geringstmöglichen Berechtigungen bis hin zu den privilegiertesten Berechtigungen für alle Endpunkte. Achten Sie auf überprivilegierte Szenarien, wenn Sie bestimmen, welche Berechtigungen Sie benötigen.
  • Überwachung: Sie und IT-Administratoren sollten die zuvor gewährten Berechtigungen vorhandener Anwendungen regelmäßig überprüfen.
  • Korrektur: Wenn Sie oder IT-Administratoren eine überprivilegierte Anwendung im Ökosystem bemerken, sollten Sie das Anfordern von Token für die überprivilegierte Berechtigung beenden. IT-Administratoren sollten erteilte Zustimmungen widerrufen. In diesem Schritt ist in der Regel eine Codeänderung erforderlich.

Bewährte Methoden zur Beibehaltung der Berechtigung „Geringstmögliche Berechtigungen“

Zwei wichtige Anreize für die Beibehaltung der geringstprivilegierten Berechtigungen für Ihre Anwendungen sind die Förderung der Anwendungsakzeptanz und die Eindämmung der Verbreitung.

Linke Spalte: Akzeptanz fördern – Erstellen Sie eine vertrauenswürdige Drittanbieter-App für Kunden, indem Sie übermäßige Berechtigungsanforderungen vermeiden. Rechte Spalte: Ausbreitung beenden – Angreifer können keine übermäßigen Berechtigungen verwenden, um weiteren Zugriff zu erhalten.

  • Fördern Sie die Akzeptanz, indem Sie eine vertrauenswürdige App für Kunden erstellen, die übermäßige Berechtigungsanforderungen vermeiden. Beschränken Sie Ihre Anwendungsberechtigungen nur auf das, was sie zum Ausführen ihrer Aufgabe benötigt. Diese Vorgehensweise reduziert den potenziellen Strahlradius von Angriffen und erhöht die Kundenakzeptanz Ihrer Apps. Überprüfen Sie verstärkt die von Anwendungen angeforderten Berechtigungen, und entscheiden Sie, ob App-Berechtigungen erteilt werden sollen.
  • Beenden Sie die Verbreitung, indem Sie sicherstellen, dass Angreifer keine übermäßigen Berechtigungen verwenden können, um weiteren Zugriff zu erhalten. Wenn Sie eine App erstellen, die unnötige Berechtigungen anfordert, wird sie höchstwahrscheinlich nicht genehmigt oder rundum abgelehnt. Die beste Möglichkeit zur Schadenskontrolle besteht darin, Angreifern die Möglichkeit zu nehmen, erhöhte Rechte zu erhalten, die den Umfang der Kompromittierung erhöhen. Wenn Ihre Anwendung beispielsweise nur grundlegende Informationen zu Benutzern lesen muss User.ReadBasic.All, sind Ihre OneDrive-, Outlook-, Teams- und alle vertraulichen Daten sicher, wenn eine App kompromittiert wird.

Nächste Schritte