Pour gérer vos consentements :
Categories: Sécurité

«Confusion de dépendances» : le strike à 140 000 $ d’un white hat

Apple, Microsoft, Netflix, PayPal, Tesla, Uber… La liste des entreprises qu’Alex Birsan dit avoir hackées retient l’attention. Les sommes qu’elles lui ont versées aussi : 140 000 $ au total.

Qu’a fait ce chercheur pour toucher une telle récompense ? Il a mené à bien des attaques de type « supply chain » fondées sur ce qu’il a appelé la « confusion de dépendances ». Son levier : du code malveillant introduit sur les dépôts tiers officiels de plusieurs langages de programmation. En l’occurrence, npm (Node.js), PyPI (Python) et RubyGems (Ruby). Son vecteur pour diffuser ce code : une vulnérabilité commune aux gestionnaires de paquets.

La réflexion avait véritablement démarré à l’été 2020. Avec un de ses pairs, Alex Birsan avait découvert, sur un dépôt GitHub public, un paquet npm apparemment destiné à un usage interne chez PayPal. Le fichier de manifeste associé faisait référence à un « mix » de dépendances : certaines présentes dans le dépôt public, d’autres hébergées en interne.

Une question s’est alors posée : s’il existait, dans le dépôt public, un paquet du même nom qu’une dépendance privée, aurait-il la priorité ? Pour y répondre, Alex Birsan a élargi son terrain de chasse. Au 2e semestre 2020, il a collecté des centaines de noms de paquets privés, publiés accidentellement sur des dépôts publics, voire sur des forums. Essentiellement des paquets JavaScript, qui tendent, explique-t-il, à se retrouver embarqués dans des scripts publics pendant le processus de build.

Les paquets malveillants étaient conçus pour exécuter leur charge utile dès le pull. Cela ouvrait un canal d’exfiltration de données par DNS. Avec quatre éléments récupérés sur chaque machine infectée : nom d’hôte, nom d’utilisateur, dossier racine et IP externe.

Dépendances : la loi du plus haut

Constat général : sauf paramétrage spécifique, les gestionnaires priorisent le paquet qui a le plus haut numéro de version, peu importe où il se trouve.

Par rapport aux attaques de type typosquatting ou brandjacking, celle-ci ne suppose aucune action de la part de la victime. À moins que l’attaquant ait réussi à cloner le paquet privé, le code malveillant entraîne un plantage au moment de l’importation ou de la compilation. Mais il faut pouvoir repérer le problème, surtout avec les systèmes de build automatisés. En outre, l’exécution de code à distance est déjà faite quand surviennent les erreurs.

Lorsque Alex Birsan a fait le point sur ses découvertes, le compteur en était à 35 organisations touchées. Essentiellement des structures de plus de 1000 employés. Près des trois quarts des logs DNS reçus provenaient de paquets npm. L’un des projets affectés est vraisemblablement lié au système d’authentification Apple ID.

Microsoft a accordé la récompense maximale dans le cadre de son programme de bug bounty : 40 000 $. L’éditeur a surtout publié un guide consacré à la problématique. Il y fournit plusieurs techniques d’atténuation. Elles consistent essentiellement à restreindre le périmètre de tirage (pointage vers un dépôt privé unique, spécification de la source de chaque paquet, réservation de noms sur les dépôts tiers…) et à réaliser des vérifications d’intégrité côté client.

Illustration principale © Dmitry Baranovskiy / CC BY 2.0

Recent Posts

Pour son premier LLM codeur ouvert, Mistral AI choisit une architecture alternative

Pour développer une version 7B de son modèle Codestral, Mistral AI n'a pas utilisé de…

1 heure ago

Microsoft x Inflection AI : l’autorité de la concurrence britannique lance son enquête

L’Autorité de la concurrence et des marchés (CMA) britannique ouvre une enquête sur les conditions…

4 heures ago

Thomas Gourand, nouveau Directeur Général de Snowflake en France

Thomas Gourand est nommé Directeur Général pour la France. Il est chargé du développement de…

6 heures ago

Accord Microsoft-CISPE : comment Google a tenté la dissuasion

Pour dissuader le CISPE d'un accord avec Microsoft, Google aurait mis près de 500 M€…

6 heures ago

Vers des mises à jour cumulatives intermédiaires pour Windows

Pour réduire la taille des mises à jour de Windows, Microsoft va mettre en place…

6 heures ago

RH, finances, stratégie… Les complexités de la Dinum

De l'organisation administrative à la construction budgétaire, la Cour des comptes pointe le fonctionnement complexe…

1 jour ago