新思科技《2022 年开源安全和风险分析》报告分析解读第三篇——许可证/开源维护部分

本文主要是介绍新思科技《2022 年开源安全和风险分析》报告分析解读第三篇——许可证/开源维护部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

许可证

许可证冲突

无许可证或自定义许可证

各行业许可证合规情况

前十大有冲突的许可证(新增内容)

开源的维护

开源维护者的现状(新增内容)

总结


随着整个社会加速数字化、网络化、智能化,开源已经成为势不可挡的趋势,驱动云计算、大数据、人工智能等技术和产业的进步。而随着开源产业繁荣兴起,开源的安全问题也备受关注。

今年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清单对于开源治理的重要性。

这篇关于新思科技《2022 年开源安全和风险分析》报告分析解读第三篇——许可证/开源维护部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/373832

相关文章

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

python3 gunicorn配置文件的用法解读

《python3gunicorn配置文件的用法解读》:本文主要介绍python3gunicorn配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python3 gunicorn配置文件配置文件服务启动、重启、关闭启动重启关闭总结python3 gun

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解