PyPI 强制执行 2FA,月下载量超百万项目作者删代码重新发版


第三方开源 Python 项目的官方存储库 Python 包索引 (PyPI) 宣布计划对“关键 (critical) ”项目的维护者强制要求双重身份验证(2FA) 。“为了提高 Python 生态系统的总体安全性,PyPI 已开始对关键项目实施双重身份验证 (2FA) 要求;该要求将在未来几个月内生效。”

任何在过去 6 个月中下载量排名前 1% 的 PyPI 项目都被指定为关键项目。在该公告发布时,PyPI 上共有超过 350K 的项目,因此有超过 3500 个项目被指定为"关键";但这一数据每天都会进行刷新。此外,Python 软件基金会 (PSF) 的赞助商 Google 开源安全团队,将为关键项目的维护者提供免费的硬件安全密钥。

该举措主要是受 npm 和 PyPI 生态系统近期多次发生的软件库被劫持事件影响。去年,有着很大使用量的 npm 库,"ua-parser-js"、"coa 和 "rc"在其维护者账户被入侵后被恶意软件篡改。因此,npm 的母公司 GitHub 采取了措施,从 2021 年 12 月开始为开发者推出增强的登录体验(2FA选项),并在今年 5 月宣布进一步的安全更新。现如今,PyPI 也紧跟 GitHub 的步伐,也对维护者账户实施 2FA。

PyPI 管理员解释称,“确保最广泛使用的项目具有这些防止帐户接管的保护措施,是我们朝着为所有 PyPI 用户提高 Python 生态系统的总体安全性而做出的更广泛努力的一步”。他们还分享了一个显示超过 3,818 个 PyPI 项目的 dashboard 以及 8,218 个被他们认定为“关键”并且可能会被要求采用 2FA 的 PyPI 用户帐户。

此举得到了社区很多人员的支持,目前已有超过 28,000 个 PyPI 用户账户(包括那些与"关键"项目无关的账户)自愿启用 2FA。但也有开发者持不同的意见,一个高人气 Python 项目“atomicwrites”的开发者 Markus Unterwaditzer 就从 PyPI 中删除他的代码,并进行重新发布以寻求使得项目脱离"关键"项目的范畴。数据显示,atomicwrites 在某个月的下载量超过了 600 万次。

但 Unterwaditzer 此举引起了一些争议。一些人将这一举动与 2016 年的 left-pad 事件进行了比较,该事件涉及一位开发人员从 npm 注册表中撤回他的关键 JavaScript 项目,从而引发了大范围的连锁反应。不过 Unterwaditzer 只是重新发布'atomicwrites'的版本,以重置他的项目的下载数量(以及 PyPI 分配的"关键"项目状态),而不是永久性地撤回他的代码;和 left-pad 涉及商标纠纷的事件还是存在着一定的区别。

Unterwaditzer 在项目的 issue 列表中表示,他认为 PyPI 强制启用 2FA 是一个旨在保证少数公司的 SOC2 合规性的举措;但却以牺牲他的自由时间为代价,非常令人讨厌。

所以我删除了该软件包并发布了一个新版本,只是为了看看警告是否消失。我没有考虑的是这会删除旧版本。那些版本现在显然已经消失了,但我显然不可能重新上传它们。我不认为 pypi 的行为是明智的,但无论哪种方式,我都对此感到抱歉。无论如何,API 自第一个版本以来一直是相同的。

我决定弃用这个包。虽然我确实很遗憾删除了这个包并最终启用了 2FA,但我认为 PyPI 的规则突然改变和包删除的奇怪行为并不值得我花时间免费维护这种流行的 Python 软件。我宁愿只是为了好玩而编写代码,只有在我真正得到报酬时才担心供应链安全。

目前,在 PyPI 的 @dstufft 的帮助下,atomicwrites 的旧版本已经恢复。


相關推薦

2023-05-30

