Sécurité du Cloud

Faille majeure de sécurité dans Microsoft Teams

Faille majeure de sécurité dans Microsoft Teams
Par
Connor Peoples

Une découverte majeure

En août 2022, l'équipe Vectra Protect a identifié une vulnérabilité majeure dans Microsoft Teams: les informations d’identification de tous les utilisateurs Teams sont stockées en clair.

Les acteurs malveillants disposant d'un accès suffisant au système peuvent ainsi facilement voler ces informations, et tous les clients Microsoft et GCC Desktop Teams pour Windows, Mac et Linux sont concernés.

Bien que la récupération d'informations de connection soit une étape courante après l'exploitation, cette vulnérabilité ne fera que faciliter la tâche des adversaires qui peuvent bypasser l’authentification multi-facteurs.

Grâce à ces jetons, les attaquants peuvent facilement usurper les identités pour effectuer toutes les actions possibles via le client Microsoft Teams. Ils peuvent notamment accéder aux fonctions de l'API MicrosoftGraph depuis leur système. Microsoft est conscient de ce problème mais a indiqué qu'il ne répondait pas à ses critères pour une intervention immédiate.

En attendant que Microsoft mette à jour l'application Teams, nous préférons alerter les clients sur les risques posés par le stockage de jetons en clair. Il est préférable d'atténuer ce risque en automatisant la surveillance des accès inhabituels aux fichiers ou la modification des ACL du système de fichiers.

L’origine de la découverte

L'enquête a démarré lorsqu'un client de Vectra Protect s'est plaint de la façon dont Microsoft Teams gérait les identités désactivées.

Les utilisateurs finaux ne peuvent pas supprimer les comptes désactivés via l'interface utilisateur car l'application Teams exige que le compte soit connecté pour le supprimer du client. Bien entendu, les utilisateurs ne peuvent pas faire cela lorsque leur compte utilisateur est désactivé.

Pour aider à résoudre ce problème, nous avons commencé à examiner les données de configuration locale à l'intérieur du client Teams et à démêler son fonctionnement.

Electron : une faille pour la sécurité

Microsoft Teams est une application basée sur Electron. Electron fonctionne en créant une application web qui s'exécute via un navigateur personnalisé. C'est très pratique et cela rend le développement rapide et facile. Cependant, l'exécution d'un navigateur Web dans le contexte d'une application nécessite des données de navigateur traditionnelles comme les cookies, les chaînes de session et les journaux.

C'est là que réside l'origine du problème, car Electron ne prend pas en charge les contrôles de navigateur standard. L'encryption et les emplacements de fichiers protégés par le système ne sont pas pris en charge par Electron dès le départ, mais doivent être gérés efficacement pour rester sécurisés.

Par conséquent, par défaut, le fonctionnement d'Electron incite à créer des applications trop transparentes. Puisqu'Electron obscurcit les complexités de la création de l'application, on peut supposer que certains développeurs ne sont pas conscients des ramifications de leurs décisions de conception. Il est alors courant d'entendre les chercheurs en sécurité des applications déplorer l'utilisation de ce cadre en raison d'omissions critiques en matière de sécurité.

Exploration de la faille de sécurité

Nous avons d'abord commencé à explorer les méthodes permettant de supprimer toute référence au(x) compte(s) connecté(s). Notre objectif était de supprimer les anciens comptes et de forcer Teams à fonctionner comme s'ils n'existaient plus.

Les multiples tentatives de modification du fichier de configuration et des fichiers de première exécution n'ont rien donné. Sans grande conviction, nous avons finalement recherché le nom principal de l'utilisateur connu, et deux fichiers critiques sont apparus.

Le premier fichier important était un fichier ldb avec des jetons d'accès en clair. Après examen, il a été déterminé que ces jetons d'accès étaient actifs et qu'il ne s'agissait pas d'un dump accidentel d'une erreur antérieure.

Ces jetons d'accès nous ont permis d'accéder aux API d'Outlook et de Skype. Il est important de savoir que l'architecture Microsoft Teams est un conglomérat de services M365 qui s'appuie sur Skype, SharePoint et Outlook pour fonctionner, ce qui explique la présence de ces jetons.

