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

IA et services publics : le gouvernement mise sur Albert et Aristote

Le Premier ministre a précisé les usages de l'IA dans les services de l'administration et…

24 minutes ago

Meta Horizon OS sera-t-il le Windows ou l’Android de la VR ?

Sous la marque Horizon OS, Meta va ouvrir le système d'exploitation des casques Quest à…

20 heures ago

Treize ans après, fin de parcours pour Women Who Code

Après avoir essaimé dans 145 pays, la communauté de femmes de la tech Women Who…

1 jour ago

Broadcom : la grogne des fournisseurs et des utilisateurs converge

Les voix du CISPE et des associations d'utilisateurs s'accordent face à Broadcom et à ses…

1 jour ago

Numérique responsable : les choix de Paris 2024

Bonnes pratiques, indicateurs, prestataires... Aperçu de quelques arbitrages que le comité d'organisation de Paris 2024…

2 jours ago

Programme de transfert au Campus Cyber : point d’étape après un an

Le 31 mars 2023, le PTCC (Programme de transfert au Campus Cyber) était officiellement lancé.…

2 jours ago