Gefährliche delegierte Berechtigungen mit Auswirkungen auf den Mandanten

HIGH

Beschreibung

Microsoft macht APIs über Anwendungen in Microsoft Entra ID verfügbar, um Drittanbieter-Anwendungen die Ausführung von Aktionen für Microsoft Entra ID selbst, Microsoft 365 (O365), die Azure-Cloud usw. zu erlauben. „API-Berechtigungen“ schützen den Zugriff auf diese APIs und sollten nur für Dienstprinzipale verfügbar sein, die diese APIs benötigen. Die Genehmigung der Berechtigungen wird als „Anwendungsrollenzuweisung“ oder „Einwilligungserteilung“ („consent grant“) bezeichnet.

Bestimmte Berechtigungen für einige Microsoft-APIs (siehe unten) können eine ernste Bedrohung für den gesamten Microsoft Entra-Mandanten darstellen, weil ein Dienstprinzipal mit diesen Berechtigungen über sehr viel Macht verfügt, zugleich jedoch diskreter ist als ein Benutzer mit einer umfassenden Administratorrolle wie z. B. „Globaler Administrator“. Ein Missbrauch dieser Situation kann es einem Angreifer ermöglichen, die Multifaktor-Authentifizierung (MFA) zu umgehen sich dem Zurücksetzen von Benutzerpasswörtern zu widersetzen.

Wenn die Berechtigungen legitim sind, vergrößern sie die Angriffsoberfläche für den Mandanten. Wenn sie nicht legitim sind, kann es sich um einen böswilligen Versuch handeln, Rechte oder die Persistenzmethode auszuweiten.

Es gibt zwei Arten von API-Berechtigungen in Microsoft Entra ID, wie in der Microsoft-Dokumentation Einführung in Berechtigungen und Einwilligung beschrieben:

  • Anwendungsberechtigungen: Siehe den zugehörigen Indicator of Exposure „Gefährliche Anwendungsberechtigungen mit Auswirkungen auf den Mandanten“.
  • Delegierte Berechtigungen: Dieser Indicator of Exposure untersucht diesen zweiten Berechtigungstyp, siehe den zugehörigen Indicator of Exposure „Gefährliche delegierte Berechtigungen mit Auswirkungen auf Daten” für Bedrohungen für sensible Daten in der Umgebung. Die Einwilligung kommt von Benutzern oder Administratoren im Namen der gesamten Organisation. Beachten Sie, dass diese Berechtigungen die Fähigkeit der Anwendung einschränken, Aktionen auf Basis der Rechte des angemeldeten Benutzers durchzuführen (d. h. Schnittpunkt der Berechtigung und der Rechteebene des Benutzers). Wie gefährlich diese delegierten Berechtigungen sind, hängt daher von den tatsächlichen Berechtigungen des Anwendungsbenutzers ab, wie im Artikel Entwickeln einer Strategie für delegierte Berechtigungen beschrieben. Beispiel: Wenn ein normaler Benutzer die Berechtigung „Group.ReadWrite.All“ delegiert, erlaubt er damit der Anwendung, nur die Gruppen zu ändern, die der Benutzer bearbeiten kann, und nicht alle Gruppen. Microsoft beschreibt diese Berechtigungen wie folgt:

Delegierte Berechtigungen werden von Apps verwendet, bei denen ein angemeldeter Benutzer vorhanden ist und deren Einwilligung vom Administrator oder Benutzer angewendet werden kann.

Dieser Indicator of Exposure (IoE) gibt nur Auskunft über Dienstprinzipale, da API-Berechtigungen nur für Dienstprinzipale gelten, nicht jedoch für Benutzer.

