澳门新葡亰平台官网赛门铁克疑似在诺顿核心路由器中违反了 Linux 的 GPL 许可

by admin on 2020年3月30日

据报道,一位 Linux 安全工程师 Matthew
Garrett 在赛门铁克(Symantec)的诺顿(Norton)核心路由器中发现了 Linux 代码,而Linux 使用了
GPL 授权许可,它要求使用 Linux
源码的项目需要开放源代码,但显然,该路由器并没有这么做。这就是说赛门铁克违反了
Linux 的 GPL 许可。

刚刚接触开源软件的新手可能会因为诸多不同的开源协议(许可证)而感到费解,不知道到底要如何使用这些项目。

News:dtrace dropped the CDDL and switched to the GPL!

澳门新葡亰平台官网,根据 2月14日 Brendan Gregg 在 Twitter 上推送的消息:Oracle 已经将 DTrace
模块的开源许可证从 CDDL 切换到 GPL,预计最快到 2018 年底 Linux kernel
就可以发布一个可用的 /usr/sbin/dtrace ,底层基于 bcc 和 eBPF 。

Good news from Oracle: DTrace is GPL’d (thank you!). I’d guess by the
end of 2018 we’ll have a working /usr/sbin/dtrace on Linux for running
D scripts (using libbcc+eBPF on the backend)

关于动态追踪技术(Dynamic
Tracing),我们在之前的文章已经有所介绍,动态追踪技术(一):DTrace
导论
。DTrace 是动态追踪技术的鼻祖,源自 Solaris
操作系统,提供了高级性能分析和调试功能( advanced performance analysis
and troubleshooting tool )。

Oracle 收购 SUN 公司之后推出了 Oracle Linux DTrace (基于 Oracle
企业级内核 Unbreakable Enterprise Kernel
,UEK),针对性地发展完善了一系列探针如 syscall, profile, sdt, proc,
sched 和 USDT,受制于诸多原因一直没有进入 Linux kernel
代码树,其中最大的一个障碍是许可授权问题:DTrace 源代码采用 CDDL
许可证,不兼容 Linux kernel 使用的 GPLv2 许可证,无法直接移植。

 commit e1744f50ee9bc1978d41db7cc93bcf30687853e6
 Author: Tomas Jedlicka <tomas.jedlicka@oracle.com>
 Date: Tue Aug 1 09:15:44 2017 -0400

 dtrace: Integrate DTrace Modules into kernel proper

 This changeset integrates DTrace module sources into the main kernel
 source tree under the GPLv2 license. Sources have been moved to
 appropriate locations in the kernel tree.

多年来,嵌入式设备制造商一直在非法使用 Linux。通常,他们使用 Linux
而不发布他们设备的源代码,而 Linux 的 GNU
通用公共许可证第2版(GPLv2)要求使用 Linux 源码的程序需要进行开源。

比如, opensource
上列出了9个“流行的许可证”,维基百科上也有长长的一个许可证列表,里面又涉及到分发、修改、专利授权、私人使用、再授权和商业授权等等,很容易让人迷惑。

CDDL vs GPL

DTrace 与 OpenSolaris 一样之前是基于 CDDL 许可证而不是 Linux kernel
使用的 GPL 许可证,二者的区别是什么呢?

澳门新葡亰平台官网 1

image

GNU通用公共许可协议(GNU General Public License,简称 GNU
GPL、GPL,港台地区翻译为“GNU通用公共授权条款”)是广泛使用的免费软件许可证,最初由GNU项目的自由软件基金会(FSF)的理查德·斯托曼(Richard
Matthew Stallman)撰写。

一般的版权概念(“copyright”),从不授予用户任何权利(除了使用的权利),更多的是限制性规定,例如复制、修改、分发等,也可以包括一些法律允许的行为,比如逆向工程。GPL
则代表了知识产权制度的左翼阵营(“copyleft”),它授予被许可人以下权利(或称“自由”):

  • 以任何目的运行此程序的自由;
  • 再复制的自由;
  • 修改程序并公开发布改进版的自由(前提是能得到源代码)。

