IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Confusion de dépendance : un chercheur a piraté Apple, Microsoft, Netflix et des dizaines d'autres entreprises,
Dans le cadre d'une nouvelle attaque qui ne nécessite aucune action de la victime

Le , par Stéphane le calme

209PARTAGES

17  0 
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é que l'exfiltration DNS était la voie à suivre », a expliqué Birsan dans un billet de blog.


Un extrait du code ci-dessous provient du package npm "analytics-paypal" qui est désormais supprimé de npm. Ce script se lancerait automatiquement dès que la dépendance "analytics-paypal" serait extraite et aurait du code pour faire des requêtes DNS à dns.alexbirsan-hacks-paypal.com et renvoyer des informations comme le nom d'utilisateur et le répertoire personnel du système infecté. Des informations qu'il a rapporté aux entreprises appropriées et qui lui ont permis de gagner une prime de bogue.

Plus de 130 000 $ en primes

Dans l'ensemble, le chercheur a réussi à gagner plus de 130 000 $ en récompenses grâce à des programmes de primes aux bogues et à des accords de test de pénétration préapprouvés.

« Je pense qu'il est important de préciser que chaque organisation ciblée au cours de cette recherche a donné l'autorisation de faire tester sa sécurité, soit par le biais de programmes publics de bug bounty, soit par le biais d'accords privés. Veuillez ne pas tenter ce type de test sans autorisation », prévient Birsan.

Pour la divulgation de Birsan, Microsoft lui a attribué le montant de la prime de bogue le plus élevé de 40 000 $ et a publié un livre blanc sur ce problème de sécurité. Ils identifient ce problème comme CVE-2021-24105 pour leur produit Azure Artifactory.

Cependant, Microsoft a déclaré à Birsan dans un e-mail qu'il considérait cela comme un défaut de conception dans les gestionnaires de packages :

« Bien que nous considérions cela comme un problème de sécurité grave, il doit en fin de compte être résolu en reconfigurant les outils d'installation et les flux de travail, et non en corrigeant quoi que ce soit dans les référentiels de packages eux-mêmes.

«Pour résoudre ce problème, Microsoft a apporté des améliorations mineures à Azure Artifacts pour garantir qu'il peut être utilisé comme une solution de contournement fiable.

