开源许可现状

开发人员经常在软件中引入开源的代码片段、函数、方法和操作代码。因此,软件代码中经常会包含各种声明不同许可证的子组件。这些子组件的许可证条款和条件与项目整体主许可证的条款和条件冲突时,就会产生许可证合规风险。

Synopsys 2023 Open Source Security and Risk Analysis(《2023开源安全和风险分析(OSSRA)》)报告显示,在2022年审计的所有代码库中,54%的代码库包含与主许可证冲突的开源内容。

Creative Commons ShareAlike 3.0(CC BY-SA 3.0)是今年最常见的引发许可证冲突的许可证。该许可证要求署名、非商业性使用及相同方式共享。在开发人员中很流行的在线问答平台Stack Overflow对这一许可证的流行起到了很大的助推作用。

从行业角度来看,去年,计算机硬件和半导体行业中93%的代码库存在开源许可证冲突;今年这一数字下降到了75%。总体而言,全行业的许可证冲突情况都有类似的改善。今年,冲突比例最高的是物联网行业(78%)。

许可证合规风险

软件产品默认受版权保护;未经创作者/作者以许可形式授予的明确许可,任何人不得非法使用、复制、分发或修改该软件。即使是相对宽松友好的开源许可证也规定了用户使用、修改和分发开源软件的一些行为准则。

当代码库中包含的开源代码的许可证与代码库的整体许可证相冲突时,就会产生潜在的许可证风险。GPL许可证族是开源项目中比较常见的许可证,当使用GPL许可证的代码被包含在商业或闭源软件中时,很大概率会产生许可证合规风险。

此外,通用开源许可证的变体可能会对代码的授权提出附加要求。例如,JSON许可证就是在MIT许可证的基础上增加了“软件仅限用于善意用途,严禁用于恶意用途”的限制。但这一表述在实际情况中又过于模糊,可能需要进一步法律专业层面的评估。

按风险划分的开源许可证

下表列出了过去一年(2022-2023)被使用最多的开源许可证及它们在合规问题上的风险等级以供参考(整理自《2023开源安全和风险分析(OSSRA)》)。

*包括组件声明公开但未声明具体的公共许可的情况,如UnlicenseCC

开源安全共建

感谢每一位开源社区成员对OpenSCA的支持和贡献。OpenSCA的代码会在GitHub和Gitee持续迭代,欢迎Star和Fork,也欢迎向我们提交ISSUE和PR,参与我们的开源安全共建计划,与社区成员共同建设充满可能性的开源解决方案。

推荐收藏!年度Top20开源许可证风险等级的更多相关文章

  1. 如何选择开源许可证&如何修改项目使其符合某种开源许可证

    作者:zyl910 很多文章介绍了详细的解说了各种开源许可证及它们的区别.但是,具体该选择哪一种许可证?如何修改项目使其符合某种开源许可证?就很少见到指导了.于是本文探讨这两个问题. 一.如何选择开源 ...

  2. 值得推荐的C/C++开源框架和库

    值得推荐的C/C++开源框架和库  转自:http://www.cnblogs.com/lidabo/p/5514155.html   - 1. Webbench Webbench是一个在Linux下 ...

  3. [转载]一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

    本文转载自:http://blog.csdn.net/testcs_dn/article/details/38496107 开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区 ...

  4. 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

    一张图看懂开源许可协议,开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL.BSD.MIT.Mozi ...

  5. 【转载】 火爆的996.ICU项目正在酝酿开源许可证 禁止996公司使用

    原文地址: https://www.cnbeta.com/articles/tech/832449.htm ---------------------------------------------- ...

  6. 使用开源项目免费申请 JetBrains 全家桶 IDEA 开源许可证

    JetBrains 公司旗下的 IDEA 功能都十分强大,深受各种编程语言相关的程序员的喜爱.我个人而言,经常使用 WebStorm,也使用过 PyCharm. 正常情况下 JetBrains 公司的 ...

  7. 2015 年度新增开源软件排名 TOP 100 - 开源中国社区

    2015 年度新增开源软件排名 TOP 100 - 开源中国社区 39.ABTestingGateway http://www.oschina.net/news/69808/2015-annual-r ...

  8. 为什么GPL是更好的开源许可证?

    1. 让我从一件新闻讲起. 2009年,计算机业界发生了一件大事:甲骨文公司以74亿美元收购SUN公司. 消息宣布后,有一个人坚决反对这笔交易.他叫Michael Widenius,是数据库软件MyS ...

  9. GPL、BSD和Apache开源许可证

    参考资料 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) 如何选择开源许可证? - 阮一峰的网络日志 开源许可证教程 - 阮一峰的网络日志 简介 自由软件许可证由FSF(Free ...

  10. 开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别(转)

    因CooCox用户数及影响力越来越大,CooCox团队也逐渐提高了对软件及代码协议的重视.在收集整理的过程中,一些归纳好的信息和大家分享一下.首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源 ...

随机推荐

  1. ${pageContext.request.contextPath}的理解和用法

    在做房产管理系统的时候用到了<from>标签的这个用法,这就来解释一下 ${pageContext.request.contextPath} 是JSP取得绝对路径的方法,等价于 ${pag ...

  2. lua完整学习笔记

    lua注释 -- 单行注释 --[[ 多行注释 ]]-- lua数据结构 nil          无效值与Java的Null类似,但是在条件表示中是false boolean      布尔值,tu ...

  3. 算法与数据结构——kpm算法

  4. UMP系统概述

    突出性能: 1.低成本,高性能    2.开源数据库 UMP在设计时要实现一下原则: 多租户:

  5. 【Postman&JMeter】使用Postman和JMeter进行signature签名

    使用Postman和JMeter进行signature签名 目录 使用Postman和JMeter进行signature签名 一.前言 二.v0接口 1.Postman 2.JMeter 三.v1接口 ...

  6. Python实现模块热加载

    为什么需要热加载 在某些情况,你可能不希望关闭Python进程并重新打开,或者你无法重新启动Python,这时候就需要实现实时修改代码实时生效,而不用重新启动Python 在我的需求下,这个功能非常重 ...

  7. DRF过滤器

    https://www.django-rest-framework.org/api-guide/filtering 一般情况下,我们可以重写DRF视图类的get_queryset()方法来实现查询结果 ...

  8. 中企网安信息科技:协同办公OA信息化管理系统概述

    由华企网安总公司北京中企网安信息科技有限责任公司开发的<协同办公OA信息化管理系统>,获得国家版权局颁发的计算机软件著作权登记证书. 协同办公OA信息化管理系统是一种综合性的软件系统,用于 ...

  9. 使用 PostgreSQL 16.1 + Citus 12.1 作为多个微服务的分布式 Sharding 存储后端

    在本教程中,我们将使用 PostgreSQL 16.1 + Citus 12.1 作为多个微服务的存储后端,演示此类集群的样例设置和基本操作. Citus 12.1 实验环境设置 Docker 快速启 ...

  10. [笔记01]---solr

    什么是Solr 1.直接使用sql搜索存在的问题 大多数搜索引擎应用都必须具有某种搜索功能 搜索功能往往是巨大的资源消耗 它们由于沉重的数据库加载而拖垮你的应用的性能 所有我们一般在做搜索的时候 会把 ...