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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

PyPI : des paquets Python volent les clés AWS des utilisateurs et les envoient vers des sites non sécurisés


Sujet :

Sécurité

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 298
    Points
    66 298
    Par défaut PyPI : des paquets Python volent les clés AWS des utilisateurs et les envoient vers des sites non sécurisés
    Le paquet PyPI "keep" aurait inclus par erreur un voleur de mots de passe
    le mainteneur aurait involontairement introduit une dépendance malveillante par une faute de frappe

    Une analyse a révélé récemment que les paquets PyPI "keep", "pyanxdns" et "api-res-py" contiennent une porte dérobée en raison de la présence de la dépendance malveillante 'request' dans certaines versions. Par exemple, alors que la plupart des versions du projet "keep" utilisent le module Python légitime "requests", qui permet d'effectuer des requêtes HTTP, la version 1.2 de "keep" contient "request" (sans s) qui est un paquet malveillant. À la question de savoir si cela était dû à une simple erreur typographique, à un autosabotage ou au piratage des comptes du responsable, un développeur de "pyanxdns" a confirmé qu'il s'agissait d'une erreur de frappe.

    En mai, l'utilisateur de GitHub "duxinglin1" a remarqué que les versions vulnérables des paquets PyPI "keep", "pyanxdns" et "api-res-py" contenaient la dépendance mal orthographiée "request", par opposition à la bibliothèque légitime "requests". En tant que tels, les CVE suivants ont été attribués cette semaine en ce qui concerne les versions vulnérables :

    • CVE-2022-30877 : la version 1.2 de 'keep' contient la porte dérobée 'request' ;
    • CVE-2022-30882 : la version 0.2 de 'pyanxdns' est affectée ;
    • CVE-2022-31313 : la version 0.1 de "api-res-py" est affectée.


    Bien que les paquets "pyanxdns" et "api-res-py" soient des projets à petite échelle, le paquet "keep", en particulier, est téléchargé plus de 8 000 fois par semaine en moyenne. « Nous avons trouvé une porte dérobée malveillante dans la version 1.2 de ce projet, et sa porte dérobée malveillante est le paquet "request". Même si le paquet malveillant "request" a été supprimé par PyPI, de nombreux sites miroirs n'ont pas complètement supprimé ce paquet, il peut donc encore être installé », a écrit l'utilisateur de GitHub duxinglin1. Le code malveillant contenu dans le paquet "request" est mis en évidence ci-dessous (image).

    Nom : zes.png
Affichages : 50805
Taille : 296,2 Ko

    La ligne 57 contient une URL codée en base64 vers le programme malveillant "check.so". Un autre analyste a également identifié une autre URL (x.pyx) associée à la dépendance "request" contrefaite. Le fichier "check.so" contient un cheval de Troie d'accès à distance (RAT), tandis que le fichier "x.pyx" contient un logiciel malveillant de vol d'informations qui vole les cookies et les informations personnelles des navigateurs Web tels que Chrome, Firefox, Yandex, Brave, etc. L'analyse a révélé que le cheval de Troie voleur d'informations tentera de dérober les noms de connexion et les mots de passe stockés dans les navigateurs Web.

    Après avoir obtenu l'accès aux informations d'identification de l'utilisateur, les acteurs de la menace peuvent ensuite tenter de compromettre d'autres comptes utilisés par le développeur, ce qui peut conduire à d'autres attaques de la chaîne d'approvisionnement. Cependant, la présence d'une dépendance malveillante dans plusieurs paquets PyPI soulève une question cruciale : comment cela s'est-il produit ? Les analystes se demandent en effet s'il s'agissait d'une simple erreur typographique, d'un autosabotage ou d'un détournement de comptes de mainteneurs. Les mainteneurs des paquets "keep" et "api-res-py" ne se sont pas encore prononcé.

    En revanche, l'auteur et mainteneur de "pyanxdns", Marky Egebäck, a confirmé qu'il s'agissait d'une erreur typographique et non d'une compromission de compte. En outre, selon les analystes, à première vue, il semble que les auteurs des deux autres paquets aient également introduit par inadvertance "request" au lieu du paquet légitime "requests", en raison d'une innocente erreur de frappe. « Désolé de dire qu'il s'agit d'une simple faute de frappe dans le fichier setup.py puisque l'historique git montre que cela a été ajouté lorsque "install_requires" a été ajouté par moi », a déclaré Egebäck.

    Egebäck a depuis retéléchargé une nouvelle version sur PyPI et supprimé la version faisant référence à la dépendance malveillante "request". « C'était une erreur honnête basée sur une faute de frappe dans le fichier setup.py. Je ne publie généralement pas de choses sur PyPI, mais j'ai fait cela rapidement pour un ami et moi-même. Je ne suis pas sûr qu'il en a fait la promotion, mais le but était principalement un usage personnel dans un projet docker interne », explique-t-il. Egebäck a remercié l'utilisateur de GitHub "duxinglin1" d'avoir mis en évidence la présence de la dépendance malveillante dans son projet.

    Il a également expliqué qu'il n'avait pas consacré beaucoup de temps à la maintenance du projet ces derniers temps. « Cela aurait été beaucoup mieux de corriger ça plus tôt, mais je n'ai pas compris la gravité de la situation et, comme je consacre très peu de temps au codage, cela a pris beaucoup de temps », a déclaré Egebäck. En effet, lors du codage d'applications, d'innocentes fautes de frappe de la part du développeur peuvent, par inadvertance, donner lieu à des attaques de typosquattage qui comptent sur de telles erreurs pour compromettre la chaîne d'approvisionnement des logiciels.

    Nom : edg.png
