Aller au contenu

Investigation Microsoft teams & collaboration

1. La disparité de stockage sous l’azure substrate

Section intitulée « 1. La disparité de stockage sous l’azure substrate »

Pour investiguer un incident impliquant Teams, les analystes doivent maîtriser la table de correspondance physique entre les fonctionnalités Teams et les magasins de données sous-jacents :

graph TD
subgraph TeamsClient ["Couche de présentation Teams (Applications & Web)"]
Chat11["Discussions privées 1:1 et de groupe"]
ChanMsg["Messages des canaux standards et partagés"]
ChanFiles["Pièces jointes des canaux"]
ChatFiles["Fichiers partagés en chat 1:1"]
Recordings["Enregistrements de réunions"]
Voice["Messagerie vocale & transcriptions d'appels"]
end
subgraph BackingWorkloads ["Sous-systèmes de stockage Azure Substrate"]
UserMBX["Boîte aux lettres utilisateur (Exchange Online)<br/>Dossier caché : /TeamsChat"]
GroupMBX["Boîte aux lettres de groupe (Exchange Online)<br/>Dossier caché : /Conversation History/Teams"]
SPOSite["Site d'équipe SharePoint<br/>Bibliothèque : /Documents partagés/NomDuCanal/"]
ODBDrive["OneDrive Entreprise de l'émetteur<br/>Dossier : /Documents/Fichiers de conversation Microsoft Teams/"]
MediaSPO["SharePoint / OneDrive Racine<br/>Dossier : /Recordings/"]
end
Chat11 --> UserMBX
ChanMsg --> GroupMBX
ChanFiles --> SPOSite
ChatFiles --> ODBDrive
Recordings --> MediaSPO
Voice --> UserMBX
Type d’artefact TeamsMagasin de données primaireInjection de conformité secondaireMoteur d’investigation et rétention
Discussions 1:1 & groupeAzure Chat Service (Middle Tier)Copie conforme sous la boîte Exchange de chaque membre (TeamsChat)Purview eDiscovery (Emplacement Exchange)
Messages de canauxAzure Chat Service (Middle Tier)Copie sous la boîte aux lettres du groupe M365 (Conversation History/Teams)Purview eDiscovery (Emplacement Exchange)
Canaux privésAzure Chat Service (Middle Tier)Copie sous les boîtes Exchange individuelles des membres du canalPurview eDiscovery (Emplacement Exchange)
Fichiers de canauxSite d’équipe SharePoint dédiéBibliothèque documentaire : Shared Documents/<NomCanal>Forensique SharePoint (FileAccessed, FileDownloaded)
Fichiers de chats 1:1OneDrive Entreprise de l’émetteurDossier Documents/Fichiers de conversation Microsoft TeamsForensique OneDrive (FileDownloaded, SharingSet)
Enregistrements vidéoSharePoint (Canal) ou OneDrive (1:1)Fichier média MP4 sous Recordings/Purview UAL (FileDownloaded)

2. Vecteurs d’attaque teams et risques de fédération externe

Section intitulée « 2. Vecteurs d’attaque teams et risques de fédération externe »

Les cyberattaquants détournent Microsoft Teams pour s’introduire dans le système d’information, mener des attaques d’ingénierie sociale ciblées et exfiltrer des données.