GPL 及其它 Copyleft
协议授予了被许可人(几乎是任何人)以非常广泛的自由,同时利用版权法设计了“传染机制”:GPL明确规定,任何源码的衍生产品,如果对外发布,都必须保持同样的许可证。这就是说,任何人只要发布基于某个GPL软件的修改版本,他就必须公开源码,并且同意他人可以自由地复制和分发,否则原始作者可以根据版权法起诉

DTrace 的 CDDL 许可证继承自 Sun Microsystems
。通用开发与发行许可证(Common Development and Distribution
License,简称CDDL) 是一个由 Sun 提出的授权协议,它以 Mozilla
公共许可证(MPL)1.1版本为基础。基于 CDDL
许可证的项目主要有:OpenSolaris (含 DTrace 和 ZFS) 、NetBeans IDE
、GlassFish 等。

Like the MPL, the CDDL is a weak copyleft license in-between GPL
license and BSD/MIT permissive licenses, requiring only source code
files under CDDL to remain under CDDL.

鉴于 GPL 许可模式下很难通过开源软件直接盈利,因此也有很多类似 CDDL
的开源协议倾向于支持商业开发,授予厂商更大的决定权。CDDL
最大的特点是源代码和可执行文件允许采用不同的许可证。例如一般不存在 GPL
模式下存在的
“社区”版本,而是由厂商提供一些免费版本供开发者在非生产环境下使用,同时附上
CDDL
许可的源代码,开发者可以自行编译和部署;更重要的是,厂商只对付费客户提供安全补丁修复和维护版本的源代码。

综上所述,基于 CDDL 许可证的 DTrace
你只可以使用但不允许围绕代码进行修改,或者添加其他跟踪点。Paul Fox
个人贡献的dtrace4linux 项目就试图移植 Sun DTrace 到 Linux 的
,但是受限于许可证只能做到附加产品(add-on),
外部人员很难直接参与进来,事实上 CDDL
许可证的项目外部贡献最多一般不会超过 10% 。

Google 工程师和 Linux 安全专家 Matthew Garrett
潜入他的新诺顿核心路由器时,他发现这款高端的 Wi-Fi 路由器系统似乎是基于
QCA 软件开发工具包(QSDK)项目的 Linux 发行版。这是基于Linux的OpenWrt
Wi-Fi 路由器操作系统构建的 GPLv2 许可的开源平台。 OpenWrt
不是只读固件,而是具有完全可写的文件系统和包管理,这使赛门铁克能够轻松地使用更新的安全功能定制其路由器。

为了帮助新手掌握这些 FOSS (free and open source software)许可证,Linux
基金会和自由软件基金会 (FSFE)刚刚发布了新的资源来帮助理解和合规使用。

Future

在此之前,Linux 已经拥有 SystemTap 和动态探针(dprobes),DTrace
是基于整个系统的全局跟踪、调试、分析工具。Linux kernel
的创建者显然不喜欢一个“复杂”的系统(large system),
他们倾向于将跟踪、分析和探测划分为彼此独立的小单元。许多开发者为此发明了各种钩子(hooks)以及整合某些特定探针(probes)的便利工具,例如
kprobes , uprobes, markers 等。 dtrace for linux 正式进入 Linux kernel
之后,有望将相关技术整合成一个更强大的体系,这一点非常令人期待。

但如果它的确基于 QSDK 和
OpenWrt,赛门铁克就需要与全世界共享诺顿核心路由器的代码。Garrett
直接发送推文@了诺顿官方: “Hi,@NortonOnline 诺顿核心显然运行的是
Linux,许可证要求你开放内核源代码,可以在哪里获得它呢?”

澳门新葡亰平台官网 2

里程碑:Linux 合并 BPF

