GitHub 宣布新政策:要求所有贡献代码的用户在 2023 年底前启用双因素认证

简介: 尽管双因素验证机制为在线帐户提供了重要的额外保护,但 GitHub 的内部研究表明,目前只有大约 16.5% 的活跃用户对其帐户启用了增强性的安全措施。

尽管双因素验证机制为在线帐户提供了重要的额外保护,但 GitHub 的内部研究表明,目前只有大约 16.5% 的活跃用户对其帐户启用了增强性的安全措施。

GitHub 要求所有代码贡献者必须双重验证

5 月 4 日,GitHub 宣布,到 2023 年底,所有向该网站上传代码的用户都需要启用一种或多种形式的双因素身份验证 (2FA),以便能够继续使用该平台。

GitHub 首席安全官 (CSO) Mike Hanley 在一篇博客文章中宣布了这项新政策,Mike Hanley 强调,面对恶意分子接管开发者账户所造成的威胁,微软拥有的平台在保护软件开发过程完整性方面发挥了重要作用。

“软件供应链从开发者开始,”Mike Hanley 写道。“开发者账户经常是社交工程和账户接管的目标,保护开发者免受此类攻击是确保供应链安全的第一步,也是最关键的一步。”

尽管双因素身份验证为在线帐户提供了重要的额外保护,但 GitHub 的内部研究表明,目前只有大约 16.5% 的活跃用户(大约六分之一)对其帐户启用了增强性的安全措施。在 GitHub 看来,这个数字着实有些低,因为鉴于该平台的用户群基础,他们本应意识到“仅密码保护”存在的风险。

Hanley 在接受 The Verge 采访时表示,通过引导这些用户使用更高级别的最低账户保护标准,GitHub 希望从整体上提高软件开发社区的安全性。

“GitHub 在软件开发生态中处于一个独特位置,仅凭借 GitHub.com 上的绝大多数开源和创作者社区,我们可以通过提高安全性标准来对整个生态系统的安全性产生重大的积极影响。”Hanley 说,“我们认为,这确实是我们可以提供的最好的全生态系统效益之一,我们致力克服任何挑战或障碍,以确保用户成功采用。”

GitHub 已经为一小部分平台用户建立了强制使用 2FA 的先例,并已在包管理软件 NPM 分发的流行 JavaScript 库的贡献者中进行了试验。广泛使用的 NPM 包每周可以被下载数百万次,因此它们极易成为恶意软件团伙的目标。在某些情况下,黑客入侵了 NPM 贡献者的账户,并利用它们发布软件更新,安装密码窃取器等。

GitHub 对截至 2022 年 2 月的 100 个最受欢迎的 NPM 包的维护者强制要求进行双因素身份认证。该公司计划在 5 月底前将同样的要求扩展到排名前 500 的软件包的贡献者中。

Hanley 说,从这个小型试验中获得的结论将被用于后续顺利地在整个平台上推出 2FA。他说:“我们已经在 NPM 上完成了这项工作,这对我们有很大的好处。”“我们从那次经历中学到了很多东西。从我们所交谈过的开发者和开发者社区那里得到的反馈来看,我们就如何与他们进行良好的实践进行了非常积极的对话。”

Hanley 表示,从广义上讲,这意味着为在整个网站范围内强制使用 2FA 设定一个较长的准备时间,并设计一系列的上线流程,在 2024 年最后期限之前推动用户采用。

确保开源软件的安全仍然是软件行业迫切关注的问题,尤其是在去年震动行业的史诗级高危漏洞 log4j 出现之后。虽然 GitHub 的新政策将缓解一些安全威胁,但系统性的挑战仍然存在:许多开源软件项目仍然由无偿志愿者维护,填补资金缺口被视为整个科技行业面临的一个主要问题。

GitHub 首席安全官 Mike Hanley 解读新政策

以下为 GitHub 首席安全官 Mike Hanley 官宣这项新政策的博客文章全文:

软件供应链的最上游就是开发者。社会工程和帐户攻击活动经常把开发者账户作为目标,因此保护开发者免受此类攻击的损害是确保软件供应链安全性的第一步,也是最关键的一步。

GitHub 一直以来都在努力保护开发者的账户,包括找出已被泄露的用户密码并让这些密码失效、提供强大的 WebAuthn 安全密钥支持,以及让所有 npm 发布者使用增强的登录验证措施等。

我们致力于在全平台提高帐户安全性来保护软件生态系统,而今天(5 月 4 日)我们宣布了一项新的相关措施:GitHub 将要求所有在 GitHub.com 上贡献代码的用户在 2023 年底之前启用至少一种形式的两步身份验证(2FA)。

GitHub 将要求所有在 GitHub.com 上贡献代码的用户在 2023 年底之前启用至少一种形式的两步身份验证(2FA)。GitHub 一直在努力确保强大的帐户安全性,同时避免牺牲开发者的良好体验,而将目标设在 2023 年底意味着我们有很多时间来做出优化,满足上述需求。

随着各种安全标准的不断进化,我们将继续积极探索安全验证用户的各类新方法,其中包括无密码验证。全球各地的开发者都可以期待更多的身份验证和帐户恢复选项,以及有助于防止帐户泄露和从帐户泄露事件中恢复的改进措施。

为什么帐户安全性和 2FA 很重要

2021 年 11 月,一些未启用 2FA 的开发者帐户遭到入侵,导致很多 npm 包被入侵者接管,为此 GitHub 承诺在 npm 帐户安全性方面投入更多资源。我们继续改进 npm 帐户安全性,同时也在投入相同程度的努力来保护 GitHub 开发者的帐户。