户问题被美国司法部传唤。 PyPI 团队表示,对所有帐户强制执行 2FA 是增强平台安全性的长期承诺的一部分,可阻止凭据和 API 令牌的泄露,减少恶意软件的数量。 2FA 验证将在年底强制执行,届时 PyPI 将开始根据 2FA 的使用

2022-03-16

以反战为名进行供应链投毒,该包在 npm 每周有上百万下载量。 知名技术网站 V2ex 的一条爆出了这个问题,用户  在使用 npm 构建前端项目时,启动项目后桌面自动创建了一个《 WITH-LOVE-FROM-AMERICA.txt 》文件,点开之后发现内容

2022-12-03

系统已经初始化过再次进入初始化页面提示 新增强制提示用户开启 MFA 认证 镜像创建容器支持配置更多属性 修复 Windows 系统 DSL 项目、脚本模板在执行时可能出现被占用情况 DSL 项目运行脚本新增

2023-03-21

Marketplace 以获得他们的开放 Java 运行时。”  Eclipse 执行董事 Mike Milinkovich 称,这种程度的下载量实际上已经维持了三四个月。他认为,甲骨文全新的 Java SE 定价模式加速了 Temurin 的采用;且这一同比增长也确实表明,它对

2022-02-16

但在研究报告正式发布前,npm 宣布了逐步为开发者帐户强制执行 2FA(双因素认证)的计划。

2024-08-14

前默认部门,工具见 EmpUtils 新增 sqlMap.forceUpdateColumns 强制更新列功能,让 isUpdate 为 false 的字段更新 新增 DBM 数据表管理草稿暂存功能,确认建表时,再将表结构和索引同步到数据库 新增 userService.findListByMobile 根据手

2023-08-08

2023 年 8 月 1 日,Bytebase 迎来了又一个里程碑:下载量突破了 100 万次。🎉🧨🥁 距离 Bytebase 0.1.0 版发布已经过去了两年多。作为一个开源项目,Bytebase 的发展速度远超业界老牌数据库变更管理工具 Liquibase 和 Flyway。 作为

2022-07-09

eazyminer 调用代码片段) 包中分别包含Linux和Windows中的可执行文件ronbhdcvpqkxwget和ronbhdcvpqkxwget.exe。 (目录中的挖矿程序) 在判断操作系统环境信息后进行调用。 (判断环境信息) 攻击影响 如果开发者安装了这些包,则

2023-09-17

gt; SELECT * FROM user WHERE id = @{id:int} </sql> </mapper> 项目地址: https://gitee.com/noear/wood https://github.com/noear/wood

2023-02-02

码 4.8.5.2 ⏱️2023.01.30 abb4cbd [新增] 定时任务执行上下文 RunId 属性,用于标识单次作业触发器执行 4.8.5.1 ⏱️2023.01.30 1aac470 问题修复 [修复] Furion.Xunit 单元测试依赖注入单例服务时

2023-10-18

圈汇聚超300家合作企业、5000余名核心贡献者、80+SIG以及超百万用户。   现诚邀社区各合作伙伴、SIG组成员及广大用户共编《开放麒麟社区全览白皮书(2023)》,以收录开放麒麟社区优秀技术创新项目、行业应用场景、用户

2022-10-15

序言 距上次发版刚过一周时间,Furion 的下载量又增加了 80多万次,总项目安装量也近 370万,几乎各行各业的系统都使用上了 Furion。查看 Nuget 统计总安装量 每天睁眼闭眼手机都是 Furion 邮件提醒消息,两年来未曾停歇过,

2023-02-10

商不提供任何保证或承担任何责任。如果通过立法的方式强制改变这种生态,可能会对欧洲的创新经济造成意想不到的后果。 此外,Milinkovich 还指出,CRA 会限制未完成开发的软件,未完全开发的软件只能用于测试用途,这又是

2023-09-28

因环境不一致导致集群安装失败的问题;还优化服务指令执行流程等... 该版本新增了诸多新功能、优化和修复了很多问题。   1. 全面支持 Apache Doris Apache Doris 是基于 MPP 架构的新一代开源实时数据仓库,以极速易用的