赞
踩
目录
随着整个社会加速数字化、网络化、智能化,开源已经成为势不可挡的趋势,驱动云计算、大数据、人工智能等技术和产业的进步。而随着开源产业繁荣兴起,开源的安全问题也备受关注。
今年4月,新思科技发布了《2022年开源安全和风险分析》报告(OSSRA)。该报告由新思科技网络安全研究中心(CyRC)制作,共调查了17个行业的2400多个商业代码库的匿名结果。报告共包含六个部分:简介;概述;开源漏洞与安全;许可;开源的维护;总结。下文将从以上六个部分出发,对2022与2021年度报告进行对比分析。
2022年度报告中的许可证分析部分的数据是基于2021年被审计的2409个代码库。2021年度报告中的许可证分析部分的数据是基于2020年被审计的1549个代码库。两个年度报告中均对被审计代码库中许可证冲突占比;无许可证或自定义许可证占比;各行业许可证合规情况进行了对比分析,2022年度报告中新增内容为:被审计代码库中,包含前10个有冲突许可证的代码库占比 。
2017-2021年许可证冲突呈现逐渐下降的趋势。2021年审计的代码库中有53%包含有许可证冲突的开源代码,较2020年的65%大幅下降,见图7。
2018-2021年无许可证或自定义许可证的开源代码的代码库的占比在2019年出现上升后,2020年、2021年逐年下降, 2020年无许可证或自定义许可证的开源代码的代码库的占比由26%下降到2021年的20%,见图8。2021年报告中对自定义许可证的风险进行了解释,并以JSON许可证作为例子,侧面说明了自定义许可证存在的不确定风险。该许可证实质上是宽松型MIT许可证,由于添加了 “该款软件严禁用于恶意用途,仅限用于善意用途”的注释。许多热门项目的责任单位 — 尤其是Apache基金会的项目 — 都因为许可证定义含糊不清而删除了使用JSON许可证的代码。2022年报告中对此并无更多分析解读,主要强调了2021年统计数据无许可证或自定义许可证的开源代码的代码库的占比为20%
2022年报告与2021年报告中均用图表的形式对于相同的17 行业的有冲突许可证在代码库中的占比数据进行了展示。2022年报告用文字的形式提到了占比最高的行业为计算机硬件及半导体,其占比为93%、其次是物联网行业为83%,最低的行业为医疗保健、健康科技和生命科学,其占比为41%。2021年报告对于行业许可证冲突情况的描述:主要提到了,存在开源许可证冲突的代码库比例最高的行业是能源和清洁科技以及制造业、工业和机器人行业,其占比为均为86%。零售和电子商务行业中存在开源代码许可证冲突的代码库的比例最低,其占比为47%。两个年度报告均未对行业的许可证冲突占比的具体原因进行分析,也没有具体指出17行业被审计代码库的数量分别是多少。
2021年报告中并未提到前10个有冲突的许可证的代码库占比情况,此内容为2022年报告中新增内容。增加此内容的目的,个人分析认为,是想通过Creative Commons Attribution ShareAlike 3.0这一冲突许可证在代码库中的占比增长来引起人们对于特定许可证冲突增加的关注,
2022年报告中提到,2021年统计数据显示,17%的受审计代码库被发现与Creative Commons Attribution ShareAlike 3.0许可证存在某种形式的冲突,而2020年该统计数据为15%,见图9。由此引出,虽然许可证问题在逐年减少,但一些特定许可上的冲突在悄然上升,许可证合规问题仍需重点关注。
这一章节的大标题在2021年度报告中为可持续,其主体内容是一致的,主要为开源项目的维护现状。2022年OSSRA报告开源维护部分中的数据是基于包括风险评估的2097个代码库。 2021年度报告中的可持续部分数据是基于2020年被审计的1549个代码库。
两个年度报告从以下五个指标对开源项目维护情况进行了统计。分别是:包含两年内未新开发的组件占比;包含至少四年未曾更新的组件占比;包含过时四年多的开源的占比;包含非最新版本组件占比;包含在维护人员更新上落后一年或一年以上的组件占比。其中,包含两年内未新开发的组件占比指标,从2020年统计结果的91%下降到了2021年的88%。
表 2021-2020年开源维护情况统计指标表
指标 | 2021(%) | 2020(%) |
88 | 91 | |
包含至少四年未更新的开源代码在代码库中的占比 | — | 85 |
包含过时四年多的开源代码在代码库中的占比 | 85 | — |
包含过时版本的组件在代码库中的占比 | 88 | — |
包含至少一年没有任何维护活动的组件在代码库中的占比 | 16 | — |
数据来源:新思2022、2021年度OSSRA 报告
2022年报告中认为开发者未及时更新开源项目,除了开发者认为更新的风险大于新版本带来的好处以及时间或资源问题以外,很大部分的原因是因为,开发者不知道开源组件的新版本已经可用,通过对比分析开源软件与商业软件的不同,来强调要针对开源软件带来的安全风险,需要通过一些技术手段进行治理。
2021年报告未对开源项目维护者的现状进行描述。2022年度报告对此进行了阐述,重点强调了,人们通常认为有成千上万的开发人员负责开发和维护(免费和开源软件),而事实上并非如此,23%的开源项目只有一个开发人员贡献了大部分代码。94%的开源项目由不到10个开发者贡献了超过90%的代码行。
对比两个年度报告的总结部分。结语部分的内容共使用了1个版面,内容上,首先从2021年热点问题Log4j漏洞入手,来强调开源带来的危险性;然后,说明开发者要面对的是开源治理问题而不是开源本身的问题。最后,阐述SBOM清单对于开源治理的重要性。2021年度报告结语部分共使用了4个版面,内容上:宣传其软件安全培训课程、静态分析工具;开源项目NGINX OPEN SOURCE安全治理案例分析;SBOM清单。其共同点都是强调SBOM清单对于开源治理的重要性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。