为了提高软件供应链的整体安全性,GitHub 重磅宣布,在 2023 年之前,所有使用 GitHub 平台存储代码、做贡献的开发者都需要启动一种或多种形式的双因素身份验证(2FA),否则将无法正常使用该平台。

对此,GitHub 首席安全官(CSO)Mike Hanley 表示,软件供应链的起点是开发者。开发者账户经常会成为社会工程和账户接管的目标,保护开发者免受这些类型的攻击是保护供应链安全的第一步,也是最关键的一步。

为什么要开启 2FA 验证?

事实上,我们常遇到的很多安全漏洞并非是来自非常复杂的攻击事件亦或是零日漏洞,相反,往往是涉及低成本的攻击,如社会工程、密码泄露等。

据 GitHub 博客报道,2021 年 11 月,由于未启用 2FA 的开发者账户遭到入侵,有不少 npm 包被接管。

此外,早期也有不少安全研究人员透露,其可以直接访问 14% 的 npm 包(或者间接访问 54% 的包)。

还有媒体报道,曾被黑客入侵的 Microsoft 账户中,有 99.9% 未启用 2FA。

Mike Hanley 表示,防止低成本攻击的最好方法是采取基于密码的基本认证方法之外的一些措施,当前 GitHub 除了要求用户名、密码登录之外,还要求基于电子邮件的设备验证。如今,2FA 将是下一道防线。

虽然有很多场景已经验证了 2FA 的有效性,但 2FA 在整个软件生态系统中的采用率仍然很低。据 GitHub 内部研究表明,目前有 16.5% 的开发者对自己的账户启用了增强的安全措施,这一占比仅有六分之一。另外,也只有 6.44% 的 npm 用户启用了 2FA。

GitHub 欲在整个平台推动 2FA!

据 protocol 报道,Mike Hanley 透露,双重身份验证的要求将影响 GitHub 平台的 8300 万用户,并且此时提前宣布,可以“确保开发人员的用户体验”。

其实,在今年 2 月,GitHub 已经对其平台上的用户群体进行了强制使用 2FA 的小范围测试体验。彼时,GitHub 选取的测试群体主要是 100 个通过包管理工具 NPM 分发的流行 JavaScript 库的贡献者。由于广泛使用的 npm 包每周可被下载数百万次,它们对恶意软件团伙来说是一个非常有吸引力的目标。在某些情况下,黑客破坏了 npm 贡献者的账户,并利用它们发布软件更新,安装密码窃取器和加密货币挖掘软件。

同时,GitHub 计划在今年 5 月底将测试范围从 100 个扩大 500 个软件包的贡献者们。

对此,Hanley 表示,从这一较小的试验中得到的经验,也将被用于在整个平台上推广 2FA 。"我认为我们有一个很大的好处,那就是我们现在已经在 NPM 上做了这个。从与我们交谈过的开发者、创作者社区中得到的反馈而言,我们从这一经验中学到了很多,我们也与他们进行了非常积极的对话,讨论好的(做法)是什么样子。"

引发争议

针对 GitHub 的强制做法,站在平台的角度来看,虽然有不少开发者表示认同此举确实能在一定程度上保证账户的安全性,但是也有不少人投了反对票:

@网友 1:

并非每个 GitHub 账户都是关键任务。有些只是为了提交作业而创建的。添加强制性 2FA 是一个额外的负担,特别是如果微软决定强制使用手机号码。

@网友 2:

我不使用 GitHub,但这似乎有点过分了,这是否也适用于私有存储库呢?

@网友 3:

换句话说,Github 也想要收集你的电话号码。他们甚至费心想出一个可爱的理由:在供应链攻击时代提高安全性。

参考:

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

https://www.protocol.com/bulletins/github-open-source-software-security

https://news.ycombinator.com/item?id=31262597

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