Top
首页 > 正文

开源这顿免费午餐并不好吃

如今运行开源软件的并不只有大型的数据中心、云计算中心、大数据中心等,其实企业很多平台甚至个人的电脑、手机、家电以及数码产品等,也都在运行着多种多样的开源软件。特别是云原生、容器、Kubernetes近几年的火爆,更加助推了开源软件的热度。然而,就在开源软件如此被高频度应用的时代,有多少人会去关注开源代码所带来的安全风险
发布时间:2020-07-02 15:25        来源:赛迪网        作者:徐培炎

【赛迪网讯】随着科技的发展,尤其是互联网、移动互联网技术和相关企业的兴起,开源软件也从黑客的理想之国,逐渐形成了一股推进计算机及相关行业不停进步的巨大力量。如今运行开源软件的并不只有大型的数据中心、云计算中心、大数据中心等,其实企业很多平台甚至个人的电脑、手机、家电以及数码产品等,也都在运行着多种多样的开源软件。特别是云原生、容器、Kubernetes近几年的火爆,更加助推了开源软件的热度。然而,就在开源软件如此被高频度应用的时代,有多少人会去关注开源代码所带来的安全风险?

近期,新思科技公司 (Synopsys)发布了一份由新思科技网络安全研究中心(CyRC)制作,研究了由Black Duck审计服务团队执行的对超过1,250个商业代码库审计结果的《2020年开源安全和风险分析》报告(OSSRA)。重点介绍了在商业应用程序中开源应用的趋势和模式,并且提供见解和建议,以帮助企业从安全性、许可证合规性和操作角度更好地管理开源风险。

新思科技软件质量与安全部门高级安全架构师杨国梁,接受赛迪网采访时指出,2020 OSSRA报告重申了开源在当今软件生态系统中的关键作用,揭示了过去一年中经过审计的所有有效代码库(99%)至少包含一个开源组件,其中开源占所有代码的70%。值得注意的是,老化或废弃的开源组件仍然被广泛使用,91%的代码库中包含的组件已经过期四年以上或过去两年中没有开发活动。

开源并非免费午餐

从2020 OSSRA中,可以看出今年最令人担忧的趋势是未管理的开源代码带来的安全风险日益增加,经过审计的代码库中,75%包含具有已知安全漏洞的开源组件,而去年这一比例是60%。同样,将近一半(49%)的代码库包含高风险漏洞,去年则为40%。

开源这顿免费午餐并不好吃

如图显示,即使是一个商业软件,其实也是有自研和开源的部分构成的系统,所以商业软件很大程度或者很大比例的组成部分也是开源,足见开源在当今的软件组成里面占了很大的比重。杨国梁认为,不管是商业还是最终商业目的的时候,你是要交付你的软件,你的软件被人使用,被人家部署,被人运营了之后,遵循许可证的义务就此产生了。这些许可证就是开源软件的许可证,有一句最经典的描述开源使用的一句话——Freedom is not Free(开源,其实并不是免费午餐)。

开源风险趋势

2020年OSSRA报告中最值得注意的开源风险趋势包括:

· 开源采用率持续增长。99%的代码库包含至少一些开源,每个代码库中平均有445个开源组件,比2018年的298个有显著增加。被审计的代码中有70%是开源代码,这一数字从2018年的60%增至目前,并且自2015年(36%)以来几乎翻了一番。

· 过期和"废弃"的开源组件非常普遍。91%的代码库包含已经过期四年以上或者近两年没有开发活动的组件。除了存在安全漏洞的可能性增加之外,使用过期的开源组件的风险在于更新它们还会带来不必要的功能和兼容性问题。

· 易受攻击的开源组件的使用再次呈上升趋势。2019年,包含易受攻击的开源组件的代码库的比例从2017年的78%下降至2018年的60%之后增至了75%。同样地,包含高风险漏洞的代码库的比例由2018年的40%增至49%。幸运地是, 2019年审计的代码库中都没有受到臭名昭著的Heartbleed漏洞或2017年困扰Equifax的Apache Struts漏洞的影响。

· 开源许可证冲突持续使知识产权面临风险。尽管开源软件拥有"免费"的优势,但它与其它软件一样都要受到许可证的约束。67%的代码库包含某种形式的开源代码许可证冲突,33%的代码库包含没有可识别许可证的开源组件。许可证冲突的发生率因行业而异,从最高的93%(互联网和移动应用程序)到相对较低的59%(虚拟现实、游戏、娱乐和媒体)。

吸取教训需要理解隐性偏见

