谷歌认为,开源软件应该比闭源软件更平安,但前提是人们要对其进行查看,而这并不是一项简略的工作。
为了确保将来软件供应链的攻打不会波及要害的开源软件我的项目,谷歌的一些顶级工程师提出了新的标准,但这些标准可能会给开源贡献者带来一些问题,如果他们的我的项目被认为是要害我的项目。
谷歌示意:「关键性开源软件的倡议将减少我的项目所有者的工作量,因而预计倡议会受到阻力,但咱们置信额定的束缚对于平安来说将起到根本性的爱护。咱们只是这个畛域的其中一种声音,在这个畛域,共识和可继续的解决方案是最重要的」
但咱们不得不抵赖谷歌在科技领域是一个弱小的声音,它能够影响很多人。谷歌在最新布告中公布了这些指标的倡议。
谷歌 Go 编程语言的次要设计者 Rob Pike 和 Eric Brewer,以及基础设施和谷歌研究员副总裁认为:「业界应该个体定义一组要害软件包,并仅将这些更高的规范利用于这组软件。」
要害开源软件的指标包含:
- 没有单方面的代码更改,变更须要由两个独立的方面进行代码审查和批准;
- 对参与者进行认证,这意味着所有者和维护者不能匿名,贡献者须要应用弱小的认证(如 2FA);
- 软件的危险变动须要有告诉;
- 实现软件工件的透明化;
- 创立信赖建设过程的办法。
在上述指标达成之前,谷歌提出了三个关键性指标:
- 理解你的软件中的破绽
- 避免减少新的破绽
- 修复或删除破绽
最近波及 SolarWinds 和其余公司的软件供应链攻打,导致数千家机构受损,其中也波及闭源或专有软件。
尽管开源软件并没有受到「安全隐患」的影响,但并不意味着开源软件就真的没有破绽。开源软件在平安方面的危险应该较小,因为所有的代码和依赖关系都是公开的,能够进行检查和验证。
但前提是人们真的在寻找这些破绽。
开源软件我的项目,特地是 Java 和 JavaScript/Node.js,依赖于成千上万的间接和间接依赖关系,这使得它们很难摸索破绽。
谷歌工程师指出监控所有这些软件是不切实际的,许多开源软件包没有失去很好的保护。” 开源可能比闭源更多地应用依赖关系,并且来自更宽泛的供应商,须要信赖的不同实体的数量可能十分多,这使得理解开源如何在产品中应用以及有哪些破绽可能是相干的十分艰难,也无奈保障所构建的货色与源代码相匹配。”
为了解决供应链攻打,行业须要专一于解决已知的破绽,因为攻击者攻打已知破绽的概率远远超过本人寻找的破绽。
应用开源软件的组织面临的问题是,很少有人会验证他们应用的所有软件包,甚至就连谷歌也感觉验证这项工作很艰难,因为跟踪这些软件包须要非同小可的基础设施,以及大量的人工致力。
谷歌员工示意:「在 Google 里咱们领有这些资源,并全力以赴来治理咱们应用的开源程序包,包含对外部应用的所有开源程序包进行公有回购,但跟踪所有的软件更新依然是挑战,大量更新令人生畏。”
不过 Google 也提出了一个观点:自动化是解决开源软件包更新问题的一种形式。
内容起源:
https://security.googleblog.com/2021/02/know-prevent-fix-framework-for-shifting.html