Python 官方软件库 PyPI 正被垃圾软件包所淹没。这些软件包以不同的电影或电视剧的名称命名,通常与托管盗版内容的山寨和 torrent 网站有关。
这些软件包中每一个都由唯一的维护者帐户发布,这使得 PyPI 一次删除所有软件包和垃圾帐户具有挑战性。
当 Sonatype 的高级软件工程师 Adam Boesch 在审核一个数据集时,注意到有一个以流行的电视剧命名的 PyPI 组件时,才发现了这一问题。
Boesch 表示:"我在查看数据集时注意到有一个 PyPl 组件名为 wandavision(旺达与幻视),这对于一个软件包的名字来说有点奇怪。"
仔细查看,并在 PyPI 上调查了一番后,Boesch 发现了更多提供盗版下载网站相关的 PyPl 组件,其命名规则通常是「watch-(movie-name)-2021-full-on-line-movie-free-hd-」
尽管其中有一些软件包已经上架了几周时间,但垃圾软件的提交者仍在继续向 PyPI 添加更新的软件包。通过关键词搜索发现,相关的结果有 10,000+。这些伪造软件包的网页包含垃圾关键字和指向盗版电影流媒体站点的链接。
除此之外,Boesch 还观察到这些软件包中的每个软件包都是由不同的维护者所发布的,这可能会使 PyPI 管理员很难一次性移除这些软件包并封禁这些账户。
除了包含垃圾关键字和指向盗版视频流媒体站点的链接以外,这些软件包还包含带有功能代码和作者信息的文件,这些文件是从合法的 PyPI 软件包中提取的。
例如,在一个发现的垃圾程序包中「watch-army-the-dead-2021-full-online-movie-free-hd-quality」包含了作者信息和合法 PyPI 程序包 jedi-language-server 中的一些代码。
恶意行为者将合法软件包的代码与其他假的或恶意的软件包结合起来,以掩盖他们的意图,并使这些软件包的检测更具挑战性。