14c6ed504593359ada898a754e32c04f.jpeg

02472532f7da6b64b83572da87b6c613.png

近日,有篇文章映入我的眼帘:《开源软件有漏洞,作者需要负责吗?是的!》

fbf2218abb3693d5dcb75f17c7043945.png

说实话,看了标题,我都懒得打开的,标题党嘛!

不过在一个安全群中,群友对此进行了热烈的讨论:

f94d13b8c51944ad0bf5705740df14a5.png

这引起了我的好奇心,于是打开看看。

一看发现,还不是那么简单,所以写下此文。

0417e8c1533efdf189731e04abb786d2.png

上面说那个文章的结论是:要负责。文章的论据是:《网络安全法》里面说了“网络产品、服务的提供者应当为其产品、服务持续提供安全维护”。(来自第二十二条)

但是,读者们很快就反应过来了,是网络产品和服务的提供者要负责任,可不是开源项目的开发者提供责任!

比较高赞的回答是这样的:

8cec2ef399cf34c819dd93b263778d76.png

或是这样的:

270b34cfabcce73dc5fa3aaeb6d96890.png

然而,也有人敏锐地指出:

cb7bb094bafcc8743857e6e1e45a0dbc.png

对呀,项目开发者,如果本身也是产品和服务的提供者,当然也要负责任的哇。

开头我介绍那篇文章中受采访的邓超律师说:

对于“开源开发者,如果你提供一种完整的网络服务,提供完整的网络产品,那同时也就有义务,维护网络安全。”

“如果你是提供一个中间件,没有提供完整的网络服务,只是提供一个插件或者一段代码,那我觉得可能这个责任要更轻一点,有可能不构成网络安全法里面描述的提供网络服务或者提供网络产品。”

前者很容易看懂,后者就说得不是很清楚了。

提供一个开源中间件,到底要不要负责任?

大多数人的回答是:当然不用。

然而并不是这么简单。

下面我们不区分“完整的”或是“中间件”这两种情况,而是一视同仁,因为看到后面,你们就知道,这并没有本质区别。

927ca3ee3d4c8e728ca18337b84b9bc0.png

开源项,目难道没有产品吗?

开源项目的产品就是他的代码啊(包括源代码及二进制)。

他只要在 Github 上给出源码,就是提供了产品啊!

比如:开源项目 Tomcat 的产品是不是就是下面这样的?

b4b9ccad04556d4a9ceb2ec6116df4f9.png

咦,我没有卖东西,也算是提供产品了?

注:Tomcat 是 Apache 软件基金会提供的一个开源 Web 应用服务器,属于一种中间件。

03e4a84769b06c9aaa22dc198c77804f.png

什么是网络产品和服务?网安法中并没有给出概念定义。

先看看“产品”在百度百科上的定义。产品:产品是指被人们使用和消费,并能满足人们某种需求的任何东西,包括有形的物品、无形的服务、组织、观念或它们的组合。

首先,可以明白的是,服务是产品的一种,“网络产品和服务”其实可以简化为“网络产品”,网安法这么说,是为了便于人们理解而已。

其次,上述定义谈到了消费,但消费一定是要买吗?并不清楚,不买是不是也可以消费?

我们再看看牛津高阶英汉双解词典是怎么解释 product 的。Product:a thing that is grown or produced, usually for sale.

这个解释比较清楚了,产品通常是卖的,但也不都是。

那么,严谨一点讲,开源项目的产出(即源码),可视为产品。即便你并不卖它。

3a46c0edeeee3aa18ceb098535cc940f.png

仍以 Tomcat 为例,如果甲方招标做了个应用系统(比如一个网上商城之类的),乙方中标,在提供的系统中使用了 Tomcat。

现在,Tomcat 被爆有个新的漏洞,这个责任关系是怎样的?

甲方说,你们做的系统,人家说有漏洞。乙方说,对不起,我这就改。

乙方用的是 Tomcat,赶快打上 Tomcat 给出的补丁就是。然后甲方也就心安了。

在爆出漏洞的时候如果已经有补丁,这当然很好,一切 OK,没有问题。

如果爆出漏洞时还没有补丁(比如 log4j),怎么办?

乙方只能自己想办法,因为乙方和甲方有维保合同,乙方必须尽快解决这种问题,否则就违约了。

乙方如果不能很快解决,甲方就会遇到问题,甲方是这个网上商城的提供者,如果不解决问题,按照网安法的规定,他是第一责任人。

但乙方却没法把责任传导给 Tomcat 项目组,因为 Tomcat 给出的许可证是  Apache License 2.0,这里面有明确的免责条款。

所以,如果 Tomcat 就是不出补丁,乙方也没法,毕竟,许可证摆在那里的呀。

当然,Tomcat 是很有责任心的,通常都会很快给出补丁。

但是,对于那些小的开源项目比如 XXX,万一就是不管呢。

这时,所有使用 XXX 的甲方和乙方都会很着急。

cad027f6471bf7f80025c90eac9cb417.png

如果一个开源软件 XXX 被爆出漏洞,项目方迟迟不给补丁怎么办?

如果这个 XXX 并不算复杂,甲方和乙方通常能解决。如果 XXX 的使用量很大,社会上会有高手提供补丁。这个问题就这么先解决了。

但如果这个软件很复杂,甲方、乙方、高手都解决不了,怎么办?

如果能找到 XXX 的维护者,恳求他们,一般而言,对于安全漏洞,维护者大都还是愿意花费精力去解决问题的。如果找不到维护者,或者维护者就是不负责任,人们就会弃用它、fork 它。如果这个维护者在国内,而且还开了公司,网警就可能找上门。

9b153cf3d0973c2451b63b199c001395.png

满足以下条件时,有可能网警会找上门。

1、该开源软件有较大的使用量,且安全漏洞的危害很大。

2、针对已发现的漏洞,开源软件维护者并没有给出补丁。

3、社会上也没有高手能够给出补丁。

4、该开源软件项目是国内项目。

5、该开源软件的 Leader 开了公司。

别问我为什么知道,因为有人已经收到这样的通知 。

原文:“所以各位开源软件的开发者们,一定要认真理解这个法律的条款。我们已经收到过五次公安部下发到青岛市网警的漏洞整改通知。具体细节就不跟大家讲述了。这给到开源软件作者们两点警示:第一个就是一定要及时处理自己产品的相关漏洞,另外一点就是认真思考开源商业化方面。”

现在你大概明白了吧。

转载自丨卫sir说

编辑丨王军

相关阅读 | Related Reading

【Deep Dive: AI Webinar】开放 ChatGPT - 人工智能开放性运作的案例研究

【Deep Dive: AI Webinar】自由与开源软件和人工智能的意识形态:“开放”对于平台和黑盒子系统意味着什么?

开源社简介

开源社(英文名称为“KAIYUANSHE”)成立于 2014 年,是由志愿贡献于开源事业的个人志愿者,依 “贡献、共识、共治” 原则所组成的开源社区。开源社始终维持 “厂商中立、公益、非营利” 的理念,以 “立足中国、贡献全球,推动开源成为新时代的生活方式” 为愿景,以 “开源治理、国际接轨、社区发展、项目孵化” 为使命,旨在共创健康可持续发展的开源生态体系。

开源社积极与支持开源的社区、高校、企业以及政府相关单位紧密合作,同时也是全球开源协议认证组织 - OSI 在中国的首个成员。

自2016年起连续举办中国开源年会(COSCon),持续发布《中国开源年度报告》,联合发起了“中国开源先锋榜”、“中国开源码力榜”等,在海内外产生了广泛的影响力。

5da50f7166f41b3a6094220a6dcd1980.gif

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