小心!你下载的机器学习工具包可能是病毒:CuPy被掉包,官方一天后才发现
2021年3月10日 | by tgcode
晓查发自凹非寺
量子位报道公众号 QbitAI
小心!你通过 pip 安装的机器学习工具包,有可能是恶意软件。如果你最近下载了 NumPy 的 CUDA 加速包 CuPy,那么你要注意了:cupy-cuda112 这款软件包,前几天被黑客悄悄换成了一个“恶意软件”。
不过还个好消息,冒牌的软件包已经被删除了。除此之外,PyPI 最近还删除了 3653 个恶意软件包。
整个事件的过程是这样的:
官方名称被抢注
2 月 26 日凌晨 5 点,Cupy 官方团队计划在这一天发布用于 CUDA 11.2 的 CuPy 工具包,因此准备在 PyPI 中注册 cupy-cuda112 这个名称。
然而,他们发现,有人居然在前一天晚上把这个软件包抢注了,而且抢注的黑客还上传了一个无效的版本 v2.2.2。
此时,CuPy 已经是 v8.4.0 了,而官方计划发布的是 v8.5.0 和 v9.0.0b3 两个版本。
CuPy 团队迅速向 PyPI 团队提交移除 cupy-cuda112 的请求,然后在 Twitter 和 GitHub 的 issue 页向所有程序员发布公告:我们的软件被掉包了。
PyPI 的处理也算迅速,到了中午 11 点, 假冒的 cupy-cuda112 软件包终于被下架。
直到 3 月 2 日,CuPy 团队才发布了正版 cupy-cuda112 软件包,攻击事件总算告一段落。
善意的提醒
黑客为何要上传 v2.2.2 版,令人匪夷所思。
因为这一版本号和当前 CuPy 版本差距也太大了。编译代码进行版本查询,很容易就发现猫腻。黑客显然并不想瞒天过海。
这位黑客极有可能正在进行一项安全测试。
黑客名叫“RemindSupplyChainRisks”,很明显他是为了引起大家对恶意软件风险的重视。
在这个软件包注释中,他甚至直接写道:“我这样做的目的是使所有人都关注软件供应链攻击,因为风险太大了。”
所以说,这根本就是一个带着善意提醒的“恶意软件”。但是,如果真的有人利用这个漏洞来攻击别人呢,真是让人细思极恐。
假冒软件包还会向一个 IP 地址发送 GET 请求,告诉黑客有哪些人被攻击了。
这不禁让人想起,一个月前类似的事件。
当时安全研究员 Alex Birsan 发现,采用掉包同名软件的手法,可以攻破苹果、微软、特斯拉等公司的内部网络。
因为这些科技都有自己的私有 PyPI 或 Node.js 软件包,只要上传与之同名的恶意软件,那么程序员们使用 pip、npm 安装命令就可能中毒。
Brisan 说,这种攻击方式的成功率简直让人吃惊,他也因此获得了多家公司的漏洞赏金。
根据 PEP 841 规范,项目维护者有保留软件包索引的权利,恶意软件抢注名称将被视为无效而被删除。
但是规范终究只是规范,缺乏安全审查的包管理工具风险依然存在。
参考链接:
[1]https://www.theregister.com/2021/03/02/python_pypi_purges/
[2]https://github.com/cupy/cupy/issues/4787
文章来源于互联网:小心!你下载的机器学习工具包可能是病毒:CuPy被掉包,官方一天后才发现
相关推荐: UP主带粉丝疯狂薅羊毛被封号 起诉B站 终审败诉
2019 年,一淘宝店家因操作失误,误将 26 元 4500 克的脐橙写成了 4500 斤后,B站 up 主“路人A-”(近 60 万粉丝)在直播时号召粉丝去“薅羊毛”,下单 3 万余单,致水果网店赔付 700 万元。 后又在商家无法发货的情况下投诉“…