谈谈常见开源许可证合规风险

因为我本身也在做开源,所以比较关注这个问题,最近因为工作需要,总结和分析了一下关于开源许可证相关的知识,也分享给大家一起讨论,希望得到大家的指导。

前言

2021年12月,抖音海外版 TikTok 上线了一款名为 TikTok Live Studio 的 APP,但不久其下载页面就被删除。TikTok 官方对此事做出回应,原因是该 APP 违反 GPL 许可证,其使用 GPL 许可证下的开源软件源码,却没有按照 GPL 许可证要求开源。

随着开源软件的发展,其数量和影响力在不断的上升。开源软件具有成本低、升级快的特点,因此越来越多的企业选择使用开源软件。但是“天下没有免费的午餐”,在开源许可证的约束下,开源软件的使用并非想象中的自由。不恰当地使用开源软件,可能会给企业造成负面舆论甚至经济损失的风险。

开源许可证(“Open Source License”)是什么

开源许可证是一种针对开源软件使用者的约束,目的在于规范受著作权保护的软件的使用或者分发行为。

常见许可证及其差异

常见的许可证主要有 GPL、LGPL、AGPL、MPL、MIT、BSD 和 Apache,各个许可证还包含不同版本。根据使用条件不同,可以将这些许可证大致分为两类:Copyleft 许可证和宽松许可证(permissive license),主要对使用、修改和分发的场景作出相应约束。

谈谈常见开源许可证合规风险及解决方案

1.BSD 许可证——特点是可以自由使用、修改、再发布。但是在商用或者个人分发过程中必须带有原来代码的许可证,且不能用原作者相关信息去做宣传。

2.MIT 许可证——源自麻省理工学院(Massachusetts Institute of Technology, MIT),是使用最广泛的一种开源许可证。其特点和 BSD 许可证类似,只要在项目的所有副本中包含版权声明和许可声明,就无需承担任何责任。

3.Apache 许可证——作为 permissive license 中的一员,Apache多了几个限制条件,禁止使用其商标与作者的相关信息进行商业行为,必须明确指出所有修改过的文件。

4.GPL 许可证—— GPL 和 BSD 区别还是很大的,GPL 主张代码及衍生代码的开源,不允许修改后和衍生的代码做为闭源的商业软件进行发布和出售。如果已发布商业软件源码里含有GPL开源软件源码,则必须对该商业软件进行开源或者下架处理。

5.AGPL 许可证—— AGPL 是 GPL 的一个补充, 在 GPL 的基础上加了一些限制。GPL 的约束生效前提是该软件”发布”,有的公司就使用 GPL 组件编写web系统,但是不发布系统,只用这个系统在线提供服务,这样就避免了开源系统代码。而 AGPL 要求如果云服务(即saas)用到的代码是该许可证,那云服务的代码也必须开源。

6.LGPL 许可证—— LGPL 允许商业软件通过类库引用的方式使用 LGPL 类库,而不需要开源商业软件源码。

7.MPL 许可证——在商业软件中,如果含有 MPL 许可证的代码在单独的文件内,其他新增的文件就可以避免开源。

谈谈常见开源许可证合规风险及解决方案

我们针对 C/C++、Java两类常用编程语言的开源组件许可证分布进行统计,可以发现:

  • C/C++ 中主要使用 MIT、BSD、Apache 许可证,GPL/LGPL 约占16%,整体使用更严格
  • Java 中主要使用 Apache、MIT 许可证,GPL/LGPL 占比约1%,整体使用更宽松
谈谈常见开源许可证合规风险及解决方案

开源许可证在标准化

SPDX 是Linux 基金会推出的用于交流软件材料清单信息的开放标准,SPDX 当前已经对超过400个开源许可证的名称、标识符等信息进行标准化,并在持续更新。

SPDX 还给出了开源许可证的匹配指南,鼓励开发者在代码中加入诸如SPDX-License-Identifier: MIT的简短标识。

可以预见,未来开源许可证将变得更标准,更容易被机器识别处理。

开源合规风险

2008 年,美国联邦巡回上诉法院首次在 Jacobsen v.Katzer 一案中主张了开源许可证的著作权效力。中国在2019年的「柚子案」中默认了 GPL 许可证的法律效力。相关判例的产生,意味着开源许可证不再是君子协定,违反开源许可证会对企业带来经济和声誉上的损失。

如 GPL 许可证和 MPL 许可证,GPL 许可证要求「用户使用该许可证下的源码,必须以 GPL 许可证的许可发布整个程序的源码」,而 MPL 则要求「MPL许可证的代码在单独的文件内,其他新增的文件就可以避免开源。」因此企业在使用同时附带 GPL 和 MPL 许可证的开源软件时,就可能因为开源许可证的冲突,面临违反其中之一的风险。

国内外的相关案例

一、2019年,在数字天堂北京网络技术有限公司 诉 柚子北京科技有限公司的案件中,柚子北京 由于开发人员在2015年使用了 数字天堂 的 HBuilder 软件工具中三款插件的部分源代码,未遵守开源软件许可证,将具有开源要求的软件产品作为商业产品,被开源软件的著作权人诉请违约和侵权,故而承担法律责任。

二、2021 年 4 月 30 日,罗盒公司状告风灵公司侵权获赔 50 万元,同时要求风灵公司停止侵权行为。

在该案件中原告罗盒公司,独立开发“罗盒(Virtual App)插件化框架虚拟引擎系统 V1.0”(简称VirtualApp V1.0),在2016年引入GPL3.0 许可证,于2017年取得计算机软件著作权登记证书,且声明

用于商业用途请购买商业授权。

2018年原告发现名为“点心桌面”的软件使用了 VirtualApp V1.0 的代码,经过源码分析对比,发现两者之间高度相似,遂起诉被告福建风灵公司。

经法院审判被告赔偿原告为制止侵权行为而支出的合理费用50万元。此次判决是中国首个明确 GPL3.0 许可证具有法律效力的案例。

三、2021年12月中旬,抖音海外版 TikTok 上线一款名为 TikTok Live Studio 的APP,有网友发现,此软件违反 GPL 许可证,违规使用开源软件 OBS(一个免费的开源视频录制和视频实时流软件,且允许任何人免费应用和商用)的源代码,既然允许商用,但是为什么还会被曝违规呢?

这里就需要再科普一下 GPL 许可证,GPL 许可证具有很强的传染性,如果一款软件使用 GPL 许可证的开源软件源码,那么该软件也必须采用 GPL 许可证,进行开源。

此事曝光之后,OBS 开发者证实此事,TikTok 也对此事进行了回应,并删除 TikTok Live Studio 的下载页面。

针对开发者/企业的建议

温馨提醒:开源千万条,合规第一条

一、软件开发者使用开源软件时,需要谨慎选择开源软件,关注其开源许可证的内容及相关条件,避免潜在的法律风险。

二、企业应当建立一个完善机制,识别企业中所使用的开源软件清单,明确对应的开源许可证及权利约束,及时规避相关合规风险。

三、通过隔离机制避免开源许可证传染,如对于MPL许可证下代码的使用,应把该许可证的代码放在单独的文件内避免许可证传染;LGPL下的代码,可采用动态链接调用该许可证的库实现隔离。

(0)
上一篇 2023年8月9日 下午8:35
下一篇 2023年8月9日 下午9:26

相关推荐

  • 用社区和开发者工具驱动软件供应链安全治理

    本文整理自 OSCS 软件供应链安全技术论坛- 章华鹏老师开场致辞的分享内容。 章华鹏,十二年的企业安全建设、安全社区白帽子、开发者,先后在百度、贝壳负责过企业安全建设 ,也在乌云负责过安全产品,业余时间活跃于安全技术社区,帮助企业、开源项目、软件公司解决过数百个严重安全问题,现在负责墨菲安全和 OSCS 社区,专注于软件供应链安全方向。 软件供应链安全的概…

    2023年8月9日
    0
  • 软件供应链安全与SCA有什么区别?

    作者:Nurit Bielorai 随着个人和专业环境中对软件的依赖增加,软件供应链的安全性已成为一个关键问题。确保软件的安全性和质量对于防范数字攻击、数据泄露和其他网络威胁至关重要。在确保软件安全方面起着关键作用的两种实践是软件供应链安全和软件组合分析 (SCA)。 虽然这两种做法是相关的,但它们并不相同,了解它们之间的差异对于有效保护软件供应链非常重要。…

    2023年9月10日
    0
  • Java开发初学者的五条安全小贴士

    前言 得益于Java的完备生态,Java一直是非常热门的编程语言。但对于刚刚接触Java的开发者来说,很少会去关注安全相关的问题,没有养成良好的开发习惯,在开发过程中容易带来安全隐患。 我们在本文中总结了五条简单有效的小建议。 一、及时更新依赖组件版本 在Java开发中,开发者经常会用到各类开源组件来实现自己的功能点,但是许多开发者不常关注安全资讯,不了解开…

    2023年8月9日
    0
  • 剖析美国政府视角下的ICT供应链安全

    2018 年 11 月 15 日,美国国土安全部(DHS)宣布成立了信息和通信技术 (ICT) 供应链风险管理(SCRM)工作组,这个工作组是由美国多个政府部门、IT行业企业代表及通信行业企业代表联合成立的。该组织对外宣传的目标是识别和管理全球 ICT 供应链的风险。 之后该组织非常活跃,2024 年 2 月 6 日,该组织刚刚宣布将工作组延长两年。我们翻阅…

    2024年3月25日
    0
  • ChatGPT类AI软件供应链的安全及合规风险

    AIGC将成为重要的软件供应链 近日,OpenAI推出的ChatGPT通过强大的AIGC(人工智能生产内容)能力让不少人认为AI的颠覆性拐点即将到来,基于AI将带来全新的软件产品体验,而AI也将会成为未来软件供应链中非常重要的一环。 在OpenAI的文档中,例举了可以利用其实现的48种应用场景,人们在积极探索如何将以ChatGPT为代表的AI能力应用到各行各…

    2023年8月9日
    0