恶意软件包潜入PyPI实施供应链攻击 开发者系统成加密矿工
共 1950字,需浏览 4分钟
·
2021-06-24 10:31
最近发现,一群加密矿工渗透在PyPI( Python Package Index),这是一个用Python编程语言创建的软件代码仓库。
与GitHub、npm和RubyGems等其他代码仓库类似,PyPI是软件供应链的一部分。它提供了一个场所,编码人员可以上传软件包,供开发人员在构建各种应用程序、服务和其他项目时使用。不幸的是,代码仓库中的一个恶意软件包可以被整合到多个不同的项目中,以使项目受到加密者和信息窃取者的破坏并难以修复。
Sonatype的研究人员在PyPI中发现了6个不同的恶意软件包,这些软件包自4月以来已累计下载近5000次,全部由用户名“nedog123”上传。其中包括一个名为“maratlib”的主包,以及其他5个使用maratlib 作为组件的包:maratlib1;matplatlib-plus;mllearnlib;mplatlib learninglib。
这些恶意软件包中有一些针对错别字的程序,当人们不小心输入错误名字时会抓取的程序。例如,假冒的mplatlib和matplatlib-plus以合法的Python绘图软件matplotlib命名。
maratlib恶意Python软件包
在所有软件包中,恶意代码都包含在一个在软件包安装期间运行的构建脚本中,称为“setup.py”。此文件从GitHub下载并运行Bash脚本。在研究时发现它试图从不再可用的GitHub存储库下载Bash脚本 (aza2.sh)。
通过开源情报在GitHub上跟踪作者别名,发现该脚本的作用是在受感染的机器上运行一个名为“Ubqminer”的加密矿工。
研究人员还指出,恶意软件作者用他们自己的地址替换了默认的Kryptex钱包地址,以挖掘Ubiq加密货币(UBQ)。在另一个变体中,该脚本包括一个使用GPU功能的不同加密程序,即开源T-Rex,它使用NVIDIA GPU处理器开采以太坊。这些PyPI恶意软件包已经在代码仓库中潜伏了几个月,目标是将开发人员系统变成加密矿工。
根据安全人员提示,PyPI中的这些恶意软件包似乎已被删除,但尚不清楚这些软件包中的恶意代码被应用到多少活跃的项目当中,并且威胁者还可能以化名再次出现。
Vdoo首席科学家 Ilya Khivrich 表示,作为一个系统性威胁,这需要多个层面上积极应对,包括软件代码仓库的维护者及开发人员。在开发人员方面,在CI/CD管道中应该增加安全检测手段,例如验证库签名和使用自动化代码安全工具扫描项目中的可疑代码。通常,在此阶段利用静态代码检测工具和SCA可以有效查找源代码中存在的代码缺陷,减少恶意代码及系统漏洞的存在。
开发人员:恶意软件的新供应链目标
通过观察发现,恶意软件入侵代码仓库仅是一个新的开始,同时也是软件供应链攻击的新趋势。
3月份发现针对Amazon、Lyft、Slack和Zillow等公司的内部应用程序的恶意软件包,它们潜伏在npm公共代码仓库中并窃取了敏感信息。
同样在3月,PHP项目发现攻击者能够访问它的主Git服务器,上传两个恶意提交,包括一个后门。幸运的是,在它们行动前就被发现了。
1月份,3个恶意软件包被发布到npm,这是一个JavaScript开发人员的代码仓库,恶意软件能够从Discord用户那里窃取令牌和其他信息。
同样是在最近,在Ruby网络编程语言的开源软件包存储库和管理器RubyGems中,发现2个软件包中含有窃取比特币的恶意软件,随后将其下线。
现代软件开发过程的复杂性及其对大型社区维护代码仓库的依赖,使得开发人员在无意中将恶意代码引入到项目当中,这将造成很严重的影响,很多情况下攻击者很可能完全接管已开发的程序或设备。因此将安全融入到软件开发生命周期中并不能停留在说说而已上。
低代码及开源代码的出现帮助开发人员大大提高了开发效率,但随之而来的安全隐患也不容小觑。研究显示,开源正以前所未有的速度产生新的漏洞,但将开源软件漏洞添加到国家漏洞数据库(NVD)所需的时间非常长,从公开披露到包含平均需要54天。在此期间将使应用软件面临被攻击的风险。因此在保证提高应用程序开发效率的基础上,利用安全自动化检测工具,如静态代码安全检测(SAST)、SCA、动态应用程序测试(DAST)等手段,减少因代码安全问题造成的风险。
参读链接:
https://www.woocoom.com/b021.html?id=2029e4952dd84aba832c7592806b7fa4
https://threatpost.com/cryptominers-python-supply-chain/167135/