Affichages : 2491
Taille : 35,9 Ko

    Le typosquattage est un type d'attaque d'ingénierie sociale qui cible les internautes qui tapent incorrectement une URL dans leur navigateur Web plutôt que d'utiliser un moteur de recherche. Il s'agit généralement d'inciter les utilisateurs à visiter des sites Web malveillants dont les URL sont des fautes d'orthographe courantes de sites Web légitimes. Les utilisateurs peuvent être amenés à saisir des informations sensibles sur ces faux sites. Pour les organisations victimes de ces attaquants, ces sites peuvent causer des dommages importants à leur réputation.

    Le terme "typo", dans typosquattage, fait référence aux petites erreurs que l'on peut faire en tapant sur un clavier. Le typosquattage est également connu sous le nom de détournement d'URL, d'imitation de domaine, de sites piégés ou de fausses URL. Ceux qui ont l'habitude de taper rapidement et de manière imprécise ou qui se fient beaucoup à la correction automatique sont particulièrement susceptibles d'en être victimes - par exemple, en tapant gogle.com au lieu de google.com. Parfois, un utilisateur n'a pas fait de faute de frappe, mais ignore l'orthographe correcte d'un nom de marque, et les squatteurs sont bien conscients de ce fait.

    Bien que dans ce cas, la dépendance malveillante "request" ait été retirée depuis longtemps du registre PyPI, les personnes utilisant une version vulnérable des paquets PyPI et s'appuyant sur un miroir pour récupérer les dépendances peuvent se retrouver avec des voleurs d'informations sur son système. Par ailleurs, plusieurs paquets npm ont été autosabotés par leurs propres auteurs ces derniers mois. Par exemple, en mars, un paquet npm compromis par l'auteur efface les fichiers sur les ordinateurs russes et biélorusses lors de l'installation. Le mainteneur du paquet a déclaré l'avoir fait pour protester contre l'invasion de l'Ukraine par la Russie.

    Sources : keep (1, 2), CVE-2022-30877,

    Et vous ?

    Quel est votre avis sur le sujet ?
    Que pensez-vous de la déclaration selon laquelle la dépendance malveillante a été introduite par erreur ?
    Que pensez-vous des attaques de typosquattage ?
    Selon vous, comment les développeurs peuvent s'en prémunir ?

    Voir aussi

    Un paquet npm compromis par l'auteur efface les fichiers sur les ordinateurs russes et biélorusses lors de l'installation, pour protester contre l'invasion de l'Ukraine par la Russie

    La bibliothèque npm populaire "coa" est détournée pour voler les mots de passe des utilisateurs, le paquet npm "rc" serait également compromis

    Un dev open source aurait volontairement corrompu des bibliothèques largement utilisées, affectant des tonnes de projets, il avait précédemment demandé à être rémunéré pour son travail

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    1 550
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 550
    Points : 5 910
    Points
    5 910
    Par défaut
    C'est pour ça qu'il faut tout programmer sois même ligne par ligne : ne jamais télécharger une API, une librairie, un package ou un Framework, c'est les feignants et les incompétents qui font ça de toute façon



  3. #3
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 298
    Points
    66 298
    Par défaut PyPI : des paquets Python volent les clés AWS des utilisateurs et les envoient vers des sites non sécurisés
    PyPI : des paquets Python volent les clés AWS des utilisateurs et les envoient vers des sites non sécurisés et accessibles au public
    selon un rapport

    De multiples paquets Python malveillants disponibles sur le dépôt PyPI auraient été surpris en train de voler des informations sensibles comme les identifiants AWS et de les transmettre à des points d'extrémité exposés publiquement et accessibles à tous. Ces paquets ont été découverts par les chercheurs en sécurité de la société de cybersécurité Sonatype. Après un examen approfondi, les chercheurs ont identifié les paquets suivants comme étant malveillants : "loglib-modules", "pyg-modules", "pygrata", "pygrata-utils", "hkg-sol-utils".

    PyPI est un dépôt de paquets open source que les développeurs de logiciels utilisent pour choisir les blocs de construction de leurs projets basés sur Python ou pour partager leur travail avec la communauté. Selon les analystes, bien que PyPI réagisse généralement rapidement aux signalements de paquets malveillants, il n'y a pas de véritable contrôle avant la soumission, de sorte que les paquets dangereux peuvent y rester pendant un certain temps. Les entreprises de sécurité de la chaîne d'approvisionnement des logiciels comme Sonatype utilisent des outils spécialisés de détection automatique des logiciels malveillants pour les repérer.

    Analysés par les chercheurs en sécurité de Sonatype, Jorge Cardona et Carlos Fernández, certains de ces paquets contiennent du code qui lit et exfiltre vos secrets ou utilisent une des dépendances qui fera le travail. Selon les chercheurs, alors que les deux premiers paquets ("loglib-modules" et "pyg-modules") tentent d'imiter des projets légitimes et populaires sur le dépôt PyPI pour inciter les utilisateurs imprudents ou inexpérimentés à les installer et que les trois autres ("pygrata", "pygrata-utils" et "hkg-sol-utils") n'ont pas une cible apparente, les cinq paquets présentent des similitudes ou des connexions de code.

    Nom : image-png-Jun-17-2022-03-12-13-13-PM.png
