跳到主要内容

OpenSSF支持向多因素认证的方向发展

通过 7月 20, 2022博客
OpenSSF Logo Banner

通过。OpenSSF技术咨询委员会 

2022年7月8日,Python软件包索引(PyPI)宣布了一项 安全钥匙赠品 在这里,"关键 "是指PyPI上前6个月下载量最大的1%的软件包。赠品包括PyPI要求所有关键项目的维护者在 "未来几个月内 "进行多因素认证(MFA)的意向声明。这与GitHub、RubyGems和npm为转向MFA所做的其他努力相似。人们对这一努力既表示赞扬,也表示关切。

我们 开放源代码安全基金会 (OpenSSF),是一个致力于提高开源软件(OSS)安全性的基金会。我们由来自不同利益集团(包括学术和商业)的组织和个人OSS贡献者组成。我们对这些正在进行的努力表示赞赏,因为它们有助于抵御当今不断增加的对OSS维护者账户的攻击。

努力和关注

PyPI的公告得到了不同的回应。自公告发布以来,许多维护者已经为他们的账户启用了MFA,要求他们的项目使用MFA,并利用了安全密钥的赠送。其他人则提出了合理的担忧,例如MFA要求的不完全普遍性,以及对维护者的要求和期望越来越高的趋势,即不仅要保证其开源的质量和安全,还要保证他们是谁以及他们如何编码,以便开源维护者使用社区基础设施。

存储库运营商在支持MFA方面有很大的负担,特别是围绕支持和账户恢复。为此,PyPI和许多其他公司一样(特别是 npm红宝石),正在采用一种分阶段的推广方法,该方法使存储库运营商能够控制支持负担,同时为存储库用户提供好处。

维护者的负担也是一个合理的担忧。随着开放源码软件的普及,维护者越来越多地被要求支持他们创建的软件,在许多情况下,他们被要求超越他们签署的内容(例如,提供有用的代码 "原样")。OpenSSF提倡自动化工具,并鼓励安全措施尽可能地减少维护者的负担。当考虑增加需要项目维护者付出额外努力(一次性或经常性)的安全功能时,我们主张在实施这些功能时要特别考虑到维护者。这一点尤其重要,因为开放源码软件通常不会有任何保证(除非单独签订合同),而且消费者很少向维护者付费。维护者担心潜在的重大负担是完全合理的,尤其是他们可能认为这些努力是某种无偿的、隐含的保证,而他们并没有同意。

还值得注意的是,许多存储库(包括PyPI)是由开放源码软件维护者运营的,账户泄露给他们和所有其他下游用户带来了巨大负担。

虽然今天没有一个解决方案是完美的,但我们强烈支持PyPI在推出MFA方面的努力,并希望社区和维护者能够利用这个机会,在我们迈向更安全的开源的第一步中发挥领导作用。特别是,PyPI组织了一次安全密钥赠送活动,有足够的供应量为每个关键软件包的维护者提供两个密钥(一个主密钥和一个备份密钥)。PyPI上的安全密钥实现使用FIDO协议,这是一个现有的标准。此外,PyPI还支持使用基于时间的一次性密码(TOTP)作为额外的因素,这在所有主要操作系统的应用程序中都可以零成本获得,包括一些开源的实现。简而言之,他们正在采取措施,利用社区目前可用的技术,尽可能地减少维护者的负担。

MFA的案例

重要的是要明白,这些走向MFA的举措并不是在真空中发生的。有越来越多的案例表明,攻击者正在接管开源开发者的账户,并利用对这些账户的控制来改变项目的源代码和/或部署的软件包,对用户产生潜在的破坏性影响。

账号泄露是对JavaScript、Python和Ruby等动态编程语言的开源软件包的第二大最常见的供应链攻击(仅次于排版侵权)["努力衡量供应链对解释语言的包管理器的攻击"].帐户接管是许多攻击者的直接关注点;"eslint-scope",一个在npm中每周有数百万次下载的软件包,被攻破后盗取了该软件包用户的凭证。

当维护者使用MFA时,维护者的账户被接管的情况可以大大减少。这是因为攻击者通常通过窃取或破解密码,或通过对智能手机进行 "SIM卡交换 "攻击来接管账户。使用TOTP或物理令牌的MFA可以阻止这些攻击。这不仅仅是假想。 微软发现,99.9%的账户接管服务尝试被MFA所阻止。.

争取MFA的运动正在进行中

重要的是要明白,走向MFA的运动已经在进行中了;这不是PyPI独有的。

许多其他与开放源码软件相关的服务没有宣布对MFA的要求,但它们确实有对MFA的支持(在某些情况下已经支持了多年)。

一般来说,开放源码软件的用户希望软件的源代码和软件包来自开放源码软件的开发者,而不是来自接管开发者账户的攻击者。MFA是一种帮助维护这一假设的机制。

开放社会基金的支持

在OpenSSF,我们的使命是为所有参与者提高开源生态系统的安全性:开发者、用户和使我们的社区能够互动和共享的关键基础设施。

我们完全支持软件仓库运营商为帮助项目维护者和用户提高其仓库内容的可信度而做出的努力。我们相信,软件库应该继续做出改变,使所有用户对软件库内容的完整性以及从上游源代码到软件库中工件的映射有信心。

OpenSSF已经通过以下活动积极支持PyPI和其他软件库。 确保软件存储库的安全工作组 和赞助和资助。 阿尔法/欧米茄项目 这有助于实现急需的安全功能,同时尽量减少维护者的困难。如果你有兴趣帮助保障开放源码软件的安全,请加入我们,参与到 确保软件存储库的安全工作组 或其他 开放的SSF 活动!

这篇文章代表作者的观点,不一定反映所有OpenSSF成员的观点。