2

谷歌认为,开源软件应该比闭源软件更安全,但前提是人们要对其进行检查,而这并不是一项简单的工作。

为了确保未来软件供应链的攻击不会涉及关键的开源软件项目,谷歌的一些顶级工程师提出了新的规范,但这些规范可能会给开源贡献者带来一些问题,如果他们的项目被认为是关键项目。

谷歌表示:「关键性开源软件的建议将增加项目所有者的工作量,因此预计建议会受到阻力,但我们相信额外的约束对于安全来说将起到根本性的保护。我们只是这个领域的其中一种声音,在这个领域,共识和可持续的解决方案是最重要的」

但我们不得不承认谷歌在科技领域是一个强大的声音,它可以影响很多人。谷歌在最新公告中发布了这些目标的建议。

谷歌Go编程语言的主要设计者Rob Pike和Eric Brewer,以及基础设施和谷歌研究员副总裁认为:「业界应该集体定义一组关键软件包,并仅将这些更高的标准应用于这组软件。」

关键开源软件的目标包括:

  1. 没有单方面的代码更改,变更需要由两个独立的方面进行代码审查和批准;
  2. 对参与者进行认证,这意味着所有者和维护者不能匿名,贡献者需要使用强大的认证(如2FA);
  3. 软件的风险变化需要有通知;
  4. 实现软件工件的透明化;
  5. 创建信任建设过程的方法  。

在上述目标达成之前,谷歌提出了三个关键性目标:

  1. 了解你的软件中的漏洞
  2. 防止增加新的漏洞
  3. 修复或删除漏洞

最近涉及 SolarWinds 和其他公司的软件供应链攻击,导致数千家机构受损,其中也涉及闭源或专有软件。

虽然开源软件并没有受到「安全隐患」的影响,但并不意味着开源软件就真的没有漏洞。开源软件在安全方面的风险应该较小,因为所有的代码和依赖关系都是公开的,可以进行检查和验证。

但前提是人们真的在寻找这些漏洞。

开源软件项目,特别是Java和JavaScript/Node.js,依赖于成千上万的直接和间接依赖关系,这使得它们很难探索漏洞。

谷歌工程师指出监控所有这些软件是不切实际的,许多开源软件包没有得到很好的维护。"开源可能比闭源更多地使用依赖关系,并且来自更广泛的供应商,需要信任的不同实体的数量可能非常多,这使得了解开源如何在产品中使用以及有哪些漏洞可能是相关的非常困难,也无法保证所构建的东西与源代码相匹配。"


为了解决供应链攻击,行业需要专注于解决已知的漏洞,因为攻击者攻击已知漏洞的概率远远超过自己寻找的漏洞。

使用开源软件的组织面临的问题是,很少有人会验证他们使用的所有软件包,甚至就连谷歌也觉得验证这项任务很困难,因为跟踪这些软件包需要非同小可的基础设施,以及大量的人工努力。

谷歌员工表示:「在Google里我们拥有这些资源,并竭尽全力来管理我们使用的开源程序包,包括对内部使用的所有开源程序包进行私有回购,但跟踪所有的软件更新仍然是挑战,大量更新令人生畏。”

不过Google也提出了一个观点:自动化是解决开源软件包更新问题的一种方式。

内容来源:

https://security.googleblog.com/2021/02/know-prevent-fix-framework-for-shifting.html

image.png


宗恩
2.9k 声望55 粉丝

关注新科技