Dieser IoE verfolgt die folgenden gefährlichen Berechtigungen, die Zugriff auf die Microsoft Graph-API und die ältere Azure AD Graph-API erlauben:

  • AdministrativeUnit.ReadWrite.All: Erlaubt es Angreifern, einen globalen Administrator aus einer Verwaltungseinheit mit eingeschränkter Verwaltung (Restricted Management Administrative Unit, RMAU) zu entfernen, um dann deren Passwort zurückzusetzen, wenn die Berechtigung mit anderen Berechtigungen kombiniert wird.
  • Application.ReadWrite.All: Erlaubt es Angreifern, Anmeldeinformationen für die Authentifizierung in höher privilegierte Anwendungen einzuschleusen, was einen nicht autorisierten Zugriff (bis hin zu „Globaler Administrator“) durch Identitätswechsel ermöglicht.
  • Application.ReadWrite.OwnedBy: Identisch mit Application.ReadWrite.All, gilt jedoch nur für Dienstprinzipale im Besitz des gemeldeten Dienstprinzipals. Beachten Sie, dass sie normalerweise nicht als delegierte Berechtigung verfügbar ist.
  • AppRoleAssignment.ReadWrite.All: Erlaubt es Angreifern, sich selbst die Berechtigung RoleManagement.ReadWrite.Directory zu erteilen.
  • DeviceManagementConfiguration.ReadWrite.All: Erlaubt es Angreifern, von Intune verwaltete Geräte zu kompromittieren, indem sie bösartige Verwaltungsskripts bereitstellen, wie von Mandiant in (In)tuned to Takeovers: Abusing Intune Permissions for Lateral Movement and Privilege Escalation in Entra ID Native Environments beschrieben. Dies kann eine Rechteausweitung zum globalen Administrator ermöglichen, wenn ein Administrator ein von Intune verwaltetes Gerät verwendet.
  • DeviceManagementRBAC.ReadWrite.All: Erlaubt es Angreifern, einem von ihnen kontrollierten Konto privilegierte Intune-Rollen zuzuweisen, sodass sie beliebige Befehle auf Intune-Geräten ausführen können, wie in DeviceManagementConfiguration.ReadWrite.All beschrieben.
  • Directory.ReadWrite.All: Erlaubt es Angreifern, sich selbst als Mitglieder von Gruppen hinzuzufügen, denen keine Rollen zugewiesen werden können, und so potenziell Rechte in der Azure-Cloud zu erlangen. Dies kann es ihnen ermöglichen, sich Zugriff auf andere Azure-Ressourcen zu verschaffen, was zu einer Rechteausweitung zum globalen Administrator in Entra ID (z. B. über verwaltete Identitäten) oder sogar zum Domänenadministrator in Active Directory (z. B. über in Azure gehostete Domänencontroller-VMs) führen kann.
  • EntitlementManagement.ReadWrite.All: Erlaubt es Angreifern, die Zuweisungsrichtlinie eines Zugriffspakets zu aktualisieren, das die Rolle des globalen Administrators gewährt, sodass sie die Rolle ohne Genehmigung anfordern können.
  • Group.ReadWrite.All: Identisch mit Directory.ReadWrite.All
  • GroupMember.ReadWrite.All: Identisch mit Directory.ReadWrite.All
  • Organization.ReadWrite.All: Erlaubt es Angreifern, ein vertrauenswürdiges Stammzertifikat zu Entra ID hinzuzufügen und sich als beliebiger Benutzer zu authentifizieren, auch als Benutzer, die der Rolle des globalen Administrators zugewiesen sind. Hierzu muss die zertifikatbasierte Authentifizierung (Certificate-Based Authentication, CBA) aktiviert sein. Falls diese nicht aktiviert ist, wird die Berechtigung Policy.ReadWrite.AuthenticationMethod benötigt, um CBA im Vorfeld zu aktivieren.
  • Policy.ReadWrite.AuthenticationMethod: Erlaubt es Angreifern, die Authentifizierungsmethode Befristeter Zugriffspass (Temporary Access Pass, TAP) zu aktivieren, die Voraussetzung für die Ausnutzung der Berechtigung UserAuthenticationMethod.ReadWrite.All ist, wenn sie mit dieser kombiniert wird. Alternativ erlaubt sie es Angreifern, die zertifikatbasierte Authentifizierung (CBA) zu aktivieren, um die Berechtigung Organization.ReadWrite.All auszunutzen.
  • Policy.ReadWrite.PermissionGrant: Erlaubt es Angreifern, eine Berechtigungserteilungsrichtlinie für einen von ihnen kontrollierten Dienstprinzipal zu erstellen, die die Berechtigung RoleManagement.ReadWrite.Directory erteilt und die Ausnutzung ermöglicht.
  • PrivilegedAccess.ReadWrite.AzureADGroup: Erlaubt es Angreifern, ein von ihnen kontrolliertes Benutzerkonto als Mitglied einer Gruppe hinzuzufügen, der die Rolle des globalen Administrators zugewiesen ist.
  • PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup: Identisch mit PrivilegedAccess.ReadWrite.AzureADGroup.
  • PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup: Erlaubt es Angreifern, ein von ihnen kontrolliertes Benutzerkonto für eine Gruppe zu qualifizieren, der die Rolle des globalen Administrators zugewiesen ist, und dann die Mitgliedschaft zu aktivieren, um Rechte zu erhöhen.
  • RoleAssignmentSchedule.ReadWrite.Directory: Erlaubt es Angreifern, einem von ihnen kontrollierten Benutzerkonto die Rolle des globalen Administrators zuzuweisen, indem sie eine aktive PIM-Rollenzuweisung erstellen.
  • RoleEligibilitySchedule.ReadWrite.Directory: Erlaubt es Angreifern, ein von ihnen kontrolliertes Benutzerkonto für die Rolle des globalen Administrators zu qualifizieren und dann zu aktivieren, um Rechte zu erhöhen.
  • RoleManagement.ReadWrite.Directory: Erlaubt es Angreifern, sich selbst auf die Rolle des globalen Administrators hochzustufen.
  • RoleManagementPolicy.ReadWrite.AzureADGroup: Erlaubt es Angreifern, Gruppenrollenzuweisungen und Aktivierungsbeschränkungen wie MFA-Anforderungen oder Administratorgenehmigung zu entfernen, um PrivilegedAccess.ReadWrite.AzureADGroup, PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup oder PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup auszunutzen und in einem Mandanten mit strengen PIM-Einstellungen demselben Pfad wie diese Berechtigungen zu folgen.
  • RoleManagementPolicy.ReadWrite.Directory: Erlaubt es Angreifern, Entra-Rollenzuweisungen und Aktivierungsbeschränkungen wie MFA-Anforderungen oder Administratorgenehmigung zu entfernen, um RoleAssignmentSchedule.ReadWrite.Directory oder RoleEligibilitySchedule.ReadWrite.Directory zu nutzen und in einem Mandanten mit strengen PIM-Einstellungen demselben Pfad wie diese Berechtigungen zu folgen.
  • User.DeleteRestore.All: Erlaubt es Angreifern, alle Benutzerkonten im Mandanten zu löschen, sodass dieser nicht mehr verfügbar ist, und anschließend ein Lösegeld für die Wiederherstellung eines der Konten für den Notfallzugriff (Break-Glass-Konten) zu verlangen. Obwohl keine Rechteausweitung zum globalen Administrator möglich ist, wird der Zugriff unterbrochen.
  • User.EnableDisableAccount.All: Erlaubt es Angreifern, alle Benutzerkonten im Mandanten zu deaktivieren, sodass dieser nicht mehr verfügbar ist, und dann ein Lösegeld für die Wiederherstellung eines der Konten für den Notfallzugriff (Break-Glass-Konten) zu verlangen. Obwohl keine Rechteausweitung zum globalen Administrator möglich ist, wird der Zugriff unterbrochen.
  • User.ReadWrite.All: Erlaubt es Angreifern, sensible Eigenschaften eines von ihnen kontrollierten Benutzerkontos wie „Mitarbeiter-ID“ und „Abteilung“ zu bearbeiten, um das Konto zu einem Mitglied einer dynamischen Gruppe (siehe entsprechender IoE) mit zugewiesenen privilegierten Azure-Berechtigungen zu machen. Sie können dann Azure-Ressourcen nutzen, um letztlich die Rechteausweitung zum globalen Administrator zu erreichen.
  • User-PasswordProfile.ReadWrite.All: Identisch mit Directory.ReadWrite.All
  • UserAuthenticationMethod.ReadWrite.All: Erlaubt es Angreifern, einen befristeten Zugriffspass (Temporary Access Pass, TAP) zu generieren und beliebige Benutzerkonten im Mandanten zu übernehmen. Wenn TAP noch nicht aktiviert ist, müssen sie diese Berechtigung mit Policy.ReadWrite.AuthenticationMethod kombinieren, um TAP als Authentifizierungsmethode im Mandanten zu aktivieren (siehe entsprechender IoE).

