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 --> UserMBXMatrice de correspondance de stockage forensique
Section intitulée « Matrice de correspondance de stockage forensique »| Type d’artefact Teams | Magasin de données primaire | Injection de conformité secondaire | Moteur d’investigation et rétention |
|---|---|---|---|
| Discussions 1:1 & groupe | Azure Chat Service (Middle Tier) | Copie conforme sous la boîte Exchange de chaque membre (TeamsChat) | Purview eDiscovery (Emplacement Exchange) |
| Messages de canaux | Azure Chat Service (Middle Tier) | Copie sous la boîte aux lettres du groupe M365 (Conversation History/Teams) | Purview eDiscovery (Emplacement Exchange) |
| Canaux privés | Azure Chat Service (Middle Tier) | Copie sous les boîtes Exchange individuelles des membres du canal | Purview eDiscovery (Emplacement Exchange) |
| Fichiers de canaux | Site d’équipe SharePoint dédié | Bibliothèque documentaire : Shared Documents/<NomCanal> | Forensique SharePoint (FileAccessed, FileDownloaded) |
| Fichiers de chats 1:1 | OneDrive Entreprise de l’émetteur | Dossier Documents/Fichiers de conversation Microsoft Teams | Forensique OneDrive (FileDownloaded, SharingSet) |
| Enregistrements vidéo | SharePoint (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.
3. Webhooks entrants et connecteurs pirates
Section intitulée « 3. Webhooks entrants et connecteurs pirates »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.
3. Télémétrie d’audit purview pour teams
Section intitulée « 3. Télémétrie d’audit purview pour teams »Les événements liés à Teams sont enregistrés dans l’UAL Purview sous la charge applicative MicrosoftTeams.
Événements d’audit critiques Microsoft teams
Section intitulée « Événements d’audit critiques Microsoft teams »| Opération | Action journalisée | Champs critiques | Intérêt forensique |
|---|---|---|---|
MemberAdded | Ajout d’un membre ou invité externe à une équipe | Members, TeamName, TeamGuid | Révèle l’insertion de comptes invités pirates |
TeamCreated | Création d’une nouvelle équipe | TeamName, Owner, Privacy | Détecte les équipes clandestines de staging |
ChannelAdded | Création d’un canal standard ou privé | ChannelName, ChannelType | Trace les canaux créés par l’attaquant |
AppInstalled | Installation d’un bot ou connecteur tiers | AppId, AddOnName | Révèle les applications d’exfiltration de données |
MessageSent | Enregistrement de conformité des messages (E5) | MessageId, Sender, Recipient | Reconstitution médico-légale des conversations |
TabAdded | Ajout d’un onglet ou site web dans un canal | TabName, TabUrl | Dé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 équipesCloudAppEvents| 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// Détection de l'installation de connecteurs webhooks ou bots tiersCloudAppEvents| where TimeGenerated >= ago(14d)| where ActionType in ("AppInstalled", "AppUpgraded", "TabAdded")| extend Workload = tostring(RawEventData.Workload)| where Workload =~ "MicrosoftTeams"| extend AppName = tostring(RawEventData.AddOnName)| extend TeamName = tostring(RawEventData.TeamName)| project TimeGenerated, AccountDisplayName, ActionType, AppName, TeamName, IPAddress| sort by TimeGenerated desc<#.SYNOPSIS Énumère tous les membres, canaux et applications d'une équipe Teams compromise.#>Connect-MicrosoftTeams
$TeamId = "11111111-2222-3333-4444-555555555555"
Write-Host "[+] Membres de l'équipe $TeamId :" -ForegroundColor CyanGet-TeamUser -GroupId $TeamId | Select-Object User, Role, Name
Write-Host "[+] Canaux existants :" -ForegroundColor CyanGet-TeamChannel -GroupId $TeamId | Select-Object DisplayName, MembershipType
Write-Host "[+] Applications et connecteurs installés :" -ForegroundColor CyanGet-TeamsAppInstallation -TeamId $TeamId | Select-Object DisplayName, Id5. 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 :
-
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-IPPSSessionNew-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" -
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" -
Export et analyse du dossier caché
TeamsChat: Télécharger le résultat au format.pstou.eml. Examiner le sous-dossier non-IPMTeamsChatà l’aide d’outils forensiques d’analyse d’e-mails pour horodater chaque message et réaction.