资安公司Phylum研究人员发现,NPM(Node Package Manager)平台目前正面临严重的垃圾套件泛滥问题,这些套件主要与一个名为Tea协定的去中心化专案有关,垃圾套件目的是操纵Tea协定来夸大开发者的贡献,以赚取加密货币奖励。
从今年2月开始,NPM上发布的套件数量明显增加,在4月8日达到高峰,一天甚至会有超过4.8万个套件上传。其中许多套件是以自动化工具生成,内容毫无实质价值,仅是为了利用Tea协定的奖励系统赚取奖励。这些垃圾套件的特征,通常包含无意义的套件名称,以及虚假的相依套件清单,并且有一个名为tea.yaml的档案,来标示专案所有者。
这些垃圾套件增加的速度飞快,在2024年第二季,已经约有50万个垃圾套件被上传到NPM,占总套件发布量的21.25%到25.5%,如果仅计算新套件,垃圾套件的占比甚至高达68.66%到74.67%。
研究人员指出,虽然目前尚未发现这些垃圾套件包含或是执行狭义的恶意行为,但是大量上传垃圾套件本身就是一种恶意,且可能存在一些潜在的安全风险。由于大多数垃圾套件具有无意义或是随机名称,因此一般开发者不太可能误装这些套件,但是其中像是为web3-cover的部分套件命名具有特定意思,便可能使开发者意外引入,进一步增加风险。
而且这些垃圾套件可能会对基于NPM资料训练的模型产生影响,导致模型输出错误,造成「垃圾进垃圾出」的现象。大规模的垃圾套件也阻碍开源套件平台,对套件进行安全性评估的能力,虽然开发者可能不会主动安装这些套件,但是复杂的相依项目链,可能导致开发者无意中引入这些套件,为实际恶意行为提供掩护。
NPM已经开始移除部分垃圾套件,但是移除的速度还是跟不上垃圾套件发布的速度,而Tea协定专案已经意识到这个问题,正在调整机制,避免这个机制被滥用。这个问题并非NPM独有,包括Rubygems也出现类似的垃圾套件问题。