Affichages : 62398
Taille : 47,7 Ko

    Les analystes ont constaté que les paquets "loglib-modules" et "pygrata-utils" ont été créés pour l'exfiltration de données, en récupérant les informations d'identification AWS (des instances Amazon EC2), les informations d'interface réseau et les variables d'environnement. Le rapport note qu'il est intéressant de noter que "pygrata" ne contient pas la fonctionnalité de vol de données en soi, mais nécessite "pygrata-utils" comme dépendance. Selon les chercheurs, bien que quatre des paquets malveillants aient été signalés et retirés immédiatement de PyPI, "pygrata" y est resté plus longtemps, même s'il ne pouvait pas faire grand-chose tout seul.

    En outre, les informations d'identification volées ont-elles été exposées intentionnellement sur le Web ou sont-elles la conséquence de mauvaises pratiques de sécurité opérationnelle ? À ce stade, les analystes de Sonatype ont déclaré qu'ils ont contacté les propriétaires du domaine pour les informer de l'exposition publique et leur demander des explications. Peu de temps après, le point de terminaison a été protégé de l'accès public sans que Sonatype reçoive une réponse. Les analystes ont donc suggéré que cela signifie probablement que l'objectif de ces paquets et du domaine d'hébergement des données n'est pas légitime.

    « L'utilisation du domaine PyGrata.com et les noms de certains des packages malveillants (pygrata-utils) n'étaient pas très clairs pour nous quant à leur objectif. Fait intéressant cependant, nos chercheurs ont remarqué que les terminaux collectant ces informations d'identification exposaient ces données à presque n'importe qui sur le Web. Monter un niveau de répertoire nous a montré des centaines de fichiers TXT contenant des informations sensibles et des secrets », indique le rapport. Il ajoute qu'il se peut que ces paquets aient été utilisés pour des tests de sécurité légitimes et que les auteurs n'ont jamais eu l'intention d'exploiter les données volées.

    Comme ces paquets malveillants n'utilisent pas d'astuces de typosquattage, ils ne ciblent pas au hasard les développeurs qui ont fait une faute de frappe, mais les utilisateurs qui recherchent des outils spécifiques pour leurs projets. Par exemple, au début de ce mois, un rapport a révélé que les paquets PyPI "keep", "pyanxdns" et "api-res-py" ont inclus par erreur un voleur de mots de passe. Plus précisément, alors que la plupart des versions du projet "keep" utilisent le module Python légitime "requests", qui permet d'effectuer des requêtes HTTP, la version 1.2 du paquet "keep" utilise "request" (sans s) qui est un paquet malveillant.

    Le problème viendrait d'une faute de frappe. L'auteur et mainteneur de "pyanxdns", Marky Egebäck, a confirmé qu'il s'agissait d'une erreur typographique et non d'une compromission de compte. En outre, selon les analystes, à première vue, il semble que les auteurs des deux autres paquets aient également introduit par inadvertance "request" au lieu du paquet légitime "requests", en raison d'une innocente erreur de frappe. « Désolé de dire qu'il s'agit d'une simple faute de frappe dans le fichier setup.py puisque l'historique git montre que cela a été ajouté lorsque "install_requires" a été ajouté par moi », a déclaré Egebäck.

    Il a également expliqué qu'il n'avait pas consacré beaucoup de temps à la maintenance du projet ces derniers temps. « Cela aurait été beaucoup mieux de corriger ça plus tôt, mais je n'ai pas compris la gravité de la situation et, comme je consacre très peu de temps au codage, cela a pris beaucoup de temps », a déclaré Egebäck. En effet, lors du codage d'applications, d'innocentes fautes de frappe de la part du développeur peuvent, par inadvertance, donner lieu à des attaques de typosquattage qui comptent sur de telles erreurs pour compromettre la chaîne d'approvisionnement des logiciels.

    Bien que dans ce cas, la dépendance malveillante "request" ait été retirée depuis longtemps du registre PyPI, les personnes utilisant une version vulnérable des paquets PyPI et s'appuyant sur un miroir pour récupérer les dépendances peuvent se retrouver avec des voleurs d'informations sur son système. Par ailleurs, plusieurs paquets npm ont été autosabotés par leurs propres auteurs ces derniers mois. Par exemple, en mars, un paquet npm compromis par l'auteur efface les fichiers sur les ordinateurs russes et biélorusses lors de l'installation. Le mainteneur du paquet a déclaré l'avoir fait pour protester contre l'invasion de l'Ukraine par la Russie.

    Il est conseillé aux développeurs de logiciels d'aller au-delà des noms de paquets et d'examiner attentivement l'historique des versions, les dates de téléchargement, les liens vers les pages d'accueil, les descriptions des paquets et les nombres de téléchargements.

    Source : Sonatype

    Et vous ?

    Quel est votre avis sur le sujet ?

    Voir aussi

    Le paquet PyPI "keep" aurait inclus par erreur un voleur de mots de passe, le mainteneur aurait involontairement introduit une dépendance malveillante par une faute de frappe

    Un dev open source aurait volontairement corrompu des bibliothèques largement utilisées, affectant des tonnes de projets, il avait précédemment demandé à être rémunéré pour son travail

    La bibliothèque npm populaire "coa" est détournée pour voler les mots de passe des utilisateurs, le paquet npm "rc" serait également compromis

    Un paquet npm compromis par l'auteur efface les fichiers sur les ordinateurs russes et biélorusses lors de l'installation pour protester contre l'invasion de l'Ukraine par la Russie

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/10/2010, 13h30
  2. [ICEFACES] Les quotes sont remplacées par &#_39;
    Par Mathieu.J dans le forum JSF
    Réponses: 0
    Dernier message: 19/01/2010, 16h09
  3. Ignorer une inclusion par défaut
    Par magicpm7 dans le forum Visual C++
    Réponses: 4
    Dernier message: 23/08/2007, 11h13
  4. Y aurait-il une erreur de syntaxe ?
    Par mpat dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 21/12/2005, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo