Un nouveau malware baptisé HollowGraph détourne l’API Microsoft Graph pour dissimuler son canal de commande et contrôle (C2) directement dans Microsoft 365 : les instructions et les fichiers volés sont cachés dans des événements de calendrier datés de… 2050. Pour une PME-ETI qui vit dans Microsoft 365, ce C2 Microsoft Graph est redoutable, car le trafic malveillant se confond avec le trafic légitime vers graph.microsoft.com. Voici un tutoriel concret pour détecter et bloquer cet abus de l’API Graph.
Pourquoi le C2 Microsoft Graph passe sous les radars
La force de HollowGraph tient à un principe simple : il n’ouvre aucune connexion vers une infrastructure suspecte. Tout transite par l’API Microsoft Graph, l’interface que vos applications Microsoft 365 utilisent en permanence. Résultat :
- Le trafic C2 sort vers graph.microsoft.com, un domaine Microsoft de confiance rarement filtré.
- Les données exfiltrées et les ordres reçus sont stockés dans des événements de calendrier, des brouillons de messages ou des notes, invisibles pour l’utilisateur.
- Les dates lointaines (2050) placent ces objets hors de la vue par défaut des agendas, limitant toute découverte fortuite.
Le point d’entrée reste classique : un jeton OAuth volé ou une application malveillante à laquelle un employé a accordé des permissions. La détection ne peut donc pas s’appuyer sur un pare-feu réseau seul — elle doit vivre dans les journaux Microsoft 365.
Étape 1 — Activer les bons journaux Microsoft 365
Sans journalisation, aucune détection du C2 Microsoft Graph n’est possible. Vérifiez ces trois sources :
- Unified Audit Log : dans Microsoft Purview, confirmez que l’audit est activé (il l’est par défaut depuis 2023, mais vérifiez-le).
- Entra ID — journaux de connexion : activez la rétention et l’export vers un SIEM des journaux Sign-in et Audit.
- Journaux d’activité des applications : suivez les consentements OAuth et les octrois de permissions applicatives.
Étape 2 — Chasser les consentements OAuth abusifs
La plupart des attaques par abus de l’API Graph commencent par une application sur-privilégiée. Dans Entra ID, listez les applications d’entreprise et recherchez :
- Des permissions élevées comme Mail.ReadWrite, Calendars.ReadWrite, Files.ReadWrite.All ou MailboxSettings.ReadWrite.
- Des applications récemment consenties par des utilisateurs standards plutôt que par un administrateur.
- Des éditeurs non vérifiés ou des noms d’application génériques imitant un service légitime.
Requête KQL utile dans Microsoft Sentinel ou Defender pour repérer les octrois suspects :
AuditLogs | where OperationName has "Consent to application" | project TimeGenerated, InitiatedBy, TargetResources
Étape 3 — Détecter les objets calendrier et messages anormaux
Le cœur de HollowGraph est le stockage de données dans des objets Microsoft 365. Traquez ces signaux :
- Des événements de calendrier avec des dates aberrantes (années 2040-2050) ou des corps de message encodés en base64.
- Des créations et suppressions rapides d’événements ou de brouillons via l’API, visibles dans l’Unified Audit Log (
Create,Update,MailItemsAccessed). - Un volume anormal d’appels Graph provenant d’une seule application ou d’un seul jeton en dehors des heures ouvrées.
Étape 4 — Réduire la surface d’attaque
La détection ne suffit pas : verrouillez le consentement applicatif pour couper l’abus de l’API Graph à la racine.
- Passez le consentement utilisateur en mode « administrateur uniquement » ou limitez-le aux applications d’éditeurs vérifiés à faible risque.
- Activez le workflow de demande de consentement admin pour garder la main sur chaque nouvelle application.
- Appliquez l’accès conditionnel et le principe du moindre privilège sur les permissions Graph.
- Révoquez et faites tourner régulièrement les jetons OAuth ; surveillez les sessions à durée de vie anormalement longue.
Un réflexe : surveiller la confiance, pas seulement le périmètre
HollowGraph illustre une tendance de fond : les attaquants n’attaquent plus votre réseau, ils abusent des services de confiance que vous utilisez déjà. La même logique vaut pour le phishing device code sur Microsoft 365 ou les attaques par identité qui ouvrent la voie aux ransomwares. Pour une PME-ETI, la défense passe par la journalisation Microsoft 365, la gouvernance des consentements OAuth et une chasse régulière aux objets anormaux.