« Cela dit, nous considérons que la cause première de ce problème est un défaut de conception (plutôt qu'un bogue) dans les gestionnaires de packages qui ne peut être résolu que par reconfiguration », a déclaré un porte-parole de Microsoft dans l'e-mail.

Dans une déclaration, Yelp a confirmé le rapport du chercheur et l'a récompensé après avoir corrigé le problème dans la journée :

« Grâce au programme bug-bounty de Yelp, Alex Birsan nous a aidés à identifier une vulnérabilité, que nous avons immédiatement corrigée en une journée.

« Nous nous engageons à travailler avec des experts en sécurité pour rester à jour avec les dernières techniques de sécurité, et nous nous appuyons sur notre programme bug-bounty pour récompenser les chercheurs en sécurité qualifiés qui aident à améliorer les systèmes et les services de Yelp ».

Apple a déclaré que Birsan obtiendrait une récompense via le programme Apple Security Bounty pour avoir divulgué ce problème de manière responsable.

PayPal a divulgué publiquement le rapport HackerOne de Birsan mentionnant le montant de la prime de 30000 $.

Cependant, les efforts de recherche éthique du chercheur n'ont pas été appréciés par tout le monde.

« Je pense que c'est probablement une raison suffisante pour ne pas avoir ces projets sur PyPI», a déclaré Dustin Ingram, directeur de Python Software Foundation et un défenseur des développeurs de Google, qui a enquêté et retiré certains des packages de Birsan de PyPI.

Après avoir passé une heure à retirer ces paquets, Ingram a souligné que le téléchargement de paquets illicites sur PyPI impose un fardeau indu aux bénévoles qui gèrent PyPI.

« En fin de compte, si vous souhaitez protéger les utilisateurs contre ce type d'attaque, il existe de meilleures façons de le faire qui protègent l'ensemble de l'écosystème, pas seulement un ensemble spécifique d'organisations avec des primes de bogues », a ajouté Ingram.

Les attaques devraient se développer, un problème difficile à résoudre

Grâce à cette recherche couvrant de grandes organisations, Birsan a déclaré qu'il avait déjà sensibilisé les grandes entreprises technologiques à ce type d'attaque qui ont maintenant mis en œuvre une sorte d'atténuation dans leur infrastructure. Cependant, le chercheur pense qu'il y a plus à découvrir.

Il reste la possibilité que de telles attaques refassent surface et se développent, en particulier sur les plates-formes open source sans solution facile à la confusion des dépendances.

« Plus précisément, je pense que trouver de nouveaux moyens intelligents de divulguer des noms de paquetages internes exposera des systèmes encore plus vulnérables, et rechercher d'autres langages de programmation et référentiels à cibler révélera une surface d'attaque supplémentaire pour les bogues de confusion de dépendance », a conclu le chercheur dans son billet de blog.

Sonatype a publié un script sur GitHub que les utilisateurs de Nexus Repository Manager peuvent exécuter pour vérifier si l'une de leurs dépendances privées porte le nom de packages existants présents dans les dépôts publics npm, RubyGems et PyPI. Les sociétés d'autres gestionnaires de référentiels d'artefacts peuvent adopter des implémentations identiques.

Sources : billet Alex Birsan, Yelp, PayPal, suppression des paquets

Voir aussi :

Le travail à distance augmente les menaces en matière de sécurité mais le niveau de cybersécurité reste élevé, selon un nouveau rapport de Siemplify
Un chercheur en sécurité pirate le système de paiement par carte à puce de la machine à café Nespresso pour réécrire la valeur monétaire de la carte
Google propose l'établissement de nouvelles règles pour améliorer la sécurité des logiciels open source et donne des pistes de réflexion dans ce sens

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Jeff_67
Membre éprouvé https://www.developpez.com
Le 11/02/2021 à 13:49
C'est une des raisons je suis très réservé concernant le remplacement de clients lourds par des applis web dans des clouds Azure ou autre. Si les dits clouds souffrent d'une quelconque faille de sécurité de ce genre, la sécurité des applications est compromise.

Plus généralement, faire une appli web c'est gérer des problèmes de droits et de sécurité qu'on n'avait pas avec le client lourd pré-existant.
3  0 
Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 11/02/2021 à 14:39
faire une appli web c'est gérer des problèmes de droits et de sécurité qu'on n'avait pas avec le client lourd pré-existant
Un client lourd c'est mieux car cela consomme moins de ressource si cela peut-être géré en interne. Mais a partir du moment ou tu as besoin d'information prises ailleurs, que tu en prenne un peu ou beaucoup cela change peu le niveau de sécurité.

Si tant d'entreprise choisissent le cloud c'est avant tout pour la sécurité qu'il apporte en tant que gestion professionnel du matériel, backup, sécurité informatique, OS et réseau. Autrement dis le cloud te permet de ne plus avoir a gérer les problème lié a l'infrastructure informatique. Tu n'a qu'une chose a garantir: un accès réseau de qualité...
1  0 
Avatar de Pongten
Membre expert https://www.developpez.com
Le 11/02/2021 à 10:58
Je comprends alors mieux l'article paru hier sur le blog de Microsoft : Changes to Azure Artifacts Upstream Behavior.
0  0 
Avatar de Saverok
Expert éminent https://www.developpez.com
Le 12/02/2021 à 11:03
Citation Envoyé par Jeff_67 Voir le message
C'est une des raisons je suis très réservé concernant le remplacement de clients lourds par des applis web dans des clouds Azure ou autre. Si les dits clouds souffrent d'une quelconque faille de sécurité de ce genre, la sécurité des applications est compromise.

Plus généralement, faire une appli web c'est gérer des problèmes de droits et de sécurité qu'on n'avait pas avec le client lourd pré-existant.

La problématique de sécurité est également valable pour du client lourd mais déportée sur les postes plutôt que sur le serveur cloud.
Au moins, avec la centralisation par le cloud, il est plus simple de contrôler que les versions sont à jour, config de sécu et autres.

Pour énormément d'applications, le client lourd ne sert à rien, c'est même une contrainte importante.
Faut gérer la diffusion des maj ainsi que la diversité des OS des postes qui vont l'utiliser (mac, windows, unix et sans parler du mobile...)
Du coup, c'est nettement plus cher en maintenance.
Via les navigateurs web, on gère des interfaces responsives, multi devices et esthétiques sans trop d'effort.

Avec le développement de la fibre et de la 4G, le réseau est de moins en moins une contrainte.

Ensuite, y a toute la gestion des serveurs qui est bien décrite par abriotde
Ca permet aux entreprises de mutualiser les infrastructures mais également de sous traiter cela plus facilement et se concentrer sur leur coeur de métier.
Toute entreprise n'a pas la nécessité d'avoir des experts infra et sécu en CDI car ce n'est pas du tout leur job.
1  1 
Avatar de moldavi
Membre extrêmement actif https://www.developpez.com
Le 12/02/2021 à 23:51
Bonjour.

Je trouve admirable le travail de ce hacker.

Après, vu que ce sont des étudiants en informatique qui font de l'open source, ce genre de hack existera encore.
0  0 
Avatar de tanaka59
Expert confirmé https://www.developpez.com
Le 13/02/2021 à 20:19
Bonsoir,

Confusion de dépendance : un chercheur a piraté Apple, Microsoft, Netflix et des dizaines d'autres entreprises, dans le cadre d'une nouvelle attaque qui ne nécessite aucune action de la victime.
Cela fait penser aux attaques avec Ccleaner en 2019 et les ransomwares en 2017.

Dans un cas comme dans l'autre les attaques ont réussi à maquiller le code malicieux dans du code légitime ... Le problème se pose d'autant plus avec l'open source et Git . On peut mettre n'importe quoi et celui qui télécharge n'y verra que du feu ...

Avec les markets places alternatifs à Google ou Apple aussi, pour le quidam moyen qui n'y connait rien techno mobile le risque existe.
0  0