2016年11月,Linux 4.9-rc1发布,正式合并了一项重要特性:BPF追踪(Timed
sampling)。

系统性能领域的国际导师Brendan
Gregg,感动得都快哭了,当即在Twitter上表示这是一个重要的里程碑!
他随后又写了一篇长文《DTrace for Linux
2016》,以示庆祝。

As a long time DTrace user and expert, this is an exciting
milestone!
–Brendan Gregg

Linux 合并了BPF而已嘛,跟DTrace这个劳什子有什么关系呢?

DTrace 是动态追踪技术的鼻祖,源自 Solaris
操作系统,提供了高级性能分析和调试功能,它的源代码采用 CDDL
许可证,不兼容 Linux 内核使用的 GPLv2
许可证,无法直接移植。当然,江湖上还有另外一种说法,Linux之所以一直没有原生支持DTrace,是因为Linus
觉得这玩意没什么必要。Anyway,随着 BPF跟踪的最后主要功能合并到 Linux
4.9-rc1,Linux 现在有了类似 DTrace 的高级分析和调试功能。

Linux 这次合并的BPF(The Berkeley Packet Filter
),来自于加州大学伯克利分校(这所大学很有意思,以后还要反复提到)。BPF,顾名思义,最早只是一个纯粹的封包过滤器,后来在很多牛人的参与下,进行了扩展,得到了一个所谓的
eBPF,可以作为某种更加通用的内核虚拟机。通过这种机制,我们其实可以在
Linux 中构建类似 DTrace 那种常驻内核的动态追踪虚拟机。

Linux 没有 DTrace(名字),但现在有了 DTrace(功能)

事实是,根据诺顿核心许可证“本文档中描述的产品是根据许可证分发的,限制其使用、复制、分发和反编译/逆向工程。”,也就是说它并没有将该路由器源码公布。

新资源包括:

扩展阅读:动态追踪技术

  • 操作系统原理 | How Linux Works(一):How the Linux Kernel
    Boots
  • 操作系统原理 | How Linux Works(二):User Space &
    RAM
  • 操作系统原理 | How Linux
    Works(三):Memory
  • 动态追踪技术(一):DTrace
    导论
  • 动态追踪技术(二):strace+gdb 溯源 Nginx
    内存溢出异常
  • 动态追踪技术(三):Tracing Your Kernel
    Function!
  • 动态追踪技术(四):基于 Linux bcc/BPF 实现 Go
    程序动态追踪
  • 动态追踪技术(五):Welcome DTrace for
    Linux

针对这件事,赛门铁克代表表示:“赛门铁克完全承诺遵守在产品中使用开源组件的许可义务,我们认真对待这些索赔并正在调查此事。”

  • 一本新的、免费的在线书籍, “Practical GPL Compliance: A guide for
    startups, small businesses, and
    engineers,”
    由 Armijn Hemel、MSc 和 Shane Coughlan
    编写。该书适用于消费电子、无人机、IoT 或基于通用的 Linux 或基于
    Android
    汽车设备,旨在提供实用的信息,以快速解决常见问题和错误,并合规授权工程师或团队尽可能高效地完成工作。该书提供简单说明,并提供了清单和可视化流程图。

  • 由 Linux 基金会提供的”cregit”
    工具,旨在探讨源码如何随着时间的推移而演变。其主要应用之一是创建一个
    token-based 源码视图,将代码解构成编译器识别的最小可解析单元。

  • FOSSology 3.1 版本是根据 GPL
    许可的工具,旨在帮助工程师了解与指定项目相关的 FOSS 许可证。

原文

澳门新葡亰平台官网 3

相关人士还表示,“GPLv2 是促成 Linux 和许多其他 FOSS
项目成功的关键许可证,更好地了解产品中 GPL
许可代码的位置以及如何遵守条款的指南,可以更好地促使 FOSS 生态符合 GPL
许可”。

编译自:ADTMAG

(文/开源中国)    

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图