大多数安全漏洞并非少见的零日攻击的产物,而是来源于很多低成本攻击手段,如社会工程、凭证盗窃或泄漏,以及其他很多为攻击者提供对受害者帐户及其所有资源的广泛访问权限的途径。被入侵的帐户可用于窃取私有代码,或将恶意更改推送到这些代码上。这不仅会将与受感染帐户相关的个人和组织置于危险之中,而且会让所有使用受影响代码的用户都暴露在风险环境下。因此,这种攻击可能会对更广泛的软件生态系统和供应链下游产生巨大的影响。

应对这种攻击手段的最佳防御措施就是对原有基于密码的基本身份验证手段进行升级。我们已经朝这个方向迈出了一步,弃用了针对 git 操作和我们 API 的基本身份验证,并要求在用户名和密码之外添加基于电子邮件的设备验证。

2FA 是下一道强大防线,但虽然这种验证手段取得了成功,整个软件生态系统的 2FA 采用率总体上仍然很低。现在,只有大约 16.5%的活跃 GitHub 用户和 6.44%的 npm 用户使用一种或多种形式的 2FA。

npm 2FA 更新

2 月,我们将 npm 注册表中前 100 个软件包的所有维护者升级为强制 2FA,并在 3 月将所有 npm 帐户升级为增强登录验证。

5 月 31 日,我们将要求前 500 名软件包的所有维护者强制升级为 2FA。我们的最后一批升级对象将是所有高影响力软件包的维护者,这些软件包的依赖超过 500,或每周下载量达 100 万次——我们计划在今年第三季度完成这一批升级。我们将充分利用在 npm 上升级 2FA 的行动中所学到的知识,并将这些经验应用到我们在 GitHub.com 上的工作中。

我们意识到,GitHub 是所有开发者的家园,这一独特地位也意味着我们既有机会也有责任提高整个软件开发生态系统的安全标准。虽然我们正在对我们的平台和更广泛的行业进行深入投资以提高软件供应链的整体安全性,但如果我们不解决持续存在的账户泄露风险,那么这项投资从一开始就不会起到很大成效。今天,我们仍在继续应对这一挑战,并努力为个人开发者提供众多安全实践来提高供应链的安全性。

从今天开始:

个人用户

想要抢占先机?我们最近在 iOS 和 Android 上为 GitHub Mobile 推出了 2FA!单击此处了解如何立即配置 GitHub Mobile 的 2FA。要配置 Mobile 2FA,你需要启用至少一种其他形式的 2FA。

正在寻找对抗网络钓鱼的 WebAuthn 安全密钥体验或其他选项?你可以从这里开始。

为了普及安全密钥,我们已将YubiKey等安全密钥分发给关键的开源项目维护者,并在 GitHub商店中上架了安全密钥。SoloKeys或Titan安全密钥也是不错的选择。

此处提供了有关 GitHub.com 2FA 的更多文档。要为 npm 帐户配置 2FA,请查看这里的内容。

不要忘了保存你的恢复代码,并配置一种或多种帐户恢复方法 。

组织和企业

GitHub.com 组织和企业所有者也可以要求组织和企业的成员升级到 2FA。请注意,启用这些设置后,不使用 2FA 的组织和企业成员和所有者将从组织或企业中删除。

下一步计划

在接下来的几个月里,我们将分享更多关于强制 GitHub.com 用户升级到 2FA 的详细信息和时间表。虽然我们坚信为活跃的贡献者(例如提交代码、打开或合并拉取请求、使用 Actions 或发布软件包的用户)提供 2FA 是正确的做法,但我们也希望为大家提供流畅且可访问的体验,所以请期待未来在这一方面的改进和新功能。

原文链接:

https://github.blog/2022-05-04-software-security-starts-with-the-developer-securing-developer-accounts-with-2fa/

目录
相关文章
|
6月前
github克隆代码加速
github克隆代码加速
129 2
|
2月前
|
开发工具 git Python
代码管理记录(二):Github代码上传实操
本文是关于如何使用Git将本地代码上传到GitHub的实操指南。介绍了Git的基本概念、安装方法,并通过详细的步骤指导用户从GitHub创建仓库到使用Git命令初始化、添加、提交代码,最终将代码推送到远程仓库。同时,还汇总了一些常见的错误及其解决方法。
51 2
代码管理记录(二):Github代码上传实操
|
3月前
|
存储 安全 开发工具
GitHub 支持双因素认证(2FA)
【9月更文挑战第29天】
664 6
|
4月前
|
存储 安全 Java
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
在一次意外中,作者因三年前将测试代码遗忘在GitHub上而遭遇了代码被他人fork的问题。为解决这一危机,作者详细介绍了如何通过GitHub的DMCA下架通知流程安全删除敏感代码,包括处理私人信息和商标侵权的具体步骤。本文不仅提供了实用的操作指南,还强调了及时响应的重要性,帮助读者避免类似风险
71 1
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
|
2月前
|
存储 安全 UED
GitHub OAuth认证的Django应用
GitHub OAuth认证的Django应用
32 0
|
4月前
|
存储 安全 API
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
|
4月前
|
安全 网络协议 Shell
Github代码仓库SSH配置流程
这篇文章是关于如何配置SSH以安全地连接到GitHub代码仓库的详细指南,包括使用一键脚本简化配置过程、生成SSH密钥对、添加密钥到SSH代理、将公钥添加到GitHub账户以及测试SSH连接的步骤。
94 0
Github代码仓库SSH配置流程
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
这篇文章是一份详细的GitHub使用教程,介绍了如何在GitHub上创建仓库、创建分支、编辑和发布更改内容、发起拉取请求以及合并分支的操作步骤。
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
|
4月前
|
jenkins 持续交付
jenkins学习笔记之九:jenkins认证集成github
jenkins学习笔记之九:jenkins认证集成github
|
4月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之从GitHub下载代码失败是什么原因
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。