Skip to main content

Alerte aux développeurs .NET : le package NuGet Moq exfiltre les adresses e-mail des utilisateurs depuis Git

Écrit par
blog feature pypi spoof

9 août 2023

0 minutes de lecture

Note de la rédaction : 10 août 2023

Cet article de blog a été mis à jour pour tenir compte des nouvelles informations concernant cette situation en cours. Restez à l’écoute pour suivre les prochaines mises à jour.

En bref

Le 8 août 2023, la communauté .NET a appris que Moq, une bibliothèque de test, exfiltrait les adresses e-mail des développeurs depuis leur machine de développement pour les envoyer à des serveurs tiers distants.

Snyk a déjà publié un avis de sécurité et avertira les développeurs qui analysent et surveillent leurs projets .NET avec Snyk.

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis de capture du drapeau en regardant à la demande notre atelier virtuel d’initiation.

Mises à jour au 10 août 2023 :

À propos de la bibliothèque de tests Moq pour .NET

Moq est une bibliothèque de tests destinée aux développeurs .NET, qui se présente comme « la bibliothèque de simulation la plus populaire et la plus conviviale pour .NET ». Elle a effectivement conquis la communauté, comme en témoignent ses 475 millions de téléchargements depuis sa sortie et ses 5,3 k étoiles sur GitHub.

Que s’est-il passé ? Moq récupère les adresses e-mail des développeurs

À partir de la version 4.20.0, le mainteneur de Moq a introduit un nouveau comportement au moment de la compilation, qui lance une commande `git config` afin de trouver et d’extraire l’adresse e-mail configurée dans le profil Git de l’utilisateur développeur.

Une fois l’adresse e-mail du développeur extraite, une requête HTTP HEAD est envoyée à un service de stockage d’objets blob Azure, avec l’adresse e-mail hachée dans l’URL. Ce point de terminaison distant communique avec le service tiers SponsorLink afin de déterminer si le développeur a installé son application GitHub.

Bien que le processus décrit ci-dessus vise à déterminer si le développeur soutient activement le projet Moq, des données à caractère personnel (DCP), sous la forme de son adresse e-mail, sont explicitement exfiltrées et partagées avec un point de terminaison tiers.

Cet incident découvert fait en réalité partie d’une expérience destinée à financer le travail du mainteneur, menée depuis janvier 2023 dans d’autres projets open source dont il assure la maintenance.

Moq : sécurité de la chaîne d’approvisionnement et état du package en question

L’histoire de Moq est un nouvel exemple de risque pour la sécurité de la chaîne d’approvisionnement lié aux bibliothèques open source et à leur vaste impact, conséquence de l’adoption croissante de l’open source dans les entreprises et les écosystèmes de développement.

Contrairement aux vulnérabilités de sécurité, cet incident lié à un package NuGet met en lumière le déséquilibre des responsabilités qui pèse sur les mainteneurs de logiciels open source, qui doivent rechercher parrainage, financement et reconnaissance pour leur travail.

Moq, peut-être avec de bonnes intentions, a affiché dans la console un message de remerciement aux développeurs utilisant la bibliothèque. Mais sans leur consentement, leurs adresses e-mail, qui sont des informations permettant de les identifier personnellement, ont également été collectées puis envoyées à un service tiers nommé SponsorLink.

Le commentaire du mainteneur sur GitHub en dit long :

Commentaire GitHub en mode sombre de kzu évoquant SponsorLink, la refonte de Moq, des préoccupations liées à la confidentialité, au RGPD et à la durabilité, avec 178 réactions négatives.

Étendue de l’impact de Moq

Bien que la version 4.20.0 ait été retirée du registre NuGet, les statistiques historiques de téléchargement permettent de visualiser l’ampleur de son impact : disponible moins de 24 heures, cette version a tout de même été installée 10 356 fois.

Il convient de noter que, dans son billet de janvier 2023, le mainteneur a indiqué que les adresses e-mail n’étaient pas envoyées en texte brut, mais hachées à l’aide de l’algorithme unidirectionnel SHA256.

La version précédente de Moq, la 4.18.4, qui ne comportait pas ce comportement d’exfiltration, a été téléchargée 6 765 006 fois au cours des six dernières semaines. Cela montre l’ampleur potentielle de cette atteinte à la vie privée si un développeur n’avait pas remarqué le problème et alerté la communauté.

Parmi les projets touchés par cet incident figurent les développeurs de PowerToys de Microsoft, Jellyfin et un millier d’autres dépôts de projets qui dépendaient de Moq pour ses fonctionnalités de test, mais n’étaient probablement pas au courant.

Tableau répertoriant cinq dépôts GitHub populaires qui dépendent de Moq, avec le nom de chaque dépôt et son nombre d’étoiles.

Incident Moq : que faire maintenant ?

En résumé :

  • Si vous n’utilisiez pas la version 4.20.0 de Moq, vous avez évité l’exfiltration des adresses e-mail des utilisateurs, qui sont des DCP, par la bibliothèque Moq.

  • La version 4.20.0 a été retirée du registre NuGet.

  • La pull request n° 1375 a été créée et fusionnée. Toutefois, la mesure dans laquelle elle a annulé l’exfiltration des données des utilisateurs n’a pas été déterminée.

  • De nouvelles versions de Moq, comme la 4.20.2, ont été publiées. Nous vous déconseillons toutefois de les installer, car il n’a pas été confirmé qu’elles n’entraînent aucune exfiltration de données.

Que faire :

  • Supprimez la dépendance à la version 4.20.0 afin d’éviter l’exfiltration de données.

  • Bloquez cette dépendance dans les outils de gestion des packages de votre organisation, comme Artifactory ou Nexus, afin d’éviter que d’autres développeurs ne l’installent par inadvertance.

  • Envisagez de rediriger les enregistrements DNS associés à SponsorLink afin d’éviter les fuites de données accidentelles.

  • Ajoutez Snyk à vos workflows CI ou de compilation et à vos dépôts Git pour détecter la version vulnérable 4.20.0 de Moq, ainsi que d’autres vulnérabilités, bibliothèques malveillantes et fuites de données potentielles dans les bibliothèques logicielles.

Snyk est une entreprise qui propose des outils de sécurité aux développeurs. Elle met à la disposition des développeurs .NET des outils pour analyser les dépendances de leurs projets .NET et détecter les problèmes, comme les vulnérabilités de sécurité et les comportements indésirables tels que celui observé lors de l’incident Moq. Commencez ici pour vos dépendances de projets NuGet et Paket.

Snyk Code est un outil d’analyse statique qui aide les développeurs C# à détecter le code non sécurisé dans leurs projets.

Lire la suite

Blog

Les modèles de pointe ont trouvé les vulnérabilités. Seul l’attaquant a trouvé les chaînes d’exploitation.

L’analyse statique a détecté les failles, mais seuls des tests d’attaque en conditions réelles ont prouvé comment elles pouvaient être enchaînées pour provoquer des compromissions. Comparaison d’Evo COS, de Claude Security et de Claude Code Security.

feature insights context
Blog

Les attaques autonomes sont déjà là. La défense doit suivre leur rythme.

Les attaquants autonomes réduisent la fenêtre de défense. Découvrez comment la découverte, la correction, la validation et la prévention continues peuvent aider les équipes de sécurité à suivre le rythme.

Blog

Pourquoi les agents de codage IA créent-ils sans cesse des failles de contrôle d’accès ?

Les agents de codage IA peuvent générer une logique d’autorisation qui compile et passe la revue, tout en exposant les données d’un tenant à un autre. Découvrez pourquoi les failles de contrôle d’accès sont difficiles à détecter et comment les prévenir.