Illicit Consent Grant: bösartige OAuth-Apps untersuchen
So finden Sie eine unrechtmäßige OAuth-Einwilligung im Unified Audit Log und in der Entra-Überwachung, welche Rechte zählen und wie Sie den Zugriff entziehen.
Kurz gesagt. Bei einer unrechtmäßigen Einwilligungserteilung (Illicit Consent Grant) klickt ein Benutzer in einer Zustimmungsabfrage auf Akzeptieren, und die App eines Angreifers erhält delegierten Zugriff auf Postfach oder Dateien, mit eigenen Aktualisierungstoken. Suchen Sie im UAL oder in der Entra-Überwachung nach Consent to application (sowie Add delegated permission grant, Add app role assignment to service principal, Add service principal), lesen Sie ConsentAction.Permissions auf Berechtigungen wie Mail.ReadWrite, Mail.Send, Files.ReadWrite.All, offline_access und prüfen Sie ConsentContext.IsAdminConsent. Weder Passwort-Reset noch MFA entziehen diesen Zugriff; der Widerruf der Erteilung schon.
Zustimmungs-Phishing ist attraktiv, weil es das Passwort komplett umgeht. Microsofts eigener Leitfaden sagt es klar: Übliche Abhilfen wie Passwort-Resets oder das Erzwingen von MFA sind gegen diesen Angriff wirkungslos, weil die App außerhalb der Organisation liegt (Microsoft Learn). In BEC-Fällen sehe ich sie auch als zweiten Schritt: Der Angreifer, der über eine gestohlene Sitzung bereits im Postfach ist, stimmt einer „Mail-Sync“-App zu, um den Zugriff zu behalten, wenn die Sitzung widerrufen wird. MITRE ordnet das Steal Application Access Token (T1528) zu.
Wie die Überwachungsspur aussieht
Eine einzige Zustimmung erzeugt oft mehrere Einträge innerhalb von ein bis zwei Sekunden:
Vorgang (Entra-Überwachung / UAL AzureActiveDirectory) | Bedeutung |
|---|---|
Add service principal | Die App erscheint im Tenant (erste Zustimmung, egal von wem) |
Add delegated permission grant | Delegierte Berechtigungen erteilt (ein oauth2PermissionGrant) |
Add app role assignment to service principal | Anwendungsberechtigungen erteilt (Administratorzustimmung) |
Consent to application | Die Zustimmung selbst, mit Kontext |
Im UAL enden die Namen oft mit einem Punkt (Consent to application.). Die Details stehen in ModifiedProperties:
| Eigenschaft | Was zu lesen ist |
|---|---|
ConsentContext.IsAdminConsent | True: Ein Administrator hat für den Tenant zugestimmt; Microsoft sieht darin eine mögliche weitreichende Erteilung |
ConsentContext.OnBehalfOfAll | True: Zustimmung für alle Benutzer |
ConsentAction.Permissions | Die Berechtigungen, z. B. Scope: Mail.ReadWrite Mail.Send offline_access User.Read, und ConsentType: Principal (ein Benutzer) oder AllPrincipals |
TargetId.ServicePrincipalNames | Die App-ID |
| Anzeigename des Ziels | Der App-Name, oft generisch („Mail Sync“, „PDF Viewer“, „Secure Docs“) |
Notieren Sie auch Akteur, IP und Uhrzeit. Eine Zustimmung von derselben IP oder aus derselben Sitzung wie eine wiederverwendete Anmeldung ist Angreiferaktivität, auch wenn „der Benutzer“ geklickt hat.
Berechtigungen, die Sie beunruhigen sollten
| Berechtigung | Warum |
|---|---|
Mail.Read, Mail.ReadWrite | Postfach über Graph lesen (und ändern) |
Mail.Send | Als der Benutzer senden: die Nutzlast des BEC |
MailboxSettings.ReadWrite | Posteingangsregeln und Weiterleitungen per API anlegen |
Files.Read.All, Files.ReadWrite.All, Sites.Read.All | Alles, was der Benutzer in OneDrive und SharePoint erreicht |
offline_access | Ein Aktualisierungstoken: dauerhafter Zugriff ohne den Benutzer |
full_access_as_user, EWS.AccessAsUser.All, IMAP.AccessAsUser.All | Vollzugriff auf das Postfach über ältere Protokolle |
Directory.ReadWrite.All, RoleManagement.ReadWrite.Directory, AppRoleAssignment.ReadWrite.All | Übernahme des Tenants, wenn ein Administrator sie erteilt |
User.Read allein (Anmeldung und Profil) ist bei „Mit Microsoft anmelden“-Apps normal. offline_access plus eine E-Mail-Berechtigung für eine App, die niemand kennt, ist es nicht.
Bestätigen und eingrenzen
Microsofts Leitfaden zur Erkennung und Behebung schlägt vor, die Erteilungen pro Benutzer zu inventarisieren (Entra Admin Center → Users → Benutzer → Applications), per PowerShell über den ganzen Tenant oder indem Benutzer ihre Apps unter myapps.microsoft.com prüfen. Bei der Prüfung verweist er auf AllPrincipals-Zustimmungen für Nicht-Microsoft-Apps, auf Read/Write/All-Berechtigungen, auf besonders exponierte Benutzer und auf verdächtige App-Namen.
Grenzen Sie dann ein, was die App getan hat. Ihre Aktivität wird unter der Identität der App protokolliert: MailItemsAccessed-Einträge mit der AppId / ClientAppId der App, Graph-Aktivität, falls Sie Microsoft-Graph-Aktivitätsprotokolle haben, und Anmeldungen des Dienstprinzipals. Die CISA/FBI-Warnung zum Exchange-Online-Einbruch 2023 beschreibt, dass unerwartete ClientAppID- und AppID-Werte in MailItemsAccessed-Einträgen die Aktivität aufdeckten (AA23-193A). Siehe MailItemsAccessed: was es beweist.
Persistenz auf App-Seite
Angreifer mit Administratorrechten gehen über die Zustimmung hinaus:
Add service principal credentials/Update application – Certificates and secrets management: ein Geheimnis oder Zertifikat, das einer bestehenden App hinzugefügt wurde und mit dem sich der Angreifer als App authentifizieren kann (T1098.001).Add application: eine neue App-Registrierung im Tenant.Add member to rolemit einer App als Mitglied: eine privilegierte Rolle für die App.
All das übersteht Passwort-Resets der Benutzer und verdient dieselbe Prüfung.
Wie M365 Forensics es markiert
Der Analysator im Browser hat vier zugehörige Befunde:
| Befund | Schweregrad | Auslöser |
|---|---|---|
| Zustimmung für eine App mit Zugriff auf E-Mails oder Dateien | Hoch | Zustimmung, delegierte Erteilung oder App-Rollenzuweisung, deren Eigenschaften eine Berechtigung aus seiner Risikoliste enthalten (Mail.ReadWrite, Mail.Send, Files.ReadWrite.All, offline_access, full_access_as_user…) |
| Zustimmung für eine Anwendung erteilt | Niedrig | Jede andere Zustimmung: prüfen, ob sie erwartet ist |
| Anmeldeinformationen zu einer Anwendung hinzugefügt | Hoch | Geheimnis oder Zertifikat zu einer App oder einem Dienstprinzipal hinzugefügt |
| Neue Anwendung oder neuer Dienstprinzipal | Niedrig | App registriert oder Dienstprinzipal hinzugefügt |
Kam die Zustimmung von der IP oder aus der Sitzung einer verdächtigen Anmeldung, fügt der Korrelationsbefund eine kritische „Aktion aus der Sitzung des Angreifers“ hinzu. Die Behebungsliste enthält dann Zugestimmte Anwendung entfernen und Benutzerzustimmung einschränken.
Behebung
- Die Erteilung widerrufen: in Entra den Benutzer → Applications → die App → Remove; oder
Remove-MgOauth2PermissionGrantfür delegierte Erteilungen undRemove-MgServicePrincipalAppRoleAssignmentfür App-Rollenzuweisungen (beide in Microsofts Leitfaden genannt). - Den Dienstprinzipal löschen oder deaktivieren, wenn die App nicht legitim ist, damit niemand sonst sie nutzen kann.
- Auch die Sitzungen des Benutzers widerrufen: Wer die Zustimmung erteilt hat, hatte vermutlich eine Sitzung.
- Benutzerzustimmung einschränken: Zustimmung nur für verifizierte Herausgeber und Berechtigungen mit geringem Risiko zulassen und den Workflow für Administratorzustimmung aktivieren (Benutzerzustimmung konfigurieren).
- App-Anmeldeinformationen, -Besitzer und -Rollen prüfen, die im selben Zeitraum hinzugefügt wurden.
Häufige Fragen
Was ist eine unrechtmäßige Einwilligungserteilung (Illicit Consent Grant)?
Ein Angriff, bei dem ein Benutzer oder Administrator dazu gebracht wird, einer vom Angreifer kontrollierten Anwendung Zugriff auf seine Daten zu gewähren, etwa E-Mails zu lesen und zu senden. Die App greift danach mit eigenen Token auf die Daten zu, ohne das Passwort des Benutzers.
Welche Überwachungsereignisse zeigen eine Zustimmung?
Consent to application im Unified Audit Log und in der Entra-Überwachung, meist zusammen mit Add delegated permission grant oder Add app role assignment to service principal und oft mit Add service principal, wenn die App neu im Tenant ist.
Entzieht ein Passwort-Reset der App den Zugriff?
Nein. Die Zustimmung und die Aktualisierungstoken der App sind vom Passwort des Benutzers unabhängig. Entfernen Sie die Berechtigungserteilung und löschen Sie den Dienstprinzipal, wenn die App nicht legitim ist.
Weiterführende Links
- Microsoft Learn: Erkennen und Beheben unrechtmäßiger Einwilligungserteilungen
- Leitfaden zur BEC-Untersuchung in Microsoft 365
- OAuth-Apps sind auch auf GitHub ein Persistenzweg: githubforensics.com.