当前位置:首页 > 技术文章 > 正文内容

Python 开发者小心!PyPI 里出现了大量垃圾软件包

zonemu16小时前技术文章1

据外媒 BleepingComputer 报道,官方 Python 软件包存储库 PyPI 被垃圾软件包淹没。

这些包以不同的电影命名,其风格与存放盗版内容的盗版网站相关,如 watch-(movie-name)
-2021-full-online-movie-free-hd-...。

每一个垃圾软件包均由一个唯一的假名维护者帐户发布,这给 PyPI 一次性删除垃圾软件包和垃圾帐户增加了难度。

这些垃圾包由 Sonatype 高级软件工程师 Adam Boesch 率先发现。他在审核数据集时,发现了一个以流行的电视剧命名的 PyPI 组件。

「我在浏览数据集时,注意到有一个组件的名字是『Wanda vision』(旺达幻视)。软件包起这样的名字有点奇怪。仔细查看后,我发现了那个包并在 PyPI 上进行查找。这种情况在其他生态系统中并不罕见,如包含数百万个包的 npm。幸运的是,这类包很容易发现和避免。」

其中一些包已有数周历史,但是垃圾包发送者仍在继续向 PyPI 添加新的包。这些伪造包的网页包含垃圾关键词和指向电影流网站的链接,尽管其合法性存疑。

如:https://besflix[.]com/movie/X...

除了包含垃圾关键词和指向视频流网站的链接外,这些包还包含从合法 PyPI 包中窃取的带有功能代码和作者信息的文件。例如,垃圾软件包「
watch-army-of-the-dead-2021-full-online-movie-free-hd-quality」包含作者信息和来自合法 PyPI 包「jedi-language-server」的一些代码。

在 PyPI 上搜索「full-online-movie-free」可以轻松找到许多此类命名的软件包,目前 Python 软件包存储库的维护者似乎已清理了大部分垃圾软件包。

但是, Python 开发人员在下载并打开其中的任何垃圾包时还应格外谨慎,因为其中很可能包含恶意软件或其他恶意代码。

把合法包中的代码与虚假或恶意包结合,有利于掩盖攻击者的踪迹,并使这些包的检测变得更具挑战性。

据 ZDNet 报道,今年 2 月,PyPI 因一次大规模的垃圾邮件攻击充斥着虚假的「Discord」、「Google」和「Roblox」keygens。

当时,Python 软件基金会执行董事 Ewa Jodlowska 表示,PyPI 管理员正在努力解决垃圾邮件攻击,然而,根据 pypi.org 的性质,任何人都可以向存储库发布,因而这种情况很常见。

最近几个月,对 npm、RubyGems 和 PyPI 等开源生态系统的攻击已经升级。攻击者利用恶意软件、恶意依赖混淆 copycat 充斥软件库,进而传播其信息。保护这些软件存储库已经变成了攻击者和存储库维护者之间的打地鼠游戏。

参考链接:

https://www.bleepingcomputer.com/news/security/spammers-flood-pypi-with-pirated-movie-links-and-bogus-packages/

https://www.tectalk.co/official-python-software-package-repository-flooded-with-spam/

技术编辑:小魔丨发自 思否编辑部

公众号:SegmentFault

相关文章

适合在任何地方使用的 Linux:15 个小型 Linux 发行版

如果你有一台老旧的 PC 或超小型设备,这些 Linux 发行版中的一个应该适合你。来源:https://linux.cn/article-12281-1.html作者:David Gewirtz译者...

细数5款国外热门Linux发行版(linux发行版排名网站)

Linux系统已经与我们的生活息息相关,当你用Android手机浏览这篇文章时,你就已经在使用Linux系统。当然作为编程开发最热门的系统,他还有很多专注于开发使用的版本。Fedora热门入门推荐,一...

Vue状态管理:Pinia完整指南(状态管理vuex)

概述本文专注于Vue的状态管理。我们将深入探讨如何使用Pinia来管理Vue应用程序的状态。状态管理使用props和emit进行父子组件间的数据协作虽然方便,但在以下情况下可能不够充分,数据传递往往会...

react hooks自定义组件居然能这样做

前言  这里写一下如何封装可复用组件。首先技术栈 react hooks + props-type + jsx封装纯函数组件。类组件和typeScript在这不做讨论,大家别白跑一趟。接下来会说一下封...

10分钟搞定gitlab-ci自动化部署(gitlab ci 配置)

gitlab-ci 是持续集成工具/自动化部署工具,类似 jenkins。持续集成 是将代码集成到共享存储库并尽可能早地自动构建/测试每个更改的实践 - 通常一天几次。概述在编码完成时都会进行打包发布...

用IDEA开发如何用Git快速拉取指定分支代码?

1,准备空的文件夹,git init2,关联远程仓库,git remote add origin gitlab地址3,拉取远程分支代码,git pull origin 远程分支名再用IDEA打开项目即...