Dieser IoE verfolgt auch diese gefährliche Berechtigung der API „Microsoft Entra AD-Synchronisierungsdienst“:

  • ADSynchronization.ReadWrite.All: Ermöglicht Angreifern das Aufrufen der undokumentierten Synchronisierungs-API, mit der sie hybride Benutzerkonten ändern und ihre Passwörter zurücksetzen können.

Legitime Anwendungen mit diesen gefährlichen Berechtigungen fordern Zugriff an, der zu umfassend sein könnte. Dies kann auch ein Hinweis auf einen als „illegale Einwilligungserteilung“ bezeichneten Phishing-Angriff sein, bei dem Angreifer erfolgreich die Einwilligung eines Administrators einholen.

Deaktivierte Dienstprinzipale werden von diesem IoE standardmäßig ignoriert, da sie von Angreifern nicht direkt verwendet werden können.

Externe Referenzen:

Lösung

Ermitteln Sie als Erstes, ob der gemeldete Dienstprinzipal mit der Berechtigung legitim ist. Denken Sie daran, dass es technisch möglich ist, den Anzeigenamen in einem Phishing-Angriff zu spoofen. Wenn der Dienstprinzipal zu einem bekannten Softwareanbieter zu gehören scheint, bitten Sie diesen zu bestätigen, dass die gemeldete Anwendungs-ID wirklich ihm gehört. Wenn der Dienstprinzipal nicht legitim ist und einen bekannten Anwendungsnamen spooft, sollten Sie eine forensische Analyse durchführen.

  • Wenn der Dienstprinzipal legitim ist:

    • Ermitteln Sie seinen Besitzer und seine Rolle, um festzustellen, ob er diese gefährlichen Berechtigungen tatsächlich benötigt.
      • Wenn es sich um eine interne Anwendung handelt, evaluieren Sie ihre Funktionen und verringern Sie die Berechtigungen unter Anwendung des Prinzips der geringsten Berechtigungen, wie im Abschnitt Zustimmung und Autorisierung der Dokumentation zu Microsoft Graph-API beschrieben. In dieser Anleitung werden die für die einzelnen APIs mindestens erforderlichen Berechtigungen angegeben.
      • Im Fall einer Drittanbieter-Anwendung fordern Sie den Anbieter auf, die erforderlichen Berechtigungen herabzusetzen oder zumindest zu dokumentieren.
    • Wenn Sie über die erforderlichen Premium-Lizenzen für Workloadidentitäten verfügen, können Sie als Defense-in-Depth-Maßnahme die Verwendung von bedingtem Zugriff für Workloadidentitäten in Betracht ziehen. Auf diese Weise können Sie Dienstprinzipale mit hohem Risiko auf bekannte vertrauenswürdige Standorte beschränken und den Zugriff auf der Grundlage von riskanten Anmeldungen einschränken.
  • Standardmäßig können alle Benutzer Berechtigungen an jede Anwendung delegieren, was es ihnen ermöglicht, sensible Sicherheitsentscheidungen zu treffen. Siehe den entsprechenden Indicator of Exposure „Uneingeschränkte Benutzereinwilligung für Anwendungen“. Microsoft Entra ID bietet Optionen, die Sie aktivieren können, um die Benutzereinwilligung zu konfigurieren. Wenn Sie Einschränkungen aktivieren, müssen Microsoft Entra-Administratoren mit bestimmten Rollen die Einwilligung zu Anwendungen verwalten und Einwilligungsanforderungen beurteilen. Siehe auch die Vorgehensweise zum Überprüfen von Anforderungen zur Administratoreinwilligung.

  • Schulen Sie Administratoren in der Identifizierung verdächtiger Anwendungen und sensibler Berechtigungen, einschließlich delegierter Berechtigungen von privilegierten oder sensiblen Benutzern. Dies muss im Rahmen einer umfassenden Anwendungs-Governance-Initiative erfolgen.

  • Entfernen Sie eine Berechtigung, wenn Sie sie für nicht legitim halten. Tenable empfiehlt, zunächst Beweise zu speichern, wenn Sie eine umfassendere forensische Untersuchung planen. Bitte folgen Sie den Empfehlungen von Microsoft, um die für Unternehmensanwendungen gewährten Berechtigungen zu überprüfen. Leider ist diese Funktionalität nicht im Microsoft Entra-Verwaltungsportal verfügbar:

Sie können Berechtigungen auf der Registerkarte „Benutzereinwilligung“ über das Microsoft Entra-Verwaltungsportal nicht widerrufen. Sie können diese Berechtigungen jedoch über Microsoft Graph-API-Aufrufe oder PowerShell-Cmdlets widerrufen. Weitere Informationen finden Sie in den Abschnitten zu PowerShell und Microsoft Graph in diesem Artikel.

Microsoft hat außerdem zwei Leitfäden veröffentlicht, in denen die Durchführung einer Untersuchung der Zuweisung der App-Einwilligung und die Vorgehensweise zum Erkennen und Korrigieren illegaler Einwilligungserteilungen beschrieben werden.

Achten Sie darauf, die gefährliche Berechtigung vom Dienstprinzipal (zu finden im Menü „Unternehmensanwendungen” des Portals) und nicht von der Anwendung (zu finden im Menü „App-Registrierungen”) zu entfernen. Wenn Sie die Berechtigung von der Anwendung entfernen, wird nur die Berechtigungsanforderung gelöscht. Die eigentliche Berechtigungszuweisung ist von dem Vorgang nicht betroffen.

Speziell für die Berechtigung DeviceManagementConfiguration.ReadWrite.All können Sie Zugriffsrichtlinien zum Anfordern mehrerer administratorrechtlicher Genehmigungen verwenden. Dieser Ansatz stellt sicher, dass die Erstellung oder Änderung von Verwaltungsskripts von einem anderen Konto validiert werden muss, und verringert so das Risiko, dass eine einzelne Anwendung bösartige Änderungen einfügt.

Schließlich sollten Sie Graph-API-Aktivitätsprotokolle aktivieren, um detaillierte Informationen zu Graph-API-Ereignissen zu erfassen. Dies hilft Ihrem SOC oder SIEM, verdächtige Aktivitäten zu identifizieren oder, im Falle eines Angriffs, forensische Untersuchungen durchzuführen. Überwachen Sie außerdem Anmeldungen von Dienstprinzipalen und konfigurieren Sie Warnungen für verdächtiges Verhalten, insbesondere für die hier genannten Dienstprinzipale mit hohem Risiko.

Indikatordetails

Name: Gefährliche delegierte Berechtigungen mit Auswirkungen auf den Mandanten

Codename: DANGEROUS-DELEGATED-PERMISSIONS-AFFECTING-THE-TENANT

Schweregrad: High

Typ: Microsoft Entra ID Indicator of Exposure

MITRE ATT&CK-Informationen: