尽管开源有20多年的历史,当下依然是个时髦的技术领域。全球开源市场一片火热,逐年增长,SourceClear调查报告预测,2026年全球开源项目数量将超过3亿。我国产业界各方也积极拥抱开源,很多企业提出“来自开源,回报开源”,成为国际开源大家庭的重要参与者。
根据中国信息通信研究院(以下简称“信通院”)日前发布的《开源生态白皮书(2020年)》,我国开源软件应用比例略有提升,2019年我国企业已经使用开源技术的企业占比为87.4%。而随着开源软件的应用越来越广泛和深入,风险日益凸显,开源治理被越来越多的企业重视。
开源风险成开源应用屏障
开源是当今软件生态里的关键力量,尤其是在千禧年后,随着互联网、大数据、云计算等新技术的兴起,我们所熟知的MySQL、PostgreSQL、Hadoop、Kubernetes(K8S)等开源技术被广泛应用。
与此同时,开源的风险更加突出,《开源生态白皮书(2020年)》指出,开源软件可能涉及三类风险:知识产权及合规风险、安全风险、运维和技术风险,其中知识产权及合规风险主要与开源许可证的规定相关,安全风险主要涉及安全漏洞等问题,运维和技术风险主要指因开源软件的引入导致的开发运维投入量大、技术人员要求高等问题,而这三类风险在不断上升。
根据美国新思科技公司(Synopsys)发布的《2020年开源安全和风险分析》报告(OSSRA)。67%的代码库包含某种形式的开源代码许可证冲突,33%的代码库包含没有可识别许可证的开源组件。75%的代码库至少含有一个漏洞,将近一半(49%)的代码库包含高风险漏洞,而去年则为40%。91%的代码库包含已经过期四年以上或者近两年没有开发活动的组件。除了存在安全漏洞的可能性增加之外,使用过期的开源组件的风险在于更新它们还会带来不必要的功能和兼容性问题,运维风险和成本将会提高。
其中在许可协议方面的不确定性近两年成为焦点,从2018年开始,Redis Lab、MongoDB、Neo4j等多家开源数据库修改许可协议,甚至有人指出开源数据库变天了。
如今开源风险已经成为开源应用的屏障,《开源生态白皮书(2020年)》的调研指出,出于安全性考虑成为我国企业尚未应用开源技术的最主要原因。2019年,出于安全性考虑而未使用开源技术的占比最高,达到43.8%,比上一年增加8.6%。
对于国内企业而言,开源治理从未像现在这样迫切。
开源治理任重道远
国内企业从内部逐步建立开源治理体系应对开源风险,但是依然任重道远。
新思科技软件质量与安全部门销售总监兼管理顾问 薛植元
新思科技软件质量与安全部门销售总监兼管理顾问薛植元在接受采访时指出,开源治理最早在2000年初由国外公司进行实践,已有十多年历史,国外已经形成了完备的开源治理技术、方法论和实践。而国内,近两年来由于信息安全一些事件、许可纠纷等因素,企业和政府都意识到开源风险的问题,并且对国内的开源产业非常重视,开源治理逐渐兴起,起步较晚还处在初级阶段,但是发展很快,实现了爆发式的增长。
通常将开源治理分为三个等级,一是基础型,在某些项目上用到开源工具,按需索求,但是没有相应的人才储备和文化。二是增强型,已经有稳定的人员组织和部门去做开源治理,可以重复去管理公司的开源软件。三是先进型,在增强型的基础上,把开源管理融入到软件开发生命周期中,实现自动化管理,形成自身完备的开源管理策略并可以持续迭代优化改进策略。目前国内有几个头部公司达到先进型,但是大部分企业处于基础型或者增强型。
薛植元认为开源软件数量庞大是开源治理的难点,企业开源治理首先要摸清自己的家底,到底用了哪些开源技术和代码,再去进行开源治理。
《开源生态白皮书(2020年)》指出,开源治理工具加速企业开源治理体系构建。开源治理工具主要以开源组成和安全分析为主,通过扫描开源软件梳理开源组件信息、开源许可证信息、开源安全漏洞等帮助用户有效降低开源风险,全球目前主流开源治理工具厂商大多起源于国外,客户遍布全球且占据我国大部分市场份额。国外如Black Duck、X-RAY等开源治理工具大多侧重开源组成识别功能。
信通院于2019年下半年牵头起草《开源治理工具能力要求 第1部分:开源组成和安全性分析》标准,该标准是国内首个针对开源组成和合规安全性分析的开源治理工具标准,旨在规范和提高开源治理工具服务商的能力。
在日前举办的2020 OSCAR开源产业大会上,新思科技高分通过中国信息通信研究院的开源工具的本地化方案评测。其中,新思科技软件组成分析工具Black Duck,开源组件检出率高达95%。据悉,Black Duck可以提供端到端开源风险管理方案,从探测、保护、管理到监控,今年强化了其漏洞库和开源合规指南。
“没有最好的技术,只有适合你的技术。”薛植元强调,每个企业的境况不同,对于开源治理需求也各有差异,对于技术选型而言,合适的才是最好的。而企业开源治理,技术之外还需要组织、流程、文化的构建。