相信下载和使用开源软件包一定是每个开发者的必备技能。毕竟,站在巨人的肩膀上,才能看得最远。但是,你使用的开源代码一定是安全的吗?
最近,一位安全研究人员发现,在 Python 的官方软件包存储库(PyPI)上,大量下载了约 5000 次的软件竟然是假软件!同时,这些伪造的软件包还包含可以在受感染机器上安装加密软件的密码。
一个字母错了,个人电脑被误称为“矿机”?
安全公司 Sonatype 的研究员 Ax Sharma 报告说,PyPI 存储库中充斥着可用的恶意软件包。这些恶意软件包的名称通常模仿已经可用、合法且广泛使用的软件包的名称。
因此,当用户不小心输入了错误的名称时,例如将合法且流行的软件包 matplotlib 的名称改为“mplatlib”或“maratlib”,他们就成功地落入了所谓的域名仿冒攻击的陷阱。
maratlib:2,371
maratlib1:379
matplatlib-plus:913
mllearnlib:305
mplatlib:318
learninglib:626
这些软件包的名称与许多广泛使用的软件包相似但不完全相同,用户很容易“上当”。软件包中的恶意代码隐藏在每个软件包的setup.py文件中,导致受感染计算机使用ubqminer或T-Rex加密矿机挖数字货币并存入以下地址:0x510aec7f266557b7de753231820571b13eb31b57。
垃圾软件泛滥,擦亮眼睛最重要
PyPI,全称是:Python Package Index,是Python官方的第三方库仓库,大家可以下载第三方库或者将自己开发的库上传到PyPI。因此,利用垃圾软件包对PyPI发起攻击的事件屡见不鲜。
5月,有报道称部分黑客通过发布垃圾软件包的方式发起洪水攻击。这些软件包的名称大多以BT种子或其他网络盗版内容的电影命名,甚至包含年份、在线、免费等字样。 .例如“watch-army-of-the-dead-2021-full-online-movie-free-hd-quality”。
经过排查,发现这些软件包并不完全是垃圾软件。为了进一步迷惑用户,他们会从合法的Python包中窃取函数代码和作者信息。例如,研究人员名为“watch-army-of-the-dead-2021-full-on-line-movie-free-hd-quality”的垃圾邮件包中包含作者信息和来自“jedi-language-server”的信息PyPI 包中的一些代码。
PyPI 经常被滥用的事实是众所周知的,最惨痛的教训之一发生在 2016 年,当时一名大学生欺骗 17,000 名程序员运行他发布的粗略脚本。
这项令人大开眼界的研究是由汉堡大学的学生 Nikolai Philipp Tschacher 进行的,他在他的毕业论文中与 PyPI 的程序员恶作剧中使用了“蹲下”攻击的变体。 ,首先确定 PyPI、RubyGems 和 NPM(分别为 Python、Ruby 和 JavaScript 编程语言开发人员的社区站点)上下载最广泛的 214 个包。然后他将他的代码上传到这些站点,并为它们提供了与 214 包非常相似的名称。
Tschacher 的攻击并无恶意,他的脚本还向计算机发出警告,告知开发人员他们可能无意中安装了错误的软件包。但在此之前,该代码向大学计算机发送了一个网络请求,以便他可以跟踪他的假代码被执行了多少次以及他是否获得了管理权限。
由于 Tschacher 的行为依赖于混淆视听,而不是彻头彻尾的欺骗,让人们安装他的假冒软件,因此尚不清楚该实验是否违反了道德甚至法律界限。尽管如此,Tschacher 实验的教训仍然值得思考。
事实上,这些攻击非常低级和简单。开源代码本身就有风险。因此,建议开发者在下载和使用开源代码时仔细筛选代码,尤其是当你的计算机资源非常重要且隐私级别较高时,更应多加防范。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python中如何判断一个字符是否为大写10/19
- ♥ 如何在python中退出程序09/30
- ♥ 什么是 python 命名空间10/02
- ♥ python字符串组合运算符的使用10/15
- ♥ sys在Python中属于什么库09/29
- ♥ python识别字符串是否为空08/29
内容反馈