Gestion des Identités (Entra ID)

Consentement OAuth Mail.ReadWrite : Détection KQL — Akuity SOC

5 min de lecture Akuity SOC · Delphisoft Deutschland

Découvrez comment détecter l'abus de Mail.ReadWrite via consentement OAuth frauduleux dans Entra ID et révoquer l'accès en 1 clic avec Akuity SOC.

Dans le paysage des cyberattaques ciblant les environnements cloud, le vol d'identifiants cède progressivement la place à l'abus d'autorisations légitimes. Le Consent Phishing OAuth (référencé sous la technique MITRE ATT&CK T1078.004) est devenu l'arme de prédilection pour espionner discrètement les cadres dirigeants. En incitant un utilisateur à autoriser une application tierce dotée du scope Mail.ReadWrite, l'attaquant s'affranchit des mécanismes de protection traditionnels : aucun mot de passe n'est compromis, aucun challenge Conditional Access n'est redéclenché, et l'exfiltration s'opère directement via l'API Microsoft Graph.

Anatomie de l'attaque : l'illusion de la légitimité applicative

L'offensive débute classiquement par un e-mail d'hameçonnage sophistiqué invitant la victime à consulter un document confidentiel ou à valider une mise à jour logicielle. En cliquant sur le lien, l'utilisateur est redirigé vers l'invite de consentement officielle de Microsoft Entra ID (anciennement Azure AD). L'application, souvent hébergée sur un tenant Azure tiers sous contrôle adverse, sollicite des autorisations déléguées critiques :

  • Mail.ReadWrite : lecture, création, modification et suppression de tous les courriers de la boîte aux lettres.
  • Mail.Send : émission de messages depuis le compte légitime pour des campagnes de Business Email Compromise (BEC) internes.
  • MailboxSettings.ReadWrite : création de règles de transfert automatique et masquage d'e-mails sous les dossiers masqués.
  • offline_access : obtention d'un refresh token garantissant un accès persistant, même si l'utilisateur ferme sa session.

Une fois le consentement validé en aveugle par un collaborateur ou un dirigeant distrait, l'attaquant génère des jetons d'accès OAuth 2.0 et interroge l'API Microsoft Graph en continu. Il filtre les correspondances stratégiques (fusions-acquisitions, RIB, échanges bancaires) sans jamais faire sonner l'EDR de l'hôte.

L'angle mort natif d'Entra ID et du Conditional Access

Le principal écueil de sécurité réside dans le fonctionnement intrinsèque du protocole OAuth 2.0. Tant que les règles de gouvernance applicative d'Entra ID autorisent le consentement utilisateur pour des éditeurs non vérifiés (ou que l'attaquant a usurpé une identité Cloud Partner), aucun signal d'anomalie basique n'est généré. De plus, les stratégies de Conditional Access évaluent la conformité de l'appareil et l'emplacement IP lors de la négociation initiale du jeton, mais ne surveillent pas les requêtes API Graph ultérieures exécutées par le Service Principal distant depuis le serveur C2 de l'attaquant.

Détection avancée : traquer les consentements suspects via Advanced Hunting

Pour déceler ces autorisations malveillantes avant qu'elles ne mènent à une exfiltration massive, les équipes SOC doivent auditer en continu la table CloudAppEvents. La requête Advanced Hunting (KQL) suivante isole les consentements délégués accordant des privilèges étendus sur la messagerie :

CloudAppEvents
| where ActionType in ("Consent to application", "Add delegated permission grant")
| extend TargetApp = tostring(RawEventData.Target[0].DisplayName),
         AppId = tostring(RawEventData.Target[0].Id),
         Initiator = tostring(RawEventData.InitiatedBy.User.UserPrincipalName)
| mv-expand Prop = RawEventData.ModifiedProperties
| where Prop.Name in ("ConsentAction.Permissions", "Scope")
| extend GrantedScopes = tostring(Prop.NewValue)
| where GrantedScopes has_any ("Mail.ReadWrite", "Mail.Read", "Mail.Send", "MailboxSettings.ReadWrite")
| extend IsSelfConsented = iff(Initiator =~ tostring(RawEventData.Target[1].DisplayName), true, false)
| project Timestamp, Initiator, TargetApp, AppId, GrantedScopes, IsSelfConsented, IPAddress = IPAddress
| order by Timestamp desc

Remédiation SOAR Akuity SOC : neutraliser l'application en 1 clic

La découverte d'un consentement illégitime exige une riposte chirurgicale immédiate pour fermer le canal d'exfiltration Graph sans perturber le reste de l'environnement :

  1. Décodage Zero-Trust in-app : L'assistant IA in-app d'Akuity SOC analyse les requêtes Graph et déplie les scopes OAuth suspects en tâche de fond, garantissant zéro fuite de jetons vers des outils web tiers.
  2. Riposte SOAR 1-clic foudroyante : Déclenchement instantané de la fonction SOAR revokeOAuthApp() pour détruire l'assignation du Service Principal malveillant et révoquer l'intégralité de ses permissions d'accès, couplé à revokeSessions() pour invalider immédiatement tous les refresh tokens de l'utilisateur compromis.
  3. Gouvernance certifiée et traçabilité : La validation de remédiation s'exécute sous élévation MFA AAL2 obligatoire avec consignation immuable dans le journal d'audit, certifiée conforme aux exigences réglementaires de NIS 2 et SOC 2 Type II.
Akuity SOC · Essai Gratuit 14 Jours Bloquez les applications OAuth malveillantes en 1 clic :

Détectez les consentements illicites et révoquez les Service Principals compromis instantanément grâce aux playbooks automatisés d'Akuity SOC.

Démarrer votre essai gratuit de 14 jours (sans carte bancaire) →

Mini-FAQ Technique : Risques OAuth & Messagerie

La réinitialisation du mot de passe de l'utilisateur révoque-t-elle l'accès de l'application OAuth ?
Non. C'est l'un des pièges les plus dangereux. Un jeton d'accès délégué OAuth et son refresh token associé restent valides indépendamment du mot de passe de l'utilisateur, sauf si les sessions sont explicitement révoquées dans Entra ID et que l'octroi d'autorisation OAuth (OAuth2PermissionGrant) est formellement supprimé.

Comment empêcher les utilisateurs de consentir eux-mêmes à ces scopes dangereux ?
Dans le portail Microsoft Entra ID, configurez les paramètres de consentement utilisateur pour exiger une validation administrateur (Admin Consent Workflow) pour toute application sollicitant des scopes sensibles comme Mail.ReadWrite ou n'émanant pas d'éditeurs vérifiés.

Page Solution Associée

Plateforme SOC & SOAR Microsoft

Automatisez votre détection et votre réponse aux incidents avec Akuity SOC.

Découvrir la solution complète