Un chercheur a réussi à briser les systèmes internes de plus de 35 grandes entreprises, notamment Microsoft, Apple, PayPal, Shopify, Netflix, Yelp, Tesla et Uber, dans le cadre d'une nouvelle attaque de la chaîne logistique logicielle.L'attaque comprenait le téléchargement de logiciels malveillants dans des référentiels open source, notamment PyPI, npm et RubyGems, qui ont ensuite été distribués automatiquement en aval dans les applications internes de l'entreprise.
Contrairement aux attaques de typosquatting traditionnelles qui reposent sur des tactiques d'ingénierie sociale ou qui s’appuient sur le fait que la victime ait mal orthographié un nom de paquet, cette attaque de chaîne d'approvisionnement particulière est plus sophistiquée, car elle n'a nécessité aucune action de la victime, qui a automatiquement reçu les paquets malveillants.
En effet, l'attaque a exploité une faille de conception unique des écosystèmes open source appelée confusion de dépendance.
Pour ses efforts de recherche éthique, le chercheur a gagné plus de 130 000 $ en primes de bogues.
Les logiciels malveillants sont distribués automatiquement en aval
L'année dernière, le chercheur en sécurité Alex Birsan s’est montré curieux suite à la situation qu’il a vécue en travaillant avec Justin Gardner, un autre chercheur en sécurité. Gardner avait partagé avec Birsan un fichier manifeste, package.json, à partir d'un package npm utilisé en interne par PayPal.
Dépendances publiques et privées (créées en interne) pour un package PayPal
Birsan a remarqué que certains des packages de fichiers manifestes n'étaient pas présents sur le référentiel public npm, mais étaient plutôt des packages npm créés en privé par PayPal, utilisés et stockés en interne par la société.
En voyant cela, le chercheur s'est demandé : « si un paquet du même nom devait exister dans le référentiel public npm, en plus d'un référentiel NodeJS privé, lequel aurait la priorité ? »
Pour répondre à cette interrogation, Birsan a commencé à rechercher des noms de packages internes privés qu'il pouvait trouver dans des fichiers manifestes sur des référentiels GitHub ou dans des CDN d'entreprises de premier plan, mais qui n'existaient pas dans un référentiel public open source.
Le chercheur a ensuite commencé à créer des projets factices en utilisant les mêmes noms sur des référentiels open source tels que npm, PyPI et RubyGems.
Chaque paquet publié par Birsan l'a été sous son compte réel et avait clairement une clause de non-responsabilité en place, indiquant que « ce paquet est destiné à des fins de recherche de sécurité et ne contient aucun code utile ».
Birsan s'est vite rendu compte que si un package de dépendances utilisé par une application existait à la fois dans un référentiel open source public et dans votre build privé, le package public aurait la priorité et serait extrait à la place - sans aucune action du développeur.
Dans certains cas, comme avec les packages PyPI, le chercheur a remarqué que le package avec la version supérieure serait priorisé quel que soit l'endroit où il se trouve.
En utilisant cette technique, Birsan a exécuté une attaque réussie de la chaîne d'approvisionnement contre Microsoft, Apple, PayPal, Shopify, Netflix, Tesla, Yelp et Uber simplement en publiant des packages publics utilisant le même nom que les packages internes de l'entreprise.
« Je crois que la confusion de dépendance est très différente du typosquatting ou du brandjacking, car elle ne nécessite pas nécessairement une quelconque intervention manuelle de la victime ». « Au contraire, des vulnérabilités ou des défauts de conception dans les outils de build ou d'installation automatisés peuvent faire en sorte que les dépendances publiques soient confondues avec des dépendances internes portant exactement le même nom », a déclaré Birsan.
Exfiltration de données via DNS
Les packages contenaient des scripts de préinstallation qui lançaient automatiquement un script pour exfiltrer les informations d'identification de la machine dès que le processus de build avait extrait les packages.
Sachant que ses scripts établiraient des connexions à partir de réseaux d'entreprise, Birsan a décidé d'utiliser DNS pour exfiltrer les données afin de contourner la détection.
« Sachant que la plupart des cibles possibles se trouveraient au plus profond de réseaux d'entreprise bien protégés, j'ai considéré...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.