flowchart TD
AttackVector[Vecteurs de menace Teams] --> ExtFed[1. Fédération externe & Accès invités]
AttackVector --> PhishLure[2. Partage de fichiers piégés]
AttackVector --> AppSvc[3. Webhooks malveillants & Bots tiers]
ExtFed --> ExtChat[L'attaquant initie un chat 1:1 depuis un tenant externe]
ExtChat --> Evasion[Contourne totalement les passerelles de messagerie SEG]
PhishLure --> CloudStorage[Partage d'un lien OneDrive hébergeant un malware]
CloudStorage --> AutoPermission[Teams accorde automatiquement les droits à la victime]
AppSvc --> WebhookExfil[Création d'un webhook entrant pour siphonner les canaux]

1. Exploitation de la fédération externe (ingénierie sociale inter-tenants)

Section intitulée « 1. Exploitation de la fédération externe (ingénierie sociale inter-tenants) »

Lorsque les politiques de communication externe du tenant autorisent les domaines tiers, un attaquant disposant d’un compte sur n’importe quel tenant M365 dans le monde peut contacter directement un collaborateur en chat 1:1.

  • Avantage d’évasion : le message contourne intégralement les passerelles de messagerie sécurisée (Cisco SEG, Proofpoint) ainsi que les contrôles SPF/DKIM/DMARC.
  • Tromperie visuelle : l’attaquant usurpe le nom d’affichage de “Support Informatique”, “Service Sécurité” ou “Gestion de la Paie”.

2. Dépôt de fichiers piégés dans les discussions

Section intitulée « 2. Dépôt de fichiers piégés dans les discussions »

Lorsqu’un utilisateur partage un fichier en chat Teams, la plateforme le téléverse sur son propre OneDrive et attribue automatiquement les autorisations de lecture à tous les participants. Les attaquants exploitent cette automatisation pour distribuer des archives vérolées (.vhd, .iso, archives protégées) hébergées de manière légitime sur des infrastructures Microsoft de confiance.

Un attaquant ayant accès à une équipe Teams configure un Incoming Webhook pour répliquer en temps réel toutes les discussions stratégiques vers un serveur de commande et contrôle (C2) externe, sans nécessiter de reconnexion future.


Les événements liés à Teams sont enregistrés dans l’UAL Purview sous la charge applicative MicrosoftTeams.

OpérationAction journaliséeChamps critiquesIntérêt forensique
MemberAddedAjout d’un membre ou invité externe à une équipeMembers, TeamName, TeamGuidRévèle l’insertion de comptes invités pirates
TeamCreatedCréation d’une nouvelle équipeTeamName, Owner, PrivacyDétecte les équipes clandestines de staging
ChannelAddedCréation d’un canal standard ou privéChannelName, ChannelTypeTrace les canaux créés par l’attaquant
AppInstalledInstallation d’un bot ou connecteur tiersAppId, AddOnNameRévèle les applications d’exfiltration de données
MessageSentEnregistrement de conformité des messages (E5)MessageId, Sender, RecipientReconstitution médico-légale des conversations
TabAddedAjout d’un onglet ou site web dans un canalTabName, TabUrlDétecte l’intégration de portails de phishing

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

Section intitulée « 4. Ingénierie de détection : requêtes de chasse KQL »
// Détection de comptes invités externes ajoutés à des équipes
CloudAppEvents
| where TimeGenerated >= ago(14d)
| where ActionType == "MemberAdded"
| extend Workload = tostring(RawEventData.Workload)
| where Workload =~ "MicrosoftTeams"
| extend TeamName = tostring(RawEventData.TeamName)
| extend MemberList = RawEventData.Members
| mv-expand MemberList
| extend MemberUPN = tostring(MemberList.UPN)
| where MemberUPN contains "#EXT#" or MemberUPN !endswith "@contoso.com"
| project TimeGenerated, AccountDisplayName, TeamName, MemberUPN, IPAddress, RawEventData
| sort by TimeGenerated desc

5. Extraction médicolégale via purview eDiscovery

Section intitulée « 5. Extraction médicolégale via purview eDiscovery »

Puisque les conversations Teams sont répliquées au sein de l’Azure Substrate, l’extraction exhaustive des échanges s’effectue via l’outil Content Search de Purview :

  1. Ciblage des boîtes aux lettres des participants (chats 1:1) : Pour extraire les discussions privées, cibler les boîtes Exchange individuelles des participants :

    Fenêtre de terminal
    Connect-IPPSSession
    New-ComplianceSearch -Name "IR_TeamsChat_Investigation" `
    -ExchangeLocation "victim@contoso.com", "suspect@contoso.com" `
    -ContentMatchQuery '(kind:im) AND (Received >= "2026-09-01" AND Received <= "2026-09-17")'
    Start-ComplianceSearch -Name "IR_TeamsChat_Investigation"
  2. Ciblage de la boîte de groupe pour les canaux d’équipe : Pour extraire les messages d’un canal, cibler la boîte de groupe M365 associée :

    Fenêtre de terminal
    New-ComplianceSearch -Name "IR_TeamsChannel_Investigation" `
    -ExchangeLocation "EquipeFinance@contoso.com" `
    -ContentMatchQuery '(kind:im)'
    Start-ComplianceSearch -Name "IR_TeamsChannel_Investigation"
  3. Export et analyse du dossier caché TeamsChat : Télécharger le résultat au format .pst ou .eml. Examiner le sous-dossier non-IPM TeamsChat à l’aide d’outils forensiques d’analyse d’e-mails pour horodater chaque message et réaction.