CRA专题 | 以CRA为视角看开源项目的《网络安全法》适用
CRA专题介绍
“如果万物互联,则万物皆可被攻击。”2022年9月15日,欧盟委员会的《网络韧性法案(CRA)》提案应运而生。CRA提案引发了全球开源圈的热议,特别是今年7月份欧盟议会对Recital 第10条“开源豁免条款”的修正意见,更是激起了多家开源基金会及社区的担忧甚至是谴责。直至11月30日,欧盟理事会与欧盟议会就CRA提案达成临时议定,拟就开源界的建议予以积极反馈。在此,我们开设CRA专题,旨在从不同维度出发共同探讨在全球视野下,开源软件在现行/拟议的网络安全立法中是否受到调整、如何界定调整边界以及将造成何种影响等议题。
作者:陶冶
国浩律师(南京)事务所律师
南京市律协知识产权法律专业委员会、数字经济法律专业委员会委员
taoye@grandall.com.cn
摘要
开源项目是否受到《网络安全法》调整一直备受关注。从《网络安全法》的基本定位、具体规范,结合欧盟立法例来看,开源项目应当落入《网络安全法》的调整范围。开源软件的直接对外提供者,以及开源代码仓库或某一分支的控制者应当承担网络安全义务。但承担义务并不意味着网络安全问题上的无限责任,其义务仍以《网络安全法》的明文规定为限。同时,开源项目的普通贡献者因不构成《网络安全法》上的提供者,并不在前述义务主体之列。
关键词:网络安全法,开源,CRA
一、引言
《网络安全法》是我国网络空间治理的“基本法”1 ,其以“保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济社会信息化健康发展”为根本立法目的,对在境内建设、运营、维护和使用网络的主体做出了一系列规范。对于开源开发者来说,最为重要的条款当属《网络安全法》第22条第1、2款的规定。
前述2款为“网络产品的提供者”设定了以下4项义务:第一,网络产品、服务应当符合相关国家标准的强制性要求;第二,网络产品、服务的提供者不得设置恶意程序;第三,发现其网络产品、服务存在安全缺陷、漏洞等风险时,应当立即采取补救措施,按照规定及时告知用户并向有关主管部门报告;第四,网络产品、服务的提供者应当为其产品、服务持续提供安全维护;在规定或者当事人约定的期限内,不得终止提供安全维护。
但由于《网络安全法》基础性法律的定位,不可避免会出现法律表述上的原则性2 ,因此对于开源软件的开发者是否负有《网络安全法》上的义务这一问题,仍有模糊之处,有待进一步的澄清。
鉴于网络安全问题的国际性,以及《网络安全法》立法时主要制度与国外通行做法保持一致的基本理念3 ,域外立法例对理解《网络安全法》的具体制度有着重要的借鉴作用。因此,本文拟结合以《网络韧性法案(草案)》(Cyber Resilience Act,以下简称CRA)为代表的欧盟立法为例,通过比较法的视角对这一问题展开研究。
二、什么是“网络产品”
《网络安全法》并未对何为“网络产品”做出明确规定,但理解“网络产品”这一概念的定义,对明确“网络产品的提供者”这一义务主体至关重要。
对于这一概念的争议主要集中在两个方面,第一,免费提供的开源软件,是否构成产品;第二,对于不直接面向用户的中间件以及系统软件,是否属于“网络产品”。本文围绕前述两个问题展开详述。
(一)“网络产品”应当包含免费提供的开源软件
从文意上理解,“产品”二字并不能与“收费”直接挂钩。根据《产品质量法》第二条第二款的规定:“本法所称产品是指经过加工、制作,用于销售的产品”。《产品质量法》该款看似循环定义,其实质为根据《产品质量法》规范的范围对“产品”概念在该法范围内进行限缩,即仅限于“用于销售”的产品。通过该限缩性规定可以看出的一个基本逻辑是,“产品”这一概念本身即包含“用于销售”和“非用于销售”两种。也就是说,除非有明文规定进行限缩,“网络产品”这一概念不能排除免费提供的开源软件。
欧盟的网络安全立法例中,2019年的《欧盟网络安全法案》(Cybersecurity Act ,REGULATION (EU) 2019/881)中,将ICT产品(ICT Product)定义为:“网络或信息系统的一个要素或一组要素。”(‘ICT product’ means an element or a group of elements of a network or information system)4 ,在对“产品”进行定义时也未区分收费亦或是免费。
在CRA中,虽然目前欧洲议会以及欧盟理事会的提案的措辞略有不同,但大意基本一致,以欧洲议会2023年7月提案为例(本文以下部分除非特别提及,对CRA的引用均以欧洲议会版本为准),其对“带有数字元素的产品”(product with digital elements)的定义为:“任何软件或硬件产品以及其远程数据处理解决方案,包括单独投入市场的软件或硬件组件。”(any software or hardware product and its remote data processing solutions, including software or hardware components to be placed on the market separately)5 ,仅从该条看来,似乎是对软件或硬件组件做了特别规定,只有投入市场(be placed on the market separately)方才构成“产品”或被拟制为“产品”,而非组件的软硬件,无论是否投入市场均构成“产品”。但这样的单独限缩并没有任何立法目的上的支撑,在逻辑上也显得不甚协调,因此并不能急于得出结论。对CRA文本进一步分析可以发现,CRA第3条第(18)款进一步将“制造者”(manufacturer)定义为:“任何自然人或法人,他们开发或制造带有数字元素的产品,或者让其他人设计、开发或制造这类产品,并以其名字或商标将这些产品投放市场,无论是出于收费、商业化还是免费的目的。”(any natural or legal person who develops or manufactures products with digital elements or has products with digital elements designed, developed or manufactured, and markets them under his or her name or trademark, whether for payment, monetisation or free of charge)6 ,即同一主体必须同时满足制造了“带有数字元素的产品”并且实施了“投放市场”的两种行为时方才构成CRA中规定的制造者,进而落入CRA的规制范围。而第3条第(23)款则将“在市场上提供”(making available on the market)定义为:“在商业活动过程中,为了在欧盟市场上的分销或使用而提供带有数字元素的产品,无论是作为有偿还是免费” 7,结合前言(preamble)第(10)款的表述,前述一系列定义的目的在于将非以商业目的免费和开源软件排除在CRA的规制范围之外。基于这样的定义,如若“产品”一词当然包含“商业化”的前提的话,那么“制造者”定义中的制造“产品”+“投放市场”的表述则将构成循环定义,额外以“投放市场”对“制造者”概念进行限缩也就不再有任何意义,这种解释显然与CRA的体系相矛盾。因此,在CRA的语境下,构成“产品”也不以商业化为前提。
至于前文“带有数字元素的产品”定义中的“单独上市”,考虑到当前CRA仍未正式颁布,本文认为该定义应理解为“单独对外提供”,而非强调其在市场上进行的商业化投放。
因此,我国《网络安全法》中,一方面即没有像《产品质量法》中一样对产品一词直接进行限缩,另一方面也没有像CRA一样通过其他方式排除免费软件。结合“产品”一词的一般意思,《网络安全法》中的“网络产品”应当包含了免费提供的开源软件。
(二)“网络产品”应当包含中间件
首先,根据国家标准《信息安全技术 网络产品和服务安全通用要求》(GB/T 39276—2020)的定义,网络产品的定义为:“作为网络组成部分以及实现网络功能的硬件、软件或系统,按照一定的规则和程序实现信息的收集、存储、传输、交换和处理。”该定义并未将网络产品限定为系统软件和应用软件。且实践中大量的网络安全漏洞就存在于中间件之中(如Log4j2漏洞),从立法目的上也无排除中间件的可能。
从欧盟立法例看,前述《欧盟网络安全法案》中ICT产品的定义显然包括中间件。CRA的定义中,则是专门强调了“组件”(components)也属于CRA的规制范围。
据此,结合国内标准以及域外立法里的有关定义,《网络安全法》中的“网络产品”应当被解释为:包括免费以及中间件在内的,一切作为网络组成部分以及实现网络功能的硬件、软件或系统。
三、“网络产品的提供者”的范围
在《网络安全法》中网络产品的定义明确后,还需进一步分析“提供者”的范围。此处的“提供”行为可分两种情形讨论,第一种情形为某一主体直接对外提供软件,如对外销售或以其名义提供副本,这种情况中的提供者下文中统称为名义提供人。另一种情形则为通过开源平台对外开放的情形。前者的名义提供人毋庸置疑属于提供者。但对于后者,每一个如此对外提供的开源软件都至少涉及一个控制者(控制者可以是个人、组织或社区)和若干贡献者等多重主体。此时如何界定《网络安全法》语境下的“提供者”就显得至关重要。
本文认为,基于“法不强人所难”的基本法理,法律不应超出主体的能力范围去给某一主体设定义务,即只有可能履行《网络安全法》赋予的义务的主体方才可能构成《网络安全法》下的提供者。结合本文开头提到的四项义务,在通过开源平台开放软件的场景下,“提供者”至少应为某分支的控制者,即有权决定是否合并某些代码进入分支乃至决定是否删除该分支的主体方才可能构成该分支对应的网络产品的提供者,而仓库的控制者因权限更高,也应属于此处的提供者。但普通的贡献者因无权决定网络产品的具体特性、恶意程序的排除和加入以及是否继续维护等事项,并不会仅仅因其贡献的软件系开源软件而落入“提供者”范畴。
在CRA中,对“制造者”则是提供了更为明确的释义,将其限于“以其名字或商标将这些产品投放市场”的主体,即投入市场的名义人,这一定义因未包含了未采取任何商业行为的分支或者仓库控制者,其范围相较《网络安全法》更窄。
据此,我国《网络安全法》中的网络产品提供者即应当包括直接对外提供网络产品的名义人,也包括开源社区中某一具体分支的控制者或整个仓库的控制者。
四、结论
如前所述,无论是免费的开源项目亦或是收费软件,也无论其是应用软件、操作系统亦或是中间件,均落入了《网络安全法》的规制范围,而此类软件名义提供者,或是开源平台上某仓库或分支的控制者则需履行《网络安全法》上的有关义务。
但这不意味着无限的义务,也并不意味着会对开源生态造成毁灭性的打击。正如本文开篇所列明的产品提供者的四项义务,其中有强制性标准的贯标义务,有得知漏洞后的报告和采取措施的义务也有提供维护服务的义务,各项义务均有明确的范围以及期限,包括开源领域中常见的“AS IS”条款也有通过《网络安全法》第22条第2款后段进入公法领域的可能,本文限于篇幅无法一一展开。
对于开源参与者来说,了解和遵守《网络安全法》规定的义务边界至关重要,这不仅有助于他们更好地维护网络空间的安全和秩序,同时也能更有信心和明确性地参与到开源生态的建设和发展中。
1 参见中国网信网:《<网络安全法>的立法定位、立法框架和制度设计》, http://www.cac.gov.cn/2016-11/07/c_1119866606.htm,最后访问时间:2023年11月19日。
2 前引1。
3 参见全国人大常委会法制工作委员会副主任 郎胜:《关于《中华人民共和国网络安全法(草案)》的说明》,2015年6月24日。
4 REGULATION (EU) 2019/881, https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019R0881&qid=1700381003823,last visited: 19 November 2023.
5 AMENDMENTS BY THE EUROPEAN PARLIAMENT to the Commission proposal for a REGULATION OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL on horizontal cybersecurity requirements for products with digital elements and amending Regulation (EU) 2019/1020 and Directive 2020/1828/EC (Cyber Resilience Act),https://www.europarl.europa.eu/doceo/document/A-9-2023-0253_EN.html, last visited: 19 November 2023.
6 前引5
7 前引5
免责声明:本文仅仅是从个人角度出发,对法律做的一般性研究,仅代表个人意见,请读者审慎阅读并自行甄别, 作者不就读者对任何依据本文采取的任何作为或不作为承担责任。本文不代表开放原子开源基金会观点。
注:本文封面图片来源于European Commission官方网站,并根据CC BY 4.0进行许可,© European Union, 1995-2024