Une analyse a rvl rcemment que les paquets PyPI « keep », « pyanxdns » et « api-res-py » contiennent une porte drobe en raison de la prsence de la dpendance malveillante ‘request’ dans certaines versions. Par exemple, alors que la plupart des versions du projet « keep » utilisent le module Python lgitime « requests », qui permet d’effectuer des requtes 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 dveloppeur 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 vulnrables des paquets PyPI « keep », « pyanxdns » et « api-res-py » contenaient la dpendance mal orthographie « request », par opposition la bibliothque lgitime « requests ». En tant que tels, les CVE suivants ont t attribus cette semaine en ce qui concerne les versions vulnrables :
- CVE-2022-30877 : la version 1.2 de ‘keep’ contient la porte drobe ‘request’ ;
- CVE-2022-30882 : la version 0.2 de ‘pyanxdns’ est affecte ;
- CVE-2022-31313 : la version 0.1 de « api-res-py » est affecte.
Bien que les paquets « pyanxdns » et « api-res-py » soient des projets petite chelle, le paquet « keep », en particulier, est tlcharg plus de 8 000 fois par semaine en moyenne. Nous avons trouv une porte drobe malveillante dans la version 1.2 de ce projet, et sa porte drobe malveillante est le paquet « request ». Mme si le paquet malveillant « request » a t supprim par PyPI, de nombreux sites miroirs n’ont pas compltement 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).
La ligne 57 contient une URL code en base64 vers le programme malveillant « check.so ». Un autre analyste a galement identifi une autre URL (x.pyx) associe la dpendance « request » contrefaite. Le fichier « check.so » contient un cheval de Troie d’accs 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 rvl que le cheval de Troie voleur d’informations tentera de drober les noms de connexion et les mots de passe stocks dans les navigateurs Web.
Aprs avoir obtenu l’accs aux informations d’identification de l’utilisateur, les acteurs de la menace peuvent ensuite tenter de compromettre d’autres comptes utiliss par le dveloppeur, ce qui peut conduire d’autres attaques de la chane d’approvisionnement. Cependant, la prsence d’une dpendance malveillante dans plusieurs paquets PyPI soulve 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 dtournement 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 Egebck, a confirm qu’il s’agissait d’une erreur typographique et non d’une compromission de compte. En outre, selon les analystes, premire vue, il semble que les auteurs des deux autres paquets aient galement introduit par inadvertance « request » au lieu du paquet lgitime « requests », en raison d’une innocente erreur de frappe. Dsol 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 dclar Egebck.
Egebck a depuis retlcharg une nouvelle version sur PyPI et supprim la version faisant rfrence la dpendance malveillante « request ». C’tait une erreur honnte base sur une faute de frappe dans le fichier setup.py. Je ne publie gnralement pas de choses sur PyPI, mais j’ai fait cela rapidement pour un ami et moi-mme. Je ne suis pas sr qu’il en a fait la promotion, mais le but tait principalement un usage personnel dans un projet docker interne , explique-t-il. Egebck a remerci l’utilisateur de GitHub « duxinglin1 » d’avoir mis en vidence la prsence de la dpendance 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 tt, mais je n’ai pas compris la gravit de la situation et, comme je consacre trs peu de temps au codage, cela a pris beaucoup de temps , a dclar Egebck. En effet, lors du codage d’applications, d’innocentes fautes de frappe de la part du dveloppeur peuvent, par inadvertance, donner lieu des attaques de typosquattage qui comptent sur de telles erreurs pour compromettre la chane d’approvisionnement des logiciels.
Le typosquattage est un type d’attaque d’ingnierie sociale qui cible les internautes qui tapent incorrectement une URL dans leur navigateur Web plutt que d’utiliser un moteur de recherche. Il s’agit gnralement d’inciter les utilisateurs visiter des sites Web malveillants dont les URL sont des fautes d’orthographe courantes de sites Web lgitimes. Les utilisateurs peuvent tre amens saisir des informations sensibles sur ces faux sites. Pour les organisations victimes de ces attaquants, ces sites peuvent causer des dommages importants leur rputation.
Le terme « typo », dans typosquattage, fait rfrence aux petites erreurs que l’on peut faire en tapant sur un clavier. Le typosquattage est galement connu sous le nom de dtournement d’URL, d’imitation de domaine, de sites pigs ou de fausses URL. Ceux qui ont l’habitude de taper rapidement et de manire imprcise ou qui se fient beaucoup la correction automatique sont particulirement 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 dpendance malveillante « request » ait t retire depuis longtemps du registre PyPI, les personnes utilisant une version vulnrable des paquets PyPI et s’appuyant sur un miroir pour rcuprer les dpendances peuvent se retrouver avec des voleurs d’informations sur son systme. Par ailleurs, plusieurs paquets npm ont t autosabots 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 bilorusses lors de l’installation. Le mainteneur du paquet a dclar 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 dclaration selon laquelle la dpendance malveillante a t introduite par erreur ?
Que pensez-vous des attaques de typosquattage ?
Selon vous, comment les dveloppeurs peuvent s’en prmunir ?
Voir aussi