Aller au contenu

Playbook d'investigation Exchange online

Lorsqu’il analyse une boîte aux lettres Exchange Online compromise, l’enquêteur doit comprendre comment les messages sont créés, consultés, altérés et purgés au sein du pilote de stockage Exchange (Store Driver).

graph TD
subgraph ClientAccess ["Couche d'accès client"]
MAPI["Outlook Desktop (MAPI-HTTP)"]
OWA["Outlook sur le web (REST/HTTP)"]
Mobile["Outlook Mobile / ActiveSync"]
API["EWS / API Microsoft Graph"]
end
subgraph MailboxStore ["Architecture de stockage de la boîte aux lettres"]
ActiveFolder["Sous-arbre IPM visible<br/>(Boîte de réception, Éléments envoyés, Dossiers)"]
RecoverableItems["Partition Recoverable Items (Non-IPM)<br/>(Deletions, Purges, DiscoveryHolds, Versions)"]
SubstrateFolder["Dossiers cachés Substrate<br/>(TeamsChat, Historique des conversations)"]
end
subgraph AuditPipeline ["Télémétrie & Audit Purview"]
MIA["MailItemsAccessed (Sync & Bind)"]
MessageOps["Send, SendAs, Move, SoftDelete, HardDelete"]
MsgTrace["Exchange Message Trace (Journaux MTA)"]
end
ClientAccess --> ActiveFolder
ActiveFolder -->|Suppression| RecoverableItems
ClientAccess --> AuditPipeline

Opérations d’audit critiques sur les boîtes aux lettres

Section intitulée « Opérations d’audit critiques sur les boîtes aux lettres »
OpérationAction déclenchanteChamps clés du journalPortée forensique
MailItemsAccessedLecture via OWA/Mobile ou synchronisation MAPI/EWSOperationProperties (IsThrottled), ItemCount, InternetMessageIdDistingue la lecture unitaire du siphonage massif de la boîte
Send / SendAsMessage envoyé par le propriétaire ou un déléguéItem, SendAsUser, Recipients, SubjectIdentifie les courriels d’escroquerie ou de phishing émis
MoveToDeletedItemsMessage déplacé vers les éléments supprimésFolderPathName, AffectedItemsDissimulation d’alertes de sécurité ou de notifications bancaires
SoftDeleteSuppression depuis les éléments supprimés (Deletions)AffectedItems, ItemCountPalier 1 de suppression ; élément toujours récupérable
HardDeletePurge définitive (Shift+Suppr ou purge de Deletions)AffectedItems, ItemCountPalier 2 de suppression ; conservé sous Purges ou DiscoveryHolds si LitHold actif
SearchQueryPerformedRecherche textuelle dans la boîte aux lettresQueryText, SearchApplicationRévèle les cibles d’intérêt et priorités de l’attaquant

2. Décryptage de MailItemsAccessed : sync versus bind

Section intitulée « 2. Décryptage de MailItemsAccessed : sync versus bind »

Comme détaillé dans la Fiche 17 : audit de boîte aux lettres & MailItemsAccessed, l’événement MailItemsAccessed se décline en deux modes fondamentaux d’interaction :

