GitHub提案以Sigstore强化NPM组件安全性,引来开发社群反弹

为了解决NPM一直存在的供应链攻击,GitHub计划采用Sigstore开源软件认证项目,来强化NPM组件的安全性与可信度,为此,GitHub打开了一个新的RFC征求社群意见,但是这项提案引来了诸多反对意见,包括隐私的疑虑,以及生态系统锁定的问题,整体来说反对声浪居多。

当前全世界的软件产业创建在开放源码之上,因此开放源码的安全性,可说是至关重要,但是Sigstore项目共同创办企业Google提到,当前安装开源软件的方式,就像是在路上随意捡起来路不明的U盘,就将其插入到计算机中安装里面的软件。

这段话意味着,开发者在使用网络上下载而来的开源软件,通常难以关注其来源,但如此也就无法掌握全面的风险,当无法持续检验身份密钥或是秘密,也缺乏相关的安全协议,开源相依关系可能出现漏洞,大开软件供应链攻击大门。

知名软件组件管理系统NPM,更是时不时出现恶意组件,使得下游用户安全遭受威胁的新闻出现,NPM背后的公司GitHub现在则尝试导入Sigstore来解决这个问题。Sigstore是由Google、红帽与Linux基金会共同启动的开源软件认证项目,目的是要让开源社群能够签署软件,以创建透明可供审核的软件供应链。

GitHub提到,当组件维护者加入这个系统,组件的用户就能够确定,组件的内容与存储库的内容相符。也就是说,Sigstore可以确保组件用户可真正安装他们所预期的开源软件。

过去,将组件关联回来源程序代码是一件困难的工作,因为需要各个项目注册和管理自己的加密密钥,Sigstore的工作就是要消除这项障碍,不需要开发人员管理长期加密密钥,使过程比过去简单且安全。

GitHub新打开的RFC,建议使用Sigstore来加入对NPM组件进行端到端签署,如此将会产生组件的生成地点、时间和方式,以便之后对其进行验证。

社群对这个RFC有诸多疑虑,第一,Sigstore尚未完成,目前仍处于实验性,第二,RFC也将会导致供应商化,Sigstore提案只能用于来自公共存储库,以及商业托管CI/CD供应商的公共NPM组件,因此组件将会相依于GitHub、Google或微软等第三方,且因为Sigstore证书默认包含电子邮件,也会损害作者的隐私。

再来,Sigstore使用自己的证书颁发机构Fulcio,而Fulcio目前仅完整支持GitHub Actions,使得GitHub Actions成为验证组件的唯一方式,也就是说无意间开发者会被绑定在特定生态系统中,这项限制也使得不少组件开发者却步。