当前位置: 首页 > 科技观察

少一个字母,多个PyPI包引入恶意依赖

时间:2023-03-16 20:04:06 科技观察

据外媒BleepingComputer近日报道,多个PyPI包被发现含有后门,因为这些包的某些版本存在恶意'request'依赖,涉及的包包括pyanxdns,api-res-py,并保留。以keep为例,它会使用合法的Python模块requests来进行HTTP请求,但是keepv.1.2版本包含了一个名为request的模块(注意:后者少了末尾的字母s),虽然只有一个字母没有s的请求被认为是恶意依赖。受影响的软件包版本和CVEID如下:CVE-2022-30877:keepv1.2versionisaffectedCVE-2022-30882:pyanxdnsv0.2versionisaffectedCVE-2022-31313:api-res-pyv0.1版受到影响早在5月份,研究人员就注意到上述软件包的某些版本包含拼写错误的请求依赖项,而不是合法请求。pyanxdns和api-res-py规模较小,用户不多,而keep是一个平均每周超过8000次下载的软件包,其1.2版本使用了如上所述的恶意依赖项。通过查看keepv1.2版本的代码,我们可以发现该版本包含一个恶意后门,这个恶意后门就是requestdependency。尽管request已被PyPI移除,但仍有许多镜像站点并未完全移除此版本的包,因此不知情的用户仍有可能安装带有恶意依赖项的此包。进一步检查发现代码的第57行包含一个base64编码的URL,指向如下所示的check.so恶意软件。分析师还发现了另一个URL(x.pyx),也与请求依赖性有关。[.]top/request/check.so[.]top/x.pyx其中check.so通过远程访问木马(RAT),而x.pyx包含信息窃取恶意软件,可以从Chrome、Firefox、Yandex、Brave等网络浏览器窃取cookie和个人信息。多个PyPI包中同时存在相同的恶意依赖项确实提出了一个关键问题——这是如何发生的?外媒BleepingComputer试图联系这些软件包的作者,以查明问题是由简单的拼写错误还是由维护者帐户被劫持引起的。pyanxdns作者和维护者MarkyEgeb?ck的回复确认该错误确实是由拼写错误引起的。Egeb?ck说:抱歉,setup.py文件中有错字,根据git历史记录,它是在我添加install_requires时添加的。此后,开发人员将新版本重新上传到PyPI,并删除了引用恶意require依赖项的版本。目前在项目中使用pyanxdns、api-res-py、keep的开发者,还是需要查看自己目前使用的是什么版本,避免受到漏洞影响,尽快升级到最新版本,或者使用其他软件包取代。