flowchart TD
MIA[Événement MailItemsAccessed] --> Type{Type d'opération}
Type -->|Bind| BindProc[Lecture unitaire via OWA / Mobile]
Type -->|Sync| SyncProc[Synchronisation en masse via MAPI / EWS / ActiveSync]
BindProc --> BindAudit[Le journal enregistre l'InternetMessageId et le Subject exacts]
SyncProc --> CheckThrottle{IsThrottled == True ?}
CheckThrottle -->|Non| SyncList[Liste complète des InternetMessageIds dans le bloc Folders]
CheckThrottle -->|Oui| ThrottleWarning[Throttling actif ! Le dossier entier doit être présumé compromis]

1. Opérations de type bind (OperationType = Bind)

Section intitulée « 1. Opérations de type bind (OperationType = Bind) »
  • Déclenché lorsqu’un attaquant ouvre un courriel individuel dans Outlook Web (OWA) ou le prévisualise dans un client.
  • L’enregistrement UAL contient l’InternetMessageId, l’objet (Subject) et le dossier de stockage du message consulté.
  • Valeur probante : précision maximale ; prouve sans ambiguïté quel message exact a été lu.

2. Opérations de type sync (OperationType = Sync)

Section intitulée « 2. Opérations de type sync (OperationType = Sync) »
  • Déclenché lorsqu’un client de messagerie (Outlook Desktop, application mobile ou script automatisé via EWS/Graph) synchronise le contenu d’un dossier.
  • Le seuil de limitation (throttling) : si une opération de synchronisation accède à plus de 1 000 éléments dans un même dossier en moins de 24 heures, Exchange Online active le throttling pour limiter le volume des journaux et positionne :
    "IsThrottled": "True"
  • La présomption juridique : en présence de IsThrottled: True, l’enquêteur ne peut pas isoler la liste des messages lus. D’un point de vue médico-légal et réglementaire, l’intégralité des courriels du dossier doit être présumée compromise.

3. La partition recoverable items et le triage anti-forensique

Section intitulée « 3. La partition recoverable items et le triage anti-forensique »

Lors d’une intrusion dans une boîte aux lettres, le premier réflexe de l’attaquant est d’effacer les traces de son passage :

  1. Suppression des confirmations de modifications de coordonnées bancaires.
  2. Suppression des notifications d’échec de remise (NDR) résultant de campagnes de spam.
  3. Suppression des alertes d’avertissement émises par Microsoft Identity Protection.

Architecture du sous-arbre des éléments récupérables

Section intitulée « Architecture du sous-arbre des éléments récupérables »

Cette partition non-IPM est invisible dans les vues standards Outlook/OWA :

  • Deletions : éléments vidés du dossier “Éléments supprimés”. Conservés pendant 14 ou 30 jours selon le paramètre RetainDeletedItemsFor.
  • Purges : éléments purgés de Deletions ou supprimés directement via Maj+Suppr. Nettoyés périodiquement par le Managed Folder Assistant sauf si un Litigation Hold est activé.
  • DiscoveryHolds : si une suspension pour litige (Litigation Hold), un eDiscovery Hold ou une politique de rétention Purview est active, les éléments purgés y sont automatiquement déplacés et deviennent inaltérables.
  • Versions : conserve l’historique des modifications apportées aux événements de calendrier et aux contacts.
Fenêtre de terminal
# Vérification du statut de rétention et de suspension légale
Get-Mailbox "victim@contoso.com" | Select-Object DisplayName, RetainDeletedItemsFor, LitigationHoldEnabled, SingleItemRecoveryEnabled
# Inspection du volume des dossiers de récupération cachés
Get-MailboxFolderStatistics "victim@contoso.com" -FolderScope RecoverableItems | Select-Object Name, ItemsInFolder, FolderSize

4. Corrélation triangulaire avec le message trace

Section intitulée « 4. Corrélation triangulaire avec le message trace »

Comme explicité dans la Fiche 15 : forensique du message trace Exchange online, la réconciliation entre l’état de la boîte aux lettres et les journaux des agents de transport (MTA) apporte la preuve matérielle de l’émission et de la livraison de courriels.

sequenceDiagram
autonumber
actor Attacker as Attaquant (Session compromise)
participant EXO as Boîte Exchange (Store)
participant MTA as Service de transport Exchange (MTA)
participant ExtTarget as Cible externe (Client fraudé)
participant UAL as Journal d'audit unifié Purview
Attacker->>EXO: Émission d'un courriel avec fausse facture
EXO->>UAL: Journalisation de l'événement 'Send' avec ClientIP
EXO->>MTA: Soumission du message au pipeline de transport
MTA->>MTA: Évaluation des règles de transport et de l'anti-spam sortant
MTA->>ExtTarget: Acheminement du message sur Internet via SMTP/TLS
MTA->>UAL: Le Message Trace consigne l'événement 'DELIVER'
Attacker->>EXO: Déplacement du message vers Éléments supprimés & HardDelete
Note over EXO: Message effacé de la boîte visible, préservé sous Purges/Holds
Note over UAL: La trace MTA prouve irréfutablement l'émission du courriel !

5. Ingénierie de détection : requêtes de chasse KQL

Section intitulée « 5. Ingénierie de détection : requêtes de chasse KQL »
// Détection des synchronisations massives avec dépassement de seuil d'audit
CloudAppEvents
| where TimeGenerated >= ago(14d)
| where ActionType == "MailItemsAccessed"
| extend OpProps = RawEventData.OperationProperties
| extend IsThrottled = tostring(OpProps.IsThrottled)
| extend Folders = RawEventData.Folders
| where IsThrottled =~ "True"
| project TimeGenerated, AccountDisplayName, IPAddress, IsThrottled, Folders, RawEventData
| sort by TimeGenerated desc

  1. Préservation immédiate de l’état de la boîte aux lettres : Placer immédiatement la boîte en Litigation Hold pour geler les purges automatiques :

    Fenêtre de terminal
    Set-Mailbox "victim@contoso.com" -LitigationHoldEnabled $true -RetentionComment "Gel d'urgence IR"
  2. Audit des règles de boîte et de flux de messagerie : Extraire toutes les règles de transfert et de dissimulation :

    Fenêtre de terminal
    Get-InboxRule -Mailbox "victim@contoso.com" | Select-Object Name, Description, ForwardTo, MoveToFolder

    (Consulter la Fiche 27 : règles de boîte de réception comme persistance et la Fiche 28 : redirection et persistance du flux de messagerie).

  3. Audit des accès non-propriétaires : Rechercher les opérations déléguées ou administratives (Delegate, Admin, External) :

    Fenêtre de terminal
    Search-UnifiedAuditLog -Operations "MailItemsAccessed", "SendAs", "SendOnBehalf" -FreeText "victim@contoso.com" -StartDate (Get-Date).AddDays(-14) -EndDate (Get-Date)
  4. Reconstitution de l’historique d’émission sortante : Interroger le Message Trace pour isoler tous les courriels émis durant les sessions suspectes :

    Fenêtre de terminal
    Get-MessageTrace -SenderAddress "victim@contoso.com" -StartDate (Get-Date).AddDays(-10) -EndDate (Get-Date)