Un e‑mail a été envoyé en usurpant l’identité d’un collaborateur via Outlook/Microsoft 365 ? Voici une méthode pas‑à‑pas, concrète et exploitable, pour remonter à l’adresse IP et consolider un dossier probant, tout en sécurisant immédiatement le compte.
Contexte et objectifs de l’enquête
Un employé découvre qu’une tierce personne s’est connectée à sa messagerie professionnelle, a transféré un ancien message et a répondu en se faisant passer pour lui. L’IT affirme qu’il est « impossible » d’identifier l’adresse IP d’envoi car l’en‑tête contient de multiples relais. En réalité, si l’en‑tête seul ne suffit pas toujours, l’écosystème Microsoft 365 (Exchange Online, Microsoft Entra ex‑Azure AD, Defender, centre de conformité) fournit des journaux d’audit et des traces de messages permettant d’établir l’IP publique, l’appareil, l’agent utilisateur, le type d’authentification et la chronologie des actions. L’objectif : reconstituer le parcours du message, isoler l’origine réseau, préserver les preuves et empêcher toute récidive.
Pourquoi l’en‑tête n’est pas toujours suffisant
Chaque serveur SMTP qui transfère un message ajoute une ligne Received:
avec un horodatage et une adresse IP. En remontant la chaîne depuis les entrées les plus anciennes (en bas), on identifie souvent le point d’entrée dans votre tenant. Problème : dans Microsoft 365 ou Gmail, le premier relais visible est presque toujours un serveur du fournisseur, pas l’IP de l’utilisateur final. Ainsi, l’en‑tête peut confirmer le parcours à l’intérieur du cloud, mais pas révéler l’IP personnelle de l’expéditeur — d’où la nécessité d’exploiter les journaux d’authentification et d’activité du tenant.
Récupérer l’en‑tête complet dans Outlook
- Outlook Desktop : ouvrir le message → Fichier → Propriétés → copier « En‑têtes Internet ».
- Outlook sur le web : ouvrir le message → menu « … » → Afficher → Afficher l’original.
Lire l’en‑tête sans se tromper
Exemple simplifié :
Received: from DM6PRxxMB1234.namprdxx.prod.outlook.com (2603:10a6:...)
by VI1PRxxMB5678.eurprdxx.prod.outlook.com with HTTPS; Tue, 1 Oct 2025 09:42:10 +0000
Authentication-Results: spf=pass (sender IP is 40.92.xx.xx) smtp.mailfrom=contoso.com;
dkim=pass; dmarc=pass
From: Employé <user@contoso.com>
To: Client <dest@example.com>
Subject: Re: Contrat
Message-ID: <...>
X-MS-Exchange-Organization-AuthAs: Internal
X-MS-Exchange-Organization-Network-Message-Id: ...
Ce que l’on peut en déduire :
- Les blocs
40.*
,52.*
ou IPv6 Azure indiquent un transit via Microsoft 365. Authentication-Results
résume SPF/DKIM/DMARC (utile pour vérifier l’intégrité et l’alignement du domaine, mais pas l’IP « domiciliaire »).- Les préfixes
8.23.*
,209.*
évoquent parfois des relais tiers (gateway de sécurité, routeurs sortants). Unwhois
local permet d’identifier le propriétaire du bloc.
Tableau d’orientation rapide
Élément d’en‑tête | Ce qu’il révèle | Limites |
---|---|---|
Received: (du bas vers le haut) | Chaîne des relais et horodatage | Souvent limité aux serveurs Microsoft/Google ; pas l’IP de l’utilisateur |
Authentication-Results | Statuts SPF/DKIM/DMARC | Conforte l’authenticité mais n’identifie pas l’auteur humain |
X-MS- divers | Métadonnées Exchange Online | Pas toujours documenté publiquement |
X-Originating-IP | IP source client (héritage) | Rare dans Microsoft 365 moderne pour des raisons de confidentialité |
Les leviers efficaces dans Microsoft 365
Pour aller au‑delà de l’en‑tête, utilisez les journaux natifs du tenant et croisez les sources : Audit unifié, Exchange Online (Message Trace), Microsoft Entra (journaux de connexions), et, si disponible, Defender pour Office 365/identités. Voici le plan d’attaque.
Audit unifié Microsoft 365 (Exchange Online, SharePoint, Entra…)
Où : Centre de conformité > Audit (ou via PowerShell).
Quoi : opérations Send, SendOnBehalf, SendAs, Forward, UpdateInboxRules, MailItemsAccessed, UserLoggedIn, etc., contenant ClientIP, UserAgent, identifiant de l’application (Outlook, EWS, Graph), résultat MFA et autres détails.
# 1) Connexion (module Exchange Online Management requis)
Connect-ExchangeOnline
# 2) Audit unifié sur une fenêtre temporelle
Search-UnifiedAuditLog -StartDate "2024-03-27" -EndDate "2024-03-29" `
-Operations Send,SendOnBehalf,SendAs,Forward,UpdateInboxRules,UserLoggedIn `
-UserIds user@domaine.com |
Select CreationDate, Operation, ClientIP, UserAgent, RecordType, ResultStatus |
Export-Csv .\Audit-User-usurpation.csv -NoTypeInformation -Encoding UTF8
Bon à savoir : l’audit unifié est activé par défaut depuis 2023 dans la plupart des tenants. La rétention standard est typiquement d’environ 90 jours (E1/E3), étendue jusqu’à 1 an et plus avec E5/A5 et modules d’extension. Agissez vite si l’incident est ancien.
Message Trace (Suivi des messages) Exchange Online
Où : Centre d’administration Microsoft 365 > Exchange > Mail flow > Message trace.
Quoi : itinéraire des messages, statut de remise, règles appliquées, parfois SenderIP/FromIP, avec export CSV.
# Tracé des messages
Get-MessageTrace -SenderAddress user@domaine.com -StartDate "2024-03-27" `
-EndDate "2024-03-29" | Select Received, SenderAddress, RecipientAddress, SenderIP, Status |
Export-Csv .\MessageTrace.csv -NoTypeInformation
# Détails d’un message (si ID connu)
Get-MessageTraceDetail -MessageTraceId <GUID> -RecipientAddress client@exemple.com |
Export-Csv .\MessageTraceDetail.csv -NoTypeInformation
# Recherche historique (au‑delà de la fenêtre détaillée)
Start-HistoricalSearch -ReportType MessageTraceDetail -StartDate "2024-03-01" `
-EndDate "2024-03-31" -ReportTitle "Trace Mars" -RecipientAddress client@exemple.com
Rétention indicative : résultats détaillés ≈ 30 jours, résumés ≈ 90 jours.
Journaux de connexions Microsoft Entra (ex‑Azure AD)
Où : Portail Entra > Utilisateurs > Connexions (Sign‑in logs).
Quoi : adresse IP publique, ville/pays (géoloc approximative), système et version, application cliente (Outlook, EWS, Graph), méthode d’authentification (MFA, passkey, etc.), conformité de l’appareil, résultats et stratégies d’accès conditionnel. Filtrez par l’utilisateur compromis et par l’intervalle suspect.
# Via Microsoft Graph PowerShell (droits requis)
Connect-MgGraph -Scopes "AuditLog.Read.All","Directory.Read.All"
$from = "2024-03-27T00:00:00Z"; $to = "2024-03-29T23:59:59Z"
Get-MgAuditLogSignIn -Filter "userPrincipalName eq 'user@domaine.com' and createdDateTime ge $from and createdDateTime le $to" |
Select createdDateTime, ipAddress, appDisplayName, clientAppUsed, conditionalAccessStatus, mfaDetail |
Export-Csv .\SignInLogs.csv -NoTypeInformation
Ces journaux sont décisifs : ils relient l’action (Send, création d’une règle de transfert, etc.) à une session authentifiée, avec l’adresse IP publique employée.
Defender pour Office 365 / Advanced Hunting (si E5)
Si votre licence inclut Microsoft 365 Defender, exploitez la chasse avancée (KQL) pour croiser événements de messagerie et identités.
-- Enquêter sur un envoi depuis le compte
EmailEvents
| where SenderFromAddress == "user@domaine.com"
| where Timestamp between (datetime(2024-03-27) .. datetime(2024-03-29))
| project Timestamp, NetworkMessageId, SenderFromAddress, RecipientEmailAddress, AuthenticationDetails
-- Rechercher les connexions suspectes liées
IdentityLogonEvents
| where AccountUpn == "user@domaine.com"
| where Timestamp between (datetime(2024-03-27) .. datetime(2024-03-29))
| project Timestamp, IpAddress, AppDisplayName, DeviceDetail, AuthenticationRequirement, AuthenticationProcessingDetails
Astuce : si vous voyez uniquement des IP Microsoft dans les traces de message, remontez aux Sign‑in logs : c’est là que se trouve l’IP publique réellement utilisée par l’attaquant au moment de la connexion.
Tableau de synthèse des actions et limites
Piste | Détails | Limites / précautions |
---|---|---|
Analyser l’en‑tête complet | Chaque relai ajoute Received: (horodatage, IP). Remonter depuis le bas pour trouver le point d’entrée. | Sur Outlook.com/Gmail/M365, la première IP est souvent celle du fournisseur (pas l’IP client). |
Journal d’audit Microsoft 365 | Via centre de conformité / Search-UnifiedAuditLog : date, ClientIP, UserAgent, application, MFA, opérations Send/Forward… | Nécessite l’audit actif en amont (par défaut oui). Rétention standard ≈ 90 jours (E1/E3), extensible avec E5. |
Message Trace (Exchange Online) | Itinéraire des messages, SenderIP, règles DLP/transport appliquées, export CSV. | Détaillé ≈ 30 jours, résumé ≈ 90 jours. |
Réquisition judiciaire | Si seuls des IP Microsoft apparaissent, les forces de l’ordre peuvent demander la session/IP source à Microsoft. | Nécessite une demande officielle ; délais variables. |
Preuves complémentaires | Captures des règles de transfert, journaux EDR/AV, vidéos si accès sur site, témoignages. | Un faisceau d’indices pèse plus qu’une IP isolée. |
Sécurisation immédiate | Changer le mot de passe, révoquer les sessions, activer MFA, alerte « Forwarding rules created », vérifier les Sign‑in logs. | Empêche la récidive et stabilise l’environnement d’enquête. |
Procédure opérationnelle minute par minute
- Isoler et préserver : ne supprimez aucun message. Exportez l’original (.eml/.msg) et l’en‑tête complet. Notez l’horodatage exact (UTC) et la time‑zone.
- Sécuriser : réinitialisez le mot de passe, révoquez les sessions et jetons (Azure AD : Revoke Sign‑In Sessions), forcez la reconnexion MFA.
- Règles et délégués : dans Outlook/OWA, inspectez et supprimez : règles de boîte, transfert auto, délégations, boîtes partagées ajoutées, redirections côté serveur.
- Audit unifié : exécutez
Search-UnifiedAuditLog
sur la plage concernée, en incluant Send, SendAs, Forward, UpdateInboxRules, UserLoggedIn. Export CSV. - Message Trace : lancez un rapport ciblé sur l’adresse de l’employé et les destinataires observés. Export CSV.
- Sign‑in logs : filtrez par l’utilisateur ; exportez les connexions (IP, application, résultat MFA). Relevez les IP, modèles d’appareil (iOS/Android/Windows), et corrélez l’heure d’envoi.
- EDR/Antivirus : récupérez les journaux locaux du poste de l’employé (agent EDR, Windows Defender, proxies) pour vérifier usage d’Outlook/OWA à l’horodatage visé.
- Construire la chronologie : assemblez un tableau des événements (voir modèle ci‑dessous) pour clarifier la séquence.
- Préserver légalement : si vous craignez de dépasser la rétention, activez une conservation légale (litigation hold) sur la boîte et exportez les journaux.
- Option judiciaire : si l’IP source n’est visible que dans les Sign‑in logs Microsoft, préparez un dossier pour la police/procureur (voir section dédiée).
Modèle de chronologie à compléter
Horodatage (UTC) | Source | Événement | IP / Appareil | Observations |
---|---|---|---|---|
2025‑10‑01 09:37:12 | Sign‑in logs | Connexion réussie à Exchange Online | 93.23.xx.xx / Windows 10, Outlook | MFA non déclenchée (session persistante) |
2025‑10‑01 09:39:02 | Audit unifié | Création règle « Forward vers hotmail… » | 93.23.xx.xx / OWA | Nom de règle suspect |
2025‑10‑01 09:42:10 | Message Trace | Envoi « Re: Contrat » | SenderIP : 40.92.xx.xx (M365) | Correspond à la session précédente |
Sécurisation immédiate et durcissement
- Réinitialiser le mot de passe et révoquer toutes les sessions (y compris appareils mobiles). Forcer une reconnexion MFA.
- Activer MFA pour le compte (authentificateur/appel, FIDO2, passkeys). Interdire SMS si risque d’attaque par échange de SIM.
- Vérifier/retirer les consentements OAuth accordés à des applications tierces douteuses.
- Examiner et supprimer : règles de transfert, redirections côté serveur, délégations non justifiées.
- Créer des alertes : « Forwarding rules created », « SendAs par délégation », « Failed logons en rafale ».
- Bloquer l’auto‑transfert externe au niveau transport, si la politique de l’entreprise l’autorise.
# Révoquer tokens/sessions (exemple)
Install-Module Microsoft.Graph -Scope CurrentUser
Connect-MgGraph -Scopes "Directory.AccessAsUser.All","User.ReadWrite.All"
Revoke-MgUserSignInSession -UserId user@domaine.com
# Auditer les règles de boîte
Get-InboxRule -Mailbox user@domaine.com | Format-Table Name, Enabled, Description, ForwardTo, RedirectTo
# Exemple d’alerte (concept) : surveiller les règles créées
Search-UnifiedAuditLog -Operations UpdateInboxRules -UserIds user@domaine.com -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date)
Construire un dossier solide pour la plainte
Ce guide n’est pas un conseil juridique, mais voici les preuves généralement utiles :
- Export CSV des Sign‑in logs (avec colonnes IP, app, résultat MFA) et de l’Audit unifié (opérations, ClientIP, UserAgent).
- Export Message Trace montrant l’envoi et les destinataires.
- Copie .eml/.msg du message usurpé + en‑tête complet.
- Captures d’écran des règles de transfert/délégués supprimés (avant/après si possible).
- Témoignages et contexte (ex‑épouse, litige familial, chronologie des faits).
- Journal EDR/AV du poste (ou preuve d’absence d’activité locale au moment des faits).
Si vos traces exposent uniquement des IP Microsoft (ex. 40.*
ou 52.*
) et non l’IP d’origine, les autorités peuvent, via une réquisition, demander à Microsoft l’IP publique ayant servi à la session d’envoi/usurpation. Préparez un résumé de chronologie, les exports CSV, et toute information identifiant l’heure exacte et l’identifiant de message (Message-ID
, NetworkMessageId
).
Informations complémentaires utiles
Récupérer rapidement les en‑têtes dans Outlook
- Outlook desktop : Fichier → Propriétés → « En‑têtes Internet » (copier dans un fichier texte).
- Outlook Web : « … » → Afficher → Afficher l’original (télécharger si proposé).
Reconnaître les IP internes Microsoft et relais tiers
- 40.* / 52.* : infrastructures Microsoft 365/Azure (centre de données).
- 8.23.* / 209.* : potentiels relais tiers (ex. passerelles de sécurité). Utilisez
whois
en local pour confirmer le propriétaire du bloc.
Scripts PowerShell utiles prêts à l’emploi
# Journal d’audit unifié (filtré)
Search-UnifiedAuditLog -StartDate "2024-03-27" -EndDate "2024-03-29" `
-Operations Send,SendOnBehalf,SendAs,Forward,UpdateInboxRules -UserIds user@domaine.com |
Select CreationDate, Operation, ClientIP, UserAgent |
Export-Csv .\Audit-Usurpation.csv -NoTypeInformation
# Message trace (résumé)
Get-MessageTrace -SenderAddress [user@domaine.com](mailto:user@domaine.com) -StartDate "2024-03-27" `
-EndDate "2024-03-29" | Select Received, SenderIP, Status |
Export-Csv .\Trace-Resume.csv -NoTypeInformation
Conservation légale et rétention
- Conservation légale (litigation hold) : appliquez‑la sur la boîte si la plainte sera déposée au‑delà de la période de rétention.
- Rétention indicative : Audit ≈ 90 jours (E1/E3) ; Message Trace détaillé ≈ 30 jours, résumé ≈ 90 jours ; plus long avec E5 et options d’archivage/retention add‑on.
Cas particuliers, pièges et bonnes pratiques
- VPN/Proxy/CGNAT : l’IP de connexion peut correspondre à un point de sortie partagé. Corrélez UserAgent, appareil et horaire.
- Appareils mobiles : l’agent « Outlook‑iOS/Android » apparaît souvent dans l’audit ; l’IP peut être celle de l’opérateur mobile.
- Délégations et « SendAs » : vérifiez qu’un collègue n’a pas eu (ou perdu) des permissions SendAs/SendOnBehalf abusivement.
- Alignement DMARC : utile pour prouver que l’e‑mail a transité légitimement via votre tenant (et non depuis un serveur usurpé externe).
- Heures et fuseaux : convertissez tout en UTC dans vos exports pour éviter les confusions.
- Intégrité des preuves : conservez les exports originaux et calculez des empreintes (SHA‑256) si votre procédure l’exige.
FAQ express
Peut‑on toujours voir l’IP de l’utilisateur dans l’en‑tête ? Non. Dans Microsoft 365, l’en‑tête reflète surtout les serveurs du fournisseur. L’IP « humaine » figure principalement dans les Sign‑in logs et l’Audit unifié.
Une adresse IP suffit‑elle pour déposer plainte ? Rarement. Elle doit s’accompagner d’autres éléments : chronologie, règles créées, témoins, contexte. La police peut corréler l’IP à un abonné via le FAI si la date/heure (UTC) est précise.
Et si l’attaquant s’est connecté sur site ? Recoupez les journaux d’accès physique (badges), vidéos, journaux réseau internes et EDR du poste.
Que faire si l’audit semblait désactivé ? Activez‑le immédiatement et appuyez‑vous sur Message Trace, journaux Entra, EDR, et preuves contextuelles. La réquisition aux fournisseurs reste envisageable côté forces de l’ordre.
Atelier express : analyser un en‑tête en cinq minutes
- Repérez
Message-ID
,From
,To
,Subject
,Date
. - Remontez les lignes
Received:
du bas (plus ancien) vers le haut (plus récent) ; notez les timestamps et les noms de domaines. - Contrôlez
Authentication-Results
(SPF/DKIM/DMARC) : pass renforce l’hypothèse d’un envoi via votre tenant. - Comparez l’heure d’envoi à vos Sign‑in logs : cherchez une session réussie (avec ou sans MFA) synchronisée à la minute près.
- Corroborer avec Message Trace et l’Audit unifié : assemblez la preuve.
Modèle de rapport interne à réutiliser
Résumé exécutif
Un e‑mail usurpé a été envoyé depuis le compte user@domaine.com à 2025‑10‑01 09:42:10 UTC.
Pièces réunies
* Sign‑in logs : session réussie depuis IP 93.23.xx.xx (Windows, Outlook) à 09:37:12 UTC.
* Audit unifié : UpdateInboxRules (règle de transfert), Send/SendAs à 09:39–09:42 UTC, ClientIP 93.23.xx.xx, UserAgent Outlook/16.x.
* Message Trace : remise vers destinataires X/Y, NetworkMessageId <...>.
* Captures des règles supprimées et export .eml du message usurpé.
Conclusion
L’envoi a été initié depuis une session authentifiée associée à l’IP 93.23.xx.xx. Un dépôt de plainte est recommandé avec demande de levée d’anonymat auprès du fournisseur si nécessaire.
Actions correctives
* MFA renforcée, révocation de sessions, blocage de l’auto‑forward externe, sensibilisation utilisateur.
Conclusion
Identifier l’origine d’un e‑mail usurpé est possible dans Microsoft 365 : l’en‑tête donne le parcours technique, mais ce sont les journaux d’audit (Exchange/Entra) et le Message Trace qui livrent l’IP publique, l’appareil et la séquence exacte des actions. En combinant analyse d’en‑tête, Sign‑in logs, Audit unifié, Message Trace et mesures de sécurisation immédiates (MFA, révocation des sessions, blocage des transferts), vous reconstituez un faisceau de preuves recevable par la police ou la justice. Préservez dès maintenant les journaux, documentez votre chronologie et, en cas de nécessité, appuyez‑vous sur une réquisition pour obtenir des informations complémentaires auprès de Microsoft.