Expert Cybersécurité & IA
Techniques de Hacking / OAuth & OIDC Security

Abus d'OAuth/OIDC : Consent Grant, Device Code, Token Replay — Détections SIEM & Durcissement des Identity Providers

Par Ayi NEDJIMI 23 octobre 2025 Lecture : 60 min
#OAuth2.0 #OIDC #SIEM #AzureAD #TokenSecurity

Auteur : Ayi NEDJIMI    Date : 23 octobre 2025


Introduction

OAuth 2.0 et OpenID Connect (OIDC) sont devenus les protocoles de facto pour l'authentification et l'autorisation dans les environnements cloud modernes. Adoptés massivement par les entreprises utilisant Microsoft 365, Google Workspace, Salesforce et d'innombrables applications SaaS, ces protocoles offrent une expérience utilisateur fluide et une sécurité théoriquement robuste. Cependant, leur complexité inhérente et leur omniprésence en font des cibles privilégiées pour les attaquants sophistiqués.

Cet article examine en profondeur les principales techniques d'abus d'OAuth/OIDC exploitées par les acteurs malveillants : les attaques par consentement illégitime (Illicit Consent Grant), l'exploitation du flux Device Code, le rejeu de tokens (Token Replay), ainsi que d'autres vecteurs d'attaque émergents. Nous explorerons comment détecter ces activités malveillantes via des solutions SIEM et présenterons des stratégies complètes de durcissement des Identity Providers (IdP).

Destiné aux architectes de sécurité, aux analystes SOC, aux administrateurs d'identité et aux RSSI, ce document fournit une compréhension technique approfondie des menaces, des indicateurs de compromission, des règles de détection pratiques et des recommandations de configuration pour réduire significativement la surface d'attaque.


Comprendre OAuth 2.0 et OpenID Connect

Architecture et acteurs

OAuth 2.0 est un framework d'autorisation qui permet à des applications tierces d'obtenir un accès limité aux ressources d'un utilisateur sans exposer ses identifiants. OpenID Connect (OIDC) est une couche d'identité construite au-dessus d'OAuth 2.0, ajoutant des capacités d'authentification.

Acteurs principaux :

Flux OAuth 2.0 courants :

Tokens et permissions

Access Token : Jeton donnant accès aux ressources protégées. Format généralement JWT (JSON Web Token) ou opaque. Durée de vie courte (minutes à heures).

Refresh Token : Jeton longue durée permettant d'obtenir de nouveaux access tokens sans réauthentification. Hautement sensible.

ID Token (OIDC) : Jeton contenant les informations d'identité de l'utilisateur (claims). Toujours au format JWT signé.

Scopes et Permissions : Les scopes définissent les permissions accordées. Exemples dans l'écosystème Microsoft 365 :

Les scopes se divisent en deux catégories critiques :

Mécanisme de consentement

Le consentement OAuth est le moment où l'utilisateur autorise explicitement une application à accéder à ses ressources avec des permissions spécifiques. Cette interface de consentement affiche le nom de l'application, l'éditeur/développeur, les permissions demandées et la portée de l'accès.

Consentement utilisateur : Pour les permissions déléguées non sensibles, n'importe quel utilisateur peut consentir.

Consentement administrateur : Pour les permissions élevées ou les permissions d'application, seul un administrateur peut accorder le consentement.

Cette dichotomie crée une surface d'attaque : les attaquants exploitent la confiance des utilisateurs pour obtenir des consentements illégitimes, ou compromettent des comptes administrateurs pour obtenir des permissions étendues.


Attaques par consentement illégitime

Description de l'attaque

L'attaque par consentement illégitime (Illicit Consent Grant) exploite le mécanisme de consentement OAuth pour obtenir un accès persistant aux ressources d'un utilisateur sans compromettre directement ses identifiants. Cette technique, popularisée par des groupes APT, est particulièrement insidieuse car elle contourne les protections traditionnelles (MFA, mot de passe complexe, etc.).

Déroulement typique :

  1. Phase 1 - Préparation : L'attaquant enregistre une application malveillante auprès de l'IdP. Cette application demande des permissions sensibles comme Mail.Read, Files.ReadWrite.All, ou Contacts.Read.
  2. Phase 2 - Phishing : La victime reçoit un email de phishing avec un lien vers l'URL d'autorisation OAuth de l'application malveillante.
  3. Phase 3 - Consentement : La victime clique sur le lien, est redirigée vers la véritable page de consentement de Microsoft/Google, s'authentifie (avec MFA si configuré), et voit une interface demandant le consentement pour l'application.
  4. Phase 4 - Exploitation : Une fois le consentement accordé, l'attaquant obtient un refresh token longue durée lui permettant d'accéder aux ressources de la victime sans nouvelle authentification.
  5. Phase 5 - Actions malveillantes : L'attaquant peut lire les emails, exfiltrer des fichiers, accéder aux contacts, ou utiliser l'accès comme point d'entrée pour une compromission plus large.

