← Tous les articles Série : Audit Microsoft 365 · 2/4

Audit Microsoft 365 : identité et accès

La grande majorité des compromissions Microsoft 365 commencent par un compte. Voici les vérifications d’identité que nous faisons en premier, et comment les reproduire.

Les administrateurs généraux

Un administrateur général peut tout faire dans le tenant. Leur nombre doit être faible : Microsoft recommande moins de cinq, et au moins deux pour éviter de perdre l’accès. Ces comptes doivent être distincts des comptes utilisés au quotidien pour le courriel et la navigation.

PowerShell
# Modèle de rôle « Administrateur général » (identique dans tous les tenants)
$ga = Get-MgDirectoryRole -Filter "RoleTemplateId eq '62e90394-69f5-4237-9190-012177145e10'"

Get-MgDirectoryRoleMember -DirectoryRoleId $ga.Id |
  ForEach-Object { $_.AdditionalProperties.userPrincipalName }

La couverture MFA

La question n’est pas seulement « la MFA est-elle activée ? », mais « qui n’a encore enregistré aucune méthode ? ». Un compte sans méthode enregistrée est un compte qu’un attaquant peut parfois enrôler à sa place.

PowerShell
Get-MgReportAuthenticationMethodUserRegistrationDetail -All |
  Where-Object { -not $_.IsMfaRegistered } |
  Select-Object UserPrincipalName, IsAdmin |
  Sort-Object IsAdmin -Descending

Nous trions par IsAdmin pour faire ressortir les comptes privilégiés en premier. Un administrateur sans MFA est toujours un constat critique.

Paramètres par défaut et accès conditionnel

La MFA doit être exigée, pas seulement disponible. Elle l’est soit par les paramètres de sécurité par défaut (pour les petits tenants sans licence P1), soit par des politiques d’accès conditionnel :

PowerShell
# Paramètres de sécurité par défaut (security defaults)
Get-MgPolicyIdentitySecurityDefaultEnforcementPolicy | Select-Object IsEnabled

# Politiques d'accès conditionnel et leur état
Get-MgIdentityConditionalAccessPolicy | Select-Object DisplayName, State

Si les paramètres par défaut sont désactivés et qu’aucune politique n’est à l’état enabled, rien n’impose la MFA. Méfiez-vous aussi des politiques laissées en mode enabledForReportingButNotEnforced : elles journalisent, mais ne bloquent rien.

L’authentification héritée

Les anciens protocoles (IMAP, POP, SMTP avec authentification de base, ActiveSync ancien) ne prennent pas en charge la MFA. Microsoft a retiré l’authentification de base pour la plupart des protocoles Exchange Online, mais une politique explicite de blocage reste la meilleure garantie. Cette commande cherche une politique active qui bloque les « autres clients » :

PowerShell
Get-MgIdentityConditionalAccessPolicy | Where-Object {
    $_.State -eq 'enabled' -and
    $_.Conditions.ClientAppTypes -contains 'other' -and
    $_.GrantControls.BuiltInControls -contains 'block'
} | Select-Object DisplayName

Aucun résultat signifie qu’aucune politique d’accès conditionnel ne bloque explicitement ces clients. Vérifiez alors le journal des connexions Entra, filtré sur l’application cliente, pour voir s’ils sont encore utilisés.

Les comptes invités

Les invités s’accumulent au fil des projets et sont rarement retirés. Un compte invité oublié reste une porte d’entrée vers vos équipes Teams et vos sites SharePoint.

PowerShell
Get-MgUser -All -Filter "userType eq 'Guest'" `
  -Property DisplayName, Mail, CreatedDateTime, SignInActivity |
  Select-Object DisplayName, Mail, CreatedDateTime,
    @{ n = 'LastSignIn'; e = { $_.SignInActivity.LastSignInDateTime } } |
  Sort-Object LastSignIn

Les invités qui ne se sont jamais connectés, ou pas depuis plusieurs mois, sont de bons candidats à une révision. Les revues d’accès d’Entra ID permettent d’automatiser ce ménage.

Le consentement des applications

Si les utilisateurs peuvent accorder eux-mêmes des permissions à des applications tierces, un simple lien d’hameçonnage peut donner à un attaquant un accès durable aux courriels, sans mot de passe :

PowerShell
(Get-MgPolicyAuthorizationPolicy).DefaultUserRolePermissions.PermissionGrantPoliciesAssigned

Si le résultat contient ManagePermissionGrantsForSelf.microsoft-user-default-legacy, les utilisateurs peuvent consentir à presque n’importe quelle application. Nous recommandons de limiter le consentement aux éditeurs vérifiés et à des permissions à faible risque, ou de le désactiver et d’activer le flux de demande d’approbation par un administrateur.

Besoin d’un audit de votre tenant Microsoft 365 ?

Nous appliquons cette méthodologie chez vous, en lecture seule, et vous remettons un plan d’action priorisé.

Contactez-nous