用目前商业应用中的1,253个代码库,来佐证2020 OSSRA审计数据的结果,可见新思科技对开源安全风险的重视成都。"吸取教训需要理解隐性偏见"是杨国梁在接受采访中,抛出来的一句话。也许非专业人士难以理解,其实这句话的意思是想表达这次报告中所有审计的代码其实都是真正的被用于商业的,比如在商业并购过程中,需要对被并购方的代码做一些审计,这些审计都是基于事实为依据的。相比于其他类型的报告本质上可能只是一个带有个人主观判断的调研,而2020 OSSRA则是1,253个实打实的真正的代码库的审计的结果,这些真实的数据的结果往往能够消除一些出于主观立场的一些理解,所产生的一些偏见。

开源这顿免费午餐并不好吃

上图数据显示,每年的科技收购费用是超过数千亿美金,这只是一个趋势。重点是在这些科技收购的过程中可能会产生一些风险,需要尽职调查团队来做。大致可以分为,从上到下包括产品/策略、人员、流程/工具、架构、代码等种类,如果没有可靠的第三方,是很难审计出来的。比如代码,具体架构包括代码里面包含的哪些第三方的组件,如果没有一个第三方厂商来配合,根本就没有办法触及到具体的内容。

开源这顿免费午餐并不好吃

杨国梁强调,这些内容代码、架构往往都是实打实的可以定量的一些东西,比如说组件用了哪个版本,这个版本是否有安全漏洞,真的就是会对最终收购的价格产生影响;在收购的过程当中可能是比较常见的是有财务审计团队来审理坏账烂账,这些会产生影响,那么科技的尽职调查其实也是一样,查有没有用到一些高危的开源组件,而这些高危的开源组件有可能就会导致一些严重的安全问题,那么这些其实都是最终决定价格的因素。而往上的一些产品/策略,人员可能就是一些主观性、定性的分析,比如这个策略到底定的好不好,很难有一个定量的东西。

风险管控的三个维度

开源这顿免费午餐并不好吃

Black Duck审计服务支持的尽职调查,简单直接点说就是风险管控,而风险管控需要从以下三个维度来做:

一、法律的风险。就是要在一个许可的条件下来使用,在某一个固定的使用场景下,要遵循什么样的条件才能合法的使用,这是所谓的法律风险。

二、安全风险。就是用到的开源组件到底有哪些安全漏洞,已知的安全漏洞。

3、 质量风险。就是使用的开源的组件虽然它还能用,但是如果开源组件出了问题,其实只能依赖社区、爱好者或者维护开源组件的人,来修复问题。但是社区不活跃了,可能这个组件两年三年都没有人再维护,那么用这样的组件出了问题,对于运维,对于替换这个组件的风险其实是非常大的。

所以新思科技从这三个角度做了一些审计。杨国梁介绍,在审计的1,253个商业代码库里面覆盖的行业,包括从企业级的软件、健康医疗、网络安全、金融科技、大数据、虚拟现实等多个行业,而且高科技行业基本上都在涵盖的范围。

开源这顿免费午餐并不好吃

如何从开源受益

相比2018年,2019年开源至少包含一个开源组件代码库的行业,很多都达到了100%,可见对于开源的接纳程度,各个行业是越来越高。这也足以证明开源界盛行的一句话——"软件吞噬世界,开源吞噬软件"。那么该如何能够从开源这件事情里面受益,2020 OSSRA中指出如下三点:

第一,开源软件推动了现在的创新,这已成为行业共识。所以要做开源,就必须对开发和运营团队有相应的培训,让他们能够知道用开源其实是一件好事。但是,在享受这个好福利的同时,不要引入风险,或者说对风险起码有一定的制约手段。并且,不能仅依赖花钱买商业的软件获得服务这种模式,同样需要把一定的资源放在自己管理开源这件事情上,这个观念需要有所转变。

第二,开源治理始于研发人员。因为代码都是研发写出来的,那么研发写代码的过程中引入了哪些代码,从这个阶段就要开始治理,这需要一套流程或者一套策略,这套策略能够贯穿整个产品的生命周期,从最初的设计一直到最后的运维,甚至到最后的产品退市,整个的生命周期里面,需要有一个一以贯之的策略。不能说研发引入的是一个策略,后面发布是另外一条策略,那么管控起来难度就非常大。所以,软件物料清单(BoM)很重要。

第3, 与开源社区互动。想要在开源里活得好,就要跟开源社区保持一个比较良好地互动,这是不争的事实。2020 OSSRA报告里也提到开源社区或者开源代码的贡献,其实并不像大家想的那样,是有一些纯粹的爱好者,或者说是一些极客自己写出来的东西,更多的这些开源的库是由一些比如说英特尔、谷歌等等大厂贡献的,或者像国内阿里巴巴、腾讯等等的工程师们来维护的。并且现在所有的大厂基本上都有自己的开源策略,所以这些商业的厂商和开源社区的一个良好互动,让他们能够更加团结协作,能够让这些不管是治理的信息还是安全的信息,能够更加流畅的在厂商和社区之间被沟通被分享,这才能够通过开源充实自己、充实社区,长期的、良好的、正向的发展下去。

每日必读

专题访谈

合作站点