小心!你下载的机器学习工具包可能是病毒:CuPy被掉包,官方一天后才发现

2021-03-08 19:54 935 阅读 ID:282
量子位
量子位

    小心!你通过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

    —完—

    @量子位 · 追踪AI技术和产品新动态

    深有感触的朋友,欢迎赞同、关注、分享三连վ'ᴗ' ի ❤

    免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
    反馈
    to-top--btn