
EntraFalcon V20260824
Un outil PowerShell léger pour évaluer la posture de sécurité des environnements Microsoft Entra ID. Il aide à identifier les objets privilégiés, les attributions risquées et les configurations potentiellement incorrectes.
EntraFalcon

EntraFalcon est un outil d'évaluation basé sur PowerShell destiné aux pentesters, analystes de sécurité et administrateurs système pour évaluer la posture de sécurité d'un environnement Microsoft Entra ID.
Conçu pour être facile à utiliser, EntraFalcon fonctionne sur PowerShell 5.1 et 7, prend en charge Windows et Linux, et ne nécessite aucun module PowerShell supplémentaire, installation additionnelle ou consentement Microsoft Graph API.
L'outil aide à découvrir les objets privilégiés, les affectations potentiellement risquées et les mauvaises configurations de Conditional Access souvent négligées, telles que :
- Utilisateurs ayant un contrôle sur des groupes ou applications à haute privilège
- Applications d'entreprise externes ou internes avec des autorisations excessives (par exemple, Microsoft Graph API, rôles Azure)
- Utilisateurs avec des affectations de rôles Azure IAM directement sur des ressources
- Comptes privilégiés synchronisés depuis un environnement sur site
- Utilisateurs inactifs ou utilisateurs sans capacité MFA
- Groupes non protégés utilisés dans des affectations sensibles (par exemple, exclusions de Conditional Access, Subscription Owner, ou membre éligible d'un groupe privilégié)
Les résultats sont présentés dans des rapports HTML interactifs pour faciliter l'exploration et l'analyse efficaces.
🚀 Fonctionnalités
- Script PowerShell simple compatible avec PowerShell 5.1 et 7. Fonctionne sur Windows et Linux
- Authentification intégrée prenant en charge plusieurs méthodes
- Utilise des applications Microsoft propriétaires avec des scopes pré-consentis pour contourner les invites de consentement Graph API
- Génère des rapports HTML navigables prenant en charge le filtrage, le tri, l'export de données, etc.
- Effectue plus de 90 vérifications automatisées et résume les résultats dans un rapport de constats de sécurité
- Inclut des vérifications pour les configurations de locataire faibles et les propriétés ou autorisations d'objets risquées
- Fournit des niveaux de gravité ainsi que des descriptions du problème, des menaces potentielles et des recommandations de remédiation
- Liste les objets concernés et fournit des liens directs vers leurs rapports détaillés pour une investigation approfondie
- Effectue une évaluation de base de l'impact, de la probabilité et du risque pour mettre en évidence les objets à haute privilège faiblement protégés et trier les données.
- Affiche des avertissements pour les configurations risquées et les privilèges élevés
- Énumère les objets Entra ID, notamment :
- Utilisateurs (y compris les Agent Users)
- Groupes
- Applications d'entreprise
- Inscriptions d'applications
- Identités managées
- Identités d'agents
- Principaux de blueprint d'identité d'agent
- Blueprints d'identité d'agent
- Affectations PIM :
- PIM pour les rôles Entra
- PIM pour les groupes
- PIM pour les rôles Azure
- Affectations de rôles Entra
- Affectations de rôles Azure
- Affectations RBAC Intune
- Packages d'accès
- Catalogues de gestion des droits
- RBAC de catalogue
- Politiques de Conditional Access
- Unités administratives
- Paramètres PIM :
- PIM pour les rôles Entra
- PIM pour les groupes (authentification BroCi uniquement)
✅ Exigences
| Type | Autorisation | Obligatoire | Impact si absent |
|---|---|---|---|
| Rôle Entra ID | Global Reader | Oui | Impossible d'exécuter les scripts |
| Rôle Azure | Reader : sur chaque Management Group ou Subscription | Non | Impossible d'évaluer les affectations IAM Azure |
De plus, vous devez pouvoir vous authentifier auprès de la Microsoft Graph API et éventuellement de l'API Azure ARM depuis l'appareil où vous exécutez l'outil. Assurez-vous que les politiques de Conditional Access ne bloquent pas votre authentification.
▶️ Utilisation
Télécharger EntraFalcon
Pour commencer, clonez le dépôt et naviguez dans le répertoire du projet :```powershell git clone https://github.com/CompassSecurity/EntraFalcon cd EntraFalcon
Note : Vous devrez peut-être modifier temporairement la stratégie d'exécution de PowerShell pour exécuter le script.
Ne faites cela que pour des scripts de confiance !```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
Exécuter EntraFalcon
EntraFalcon intègre une prise en charge native de l’authentification Entra ID. Utilisez -AuthFlow pour sélectionner le flux d’authentification.
Pour les évaluations standard, utilisez l’un des flux à couverture complète :
| Flux recommandé | Idéal pour | Plateforme | Couverture |
|---|---|---|---|
BroCi (par défaut) | Exécutions interactives sous Windows | Windows | Complète |
BroCiManualCode | Authentification dans un autre navigateur | Windows, Linux, macOS | Complète |
BroCiToken | Jeton d’actualisation existant du portail Azure | Windows, Linux, macOS | Complète |
ServicePrincipal | Automatisation / CI | Windows, Linux, macOS | Complète |
BroCi nécessite une seule connexion interactive. BroCiToken et ServicePrincipal n’en nécessitent aucune. Les flux utilisateur de secours peuvent exiger plusieurs connexions interactives, car des jetons de ressources distincts sont demandés.
Flux d’authentification de secours
En raison de l’absence d’applications tierces pré-consenties, les flux de secours ne peuvent pas effectuer l’énumération complète (PIM for Groups, Access Packages, Catalogs). Ils restent donc actuellement des options de secours uniquement.
| Flux | À utiliser uniquement lorsque | Plateforme | Limitations |
|---|---|---|---|
AuthCode | La compatibilité héritée est requise | Windows | Couverture partielle. Aucun rapport autonome PIM for Groups, Access Packages ou Catalogs. |
DeviceCode | L’authentification par navigateur n’est pas possible | Windows, Linux, macOS | Couverture partielle. Aucun rapport autonome PIM for Groups, Access Packages ou Catalogs. Certaines vérifications de Security Findings s’exécutent avec une profondeur réduite. |
ManualCode | L’authentification doit être effectuée via une session de navigateur distincte | Windows, Linux, macOS | Couverture partielle. Aucun rapport autonome PIM for Groups, Access Packages ou Catalogs. |
Recommandé : flux BroCi (par défaut / Windows uniquement)
BroCi utilise des applications tierces alternatives et ne nécessite qu’une seule connexion interactive.
Il est utile lorsque le client Azure Active Directory PowerShell nécessite une attribution et doit être évité.```powershell
.\run_EntraFalcon.ps1
Sélection explicite de BroCi :```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
Recommandé : BroCi + Flux de code manuel```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
1. Le script copie l'URL d'authentification dans le presse-papiers.
2. Collez l'URL dans un navigateur (éventuellement sur un autre appareil pour la prise en charge SSO).
3. Ouvrez les outils de développement du navigateur et, dans l'onglet Réseau, activez `Preserve log`.
4. Terminez l'authentification.
5. Recherchez `code=1.` dans le journal réseau et copiez l'URL de la requête contenant le code dans le presse-papiers.
6. Appuyez sur Entrée pour continuer ; le script lit le code depuis le presse-papiers et termine l'acquisition du jeton.
#### Recommandé : BroCi avec jeton
Si un jeton d'actualisation Azure Portal valide est déjà disponible (client c44b4083-3bb0-49c1-b47d-974e53cbdf3c), il peut être utilisé directement.
Exemple : Obtention du jeton d'actualisation depuis le navigateur
1. Ouvrez les outils de développement du navigateur et, dans l'onglet Réseau, activez Preserve log.
2. Authentifiez-vous sur https://entra.microsoft.com.
3. Recherchez `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c` dans le journal réseau et extrayez le jeton d'actualisation de la réponse.```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
Recommandé : Principal de service
S’authentifie en tant qu’application enregistrée via la concession d’informations d’identification client OAuth2 — aucune interaction utilisateur requise.
Utile pour les exécutions automatisées répétées.
Nécessite un enregistrement d’application Entra personnalisé avec des autorisations Graph API de type Application (voir ci-dessous).
Avec secret client :```powershell .\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPClientSecret ""
**Avec certificat PFX :**```powershell
.\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "<AppId>" -SPCertificatePath "C:\certs\app.pfx"
Pour un PFX protégé par mot de passe, ajoutez -SPCertificatePassword (Read-Host -Prompt "Certificate password" -AsSecureString).
Avec certificat PEM + clé privée (PowerShell 7+ uniquement) :```powershell .\run_EntraFalcon.ps1 -AuthFlow ServicePrincipal -Tenant "mysecuretenant.ch" -SPClientId "" -SPCertificatePemPath "C:\certs\cert.pem" -SPPrivateKeyPemPath "C:\certs\key.pem"
Pour une clé privée chiffrée, ajoutez `-SPPrivateKeyPemPassword (Read-Host -Prompt "Private key password" -AsSecureString)`.
##### Autorisations requises pour l’inscription de l’application
Accordez les autorisations **Application** suivantes (et non Déléguées) sur l’inscription de l’application et administrez-y le consentement :
| Autorisation | Type |
|---|---|
| `AdministrativeUnit.Read.All` | Application |
| `AgentIdentity.Read.All` | Application |
| `AgentIdentityBlueprint.Read.All` | Application |
| `AgentIdentityBlueprintPrincipal.Read.All` | Application |
| `Application.Read.All` | Application |
| `AuditLog.Read.All` | Application |
| `Device.Read.All` | Application |
| `EntitlementManagement.Read.All` | Application |
| `Group.Read.All` | Application |
| `Organization.Read.All` | Application |
| `Policy.Read.All` | Application |
| `PrivilegedAccess.Read.AzureADGroup` | Application |
| `RoleManagement.Read.Directory` | Application |
| `RoleManagementPolicy.Read.AzureADGroup` | Application |
| `User.Read.All` | Application |
| `DeviceManagementRBAC.Read.All` | Application |
De plus, attribuez le rôle **Azure Reader** sur le groupe de gestion racine (ou sur chaque abonnement concerné) et, éventuellement, le rôle **Global Reader** au principal de service dans Entra ID (requis pour le statut MFA par utilisateur).
#### Repli : Flux de code d’autorisation (Windows uniquement)```powershell
.\run_EntraFalcon.ps1 -AuthFlow AuthCode
Repli : Flux de code d’appareil (Device Code Flow)
Il est souvent restreint par l’accès conditionnel dans les environnements durcis.
Avec DeviceCode, deux contrôles de Security Findings s’exécutent avec une profondeur réduite (CAP-004 et CAP-005).```powershell
.\run_EntraFalcon.ps1 -AuthFlow DeviceCode
#### Fallback : flux de code d'authentification + code manuel```powershell
.\run_EntraFalcon.ps1 -AuthFlow ManualCode
- Le script copie l'URL d'authentification dans le presse-papiers.
- Collez l'URL dans un navigateur (éventuellement sur un autre appareil pour la prise en charge du SSO).
- Terminez l'authentification.
- Copiez l'URL de redirection finale depuis la barre d'adresse du navigateur (contenant le code d'autorisation) dans le presse-papiers.
- Appuyez sur Entrée pour continuer ; le script lit le code depuis le presse-papiers et termine l'acquisition du jeton.
Autres Paramètres
Inclure les Applications d'Entreprise Appartenant à Microsoft
Par défaut, les applications d'entreprise officielles de Microsoft sont exclues de l'évaluation afin de réduire le bruit. Pour les inclure dans l'énumération et l'analyse, utilisez le commutateur -IncludeMsApps :```powershell
.\run_EntraFalcon.ps1 -IncludeMsApps
#### Ignorer l'évaluation PIM pour les groupes
Utilisez le commutateur `-SkipPimForGroups` pour ignorer la précollecte et l'enrichissement PIM pour les groupes.
Cela ignore également le rapport autonome des paramètres `PIM for Groups`.```powershell
.\run_EntraFalcon.ps1 -SkipPimForGroups
Autres paramètres facultatifs
| Paramètre | Description | Valeur par défaut |
|---|---|---|
| UserAgent | User agent utilisé pour les requêtes vers le point de terminaison du jeton et les appels API. | EntraFalcon |
| DisableCAE | Désactive la demande de jetons Continuous Access Evaluation (CAE). | false |
| Tenant | Spécifie le locataire (ID ou domaine) pour l'authentification. Utile lors de l'évaluation d'un locataire autre que le locataire d'origine du compte. | Locataire d'origine du compte |
| OutputFolder | Dossier de sortie où les rapports sont stockés. | Results_%TenantName%_YYYYMMDD_HHMM |
| LimitResults | Limite le nombre de groupes et d'utilisateurs dans le rapport (après tri par risque). Utile pour les grands locataires. | - |
| LogLevel | Contrôle la verbosité de la journalisation CLI au moment de l'exécution. Valeurs prises en charge : Off (par défaut), Verbose, Debug, Trace. | Off |
| ApiTop | Définit le nombre maximal d'objets renvoyés par l'API. Des valeurs plus faibles réduisent le risque de délai d'expiration (HTTP 504), mais augmentent le nombre de requêtes. | 999 (Plage valide : 5–999) |
| AuthFlow | Sélecteur de flux d'authentification préféré. Valeurs : BroCi (par défaut), AuthCode, DeviceCode, ManualCode, BroCiManualCode, BroCiToken, ServicePrincipal. | BroCi |
| BroCiToken | Jeton d'actualisation du portail Azure pour AuthFlow BroCiToken. | - |
| SPClientId | ID d'application (client) du principal de service. Requis pour -AuthFlow ServicePrincipal. | - |
| SPClientSecret | Secret client pour le principal de service. Utilisé avec -AuthFlow ServicePrincipal. | - |
| SPCertificatePath | Chemin vers un fichier de certificat PFX/P12 pour l'authentification du principal de service. | - |
| SPCertificatePassword | Mot de passe (SecureString) pour le certificat PFX spécifié par -SPCertificatePath. | - |
| SPCertificatePemPath | Chemin vers un fichier de certificat PEM. Utilisé avec -SPPrivateKeyPemPath. | - |
| SPPrivateKeyPemPath | Chemin vers le fichier de clé privée PEM correspondant à -SPCertificatePemPath. | - |
| SPPrivateKeyPemPassword | Mot de passe (SecureString) pour la clé privée PEM spécifiée par -SPPrivateKeyPemPath. | - |
| Csv | Active l'écriture de fichiers de rapport CSV en plus des fichiers de rapport TXT/HTML. | false |
| ExportCapUncoveredUsers | Pour chaque stratégie d'accès conditionnel activée avec ciblage utilisateur, exporte un CSV listant les utilisateurs non couverts par cette stratégie. Les fichiers sont écrits dans un sous-dossier ConditionalAccessPolicies_UncoveredUsers dans le répertoire de sortie. | false |
| ExportFindingsJson | Exporte toutes les conclusions de sécurité (Security Findings) au format JSON à la fin de l'exécution. | false |
| ExportDataJson | Exporte le rapport enrichi et les ensembles de données de support sous forme de fichiers de données JSON bruts dans Data_Json ; les métadonnées d'exécution sont disponibles dans Summary.json. | false |
| DebugObjectDump | Exporte les objets de rapport finaux en mémoire au format CLIXML vers Debug_ObjectDump pour le dépannage et les tests. | false |
📊 Exemples de rapports
Rapport de conclusions de sécurité

Utilisateurs

Utilisateurs (section Détails)

Rôles Entra ID

Rôles Azure

Application d'entreprise (section Détails)

Stratégies d'accès conditionnel

Stratégies d'accès conditionnel (section Détails)

Paramètres de rôle PIM (Entra)

Identités d'agent

Résumé de l'énumération

📑 Rapport HTML
Général
- Cliquez sur le bouton ⚙️ Colonnes pour afficher ou masquer des colonnes spécifiques.
- Cliquez sur 💾 Exporter pour télécharger CSV/JSON ou copier CSV/TSV/JSON des données actuellement visibles.
- Cliquez sur 👁 Partager la vue pour copier les filtres, le tri et la sélection de colonnes sous forme de lien partageable.
- Cliquez sur 🧰 Vues prédéfinies pour appliquer des filtres et sélections de colonnes préconfigurés.
- Cliquez sur 🔄 Réinitialiser la vue pour rétablir la vue par défaut.
- Cliquez sur les noms d'objets pour accéder aux informations détaillées, même dans d'autres rapports.
- Lorsque vous utilisez la navigation interne, appuyez sur le bouton précédent du navigateur pour revenir en arrière.
- Certains en-têtes de colonnes de tableau affichent un texte d'aide au survol de la souris.
- Triez les données en cliquant sur un en-tête de tableau.
- Alt+clic sur un en-tête de colonne principale du tableau pour masquer rapidement cette colonne.
- Alt+clic sur une ligne de contenu d'une colonne principale du tableau pour la masquer temporairement. Utilisez la puce des lignes masquées ou Réinitialiser la vue pour réafficher les lignes masquées.
Filtrage
- Si aucun opérateur n'est spécifié, le filtrage utilise par défaut contient.
- Utilisez
=pour une correspondance exacte. - Utilisez
^pour commence par (par exemple,^Mallory). - Utilisez
$pour se termine par (par exemple,$domain.ch). - Les opérateurs de comparaison comme
>,<,>=,<=sont pris en charge (valeurs numériques uniquement). - Les filtres peuvent être niés en commençant par
!(sauf pour les comparaisons numériques). Exemples :!Mallory,!=Mallory,!^Malloryou!$domain.ch. - Utilisez
=emptypour correspondre aux cellules vides, ou!=emptypour correspondre aux cellules non vides. - Utilisez
||pour correspondre à l'une des multiples valeurs dans la même colonne (par exemple,Admin || Guest). - Utilisez
&&pour exiger plusieurs correspondances dans la même colonne (par exemple,!adm && !svc && !sql). - Pour appliquer une logique OU entre colonnes, utilisez
or_,group1_,group2_... directement dans un champ de filtre. Exemples : dans la colonne 1 :or_>1, dans la colonne 2 :or_!Mallory - Remarque : La colonne DisplayName inclut également l'ID de l'objet (invisible), il est donc également possible de filtrer par ID.
Contrôles à l'aide de paramètres GET
- Filtrage : Appliquez des filtres en utilisant les noms de champs comme paramètres HTTP GET, par exemple,
?EntraRoles=>1&Enabled=true.
Pour appliquer une logique OU entre colonnes, utilisez le préfixeor_ougroup1_(par exemple,?or_EntraRoles=>0&or_GrpMem=>0). - Sélection de colonnes : Choisissez les colonnes à afficher à l'aide du paramètre
columns. Exemple :?columns=DisplayName,Owner. - Tri : Triez les données à l'aide des paramètres
sortetsortDir. Exemple :?sort=Impact&sortDir=descou?sort=OwnerCount&sortDir=asc. - Détails de l'objet : Accédez directement à un objet spécifique du rapport à l'aide d'une ancre (
#) et de l'ID de l'objet, par exemple#%ObjectID%.
Évaluation
- Impact : Représente la quantité ou la gravité des autorisations dont dispose l'objet.
- Probabilité : Représente la facilité avec laquelle l'objet peut être influencé ou la qualité de sa protection.
- Risque : Score calculé : Impact × Probabilité = Risque.
- Important :
- Ce score est destiné à servir d'évaluation de base pour aider à trier et prioriser les entrées du tableau.
- Les scores de risque ne sont pas directement comparables entre différents types d'objets ou rapports.
- Il n'est pas destiné à remplacer une évaluation complète des risques.
🔧Sous le capot
Catégorisation des rôles
Les rôles Entra ID et Azure sont grossièrement catégorisés en différents niveaux de hiérarchie. Cette catégorisation influence les scores d'impact des objets auxquels ces rôles sont attribués. L'objectif est d'attribuer un score d'impact plus élevé aux utilisateurs disposant de rôles plus puissants (par exemple, Administrateur général) par rapport aux utilisateurs disposant de rôles moins critiques (par exemple, Lecteur général), même si les deux sont considérés comme des rôles privilégiés par Microsoft.
Remarque : Pour les rôles Azure, cette catégorisation est moins précise, car l'impact réel dépend fortement de la portée de l'attribution du rôle. Par exemple, un rôle Propriétaire sur une seule machine virtuelle a un impact nettement moindre que lorsque le même rôle est appliqué à un abonnement entier. Il peut également s'agir d'un abonnement de test sans aucune ressource.
Rôles Entra ID
| Nom du rôle | Niveau de hiérarchie | GUID |
|---|---|---|
| Global Administrator | 0 | 62e90394-69f5-4237-9190-012177145e10 |
| Partner Tier2 Support | 0 | e00e864a-17c5-4a4b-9c06-f5b95a8d5bd8 |
| Privileged Authentication Administrator | 0 | 7be44c8a-adaf-4e2a-84d6-ab2649e08a13 |
| Privileged Role Administrator | 0 | e8611ab8-c189-46e8-94e1-60213ab1f814 |
| Domain Name Administrator | 0 | 8329153b-31d0-4727-b945-745eb3bc5f31 |
| External Identity Provider Administrator | 0 | be2f45a1-457d-42af-a067-6ec1fa63bc45 |
| Hybrid Identity Administrator | 0 | 8ac3fc64-6eca-42ea-9e69-59f4c7b60eb2 |
| Application Administrator | 0 | 9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3 |
| Cloud Application Administrator | 0 | 158c047a-c907-4556-b7ef-446551a6b5f7 |
| Security Administrator | 0 | 194ae4cb-b126-40b2-bd5b-6091b380977d |
| Agent ID Administrator | 1 | db506228-d27e-4b7d-95e5-295956d6615f |
| AI Administrator | 1 | d2562ede-74db-457e-a7b6-544e236ebb61 |
| Conditional Access Administrator | 1 | b1be1c3e-b65d-4f19-8427-f6fa0d97feb9 |
| Authentication Administrator | 1 | c4e39bd9-1100-46d3-8c65-fb160da0071f |
| Azure DevOps Administrator | 1 | e3973bdf-4987-49ae-837a-ba8e231c7286 |
| Directory Writers | 1 | 9360feb5-f418-4baa-8175-e2a00bac4301 |
| Entra SOC Identity Responder | 1 | 58f930cc-fcf4-4152-852c-1d7dbf502139 |
| Exchange Administrator | 1 | 29232cdf-9323-42fd-ade2-1d097af3e4de |
| Groups Administrator | 1 | fdd7a751-b60b-444a-984c-02652fe8fa1c |
| Helpdesk Administrator | 1 | 729827e3-9c14-49f7-bb1b-9608f156bbb8 |
| Identity Governance Administrator | 1 | 45d8d3c5-c802-45c6-b32a-1d70b5e1e86e |
| Intune Administrator | 1 | 3a2c62db-5318-420d-8d74-23affee5d9d5 |
| Knowledge Administrator | 1 | b5a8dcf3-09d5-43a9-a639-8e29ef291470 |
| Knowledge Manager | 1 | 744ec460-397e-42ad-a462-8b3f9747a02c |
| Lifecycle Workflows Administrator | 1 | 59d46f88-662b-457b-bceb-5c3809e5908f |
| Directory Synchronization Accounts | 1 | d29b2b05-8046-44ba-8758-1e26182fcf32 |
| On Premises Directory Sync Account | 1 | a92aed5d-d78a-4d16-b381-09adb37eb3b0 |
| Partner Tier1 Support | 1 | 4ba39ca4-527c-499a-b93d-d9b492c50246 |
| Password Administrator | 1 | 966707d0-3269-4727-9be2-8c3a10f19b9d |
| SharePoint Administrator | 1 | f28a1f50-f6e7-4571-818b-6a12f2af6b6c |
| Teams Administrator | 1 | 69091246-20e8-4a56-aa4d-066075b2a7a8 |
| User Administrator | 1 | fe930be7-5e62-47db-91af-98c3a49a38b1 |
| Windows 365 Administrator | 1 | 11451d60-acb2-45eb-a7d6-43d0f0125c13 |
| Yammer Administrator | 1 | 810a2642-a034-447f-a5e8-41beaa378541 |
| Authentication Policy Administrator | 2 | 0526716b-113d-4c15-b2c8-68e3c22b9f80 |
| Azure AD Joined Device Local Administrator | 2 | 9f06204d-73c1-4d4c-880a-6edb90606fd8 |
| Cloud Device Administrator | 2 | 7698a772-787b-4ac8-901f-60d6b08affd2 |
| Global Reader | 2 | f2ef992c-3afb-46b9-b7cf-a126ee74c451 |
| Guest Inviter | 2 | 95e79109-95c0-4d8e-aee3-d01accf2d47b |
| Security Reader | 2 | 5d6b6bb7-de71-4623-b4af-96380a352509 |
| Directory Readers | 2 | 88d8e3e3-8f55-4a1e-953a-9b9898b8876b |
Rôles Azure
| Nom du rôle | Niveau de hiérarchie | GUID |
|---|---|---|
| Owner | 0 | 8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
| User Access Administrator | 0 | 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9 |
| Contributor | 0 | b24988ac-6180-42a0-ab88-20f7382dd24c |
| Role Based Access Control Administrator | 0 | f58310d9-a9f6-439a-9e8d-f62e7b41a168 |
| Reservations Administrator | 0 | a8889054-8d42-49c9-bc1c-52486c10e7cd |
| Security Admin | 1 | fb1c8493-542b-48eb-b624-b4c8fea62acd |
| Virtual Machine Contributor | 1 | 9980e02c-c2be-4d73-94e8-173b1dc7cf3c |
| Virtual Machine Data Access Administrator | 1 | 66f75aeb-eabe-4b70-9f1e-c350c4c9ad04 |
| Virtual Machine Administrator Login | 1 | 1c0163c0-47e6-4577-8991-ea5c82e286e4 |
| Windows Admin Center Administrator Login | 1 | a6333a3e-0164-44c3-b281-7a577aff287f |
| Container Registry Contributor and Data Access Configuration Administrator | 1 | 3bc748fc-213d-45c1-8d91-9da5725539b9 |
| Key Vault Administrator | 1 | 00482a5a-887f-4fb3-b363-3b7fe8e74483 |
| Key Vault Data Access Administrator | 1 | 8b54135c-b56d-4d72-a534-26097cfdc8d8 |
| Key Vault Secrets Officer | 1 | b86a8fe4-44ce-4948-aee5-eccb2c155cd7 |
| Key Vault Secrets User | 1 | 4633458b-17de-408a-b874-0445c86b69e6 |
| Azure Kubernetes Service RBAC Admin | 1 | 3498e952-d568-435e-9b2c-8d77e338d7f7 |
| Azure Kubernetes Service RBAC Cluster Admin | 1 | b1ff04bb-8a4e-4dc4-8eb5-8693973ce19b |
| Azure Arc Kubernetes Admin | 1 | dffb1e0c-446f-4dde-a09f-99eb5cc68b96 |
| Azure Arc Kubernetes Cluster Admin | 1 | 8393591c-06b9-48a2-a542-1bd6b377f6a2 |
| Azure Arc VMware VM Contributor | 1 | b748a06d-6150-4f8a-aaa9-ce3940cd96cb |
| Storage Account Contributor | 1 | 17d1049b-9a84-46fb-8f53-869881c3d3ab |
| Reader | 2 | acdd72a7-3385-48ef-bd42-f606fba81ae7 |
| SecurityReader | 2 | 39bc4728-0917-49c7-9d2c-d95423bc2eb4 |
| Virtual Machine User Login | 3 | fb879df8-f326-4884-b1cf-06f3ad86be52 |
| Desktop Virtualization User | 3 | 1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63 |
Catégorisation des autorisations API
Certaines autorisations API permettent à une application d'élever directement ses privilèges au niveau d'Administrateur général. Par conséquent, plusieurs autorisations API sont catégorisées en différents niveaux de gravité. Cette catégorisation influence le score d'impact des applications auxquelles ces autorisations sont attribuées — soit comme autorisations d'application, soit comme autorisations déléguées pour les utilisateurs.
Autorisation d'application
| Permission | Severité | GUID | |-------------------------------------------------------------|------------|----------------------------------------| | RoleManagement.ReadWrite.Directory | Dangereux | 9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8 | | AppRoleAssignment.ReadWrite.All | Dangereux | 06b708a9-e830-4db3-a914-8e69da51d44f | | Application.ReadWrite.All | Dangereux | 1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9 | | RoleAssignmentSchedule.ReadWrite.Directory | Dangereux | dd199f4a-f148-40a4-a2ec-f0069cc799ec | | PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | Dangereux | 41202f2c-f7ab-45be-b001-85c9728b9d69 | | PrivilegedAccess.ReadWrite.AzureADGroup | Dangereux | 2f6817f8-7b12-4f0f-bc18-eeaf60705a9e | | RoleEligibilitySchedule.ReadWrite.Directory | Dangereux | fee28b28-e1f3-4841-818e-2704dc62245f | | PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | Dangereux | 618b6020-bca8-4de6-99f6-ef445fa4d857 | | Domain.ReadWrite.All | Dangereux | 7e05723c-0bb0-42da-be95-ae9f08a6e53c | | Application.ReadUpdate.All | Dangereux | fc023787-fd04-4e44-9bc7-d454f00c0f0a | | AgentIdentityBlueprint.ReadWrite.All | Élevée | 7fddd33b-d884-4ec0-8696-72cff90ff825 | | AgentIdentityBlueprint.AddRemoveCreds.All | Élevée | 0510736e-bdfb-4b37-9a1f-89b4a074763a | | ADSynchronization.ReadWrite.All | Élevée | ab43b826-2c7a-4aff-9ecd-d0629d0ca6a9 | | EntitlementManagement.ReadWrite.All | Élevée | 9acd699f-1e81-4958-b001-93b1d2506e19 | | Organization.ReadWrite.All | Élevée | 292d869f-3427-49a8-9dab-8c70152b74e9 | | Policy.ReadWrite.PermissionGrant | Élevée | a402ca1c-2696-4531-972d-6e5ee4aa11ea | | RoleManagementPolicy.ReadWrite.AzureADGroup | Élevée | b38dcc4d-a239-4ed6-aa84-6c65b284f97c | | RoleManagementPolicy.ReadWrite.Directory | Élevée | 31e08e0a-d3f7-4ca2-ac39-7343fb83e8ad | | Policy.ReadWrite.AuthenticationMethod | Élevée | 29c18626-4985-4dcd-85c0-193eef327366 | | User.DeleteRestore.All | Élevée | eccc023d-eccf-4e7b-9683-8813ab36cecc | | User.EnableDisableAccount.All | Élevée | 3011c876-62b7-4ada-afa2-506cbbecc68c | | DelegatedPermissionGrant.ReadWrite.All | Élevée | 8e8e4742-1d95-4f68-9d56-6ee75648c72a | | Policy.ReadWrite.ConditionalAccess | Élevée | 01c0a623-fc9b-48e9-b794-0756f8e8f067 | | DeviceManagementConfiguration.ReadWrite.All | Élevée | 9241abd9-d0e6-425a-bd4f-47ba86e767a4 | | DeviceManagementRBAC.ReadWrite.All | Élevée | e330c4f0-4170-414e-a55a-2f022ec2b57b | | Directory.ReadWrite.All | Élevée | 19dbc75e-c2e2-444c-a770-ec69d8559fc7 | | Group.ReadWrite.All | Élevée | 62a82d76-70ea-41e2-9197-370581804d09 | | GroupMember.ReadWrite.All | Élevée | dbaae8cf-10b5-4b86-a4a1-f871c94c6695 | | UserAuthenticationMethod.ReadWrite.All | Élevée | 50483e42-d915-4231-9639-7fdb7fd190e5 | | User-PasswordProfile.ReadWrite.All | Élevée | cc117bb9-00cf-4eb8-b580-ea2a878fe8f7 | | Sites.FullControl.All | Élevée | a82116e5-55eb-4c41-a434-62fe8a61c773 | | Sites.FullControl.All SharePointAPI | Élevée | 678536fe-1083-478a-9c59-b99265e6b0d3 | | Sites.Manage.All SharePointAPI | Élevée | 9bff6588-13f2-4c48-bbf2-ddab62256b36 | | Sites.Read.All SharePointAPI | Élevée | d13f72ca-a275-4b96-b789-48ebcc4da984 | | Sites.ReadWrite.All SharePointAPI | Élevée | fbcd29d2-fcca-4405-aded-518d457caae4 | | Sites.Manage.All | Élevée | 0c0bf378-bf22-4481-8f81-9e89a9b4960a | | Sites.Read.All | Élevée | 332a536c-c7ef-4017-ab91-336970924f0d | | Sites.ReadWrite.All | Élevée | 9492366f-7969-46a4-8d15-ed1a20078fff | | Files.Read.All | Élevée | 01d4889c-1287-42c6-ac1f-5d1e02578ef6 | | Files.ReadWrite.All | Élevée | 75359482-378d-4052-8f01-80520e7db3cd | | DeviceLocalCredential.Read.All | Élevée | db51be59-e728-414b-b800-e0f010df1a79 | | AdministrativeUnit.ReadWrite.All | Élevée | 5eb59dd3-1da2-4329-8733-9dabdc435916 | | UserAuthMethod-HardwareOATH.ReadWrite.All | Élevée | 7e9ebcc1-90aa-4471-8051-e68d6b4e9c89 | | UserAuthMethod-Phone.ReadWrite.All | Élevée | 6e85d483-7092-4375-babe-0a94a8213a58 | | UserAuthMethod-QR.ReadWrite.All | Élevée | 4869299f-18c3-40c8-98f2-222657e67db1 | | UserAuthMethod-TAP.ReadWrite.All | Élevée | 627169a8-8c15-451c-861a-5b80e383de5c | | User.ReadWrite.All | Moyenne | 741f803b-c850-494e-b5df-cde7c675a1ca | | Application.ReadWrite.OwnedBy | Moyenne | 18a4783c-866b-4cc7-a460-3d5e5662c884 | | Chat.Read.All | Moyenne | 6b7d71aa-70aa-4810-a8d9-5d9fb2830017 | | Chat.ReadWrite.All | Moyenne | 294ce7c9-31ba-490a-ad7d-97a7d075e4ed | | Calendars.Read | Moyenne | 798ee544-9d2d-430c-a058-570e29e34338 | | Calendars.ReadWrite | Moyenne | ef54d2bf-783f-4e0f-bca1-3210c0444d99 | | Mail.Read | Moyenne | 810c84a8-4a9e-49e6-bf7d-12d183f40d01 | | Mail.ReadWrite | Moyenne | e2a3a72e-5f79-4c64-b1b1-878b674786c9 | | BitlockerKey.Read.All | Moyenne | 57f1cf28-c0c4-4ec3-9a30-19a2eaaf2f6e | | Mail.Send | Moyenne | b633e1c5-b582-4048-a93e-9f11b44c7e96 | | OnlineMeetings.ReadWrite.All | Moyenne | b8bb2037-6e08-44ac-a4ea-4674e010e2a4 | | CustomSecAttributeAssignment.ReadWrite.All | Moyenne | de89b5e4-5b8f-48eb-8925-29c2b33bd8bd | | ServicePrincipalEndpoint.ReadWrite.All | Moyenne | 89c8469c-83ad-45f7-8ff2-6e3d4285709e | | AgentIdUser.ReadWrite.IdentityParentedBy | Moyenne | 4aa6e624-eee0-40ab-bdd8-f9639038a614 | | AgentIdentity.CreateAsManager | Faible | 4c390976-b2b7-42e0-9187-c6be3bead001 |Autorisation déléguée
| Permission | Severité | GUID |
|---|---|---|
| RoleManagement.ReadWrite.Directory | Dangereux | d01b97e9-cbc0-49fe-810a-750afd5527a3 |
| AppRoleAssignment.ReadWrite.All | Dangereux | 84bccea3-f856-4a8a-967b-dbe0a3d53a64 |
| Application.ReadWrite.All | Dangereux | bdfbf15f-ee85-4955-8675-146e8e5296b5 |
| RoleAssignmentSchedule.ReadWrite.Directory | Dangereux | 8c026be3-8e26-4774-9372-8d5d6f21daff |
| PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup | Dangereux | 06dbc45d-6708-4ef0-a797-f797ee68bf4b |
| PrivilegedAccess.ReadWrite.AzureADGroup | Dangereux | 32531c59-1f32-461f-b8df-6f8a3b89f73b |
| RoleEligibilitySchedule.ReadWrite.Directory | Dangereux | 62ade113-f8e0-4bf9-a6ba-5acb31db32fd |
| PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup | Dangereux | ba974594-d163-484e-ba39-c330d5897667 |
| Domain.ReadWrite.All | Dangereux | 0b5d694c-a244-4bde-86e6-eb5cd07730fe |
| Application.ReadUpdate.All | Dangereux | 0586a906-4d89-4de8-b3c8-1aacdcc0c679 |
| AgentIdentityBlueprint.AddRemoveCreds.All | Élevée | 75b5feb2-bfe7-423f-907d-cc505186f246 |
| AgentIdentityBlueprint.ReadWrite.All | Élevée | 4fd490fc-1467-48eb-8a4c-421597ab0402 |
| EntitlementManagement.ReadWrite.All | Élevée | ae7a573d-81d7-432b-ad44-4ed5c9d89038 |
| Organization.ReadWrite.All | Élevée | 46ca0847-7e6b-426e-9775-ea810a948356 |
| Policy.ReadWrite.PermissionGrant | Élevée | 2672f8bb-fd5e-42e0-85e1-ec764dd2614e |
| RoleManagementPolicy.ReadWrite.AzureADGroup | Élevée | 0da165c7-3f15-4236-b733-c0b0f6abe41d |
| RoleManagementPolicy.ReadWrite.Directory | Élevée | 1ff1be21-34eb-448c-9ac9-ce1f506b2a68 |
| Policy.ReadWrite.AuthenticationMethod | Élevée | 7e823077-d88e-468f-a337-e18f1f0e6c7c |
| User.DeleteRestore.All | Élevée | 4bb440cd-2cf2-4f90-8004-aa2acd2537c5 |
| User.EnableDisableAccount.All | Élevée | f92e74e7-2563-467f-9dd0-902688cb5863 |
| DelegatedPermissionGrant.ReadWrite.All | Élevée | 41ce6ca6-6826-4807-84f1-1c82854f7ee5 |
| Policy.ReadWrite.ConditionalAccess | Élevée | ad902697-1014-4ef5-81ef-2b4301988e8c |
| DeviceManagementConfiguration.ReadWrite.All | Élevée | 0883f392-0a7a-443d-8c76-16a6d39c7b63 |
| DeviceManagementRBAC.ReadWrite.All | Élevée | 0c5e8a55-87a6-4556-93ab-adc52c4d862d |
| Directory.ReadWrite.All | Élevée | c5366453-9fb0-48a5-a156-24f0c49a4b84 |
| Group.ReadWrite.All | Élevée | 4e46008b-f24c-477d-8fff-7bb4ec7aafe0 |
| GroupMember.ReadWrite.All | Élevée | f81125ac-d3b7-4573-a3b2-7099cc39df9e |
| UserAuthenticationMethod.ReadWrite.All | Élevée | b7887744-6746-4312-813d-72daeaee7e2d |
| Sites.FullControl.All | Élevée | 5a54b8b3-347c-476d-8f8e-42d5c7424d29 |
| Sites.Manage.All | Élevée | 65e50fdc-43b7-4915-933e-e8138f11f40a |
| User-PasswordProfile.ReadWrite.All | Élevée | 56760768-b641-451f-8906-e1b8ab31bca7 |
| Sites.Read.All | Élevée | 205e70e5-aba6-4c52-a976-6d2d46c48043 |
| Sites.ReadWrite.All | Élevée | 89fe6a52-be36-487e-b7d8-d061c450a026 |
| Files.Read.All | Élevée | df85f4d6-205c-4ac5-a5ea-6bf408dba283 |
| Files.ReadWrite.All | Élevée | 863451e7-0667-486c-a5d6-d135439485f0 |
| DeviceLocalCredential.Read.All | Élevée | 9917900e-410b-4d15-846e-42a357488545 |
| UserAuthMethod-Phone.ReadWrite | Élevée | 6c4aad61-f76b-46ad-a22c-57d4d3d962af |
| UserAuthMethod-Phone.ReadWrite.All | Élevée | 48c99302-9a24-4f27-a8a7-acef4debba14 |
| UserAuthMethod-Password.ReadWrite.All | Élevée | 7f5b683d-df96-4690-a88d-6e336ed6dc7c |
| UserAuthMethod-Password.ReadWrite | Élevée | 60cce20d-d41e-4594-b391-84bbf8cc31f3 |
| AdministrativeUnit.ReadWrite.All | Élevée | 7b8a2d34-6b3f-4542-a343-54651608ad81 |
| User.ReadWrite.All | Moyenne | 204e0828-b5ca-4ad8-b9f3-f32a958e7cc4 |
| Chat.ReadWrite.All | Moyenne | 7e9a077b-3711-42b9-b7cb-5fa5f3f7fea7 |
| Mail.Read | Moyenne | 570282fd-fa5c-430d-a7fd-fc8dc98a9dca |
| Mail.ReadWrite | Moyenne | 024d486e-b451-40bb-833d-3e66d98c5c73 |
| Mail.Send | Moyenne | e383f46e-2787-4529-855e-0e479a3ffac0 |
| CustomSecAttributeAssignment.ReadWrite.All | Moyenne | ca46335e-8453-47cd-a001-8459884efeae |
| ServicePrincipalEndpoint.ReadWrite.All | Moyenne | 7297d82c-9546-4aed-91df-3d4f0a9b3ff0 |
| BitlockerKey.Read.All | Moyenne | b27a61ec-b99c-4d6a-b126-c4375d08ae30 |
| AiEnterpriseInteraction.Read | Moyenne | 859cceb9-2ec2-4e48-bcd7-b8490b5248a5 |
| Calendars.Read | Moyenne | 465a38f9-76ea-45b9-9f34-9e8b0d4b0b42 |
| Calendars.Read.Shared | Moyenne | 2b9c4092-424d-4249-948d-b43879977640 |
| Calendars.ReadWrite | Moyenne | 1ec239c2-d7c9-4623-a91a-a9775856bb36 |
| Calendars.ReadWrite.Shared | Moyenne | 12466101-c9b8-439a-8589-dd09ee67e8e9 |
| ChannelMessage.Edit | Moyenne | 2b61aa8a-6d36-4b2f-ac7b-f29867937c53 |
| ChannelMessage.ReadWrite | Moyenne | 5922d31f-46c8-4404-9eaf-2117e390a8a4 |
| ChannelMessage.Send | Moyenne | ebf0f66e-9fb1-49e4-a278-222f76911cf4 |
| ChatMessage.Send | Moyenne | 116b7235-7cc6-461e-b163-8e55691d839e |
| Chat.ReadWrite | Moyenne | 9ff7295e-131b-4d94-90e1-69fde507ac11 |
| Contacts.ReadWrite | Moyenne | d56682ec-c09e-4743-aaf4-1a3aac4caa21 |
| Directory.AccessAsUser.All | Moyenne | 0e263e50-5827-48a4-b97c-d940288653c7 |
| Directory.Read.All | Moyenne | 06da0dbc-49e2-44d2-8312-53f166ab848a |
| EAS.AccessAsUser.All | Moyenne | ff91d191-45a0-43fd-b837-bd682c4a0b0f |
| EntitlementMgmt-SubjectAccess.ReadWrite | Moyenne | e9fdcbbb-8807-410f-b9ec-8d5468c7c2ac |
| EWS.AccessAsUser.All | Moyenne | 9769c687-087d-48ac-9cb3-c37dde652038 |
| Files.ReadWrite | Moyenne | 5c28f0bf-8a70-41f1-8ab2-9032436ddb65 |
| IMAP.AccessAsUser.All | Moyenne | 652390e4-393a-48de-9484-05f9b1212954 |
| MailboxItem.ImportExport | Moyenne | df96e8a0-f4e1-4ecf-8d83-a429f822cbd6 |
| MailboxFolder.Read | Moyenne | 52dc2051-4958-4636-8f2a-281d39c6981c |
| MailboxFolder.ReadWrite | Moyenne | 077fde41-7e0b-4c5b-bcd1-e9d743a30c80 |
| MailboxItem.Read | Moyenne | 82305458-296d-4edd-8b0b-74dd74c34526 |
| MailboxSettings.ReadWrite | Moyenne | 818c620a-27a9-40bd-a6a5-d96f7d610b4b |
| Notes.Read | Moyenne | 371361e4-b9e2-4a3f-8315-2a301a3b0a3d |
| Notes.Read.All | Moyenne | dfabfca6-ee36-4db2-8208-7a28381419b3 |
| Notes.ReadWrite | Moyenne | 615e26af-c38a-4150-ae3e-c3b0d4cb1d6a |
| Notes.ReadWrite.All | Moyenne | 64ac0503-b4fa-45d9-b544-71a463f05da0 |
| POP.AccessAsUser.All | Moyenne | d7b7f2d9-0f45-4ea1-9d42-e50810c06991 |
| offline_access | Faible | 7427e0e9-2fba-42fe-b0c0-848c9e6a8182 |
| openid | Faible | 37f7f235-527c-4136-accd-4a02d197296e |
| Faible | 64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0 | |
| profile | Faible | 14dad69e-099b-42c9-810b-d002981feec1 |
| User.Read | Faible | e1fe6dd8-ba31-4d61-89e7-88639da4683d |
Applications d'entreprise Microsoft internes
Par défaut, les applications Microsoft sont filtrées pour simplifier l'examen des applications d'entreprise. Utilisez le commutateur -IncludeMsApps pour les inclure. Les applications des locataires suivants sont considérées comme appartenant à Microsoft :
- f8cdef31-a31e-4b4a-93e4-5f571e91255a
- 72f988bf-86f1-41af-91ab-2d7cd011db47
- 33e01921-4d64-4f8c-a055-5bdaffd5e33d
- cdc5aeea-15c5-4db6-b079-fcadd2505dc2
Vérifications effectuées
Le tableau suivant résume approximativement les vérifications effectuées, ainsi que leur impact sur la notation et l'affichage éventuel d'un avertissement.
Vérifications effectuées
|Zone|Contrôle|Impacte le score|Avertissement affiché| |-|-|-|-| |Groupes|Est un groupe M365 public|Oui|Oui| |Groupes|Est dynamique / Est dynamique avec requête potentiellement dangereuse|Oui|Oui| |Groupes|Rôles Entra (actifs et éligibles)|Oui|Oui| |Groupes|Rôles Azure (actifs et éligibles)|Oui|Oui| |Groupes|Utilisé pour AppRole|Oui|Oui| |Groupes|SP interne/étranger comme propriétaire|Oui|Oui| |Groupes|Dans une AU restreinte|Oui|Oui| |Groupes|Imbriqué dans un groupe privilégié|Oui|Oui| |Groupes|Utilisé dans une CAP|Oui|Oui| |Groupes|Type de groupe|Oui|Non| |Groupes|Sécurité activée|Oui|Non| |Groupes|Membre actif imbriqué|Oui|Non| |Groupes|Propriétaires|Oui|Non| |Groupes|Propriétaires imbriqués|Oui|Non| |Groupes|Invité comme propriétaire|Oui|Oui| |Groupes|Synchronisation sur site|Oui|Non| |Groupes|Membres (transitifs)|Oui|Non| |Groupes|Attribuable à un rôle|Oui|Non| |Groupes|PIM pour groupes : intégré|Non|Non| |Groupes|PIM pour groupes : membre éligible d'un groupe privilégié|Oui|Oui| |Groupes|PIM pour groupes : propriétaire éligible d'un groupe privilégié|Oui|Oui| |Groupes|PIM pour groupes : groupe non protégé imbriqué dans un groupe protégé|Non|Oui| |ApplicationEntreprise|Rôle Entra|Oui|Oui| |ApplicationEntreprise|Rôle Azure|Oui|Oui| |ApplicationEntreprise|Étranger|Oui|Non| |ApplicationEntreprise|Désactivé par Microsoft|Non|Oui| |ApplicationEntreprise|Nom suspect (caractères d'imitation)|Oui|Oui| |ApplicationEntreprise|Autorisation API (application)|Oui|Oui| |ApplicationEntreprise|Autorisation API (déléguée)|Oui|Oui| |ApplicationEntreprise|Informations d'identification|Oui|Oui| |ApplicationEntreprise|Propriétaires|Oui|Oui| |ApplicationEntreprise|Propriété d'inscriptions d'applications|Oui|Oui| |ApplicationEntreprise|Propriété d'autres principaux de service|Oui|Oui| |ApplicationEntreprise|AppLock|(Oui)|Non| |ApplicationEntreprise|L'application possède une inscription d'application|Oui|Oui| |ApplicationEntreprise|Membre / propriétaire de groupes|Oui|(Oui)| |ApplicationEntreprise|AppRoles|Oui|Non| |ApplicationEntreprise|Exigences AppRole|Oui|Non| |ApplicationEntreprise|Inactive|Non|Non| |ApplicationEntreprise|Dernière connexion réussie (jours)|Non|Non| |InscriptionsApplications|Informations d'identification|Oui|Oui| |InscriptionsApplications|Application Entra Connect avec informations d'identification|Oui|Oui| |InscriptionsApplications|Application Entra Connect avec plusieurs certificats|Oui|Oui| |InscriptionsApplications|AppRoles|Oui|Non| |InscriptionsApplications|URL de redirection d'application|Non|Non| |InscriptionsApplications|AppLock|Oui|Non| |InscriptionsApplications|Propriétaires|Oui|Oui| |InscriptionsApplications|Administrateurs d'applications (cloud) limités|Non|Non| |InscriptionsApplications|Privilèges du SP correspondant|Oui|Non| |InscriptionsApplications|Audience de connexion|Non|Non| |IdentitéGérée|Propriétaires|Oui|Oui| |IdentitéGérée|Rôle Entra|Oui|Oui| |IdentitéGérée|Rôle Azure|Oui|Oui| |IdentitéGérée|API (application)|Oui|Oui| |IdentitéGérée|Propriété d'inscriptions d'applications|Oui|Oui| |IdentitéGérée|Propriété d'autres principaux de service|Oui|Oui| |IdentitéGérée|Membre / propriétaire de groupes|Oui|(Oui)| |Utilisateur|Rôles Entra (actifs et éligibles)|Oui|Oui| |Utilisateur|Rôles Azure (actifs et éligibles)|Oui|Oui| |Utilisateur|Appartenance à un groupe privilégié (active et éligible)|Oui|Oui| |Utilisateur|Propriété d'un groupe privilégié (active et éligible)|Oui|Oui| |Utilisateur|Utilisateur synchronisé Entra Connect|Oui|Oui| |Utilisateur|Utilisateur synchronisé Entra Connect Cloud Sync|Oui|Oui| |Utilisateur|Propriété d'inscription d'application|Oui|Oui| |Utilisateur|Propriété d'application d'entreprise|Oui|Oui| |Utilisateur|Aucun facteur MFA enregistré|Oui|Oui| |Utilisateur|Est protégé|Oui|Non| |Utilisateur|Inactif|Non|Non| |Utilisateur|Membre / propriétaire de groupes|Oui|(Oui)| |Utilisateur|Synchronisé depuis le site local|Oui|Non| |IdentitéAgent|Utilisateurs agents liés|Oui|Non| |IdentitéAgent|Origine étrangère du principal du blueprint|Oui|Oui| |IdentitéAgent|Autorisation API effective (application)|Oui|Oui| |IdentitéAgent|Autorisation API effective (déléguée)|Oui|Oui| |IdentitéAgent|Rôle Entra|Oui|Oui| |IdentitéAgent|Rôle Azure|Oui|Oui| |IdentitéAgent|Propriété d'inscriptions d'applications|Oui|Oui| |IdentitéAgent|Propriété d'autres principaux de service|Oui|Oui| |IdentitéAgent|Membre / propriétaire de groupes|Oui|(Oui)| |PrincipalBlueprintIdentitéAgent|Identités agents liées|Oui|Non| |PrincipalBlueprintIdentitéAgent|Utilisateurs agents liés|Oui|Non| |PrincipalBlueprintIdentitéAgent|Autorisation API configurée (application)|Non|Non| |PrincipalBlueprintIdentitéAgent|Autorisation API configurée (déléguée)|Non|Non| |PrincipalBlueprintIdentitéAgent|Origine étrangère du blueprint parent|Oui|Non| |PrincipalBlueprintIdentitéAgent|Rôle Entra|Non|Non| |PrincipalBlueprintIdentitéAgent|Rôle Azure|Non|Non| |PrincipalBlueprintIdentitéAgent|Nom suspect (caractères d'imitation)|Oui|Oui| |BlueprintIdentitéAgent|Principaux du blueprint|Oui|Non| |BlueprintIdentitéAgent|Identités agents liées|Oui|Non| |BlueprintIdentitéAgent|Utilisateurs agents liés|Oui|Non| |BlueprintIdentitéAgent|Autorisations API héritables|Oui|Non| |BlueprintIdentitéAgent|Informations d'identification fédérées|Oui|Non| |BlueprintIdentitéAgent|Secrets / certificats|Oui|Oui| |BlueprintIdentitéAgent|Propriétaires / sponsors|Oui|(Oui)| |PackagesAccès|Rôles Entra accordés|Oui|Non| |PackagesAccès|Rôles Azure accordés|Oui|Non| |PackagesAccès|Groupes accordés|Oui|Non| |PackagesAccès|Rôles d'application accordés|Oui|Non| |PackagesAccès|Autorisations API accordées (application)|Oui|Non| |PackagesAccès|Autorisations API accordées (déléguée)|Oui|Non| |PackagesAccès|Accès SharePoint accordé|Oui|Non| |PackagesAccès|Auto-demande large sans approbation|Oui|Oui| |PackagesAccès|Accès persistant sans expiration ni révision d'accès|Non|Non| |PackagesAccès|Règles d'auto-affectation dangereuses|Oui|Oui| |PackagesAccès|Auto-demande via des cibles de groupes non protégés|Oui|Oui| |PackagesAccès|Affectation large pour compte non utilisateur sans approbation|Oui|Non| |PackagesAccès|Affectations de principaux de service|Oui|Non| |Catalogues|Métadonnées, état et visibilité externe du catalogue|Non|Non| |Catalogues|Ressources du catalogue|Non|Non| |Catalogues|Ressources configurables dans de nouveaux packages d'accès|Oui|Non| |Catalogues|Ressources et rôles configurés dans des packages d'accès existants|Oui|Non| |Catalogues|Ressources de catalogue non configurées|Oui|Non| |Catalogues|Affectations RBAC du catalogue|Oui|Oui| |CAP|Aucune politique ou politique mal configurée pour l'authentification héritée|-|Oui| |CAP|Aucune politique ou politique mal configurée pour bloquer le flux de code d'appareil|-|Oui| |CAP|Aucune politique ou politique mal configurée pour limiter les enregistrements d'informations de sécurité|-|Oui| |CAP|Aucune politique ou politique mal configurée pour cibler les connexions risquées|-|Oui| |CAP|Aucune politique ou politique mal configurée pour cibler le risque utilisateur|-|Oui| |CAP|Aucune politique imposant la MFA|-|Oui| |CAP|Aucune politique imposant la force d'authentification|-|Oui| |CAP|Inclusion de rôles ayant des affectations limitées|-|Oui| |ParamètresPIM|Contexte d'authentification|-|Oui| |ParamètresPIM|CAP liée au contexte d'authentification : fréquence de connexion|-|Oui| |ParamètresPIM|CAP liée au contexte d'authentification : MFA ou force d'authentification|-|Oui| |ParamètresPIM|CAP liée au contexte d'authentification : activée|-|Oui| |ParamètresPIM|CAP liée au contexte d'authentification : utilisateurs/groupes/réseaux inclus/exclus|-|Oui| |ParamètresPIM|CAP liée au contexte d'authentification : conditions|-|Oui| |ParamètresPIM|MFA d'activation|-|Non| |ParamètresPIM|Justification ou ticket d'activation|-|Oui| |ParamètresPIM|Durée d'activation|-|Oui| |ParamètresPIM|Approbation d'activation|-|Oui| |ParamètresPIM|Expiration de l'affectation éligible|-|Non| |ParamètresPIM|Expiration de l'affectation active|-|Oui| |ParamètresPIM|MFA des affectations actives|-|Non| |ParamètresPIM|Notification d'activation de rôle|-|Non| |ParamètresPIM|Notification d'affectation de rôle (active)|-|Non| |ParamètresPIM|Notification d'affectation de rôle (éligible)|-|Non|🛡️ Détection
EntraFalcon n'est pas furtif et peut être détecté dans les environnements où l'API Microsoft Graph et l'activité de connexion Azure sont journalisées et surveillées.
Authentification par défaut utilisée
Lorsqu'une énumération complète est effectuée avec les flux non-BroCi, l'outil initie généralement quatre connexions interactives et une connexion non interactive. Selon le flux et la prise en charge des points de terminaison, une connexion interactive supplémentaire peut se produire pour les points de terminaison de politique des résultats de sécurité.
| ID d'application | Type | ID de ressource | Objectif |
|---|---|---|---|
| 1b730954-1685-4b74-9bfd-dac224a7b894 | Interactif | 00000003-0000-0000-c000-000000000000 | Récupérer les données PIM pour groupes |
| 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | Interactif | 00000003-0000-0000-c000-000000000000 | Récupérer les données générales des objets du locataire |
| 51f81489-12ee-4a9e-aaae-a2591f45987d | Interactif | 00000003-0000-0000-c000-000000000000 | Récupérer les données PIM pour les rôles Entra / Azure |
| 80ccca67-54bd-44ab-8625-4b79c4dc7775 | Interactif | 00000003-0000-0000-c000-000000000000 | Récupérer le contexte de politique des résultats de sécurité |
| 04b07795-8ddb-461a-bbee-02f9e1bf7b46 | Non interactif | 797f4846-ba00-4fd7-ba43-dac1f8f63013 | Récupérer les données d'affectation de rôle IAM Azure |
Authentification BroCi utilisée
Lorsque l'authentification BroCi est utilisée, une seule connexion interactive se produit.
| ID d'application | Type | ID de ressource | Objectif |
|---|---|---|---|
| c44b4083-3bb0-49c1-b47d-974e53cbdf3c | Interactif | 00000003-0000-0000-c000-000000000000 | Authentification initiale pour utiliser le jeton d'actualisation pour BroCi |
| 50aaa389-5a33-4f1a-91d7-2c45ecd8dac8 | Non interactif | 00000003-0000-0000-c000-000000000000 | Récupérer les données PIM pour groupes |
| 50aaa389-5a33-4f1a-91d7-2c45ecd8dac8 | Non interactif | 01fc33a7-78ba-4d2f-a4b7-768e336e890e | Récupérer les données PIM pour groupes |
| 74658136-14ec-4630-ad9b-26e160ff0fc6 | Non interactif | 00000003-0000-0000-c000-000000000000 | Récupérer les données générales des objets du locataire |
| 74658136-14ec-4630-ad9b-26e160ff0fc6 | Non interactif | 797f4846-ba00-4fd7-ba43-dac1f8f63013 | Récupérer les données d'affectation de rôle IAM Azure |
Lorsque BroCi est activé, EntraFalcon interroge également api.azrbac.mspim.azure.com pour PIM pour groupes.
Détails
Pour la collecte de données, l'outil envoie plusieurs requêtes à l'API Microsoft Graph et, éventuellement, à l'API Azure ARM—une ou plusieurs par objet. Lorsque cela est possible, il exploite le point de terminaison Batch de Graph pour réduire le nombre de requêtes individuelles et améliorer l'efficacité.
Les connexions interactives utilisent le User-Agent du navigateur. Toutes les connexions non interactives et les requêtes API (Graph et ARM) utilisent EntraFalcon comme User-Agent, sauf modification avec le paramètre -UserAgent.
Pour détecter l'utilisation d'EntraFalcon, les équipes bleues peuvent surveiller les ID d'application répertoriés dans les journaux de connexion, rechercher des volumes inhabituels de trafic API Graph, ou analyser le comportement d'actualisation des jetons et des requêtes par lots.
🕳️ Limitations connues
- RBAC M365 : non évalué
- RBAC Defender for Endpoint : non évalué
- Couverture utilisateur Conditional Access : la couverture utilisateur effective et
-ExportCapUncoveredUserssont des calculs au mieux basés sur les utilisateurs énumérés, les membres de groupes, les affectations de rôles et les catégories d'utilisateurs externes résolubles. Les sélecteurs d'utilisateurs externes ne sont résolus que pour les utilisateurs invités du locataire correspondant àb2bCollaborationGuest. D'autres types d'utilisateurs externes ou des utilisateurs externes avec des locataires externes spécifiés peuvent rendre les valeurs de couverture approximatives. Les chemins PIM éligibles sont signalés comme couverture potentielle et ne sont pas comptés comme actuellement couverts. L'exportation CSV est limitée aux politiques activées et aux utilisateurs activés. - Environnement cloud : les plateformes cloud évoluent rapidement. Par conséquent, certaines évaluations ou détections peuvent devenir obsolètes ou inexactes au fil du temps. De plus, les locataires deviennent de plus en plus complexes, et des configurations spécifiques ou des combinaisons de paramètres peuvent conduire à des résultats inexacts. Bien que nous nous efforcions de maintenir EntraFalcon à jour, il est toujours recommandé de valider les résultats de manière indépendante et de ne pas se fier uniquement à l'outil pour des décisions critiques.
- Rapports HTML : les rapports HTML générés ne mettent pas en œuvre de mécanismes de protection contre le cross-site scripting (XSS).
📦 Outils externes intégrés
Les sous-modules suivants ont été forké et intégrés dans EntraFalcon pour prendre en charge l'authentification, l'interaction avec Microsoft Graph et les graphiques de rapports :