数据爬虫的罪与罚—兼论非法获取计算机信息系统数据罪的适用
作者:吴卫明 2021-03-17数据爬虫,也称网络爬虫、网页蜘蛛、网络机器人(robots),是按照一定的规则,自动地抓取互联网信息的程序或者脚本。爬虫,是一种在网络数据获取过程中的常见技术,但也是容易发生争议的一种技术措施。近期,一件刑事案件判决书在网上披露,引发了人们对于数据爬虫刑法规制的思考。对于如何适用“非法获取计算机信息系统数据罪”,也值得进一步探讨。
案例简介: 经法院认定:被告单位上海某网络科技有限公司(抓取公司),于2016年至2017年间采用技术手段抓取被害单位北京某网络技术有限公司(简称“被抓取公司”)服务器中存储的视频数据,并通过破解被抓取公司的防抓取措施,使用“tt_spider”文件实施视频数据抓取行为,造成被抓取公司损失技术服务费人民币2万元。经鉴定,“tt_spider”文件中包含通过头条号视频列表、分类视频列表、相关视频及评论3个接口对被抓取公司服务器进行数据抓取,并将结果存入到数据库中的逻辑。在数据抓取的过程中使用伪造device_id绕过服务器的身份校验,使用伪造UA及IP绕过服务器的访问频率限制。 法院认为,被告单位及相关负责人违反国家规定,采用技术手段获取计算机信息系统中存储的数据,情节严重,其行为已构成非法获取计算机信息系统数据罪,应予惩处。鉴于被告单位及相关负责人能够如实供述自己的犯罪事实,违法性认识不足,认罪态度较好,加之本案适用认罪认罚从宽制度,故法院对被告单位及其相关负责人均予以从轻处罚。 由于该案件适用了认罪认罚程序,因而判决书对于案件的重要事实及控辩双方的观点并未充分展示。从判决书披露的信息看,之所以认为该案件构成“非法获取计算机信息系统数据罪”,是因为采用“tt_spider”文件实施了视频数据抓取行为,并且,在抓取过程中,使用伪造device_id绕过服务器的身份校验,使用伪造UA及IP绕过服务器的访问频率限制。 在判决书中,对于违法行为描述为 “伪造device_id”、“伪造UA及IP”、“伪造device_id绕过服务器的身份校验”。然而,如果对行为进行深入分析后,该等行为是否构成以技术手段获取计算机信息系统存储的数据,从而构成“非法获取计算机信息系统数据罪?是值得商榷的。 一、爬虫的含义与常见应用场景 随着互联网的发展,如何从海量的网页中找到有价值或需要的信息,成为互联网用户面临的一个棘手问题。 在需求的驱动下,爬虫程序应运而生。从爬虫的最初应用场景而言,爬虫程序是互联网搜索和信息获取方式的进步,大大提高了互联网信息传播的效率。爬虫常见的分类包括:通用爬虫、聚焦网络爬虫、增量式爬虫等。一般而言,爬虫常见的应用场景有以下几种: 1、搜索引擎 搜索引擎(Search Engine)属于典型的网络通用爬虫,即根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。比如传统的通用搜索引擎baidu、Yahoo和Google等,搜索引擎主要是目的是帮助用户找到具有特定信息的网页或服务器。 2、特定信息收集场景 搜索引擎等通用爬虫对标相应网页的应用场景,只能解决用户找到特定服务器和网页的用途。对于互联网企业而言,通常需要在特定网页深度获取特定信息,如某网站的产品种类、商品信息、价格信息、评论信息等特定内容。对于此类应用场景,则需要编写在网页内获取特定信息的爬虫程序,即聚焦网络爬虫(Focused Web Crawler)。聚焦网络爬虫,通常用于获取与经营、服务等有关的信息,一般具有商业应用目的。由于此类爬虫需要在竞争对手的网页获取有价值的商业信息,因而,往往是最容易产生民事纠纷或发生刑事控告的爬虫应用。 3、完成特定代理任务的爬虫 所谓特定代理任务,是指网络用户在一定场景下,将登陆网站注册账户的账户名与密码提供给爬虫程序的使用者,使用者登陆用户账户,并采用爬虫程序提取账户内特定信息,以完成信息核验即其他指定用途。此类用途中,由于爬虫程序需要登入特定账户,因而存在较大争议,也是容易产生刑事控告的爬虫应用。 除上述较为典型场景外,还有用于监测网站数据更新情况的增量式网络爬虫(Incremental Web Crawler),即实时监测网站数据更新,从而爬取网站中最新更新出来的数据。此类场景事实上也是为了完成特定的信息收集,属于特定信息收集场景的延伸。 从上述爬虫应用场景来看,爬虫的核心目的是为了方便互联网信息的浏览和收集,爬虫本身并不具有违法性。正如所有的技术手段都具有两面性一样,爬虫程序也存在被滥用的情况,甚至被用于违法乃至犯罪行为。 这就需要对爬虫涉及的刑法罪名进行深度解析,从而在遏制犯罪的同时,防止刑法适用的扩大,从而影响技术手段的正常应用,降低社会经济效率。 二、爬虫行为所涉罪名 由于爬虫行为的目的是获取有关信息,因此,爬虫行为首先要访问一定的信息系统,然后获取信息系统记录的信息,获取的信息可能是公民个人信息也可能是其他信息。据此,从访问结果的角度看,如果获取的是公民个人信息,且获取过程具有非法性,则可能涉及到“侵犯公民个人信息罪”;而如果从获取过程的角度看,如果关注的是访问行为本身的合法与否,则会涉及“非法获取计算机信息系统数据罪”。当然,如果明知爬虫程序用于非法目的而提供,则可能构成“提供侵入、非法控制计算机信息系统的程序、工具罪”。 本文所引用案例中,涉及的罪名为“非法获取计算机信息系统数据罪”。由于本文主要聚焦于爬虫行为技术措施的法律认定,且爬虫行为在适用“非法获取计算机信息系统数据罪”方面极易产生理解的偏差,故对于爬虫行为可能涉及的其他刑法罪名不做表述。 1、非法获取计算机信息系统数据罪客观方面的界定 我国《刑法》第二百八十五条关于非法获取计算机信息系统数据罪的客观方面的具体表述为“违反国家规定,侵入国家事务、国防建设、尖端科学技术领域以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,情节严重的”。 该条规定中,对于什么是 “侵入”或“采用其他技术手段”?并没有做出界定。这是该罪名在适用时面临的一个难题。 而在《最高人民法院、最高人民检察院关于办理危害计算机信息系统安全刑事案件应用法律若干问题的解释》(法释〔2011〕19号)中,对于非法获取计算机信息系统数据罪客观方面中“侵入”的特征,也未予以明确。但该司法解释第二条对提供侵入、非法控制计算机信息系统程序、工具罪中用于“侵入”的程序、工具的表述为“具有避开或者突破计算机信息系统安全保护措施,未经授权或者超越授权获取计算机信息系统数据的功能的”。参考该条款,可以认为非法获取计算机信息系统数据罪客观方面中的“侵入”应当具备的特征包括“避开或者突破计算机信息系统安全保护措施”, “未经授权访问或访问危害了计算机信息系统的安全”。但该司法解释对于什么是“其他技术手段”,同样并没有做出界定。 2、非法获取计算机信息系统数据罪的法益分析 该罪名在《最高人民法院、最高人民检察院关于办理危害计算机信息系统安全刑事案件应用法律若干问题的解释》(法释〔2011〕19号)(简称“《司法解释》”)中,被列入“危害计算机信息系统安全犯罪”。由此可见,该罪名设置的目的主要是维护国家对于计算机信息系统安全的管理秩序,保护的法益是信息系统的安全。 对于特定计算机信息系统的控制者而言,第三方访问信息系统,并获取信息系统所承载信息,存在民事法律利益的判断和刑事法益的判断。如果访问方法不危害信息系统安全,则只涉及民事法律利益,即民事的财产权利或竞争法的权益。而访问方法危害信息系统安全,则可能涉及刑事法的法益。与民事法律关注信息系统内容物不同的是,刑事法律关注的主要是信息系统的安全。爬虫行为是否影响了信息系统安全,应成为判断爬虫刑事违法性的基础。 然而,什么样的访问行为会危害计算机信息系统的安全,《刑法》与《计算机信息系统安全司法解释》并未给出清晰的界定。 三、计算机信息系统安全的内涵 从《司法解释》的立法本意来看,其目的是保护计算机信息系统的安全。因此,对于信息系统安全的内涵进行解析,将是认定“非法获取计算机信息系统数据罪”的前提。什么是安全?什么样的行为会被认定为危害了计算机信息系统的安全? 《刑法》第二百八十五条对于罪名的表述包含两个路径,其一是“侵入+获取数据”;其二是“其他技术手段+获取数据”。罪名表述中,对于“侵入”并无明确界定。但参考《司法解释》第二条对提供侵入、非法控制计算机信息系统程序、工具罪中用于“侵入”的程序、工具做了表述。考虑到这些程序和工具的目的是实施侵入,因此,司法解释关于第二条的表述可作为 “侵入”行为的参考认定标准。该条款对于工具的表述为:“具有避开或者突破计算机信息系统安全保护措施,未经授权或者超越授权获取计算机信息系统数据的功能的”。 据此,“侵入”行为可以概括为“避开或突破计算机信息系统安全保护措施”,而其他技术手段,也应具有避开或突破计算机信息系统安全的功能,或与“侵入”具有同等的危害程度。综上,信息系统安全的界定,成为罪名认定的关键。 笔者认为,计算机信息系统安全,是具有特定含义的,不能将计算机信息系统安全的概念扩大和泛化(参见《数据爬虫与网络空间控制权研究》一文,吴卫明,2020年7月)。关于安全的定义,当前并无专门的法律法规及技术规范予以界定。但是,从一些规则的内容可以间接推导出安全的内涵。 1、《网络安全法》对于安全的定义 《网络安全法》并无安全的直接定义,但是,该法第二十一条间接对安全做了描述。该条款规定,国家实行网络安全等级保护制度。网络运营者应当按照网络安全等级保护制度的要求,履行下列安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被窃取、篡改。 基于此,可以看出,安全包括:不被被干扰和被破坏、不允许未经授权的访问、不发生网络数据泄露或被窃取及篡改。 2、《信息安全等级保护管理办法》的界定 《信息安全等级保护管理办法》没有直接定义安全,而是采用了信息系统遭受破坏后造成的损失,来定义安全等级。系统破坏对公民、法人、社会利益、国家利益造成的损失越大,其信息系统安全等级保护的要求越高。而在公安部2018年6月27日发布的《网络安全等级保护条例(征求意见稿)》中,则将该条款中的损失进行了具体化的界定,以信息系统遭到破坏、丧失功能或者数据被篡改、泄露、丢失、损毁后造成的损失来定义安全等级。 3、安全的几个要素 基于上述法律、规章及法规征求意见稿的归纳,笔者认为,计算机信息系统安全的几项重要内涵如下(参见《网络安全法若干问题解析》,吴卫明,2019年4月): 其一、自主访问控制 即信息系统的控制者,能够决定访问控制策略,让合法许可的用户访问系统,而将非授权用户挡在系统访问之外。 其二、身份鉴别机制 对于经过授权的特定用户,能够通过用户身份与登陆密码等控制措施进行有效的身份鉴别。 其三、数据的安全完整 信息系统安全的核心是数据安全,通过自主访问控制策略与身份鉴别机制,保护系统数据的安全及完整,不被篡改、窃取、泄露。 综上,从立法的本意看,突破了系统控制者的自主访问控制策略,并破坏了以用户名加密码方式构建的身份识别体系,进入计算机信息系统,方能被认为属于危害计算机信息系统安全的行为,或者被视为侵入。具体而言,可能包括利用相关工具破解特定用户的登陆密码,或者利用系统漏洞,进入了未开放的系统。 四、常见的反爬虫措施 很多网站为了防范非正常用户(通常是竞争对手或其他商业用户)获取数据,一般或采取如下措施实施反爬虫(参见《数据爬虫与网络空间控制权研究》,吴卫明,2020年7月)。 1、IP校验 由于网页或APP页面信息具有公开性,无法通过自主访问控制策略和用户名加密码的身份识别机制识别正常用户和竞争对手,很多网站经营者通过行为模式对访问者进行识别。其中IP校验就是一种识别方法,通过该种方法识别非正常访问者,并通过技术措施“封杀”该IP的访问。爬虫程序通过多服务器或者采用虚拟服务器,即可绕过该种措施的识别。 2、UA校验 UA的中文表述为用户代理,它是发起访问方的识别标识之一,通常表现为一个特殊字符串头,使得被访问方服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。通过UA的校验,可以识别出来访IP属于正常用户还是机器。因此,通过程序仿造UA是爬虫程序绕过反爬虫措施的常用方法。 3、验证码校验 如果时正常用户,识别图形验证码非常容易,而如果是机器用户,识别图形验证码将比较困难,采用这种方式,也可以起到反爬虫的作用。但随着技术发展,验证码机制的作用也在下降。 从以上措施可以看出,反爬虫措施的核心不在于允许哪些特定用户访问。而在于,面对不特定用户均可自由访问的情况下,识别出正常用户和非正常的商业用户(参见《数据爬虫与网络空间控制权研究》,吴卫明,2020年7月)。反爬虫程序的针对目标是竞争对手,保护的是竞争利益,而不是刑法保护的网络安全的法益。 五、绕过反爬虫措施的刑法意义 如上一部分所述,只有突破了特定用户身份鉴别机制的未授权访问才应该被视为危害信息系统的侵入行为。那么,网站通常采用的一些反爬虫措施,是否属于信息系统安全措施范围呢?抑或只应被界定为民事范畴的防范竞争者侵权的措施?笔者认为,反爬虫措施的界定,与爬虫程序的信息爬取方式有关。 1、破解系统登陆密码或利用系统安全漏洞的爬虫行为 此种情况下,无论是破解登陆密码还是利用安全漏洞进入非开放系统,本质都是违反了系统控制者的自主访问控制策略和身份鉴别机制。系统控制者的本意是允许特定注册用户在权限内访问非开放系统,而破解行为和利用漏洞访问的行为,都超越了系统控制者的访问控制策略。该种爬虫行为具有刑法上的违法性,应按照“非法获取计算机信息系统数据罪”予以处理。 2、绕过反爬虫措施的行为 如本文所列举的案例中,法院认定,被告单位主要采取了绕过反爬虫措施实施数据爬取。法院所认定的违法行为包括:在数据抓取的过程中使用伪造device_id绕过服务器的身份校验,使用伪造UA及IP绕过服务器的访问频率限制。 笔者认为,device_id只是设备的识别号,并不具有用户名加密码的识别意义。因此,伪造device_id如果是为了让反爬虫措施无法识别,本身并不具有刑法上的违法性(参见《数据爬虫与网络空间控制权研究》,吴卫明,2020年7月)。由于该判决书对于如何伪造device_id并未进一步论述,被告是否通过冒用用户ID并破解密码等方式进行未经授权的访问,从判决书并无法得知。如果仅仅是设备ID的变换,并不具有特定的刑法意义。 而伪造UA及IP绕过服务器的访问频率限制,由于其保护的目标不是信息系统安全,而是防范不正当竞争的权益,因此属于竞争法范畴的不当措施,并不具有刑法上的违法性。 综上,笔者认为,爬虫程序本身具备技术中立性。一般情况下,公开的网页或APP页面,如果仅仅采用了UA校验、IP校验等方式实施反爬虫,那么爬虫程序对于页面公开内容的访问和数据获取,本身不具有刑事违法性。但是,如果爬虫程序在实施访问时,采用破解用户密码或利用系统安全漏洞,访问了非公开的系统,则应按照非法获取计算机信息系统数据罪论处。如果侵入系统后,获取的是公民个人信息,则涉及与侵犯公民个人信息罪的竞合问题。当然,由于本文主要针对非法获取计算机信息系统数据罪,对于侵犯公民个人信息罪不做展开论述。