SegmentFault思否 · 2021年05月24日

Python 开发者小心!PyPI 里出现了大量垃圾软件包

image.png
据外媒 BleepingComputer 报道,官方 Python 软件包存储库 PyPI 被垃圾软件包淹没。

这些包以不同的电影命名,其风格与存放盗版内容的盗版网站相关,如 watch-(movie-name)-2021-full-online-movie-free-hd-...。

image.png

每一个垃圾软件包均由一个唯一的假名维护者帐户发布,这给 PyPI 一次性删除垃圾软件包和垃圾帐户增加了难度。

这些垃圾包由 Sonatype 高级软件工程师 Adam Boesch 率先发现。他在审核数据集时,发现了一个以流行的电视剧命名的 PyPI 组件。

「我在浏览数据集时,注意到有一个组件的名字是『Wanda vision』(旺达幻视)。软件包起这样的名字有点奇怪。仔细查看后,我发现了那个包并在 PyPI 上进行查找。这种情况在其他生态系统中并不罕见,如包含数百万个包的 npm。幸运的是,这类包很容易发现和避免。」

image.png
从几周前开始,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」的一些代码。

image.png

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 充斥软件库,进而传播其信息。保护这些软件存储库已经变成了攻击者和存储库维护者之间的打地鼠游戏。

参考链接:

扩展阅读:
50 万行 Go 代码!可汗学院抛弃 Python 转向 Go

image.png

推荐阅读
关注数
4194
内容数
888
SegmentFault 思否旗下人工智能领域产业媒体,专注技术与产业,一起探索人工智能。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息