社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

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

Python开发者 • 3 年前 • 314 次点击  

(给Python开发者加星标,提升Python技能

来源:量子位   

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


- EOF -


推荐阅读  点击标题可跳转

1、机器学习画图神器来啦!

2、机器学习的基础图表!

3、史上最强:numpy 实现全部机器学习算法


觉得本文对你有帮助?请分享给更多人

推荐关注「Python开发者」,提升Python技能

点赞和在看就是最大的支持❤️

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/108740
 
314 次点击