本周早些时候,两个包含恶意代码的Python第三方模块被从官方软件库PyPI中删除。这两个恶意软件包通过使用非常相似的名字来迷惑安装者。
它们伪装成和软件包 (前者用于处理日期时间,后者用于字符串近似计算等),伪装命名为和,如果安装包的时候并不熟悉这些模块,而且也没有看官方文档,那就非常有可能中招。
看,有人甚至不知道它是冒牌货,拿来做教程
安装后, python-dateutil 和 jeIlyfish 与原始的软件包行为完全相同,但是它们会偷偷地将个人数据上传到服务器。但是正常使用的人恐怕无法发现恶意模块的这些行为。
Python库通常分为两种,一种是Python运行时自带的标准库,还有一种则是托管在PyPI上的第三方程序包,而上传第三方程序包到PyPI时,大部分程序包都不会被审核到。这就导致你进行pip安装的时候,如果不小心输错了单词,就有可能安装到恶意模块。
这引出了一个现在许多开源软件社区都非常头痛的问题:如何让人们能将自己的代码贡献到通用存储库(如PyPI),且不被不怀好意的人利用。
据说,Python软件基金会已经制定了保护PyPI免受滥用的计划,但要全面执行计划需要一些时间。此外,Python软件基金会中负责封装的工作组已经获得了Facebook Research的拨款,用于开发自动检测恶意上传第三方程序包的功能。
尽管如此,这些预防措施离上线还有很远,我们在选择使用第三方模块的时候一定要注意你的命令pip install的是不是那个真的模块,而不是一个冒牌货,这样才能将风险降至最低。
如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看,有任何问题都可以在下方留言,我们会耐心解答的!
领取专属 10元无门槛券
私享最新 技术干货