要重视开源组件的安全问题,人、流程和技术对于风险治理缺一不可

在过去两三年发生的开源安全风险事件比过去二十年发生的总和还要多。

我们要拥抱开源,大量地使用开源,但开源也有它的风险。这不是说大家不要用,而是说大家在知己知彼的情况下,在了解开源所带来的风险的情况下,才能更好地管理开源软件、使用开源软件。

新思科技销售总监兼管理顾问,薛植元在研讨会上与大家分享了开源安全与风险治理方面的经验。

说到开源风险,最近这两年大家都熟知的就是美国最大的征信机构之一Equifax,它泄露了1.43亿美国公民的征信记录,从而导致了其CEO提前退休请辞、股价大跌。直到事件披露,公司才缓慢意识到自己使用了一个带有高危安全漏洞的组件。通过这个事件我们可以看到,即使是美国这样一个对于开源软件的使用和管理非常先进发达的国家,他们对于开源管理的意识形态也多是基于我们的用户隐私泄露或意外安全事件为出发点这样一个被动式的管理过程。

有人会说,这可能只是一个个别现象,我企业中使用的开源组件非常少,发生类似事件的概率很低。但事实上,开源软件正在“吞噬”我们当今的数字世界。

新思科技在走访了几百、上千家客户后,每年都会披露一个报告。最新的报告指出,99%的应用中包含开源组件,这意味着就目前的大形势来看,几乎所有的应用程序中都包含至少一个开源组件。比较令人震惊的一点是,很多传统的、我们大家潜意识里认为不会有开源组件的产品,实际上它也包含了大量的开源组件。比如说,芯片半导体领域,高达68%的代码为开源代码。所以,可以看出,开源组件已经渗透我们的各个行业方方面面的产品。

举一个明显的例子,我们最近一直讲要发展数字经济和新基建,数字经济的一个重要基础就是软件和算法,而另一重要领域就是芯片半导体,这决定了数字经济发展的效率。其实从我国目前计算机和半导体这个产业来看,我们的硬件,尤其是半导体,明显落后于世界发达国家很长的时间,需要多年的积累和沉淀。而半导体中的硬件代表着一个算力的问题,而如果我们想在新基建、数字经济转型期实现弯道超车的话,很多公司选择用算法来弥补算力的不足。

算法是什么?其核心本质其实就是软件。所以在这样一个科技转型大潮中,相信各个企业、各个行业都会更大规模的使用开源软件,来提升自己的研发效率,增强核心竞争力。因此,从危险程度上来说,开源软件一旦发生信息泄露,其危害是非常严重的;从发生的概率上来讲,大家可以预见到,在这样一个数据和背景为前提的情况下,这个概率会非常高。

因此,开源组件管理已经成为了我们目前广大企业都无法忽略的问题。我们可以把开源软件的风险划分为以下四类:

一、安全漏洞

在调研中还发现,75%代码库都包含了安全漏洞,而这里面有接近一半的代码库包含了高危漏洞。这是一个很可怕的数据,意味着可能随时随地一个“雷”就爆出来,一家公司的市值下跌一半、有可能客户因为这个信息泄露事件,不买公司的帐从而导致业绩大幅下滑、或者作为一个公司的安全负责人,公司技术负责人,甚至是CEO引咎辞职。

二、许可证违规

前面提到的都是安全的问题,而许可证合规实际上是知识产权的问题。从调研结果来看,有33%的代码库包含了未经许可的组件,67%的开源软件中包含了许可证的冲突。其实许多使用开源的人,对许可证也没有充分的解读。对于企业,那些没有定义许可证类型的开源组件同样具有很高的风险,因为他们随时可能会变化。

三、运维风险

82%的代码库包含至少已经过时四年的开源组件。这意味着使用的开源组件:第一点,它已经没有任何竞争力了,因为已经没有人再去贡献它的代码,也没有更多的特性去往这个开源组件里增加了;第二点,这个开源组件,我们名义上叫做开源组件,实际上,它是你的私有组件,因为已经没有开源的贡献者来为它贡献,只有自己公司才能对它维护,对于公司的成本是非常大的挑战。

四、出口合规

在当今的国际形势下,出口合规的风险必须重视。很多人说开源的东西,其实都是免费的、不受国际政治形式影响。但实际上开源软件里的某些加密算法是受到美国的EAR管制的。管制的三个条件分别是:第一,国家;第二,实体,包含了企业、组织、个人;第三,用途,比如说用于核武器、生化武器,比如使用大数据算法泄露个人隐私等等。一旦发生出口管制违规问题,那就不是事关某一条产品线、某一个人的职位问题,而是事关公司是否还能存活的问题。所以说,开源有的时候是免费的,但如果用不好,往往所付出的代价就是异常高昂的。


开源安全和风险治理

Agenda 2

企业级开源治理,通常面临着三方面的挑战。第一,扫描。要知道自己的现状,怎样去识别自己用了多少个开源组件、什么类型等;第二,集成。对于可信软件的研发流程来说,我们需要一个端到端的解决方案,来做到精细化管理才行。因为某一款产品可能一天就要迭代十几次,甚至几十次,如果没有办法做到精细化管理,让高危漏洞流到市场上去,流到用户端去,可能会给企业造成非常大的损失;第三,治理。扫描和集成这两步实际上只做了事情的一半,帮助企业知道自己的问题可能在哪里,但我们的最终目标是把存在的问题给解决掉、修复掉以及考虑以后如何规避。所以,如何治理变成了企业的一个非常大的一个难点。

开源治理三要素

开源治理、开源管理,最终的目的是要解决开源风险,实际往往容易被忽略的要素是“人”。

如果回到前面讲的开源的风险,那么第一个风险是安全风险。这个环节引入的人是安全负责人,负责安全的团队;第二个风险是许可证的风险,这里要引入法务,以及知识产权相关的负责人;第三个是运维风险,这里面涉及到研发、运维、配置管理;第四个是出口合规风险,这里面又涉及到法务、以及合规部门。所以,没有任何一个部门是能够单独解决开源风险的,只有各部门去协作,才能把四大风险覆盖掉。在我们不停地扫描以自动化识别,包括持续监控开源软件这些技术和流程的基础上,加入人的因素,才有可能把开源的安全风险降到最低。

这是为什么要引入“人”这一要素的第一个原因。第二个原因是,最终的开源风险的管理都是基于我们的业务驱动。没有任何一个工具或者技术是懂业务的,只有 “人”才懂业务。所以我们的技术,我们的流程都是“人”来定义,没有这个“人”,这个技术再好也发挥不了效力。而流程需要根据业务需要不停地去改善和变化。总结来说,人、流程和技术这三要素是缺一不可的。

实际上,技术是让我们了解自己现状的一个基础;流程使得我们的技术能更加有效地发挥,符合企业的软件快速上市的目的,打通技术、和“人”的中间环节和桥梁;“人”是把技术、流程不停地去做改变、修正以及调整的角色,是高层次的要素。但是反推来说,人可以把企业的业务需求反馈到管理流程当中,而企业的流程又可以反馈给我们的技术,促进技术的演进和发展。三者形成有机循环,缺一不可。

*本文为演讲者个人观点,不代表协会立场。


- END -

秘书处
12 十二月, 2020
分享这篇文章
存档
登录 留下评论
大学生如何借助开源树立个人品牌