开源吞噬世界,但是安全和风险却不容忽视 原创

新思科技近日发布的《2020年开源安全和风险分析》报告(OSSRA)为我们披露了更多开源中的趋势和模式,帮助企业从安全性、许可证合规性和操作角度更好地管理开源风险。

至顶网软件与服务频道消息:毋庸置疑,我们处于一个开源无处不在的世界,开源不光主导了软件业,也主导了整个IT产业。但是在这背后,开源安全、许可证合规性和操作风险依然很普遍,新思科技近日发布的《2020年开源安全和风险分析》报告(OSSRA)为我们披露了更多开源中的趋势和模式,帮助企业从安全性、许可证合规性和操作角度更好地管理开源风险。

开源吞噬世界,但是安全和风险却不容忽视

该报告由新思科技网络安全研究中心(CyRC)制作,研究了由Black Duck审计服务团队执行的对超过1250个商业代码库的审计结果。新思科技软件质量与安全部门高级安全架构师杨国梁表示,2020 OSSRA报告中所有审计的代码其实都是真正被用于商业中的,这些审计都是基于事实为依据的。

2020 OSSRA报告重申了开源在当今软件生态系统中的关键作用,揭示了过去一年中经过审计的所有有效代码库(99%)至少包含一个开源组件,其中开源占所有代码的70%。值得注意的是,老化或废弃的开源组件仍然被广泛使用,91%的代码库中包含的组件已经过期四年以上或过去两年中没有开发活动。

开源治理至关重要

开源软件是任何人都可以自由访问、使用、更改和共享(以修改或未修改的形式)的软件。开源软件由许多人制作并根据符合开源定义的许可进行分发。

杨国梁表示,我们可以看到开源在现今的软件组成里面占了很大的比重,商业软件中自研与开源总是交织在一起。“开源其实并不是免费午餐。你要交付软件,遵循许可证的义务就此产生了。 ”

我们也知道市面上存在很多基于开源软件提供商业服务的公司,但是他们并不能完全解决开源的风险。对于开源来说,其实根本没有所谓的开源供应商。商业厂商一般会提供补丁升级软件,但是开源需要自己解决这些问题。因此开源治理至关重要。

开源组件在很多情况下时被研发人员引入的,在编写软件的时候,封装好的开源库和组件非常方便,可以被直接使用。另外,企业在采购商业化软件的时候并不知道软件里面包含了多少开源组件。例如银行会把系统外包给第三方来开发,系统里面有多少开源软件你也不知道,所以开源的使用其实已经非常广泛。

在这样的情况下,安全的问题也就不可避免了。比如新思科技CyRC研究中心发现Heartbleed安全漏洞的主体其实是OpenSSL这样一个开源组件。如果看下Github上的OpenSSL的代码迭代,你会发现它的版本和代码变化非常庞大。

“我们今天说代码里面包含哪些第三方的开源组件,如果你没有一个第三方厂商来配合,你可能根本就没有办法触及到具体的内容。比如说开源组件用了哪个版本,这个版本是否有安全漏洞等。 ”杨国梁说。

开源吞噬世界,但是安全和风险却不容忽视

在这样的情况下,新思科技Black Duck审计服务支持帮助企业从法律风险、安全风险、质量风险等三个维度实现软件采购中的风险管控。

法律风险涉及开源许可证,要遵循什么样的条件才能合法使用;安全风险就是用到的开源组件到底有哪些安全漏洞;质量风险,如果开源组件出了问题,你其实只能依赖这些社区修复这些问题。 但是如果这个社区不是足够活跃了,可能这个组件两三年都没有人再维护,那么这样的开源组件如果出了问题,对于企业的运维和替换这个组件的风险其实是非常大的。

2020 OSSRA报告分析

杨国梁表示,2020 OSSRA报告覆盖的行业包括企业级软件/SaaS、健康医疗、网络安全、金融科技、大数据、虚拟现实等行业。报告中最值得注意的开源风险趋势包括:

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

相比于2018年,2019年至少包含一个开源组件代码库的行业,很多都达到了100%。对于开源的接纳程度,各个行业是越来越高。不过目前我们对开源的治理,不管是从安全还是从合规,完全跟不上使用量的上涨。

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

对于这个问题,杨国梁建议企业应该“自查”,第一是识别,盘点全部软件资产;第二是定制策略管控,通过一个统一的平台持续进行监控,包括安全漏洞、许可协议变动、版本更新等,实时解决新出现的问题。

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

杨国梁说,提升意识是改善现状的关键。如果不知道代码库里有什么,修复也就无从谈起。另外,开源不仅与源码有关,而且与共享重用有关。二进制存储库简化了编码,但是加剧了安全风险。

所谓的“开源供应商”是不存在的,商业化的安全模式并并非总是奏效。这件事情只能依靠你自己来做,你自己约束你的上下游,大家共同提升开源使用的合规程度,才能更好地促进开源的使用。

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

杨国梁表示,业界对于合理合规使用开源组件这件事情已经开始重视起来。前20个最受欢迎的开源许可证可能涵盖了你使用的98%的开源代码库,如果把这些许可证的违规情况治理好,那很大程度上你的代码也就合规了。

开源吞噬世界,但是安全和风险却不容忽视

针对上述情况,2020 OSSRA报告也给出了建议,告诉企业如何从开源受益?第一,开源软件推动现代创新,企业需要培训开发和运营团队识别关键开源组件的使用,认识到开源和商业软件的不同管理方式,指定强大的企业战略从中受益。

第二,开源治理始于开发人员,企业应该培训所有开发人员了解许可证的含义,定义开源使用的补丁策略,列出所有软件清单(BOM)以供开源使用,而不只是源代码。

第三,积极与开源社区互动。开源由社区主导,并得到供应商的支持。在团队中培养参与感和共享所有权,增强分布式开发中固有的协作技能。

“商业厂商和开源社区的一个良好互动,让他们能够更加团结协作。这会让不管是治理信息还是安全信息,能够更加流畅在厂商和社区之间被沟通和分享,那才是一个比较好的使用开源的方向。”杨国梁如是说。

来源:至顶网软件与服务频道

0赞

好文章,需要你的鼓励

2020

06/10

11:22

分享

点赞

邮件订阅
白皮书