Indicateurs de compromission

Caractéristiques suspectes à surveiller :

Détection via Microsoft Sentinel

Règle KQL (Kusto Query Language) :

AuditLogs
| where OperationName == "Consent to application"
| extend AppDisplayName = tostring(TargetResources[0].displayName)
| extend AppId = tostring(TargetResources[0].id)
| extend UserPrincipalName = tostring(InitiatedBy.user.userPrincipalName)
| extend IPAddress = tostring(InitiatedBy.user.ipAddress)
| extend Permissions = tostring(TargetResources[0].modifiedProperties)
| where Permissions contains "Mail.Read"
    or Permissions contains "Files.ReadWrite"
    or Permissions contains "Contacts.Read"
| where AppDisplayName !startswith "Microsoft"
| project TimeGenerated, UserPrincipalName, AppDisplayName, AppId,
          IPAddress, Permissions
| order by TimeGenerated desc

Attaque par Device Code Flow

Fonctionnement et exploitation

Le Device Code Flow est conçu pour les appareils avec interface limitée (smart TV, imprimantes, CLI tools). Un attaquant peut créer une application malveillante utilisant Device Code Flow et envoyer le code à une victime via phishing :

Avantages pour l'attaquant :

Détection et mitigation

Règle de détection Azure Sentinel :

SigninLogs
| where AuthenticationProtocol == "deviceCode"
| extend AppDisplayName = tostring(AppDisplayName)
| extend UserPrincipalName = tostring(UserPrincipalName)
| extend IPAddress = tostring(IPAddress)
| where AppDisplayName !startswith "Microsoft"
    and AppDisplayName !startswith "Azure"
| summarize
    FirstSeen = min(TimeGenerated),
    LastSeen = max(TimeGenerated),
    LoginCount = count(),
    UniqueUsers = dcount(UserPrincipalName)
    by AppDisplayName
| where UniqueUsers > 5
| order by UniqueUsers desc

Mitigation :


Token Replay et Token Theft

Vecteurs de vol de tokens

Les tokens OAuth (Access Token, Refresh Token) peuvent être volés via plusieurs vecteurs :

Détection d'anomalies

Anomalies à détecter :

SigninLogs
| where ResultType == "0"
| extend Location1 = tostring(LocationDetails.city)
| extend Country1 = tostring(LocationDetails.countryOrRegion)
| join kind=inner (
    SigninLogs
    | where ResultType == "0"
    | extend Location2 = tostring(LocationDetails.city)
    | extend Country2 = tostring(LocationDetails.countryOrRegion)
) on UserPrincipalName
| where TimeGenerated1 < TimeGenerated
| where Country1 != Country2
| extend TimeDiff = datetime_diff('hour', TimeGenerated, TimeGenerated1)
| where TimeDiff < 1
| project UserPrincipalName, Location1, Location2, Country1, Country2,
          TimeGenerated1, TimeGenerated, TimeDiff

Durcissement et recommandations

Configuration Azure AD / Entra ID

1. Restreindre le consentement utilisateur :

2. Implémenter Conditional Access pour applications OAuth :

3. Activer Continuous Access Evaluation (CAE) :

4. Utiliser Token Protection (Certificate-bound tokens) :

Stratégies de monitoring

Métriques clés à surveiller :

Formation et sensibilisation

Points clés à communiquer aux utilisateurs :


Conclusion

Les attaques ciblant OAuth 2.0 et OpenID Connect représentent une menace croissante et sophistiquée dans les environnements cloud modernes. Contrairement aux attaques traditionnelles visant directement les identifiants, les abus OAuth exploitent les mécanismes de confiance inhérents aux flux d'autorisation légitimes, rendant leur détection particulièrement délicate.

Une défense efficace repose sur une approche multi-couches combinant :

Les organisations utilisant Microsoft 365, Google Workspace ou d'autres plateformes cloud doivent impérativement auditer leurs configurations OAuth, implémenter les bonnes pratiques présentées dans cet article, et établir des capacités de détection robustes. La complexité croissante des menaces nécessite une vigilance constante et une adaptation continue des stratégies de défense.


Ressources et références

🚀 Passez à l'Action Dès Aujourd'hui

Ne laissez pas votre infrastructure exposée. Nos consultants certifiés réalisent des audits de sécurité approfondis en simulant les techniques présentées dans cet article. Vous recevez un rapport détaillé avec un plan de remédiation priorisé.

📊 Livrable : Rapport d'audit complet + Roadmap de sécurisation + Session de restitution

Demander un Devis Personnalisé

📚 Ressources & Références Officielles

Documentations officielles, outils reconnus et ressources de la communauté

Besoin d'une expertise en cybersécurité ?

Protégez votre infrastructure Active Directory contre les attaques avancées

Nos Services