今天,软件已经全面渗透到世界的方方面面,以至于人们用“软件正在吞噬世界”“每一家企业都会是软件公司”来形容这一趋势。在软件对世界方方面面的渗透中,开源软件无疑充当了关键角色。

如今,开源已经成为行业趋势,并正加速普及。根据红帽公司不久前发布的《2022企业开源现状》市场研究报告,95%的IT领导者认为开源对其公司非常重要,和去年的90%相比增加了5%。同时,在接下来的两年里,受访企业使用开源软件占总软件数将上升8%。

当越来越多开源软件进入企业,软件的安全问题也逐渐显示出来。然而,由于开源软件使用的便利性,可能导致忽略其带来的风险。过去使用商业软件,软件安全性由原厂负责,不管其是否安全,但至少有人兜底,而现在采用开源软件后,软件安全吗?怎么保证安全?

被忽视的安全风险

谈到开源软件的安全,我们经常听到的一个说法是,开源软件代码都是公开的,和黑盒子的商业软件相比要安全得多。这个说法貌似有理,其实经不住推敲。

开源软件虽然代码公开,但谁来对代码的安全负责,这个责任如果没有明晰,开源软件的安全性并没有保证。一个软件可能有上百万行代码,谁对每一行代码进行审核,是用户自己还是社区贡献者或者对外售卖者?

“心脏滴血”漏洞是一个很好的例子。“心脏滴血”是开源软件包OpenSSL中的一个漏洞,软件供应商对外售卖的商业软件中采用了该开源软件,但安全责任并未从开源代码提供者转移到软件供应商,最终由用户承担了软件漏洞的风险。

另一方面,开源软件有开放和共同参与的特点,代码公开后不排除有人会借机植入恶意代码,这时开源反而将软件置于危险之中。

有机构对开源软件进行过代码安全的检查,结果也证实了上述担心。早在2006年,美国国家安全部曾开展“开源软件代码测试计划”,对大量开源软件进行安全隐患的筛选和加固,截止到2017年2月,累计检测7000多个开源软件,发现了大量安全缺陷。

软件安全公司Snyk和Linux Foundation近期发布了一份报告《Addressing Cybersecurity Challenges in Open Source Software》,根据它们的调查,Java编写的项目平均有超过47个高危漏洞和28个中危漏洞,排名第二的JavaScript,后者平均有18个和21个漏洞,Python平均有20个。

另外,根据新思科技发布的《2022开源安全与风险分析报告》,84%的开源代码库至少含有一个漏洞,近三年漏洞比例逐渐增高,60%的已审核代码库中包含高风险漏洞。

显然,大部分开源软件的使用者认为软件代码中的漏洞藏不住,很快就会被发现,而现实情况并非如此。因此,我们不能简单地说开源软件是安全还是不安全,更不能想当然地认为开源就安全。

用企业开源软件,降低安全风险

对于开源软件的使用企业,在自身没有足够技术实力的情况下,如何才能降低开源软件的安全风险?答案就是尽量选择企业开源软件,而根本的解决办法还是尽早开展开源治理。

一般而言,企业获得开源软件有两个来源:一个是从开源社区下载,这是社区开源版;还有一个是企业发行版,比如红帽Linux(RHEL),它们就是企业开源软件。相比社区开源软件,企业开源软件的发行者会在社区版软件的基础上进行大量工作,比如集成和对代码进行安全审核。

显然,和社区版相比,企业开源软件具有更好的安全性,这一点被越来越多企业管理者认可。根据红帽的调查报告,89%的受访者认为,企业级开源软件比专有软件更安全或同样安全。这些数值与去年的调查结果相近,但认为“更安全”的人占比增加了4%。接受调查者把“安全”列为采用企业开源软件的四大好处之一。这四大好处分别为:安全性更好(32%)、软件质量更高、能够安全地应用开源技术(28%)、为云技术设计(26%)。

为何安全会成为企业开源软件的一个优势?红帽全球副总裁兼大中华区总裁曹衡康解释说主要有以下几个原因:第一,企业开源软件的发行者会测试和审核开源代码;第二,软件发行方会及时跟进安全漏洞,提供补丁;第三,所有补丁都是追溯的,有保障的。

打开网易新闻 查看精彩图片

红帽全球副总裁兼大中华区总裁曹衡康

实际上,作为企业开源软件的发行方,其对发行的企业软件扮演着守护者的角色。曹衡康说,红帽不是简单地关注单一软件的安全,而是强调整个开源软件供应链的安全。

“红帽所说的安全是供应链的整体安全,从底层的基础设施到开发、到运维、到交付,每一个环节都要安全,也就是说,从最底层的Linux开始、到OpenShift、再到Ansible,红帽都会植入安全的机制,进行全生命周期的安全防护。”曹衡康表示。