Permissions Microsoft Graph à haut risque : pourquoi certaines applications sont Tier 0
Les revues de privilèges se concentrent souvent sur les rôles d'annuaire attribués aux utilisateurs. Or une application dotée de la bonne permission Microsoft Graph peut se promouvoir elle-même administrateur général, sans MFA, sans accès conditionnel et sans apparaître dans la liste des administrateurs.
Permissions déléguées et permissions d'application
Une permission déléguée est exercée au nom d'un utilisateur connecté : l'application ne peut jamais faire plus que ce que l'utilisateur a lui-même le droit de faire. Une permission d'application (rôle d'application) est exercée par l'application seule, sur l'ensemble du locataire. C'est cette seconde catégorie qui pose le plus de risques : il suffit d'obtenir un secret ou un certificat de l'application pour en disposer.
Les permissions qui mènent au contrôle total
Certaines permissions permettent, directement ou en une étape, d'obtenir le rôle d'administrateur général ou un équivalent :
| Permission | Pourquoi elle est critique |
|---|---|
RoleManagement.ReadWrite.Directory | Permet d'attribuer n'importe quel rôle d'annuaire, y compris administrateur général, à n'importe quel principal. |
AppRoleAssignment.ReadWrite.All | Permet d'accorder n'importe quelle permission d'application, et donc de s'octroyer les autres permissions de ce tableau sans consentement. |
Application.ReadWrite.All | Permet d'ajouter des informations d'identification à n'importe quelle application, donc d'usurper la plus privilégiée d'entre elles. |
UserAuthenticationMethod.ReadWrite.All | Permet d'ajouter une méthode d'authentification, par exemple un Passe d'accès temporaire, au compte d'un administrateur. |
Policy.ReadWrite.ConditionalAccess | Permet de désactiver ou de modifier les stratégies d'accès conditionnel. |
Cette liste n'est pas exhaustive. Les permissions évoluent et de nouvelles apparaissent ; vérifiez la documentation Microsoft actuelle et raisonnez toujours en chemins : qu'est-ce que cette permission permet d'obtenir ensuite ?
Les permissions d'accès aux données
D'autres permissions ne donnent pas le contrôle de l'annuaire, mais un accès massif aux données. Mail.ReadWrite, Mail.Read ou Mail.Send en permission d'application couvrent par défaut toutes les boîtes aux lettres du locataire, y compris celles de la direction. Files.ReadWrite.All et Sites.FullControl.All couvrent tout SharePoint et OneDrive.
Ces périmètres peuvent être réduits : le RBAC pour les applications dans Exchange Online limite l'accès à un ensemble de boîtes, et Sites.Selected permet d'accorder l'accès à des sites précis plutôt qu'à tous.
Pourquoi Tier 0. Une identité qui peut obtenir le contrôle du locataire appartient au même niveau que les administrateurs généraux. Son propriétaire, le serveur ou le pipeline qui détient son secret et les administrateurs d'applications héritent de ce niveau de sensibilité.
Réduire l'exposition
- Inventorier toutes les attributions de rôles d'application sur Microsoft Graph et les autres API de première partie ;
- Pour chaque permission sensible, demander à l'équipe propriétaire le besoin réel, et proposer une permission plus étroite ;
- Protéger les applications restantes comme des comptes Tier 0 : certificats plutôt que secrets, propriétaires limités, surveillance des connexions et des modifications ;
- Soumettre toute nouvelle demande de permission sensible à une validation explicite de la sécurité.
Dans les locataires que nous auditons, ces permissions sont fréquemment détenues par des outils de migration, de sauvegarde ou de reporting installés il y a des années, dont plus personne ne se souvient.
Ce qu'un audit vérifie
- Les principaux de service détenant des permissions d'application permettant une élévation vers l'administrateur général.
- Les permissions d'accès aux données à l'échelle du locataire et l'usage éventuel de périmètres restreints.
- Les propriétaires et les informations d'identification de ces applications.
- Leur activité de connexion et les modifications récentes de leurs permissions.