为不再重蹈 Apache Log4j 的覆辙,谷歌提出三项安全倡议
过去几年中,最令开发者和科技公司开心的事就是许多项目都在陆续开源,而最令他们心烦的也是许多开源项目都或大或小地出现了漏洞。因此开源项目的安全问题成为了一个令人关注的话题。
在近几年开源项目出现漏洞的事件中,影响力较大,破坏力较强的无疑就是在2021年发生的Apache Log4j漏洞事件,这次漏洞涉及全球近一半的企业,因其触发简单、攻击难度低、影响人群广泛等特点,被许多媒体形容为“核弹级”漏洞。在国内专注于软件开发安全的奇安信代码卫士的《2021中国软件供应链安全分析报告》也指出,现如今国内的软件项目中有80%-90%的代码都是来自开源项目。这也就意味着如果这些开源项目出现问题,或将对全国大部分软件项目造成影响。
图片来源奇安信《2021中国软件供应链安全分析报告》
在全球大部分企业都在忙于修复该漏洞时,美国国家安全顾问Jake Sullivan安排了一次美国白宫会议。此次会议要求被邀请的公司,包括亚马逊、苹果、谷歌、IBM、微软和甲骨文,共就如何提高开源项目的安全性分享彼此的想法。
Google提出三项安全倡议
2022年的1月13日,在本次会议上,谷歌提出了三项加强国家网络安全的倡议。谷歌首席法务官沃克在一篇博文中表示,开源软件与其他关键的基础设施一样,需要获得更多的关注。长期以来,开源软件由于是完全公开透明的,所以一直被许多使用者的眼睛盯着,并且在这个过程中发现和解决其中出现的问题。但事实上,虽然有些开源项目确实有许多人关注,但仍有部分项目根本没有足够的人在保护它的安全:比如仅仅只有三个人维护的Log4j。
在被问到谷歌为解决这些问题所做的努力时,沃克概述了谷歌在13日会议上提到的几种可能方法。
1、建立一个明确的重要开源项目清单
2、建立有关安全、维护、来源以及测试的基础标准
3、建立一个维护者市场,为有需要的开源项目匹配志愿者
即使这些想法并不新颖,但确实是值得称赞的。谷歌的软件工程师已经在考虑为开源软件定义“关键性”,比如哪些开软项目使用者更多,涉及的项目更广,那么它产生错误所影响的范围也就更大。事实上,已经有软件可以为其他软件生成临界点数了。点数越大的开源软件,所受到来自安全方面的重视度就会越高。
至于基础标准,有消息称开源安全基金会已在着手准备,而且他们还有像谷歌开发的软件工程供应链级别的框架支持。
沃克还描述了一个将开源项目与公司雇用的志愿者联系起来的组织,听起来像是开源可持续发展社区,只不过不像GitHub有赞助商或Patreon有具体货币那样。
开源安全需要所有人的力量
GitHub的首席安全官Mike Hanley对这个问题也发表了自己看法。他在一篇博文中表示。首先,一定要有一个行业和社区联合起来的集体来确保软件供应链的安全。其次,需要让开源维护者得到更好地支持,使他们能更容易保护自己的项目。
网络安全公司Luta Security的创始人Katie Moussouris在一次电话采访中表示,谷歌作为仅有1%的维护开源安全的公司之一,自愿在自己的产品安全和软件生态系统安全方面做出了很多相关工作。如果相关部门真的在乎开源代码的安全,那么就要更加认真且脚踏实地为开源社区提供支持,而不是像现在这样,仅邀请少数人和企业来讨论对开源项目的维护工作。
开源社区更应该加强对某些只有少数开发人员项目的帮助,而这其中的关键就是要确定哪些项目更重要。因为一开始某些开源项目只是个人喜好,它后续的发展很难预测,例如Linus的Linux项目。最初谁都没有想到,Linux能走到今天这一步。这些由几个人维护的项目往往不被重视,直到出现了漏洞,人们才意识到它可能只有几个维护者。Apache Log4j就是一个很好的例子。如果要解决这个问题,就不能只依靠这些少数的安全巨头公司来做慈善。
怎么让开源维护者获得经济上的支持
当被问及对开源项目的大用户,施加财政支持义务的软件许可是否会有帮助时,Moussouris表示并不确定这就是让开源项目能持续下去并提升安全性的理想方法。但她支持将开源项目大用户赚到的钱,流通到那些为开源做出贡献的人的手里。当然如何把钱交给开源维护者这件事很复杂,通常我们不能确定这些钱该支付给谁或是怎么支付到他手里,更不可能直接开张支票给一个项目的某个维护者,这根本就不现实,所以对开源维护者的经济支持还要另想办法完善。
在谷歌的建议中有一个没有提到的问题,在修复漏洞的过程中修复人员需要一些特定的安全技能。Moussouris指出,开源维护者对Log4j出现的漏洞缺少根本原因的分析,导致后来出现的多个漏洞分支完全绕过了最初对该漏洞的修复。Log4j开发者并不了解漏洞的波及范围,而这个根源问题无法通过投入更多的开发人员来解决。
总的来说,无论是谷歌的三项建议,还是后来Mioussouris对此事的谈论,都表明了维护开源项目的安全性。这是一个需要所有人一起进行的工作,要将它完善成为一个完整的体系,而不是仅仅让项目维护者,或者是少数的安全巨头企业做这件事。毕竟开源安全的重要性毋庸置疑,一旦开源项目出现漏洞,影响的绝不仅仅只是单独的一个开发者或一家企业。
参考链接:https://www.theregister.com/2022/01/14/google_says_open_source_software/
《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!