据外媒 BleepingComputer 报道,官方 Python 软件包存储库 PyPI 被垃圾软件包淹没。
这些包以不同的电影命名,其风格与存放盗版内容的盗版网站相关,如 watch-(movie-name)-2021-full-online-movie-free-hd-...。
每一个垃圾软件包均由一个唯一的假名维护者帐户发布,这给 PyPI 一次性删除垃圾软件包和垃圾帐户增加了难度。
这些垃圾包由 Sonatype 高级软件工程师 Adam Boesch 率先发现。他在审核数据集时,发现了一个以流行的电视剧命名的 PyPI 组件。
「我在浏览数据集时,注意到有一个组件的名字是『Wanda vision』(旺达幻视)。软件包起这样的名字有点奇怪。仔细查看后,我发现了那个包并在 PyPI 上进行查找。这种情况在其他生态系统中并不罕见,如包含数百万个包的 npm。幸运的是,这类包很容易发现和避免。」
从几周前开始,PyPI 库充斥着垃圾软件包(图源:BleepingComputer)
其中一些包已有数周历史,但是垃圾包发送者仍在继续向 PyPI 添加新的包。这些伪造包的网页包含垃圾关键词和指向电影流网站的链接,尽管其合法性存疑。如:https://besflix[.]com/movie/X...
除了包含垃圾关键词和指向视频流网站的链接外,这些包还包含从合法 PyPI 包中窃取的带有功能代码和作者信息的文件。例如,垃圾软件包「watch-army-of-the-dead-2021-full-online-movie-free-hd-quality」包含作者信息和来自合法 PyPI 包「jedi-language-server」的一些代码。
PyPI 垃圾软件包内部存在从真实组件中窃取来的代码(图源:BleepingComputer)
在 PyPI 上搜索「full-online-movie-free」可以轻松找到许多此类命名的软件包,目前 Python 软件包存储库的维护者似乎已清理了大部分垃圾软件包。
但是, Python 开发人员在下载并打开其中的任何垃圾包时还应格外谨慎,因为其中很可能包含恶意软件或其他恶意代码。
把合法包中的代码与虚假或恶意包结合,有利于掩盖攻击者的踪迹,并使这些包的检测变得更具挑战性。
据 ZDNet 报道,今年 2 月,PyPI 因一次大规模的垃圾邮件攻击充斥着虚假的「Discord」、「Google」和「Roblox」keygens。
当时,Python 软件基金会执行董事 Ewa Jodlowska 表示,PyPI 管理员正在努力解决垃圾邮件攻击,然而,根据 pypi.org 的性质,任何人都可以向存储库发布,因而这种情况很常见。
最近几个月,对 npm、RubyGems 和 PyPI 等开源生态系统的攻击已经升级。攻击者利用恶意软件、恶意依赖混淆 copycat 充斥软件库,进而传播其信息。保护这些软件存储库已经变成了攻击者和存储库维护者之间的打地鼠游戏。
参考链接: