写点什么

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

  • 2022-05-05
  • 本文字数:3159 字

    阅读完需:约 10 分钟

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

尽管双因素验证机制为在线帐户提供了重要的额外保护,但 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商店中上架了安全密钥。SoloKeysTitan安全密钥也是不错的选择。


此处提供了有关 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/

2022-05-05 14:422386
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 532.2 次阅读, 收获喜欢 1976 次。

关注

评论

发布
暂无评论
发现更多内容

ZooKeeper 避坑指南: ZooKeeper 3.6.4 版本 BUG 导致的数据不一致问题

阿里巴巴云原生

zookeeper 阿里云 开源 云原生

速通字节!阿里p8耗时6个月打造的java面试手册,看到直呼“面试有手就行”

Java你猿哥

Java spring 微服务 JVM 多线程

分布式事务的21种武器 - 5

俞凡

架构 云原生

面试官:一千万的数据,你是怎么查询的?

做梦都在改BUG

爆赞!GitHub上久经不衰的经典教程:Springboot精髓参考指南手册

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

Java8 lambda 表达式 forEach 如何提前终止?

Java你猿哥

Java ssm java8 foreach

面试不再慌!苦学这份2023最全的Java性能优化实战笔记,已涨17k

Java你猿哥

Java 面试 JVM 多线程 Java性能优化

我懵了,如果要存 IP 地址,用什么数据类型比较好?

Java你猿哥

Java MySQL 数据库 ssm IP

字节速通!这份软件测试八股文还怕不能拿offer?你值得拥有

Java你猿哥

MySQL 面试 软件测试 计算机 八股文

什么是数据库分片?

Java架构历程

Java 数据库 三周年连更

分布式事务的21种武器 - 4

俞凡

架构 云原生

2023年互联网Java面试题最新整理附答案

架构师之道

Java 面试

MATLAB与Simulink

袁袁袁袁满

三周年连更

https和http有什么区别?

海拥(haiyong.site)

三周年连更

太强了!牛客网开源1240页字节算法实录,无意中掀起GitHub刷题热潮

做梦都在改BUG

Java 数据结构 算法 LeetCode

GitHub爆赞!阿里P9架构师的JDK源码笔记也太强了!

做梦都在改BUG

Java 源码 jdk 高并发

五张图带你看透Redis数据结构

做梦都在改BUG

K8s 安全是云安全的未来

HummerCloud

Kubernetes k8s

SpringBoot核心配置全面总结

小小怪下士

Java 程序员 后端 springboot

Python的常见数据结构

timerring

Python

Redis数据类型及底层大剖析

做梦都在改BUG

Java 数据库 redis 缓存

一文了解获得 Zebec Labs 投资的 Coral Finance,空投计划或在不久推出

西柚子

MySQL面试八股文:索引篇

Java你猿哥

Java MySQL ssm 索引 八股文

MySQL深分页问题原理与三种解决方案

做梦都在改BUG

Java MySQL 数据库

Alibaba内网“疯狂”传阅的P8开源出的SpringBoot入门到进阶小册

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

声网 Token 鉴权机制,以及常见的问题

声网

为什么《魂斗罗》只有128KB却可以实现那么长的剧情?

Java你猿哥

Java 编程 程序员 汇编语言 优化技术

Java面试题大全(2023最新版)大厂面试题附答案详解

采菊东篱下

Java 面试

运行第一个程序Hello world

鸿蒙之旅

OpenHarmony 三周年连更

程序性能提高了5倍!开源阿里500页的Java程序优化笔记

Java你猿哥

Java 面试 性能优化 Java虚拟机 Java性能优化

基于Alpine制作Tomcat的Docker镜像

清康

GitHub宣布新政策:要求所有贡献代码的用户在2023年底前启用双因素认证_AI&大模型_Corin Faife_InfoQ精选文章