Faille majeure de sécurité dans Microsoft Teams

Le fichier suivant est une base de données de cookies de navigateur, comme les"cookies" que nous acceptons sur chaque site Web (merci, GDPR). Les cookies stockent des données telles que des informations de session, des balises marketing, des informations de compte et, dans certains cas, des jetons d'accès. (Mal)heureusement, l'application Teams Desktop stocke également les jetons ici.

Faille majeure de sécurité dans Microsoft Teams

La meilleure façon de lire la base de données des cookies est d'utiliser un client de base de données sqlite3. Avec ce client, nous pouvons extraire uniquement les valeurs dont nous avons besoin. La requête suivante renvoie le nom du jeton et la valeur du jeton.

Faille majeure de sécurité dans Microsoft Teams

Nous avons évalué chaque jeton par rapport au service de validation jwt de Microsoft. Chaque jeton que nous avons trouvé était actif et fonctionnait sans nécessiter d'authentification supplémentaire. Nous avons commencé à réaliser que le problème initial de la réinstallation des équipes était beaucoup moins important que l'opportunité d'abus d'identité qui se profilait dans le client Microsoft Teams.

Les détails de la faille

L'équipe s'est mise au travail avec ces connaissances et a commencé à concevoir des outils qui tirent parti de ces informations d'identification non protégées.

Après avoir envisagé plusieurs options, il a été déterminé que l'envoi d'un message au compte du détenteur des informations d'identification via Teams avec un jeton d'accès serait approprié.

Avec cet objectif en tête, nous avons lancé le client Teams dans le navigateur poursuivre les appels API lors de l'envoi de messages et nous avons trouvé cette perle :

https://amer.ng.msg.teams.microsoft.com/v1/users/ME/conversations/48:notes/messages

Ce point de terminaison de l'API nous permet de nous envoyer des messages à nous-mêmes, sans avoir à nous débattre avec l'énumération des comptes.

Ensuite, nous avons utilisé le moteur SQLite pour extraire le jeton d’accès. SQLite ne nécessitant aucune installation, l'outil le télécharge dans un dossier local. Nous l'exécutons pour lire la base de données des cookies, où nous extrayons le jeton d'accès Skype nécessaire à l'envoi de messages.

Avec le jeton en main et notre destination en tête, la dernière étape consistait à composer un message.

Il a fallu un certain temps pour que le corps de la requête fonctionne, mais nous avons finalement réussi. Nous avons configuré le message à envoyer avec le drapeau de haute importance activé et l'objet "You've Been PWND". Le message lui-même est le jeton d'accès Skype.

Faille majeure de sécurité dans Microsoft Teams

L'outil envoie le message à ce stade et nous pouvons vérifier que le jeton d'accès se trouve dans notre discussion personnelle.

Faille majeure de sécurité dans Microsoft Teams

L’impact de ces informations d'identification non sécurisées

Microsoft stocke ces informations d'identification pour créer une expérience d'authentification unique et transparente dans l'application Desktop. Paradoxalement, l'implémentation de ces choix de sécurité n’est pas si sécurisé.

Toute personne qui installe et utilise le client Microsoft Teams dans cet état stocke les informations d'identification nécessaires pour effectuer toute action possible via l'interface utilisateur Teams, même lorsque Teams est fermé.

Lorsque ces jetons sont volés, cela permet aux attaquants de modifier les fichiersSharePoint, le courrier et les calendriers Outlook, ainsi que les fichiers de discussion Teams. Les attaquants peuvent altérer les communications légitimes au sein d'une organisation en les détruisant de manière sélective, en les exfiltrant ou en se livrant à des attaques de phishing ciblées.

La pire des menaces: Le phishing ultime

Ici, ce qui nous effraie vraiment, c'est la prolifération des jetons d'utilisateur post-MFA dans un environnement. Elle permet aux attaques ultérieures qui ne nécessitent pas d'autorisations spéciales supplémentaires ou de logiciels malveillants avancés de s'en tirer avec des dommages internes importants.

Avec suffisamment de machines compromises, les attaquants peuvent orchestrer les communications au sein d'une organisation.

En prenant le contrôle total de comptes critiques, comme celui du PDG ou du DAF d'une entreprise, les attaquants peuvent convaincre les utilisateurs d'effectuer des tâches préjudiciables à l'organisation. Comment allez-vous alors effectuer des tests de phishing dans ces conditions ?

Recommandations pour les administrateurs

1. Gérez les configurations et surveillez les changements ACL

Considérez Teams comme une application critique et appliquez les ACL qui la protègent. La modification de ces ACL pour étendre l'accès aux fichiers en lecture en dehors de l'utilisateur prévu exposera un éventuel cyberattaquant.

Après chaque mise à jour des applications Electron et Teams, passez à un modèle derestriction élevée pour empêcher l'installation d'applications Teams non autorisées, de bots, de connecteurs, etc.

2. Surveillez l'accès aux fichiers

Créez une règle de surveillance du système pour identifier les processus accédant à ces fichiers sensibles. Il existe deux recommandations spécifiques de fichiers/dossiers :

-[Windows] %AppData%\Microsoft\Teams\Cookies
-[Windows] %AppData%\Microsoft\Teams\Local Storage\leveldb
-[macOS] ~/Bibliothèque/Application Support/Microsoft/Teams/Cookies
-[macOS] ~/Bibliothèque/Application Support/Microsoft/Teams/LocalStorage/leveldb
-[Linux] ~/.config/Microsoft/Microsoft Teams/Cookies
-[Linux] ~/.config/Microsoft/Microsoft Teams/Stockage local/leveldb

Si un processus autre que Teams.exe accède à ces fichiers, cela indique que les données stockées sont accessibles en dehors du contexte de l'application Teams.

Faille majeure de sécurité dans Microsoft Teams

3. Considérez l'application Teams Web comme une alternative

Envisagez d'utiliser le client Web Teams dans Microsoft Edge, qui dispose de plusieurs contrôles au niveau du système d'exploitation pour protéger les fuites de jetons. Heureusement, l'application Web Teams est robuste et prend en charge la plupart des fonctions activées par le client Desktop, ce qui permet de réduire au minimum les répercussions sur la productivité de l'organisation.

Pour les utilisateurs de Linux, il s'agit de la voie recommandée, car Microsoft a annoncé la fin de vie de Teams pour Linux d'ici décembre 2022.

Recommandations pour les développeurs

Si vous devez utiliser Electron pour votre application, assurez-vous de stocker les jetons OAuth de manière sécurisée. L'une de ces méthodes de stockage des secrets consiste à utiliser le paquet KeyTar, qui exploite les mécanismes de sécurité du système d'exploitation local pour la gestion des secrets.

Comment stocker en toute sécurité des informations sensibles dans Electron avec node-keytar | par Cameron Nokes | Medium

Recommandations pour Microsoft

Si vous devez stocker les jetons, faites-le de manière cryptée et passez d'un simple accès en lecture sur le système de fichiers à un accès permanent à la mémoire. Et permettez-nous de supprimer les comptes désactivés des applications Teams sans devoir procéder à une désinstallation/réinstallation complète.

Recommandations pour les équipes de sécurité

Pour arrêter un attaquant, les équipes doivent investir dans des solutions de détection et de réponse aux menaces qui peuvent voir les types d'actions avant et après l'exploitation de l'exploit.

Partager sur:
BESOIN DE CONSEIL POUR 
OPTIMISER VOTRE SOC ?

Parce que votre sécurité compte pour nous, notre équipe d'experts vous conseille gratuitement et sans engagement.
J'ai besoin de conseil
Testez la plateforme de Vectra

Rien de plus simple que de tester la plateforme pour comprendre ses bénéfices pour votre entreprise.
Tester gratuitement
Partager L'article sur:
Ressources complémentaires

Découvrez la liste des menaces les plus communes qui surviennent dans les applications Cloud de Microsoft Office 365.

Confrontées à des menaces de plus en plus sophistiquées, les équipes de sécurité ont besoin d'une visibilité immédiate sur les cybermenaces qui pèsent sur leurs environnements.

Une chose est sûre, en matière de lutte contre les ransomwares, la réactivité et la rapidité d'intervention sont fondamentales.

Notre équipe est à votre écoute
Contactez-nousDemandez une démo