分析详情
Case center
以案说法 | 爬虫获取数据获刑案件解析及无罪论点探析——以「今日头条案」为例
一、案情概要
2017年,北京市海淀区人民检察院指控被告人张洪禹、XX、侯明强作为被告单位上海晟品网络科技有限公司主管人员,于2016年至2017年间在上海市共谋采用技术手段抓取被害单位北京字节跳动网络技术有限公司(办公地点位于本市海淀区北三环西路43号中航广场)服务器中存储的视频数据,并由侯明强指使被告人郭辉破解北京字节跳动网络技术有限公司的防抓取措施、实施视频数据抓取行为,造成被害单位北京字节跳动网络技术有限公司损失技术服务费人民币2万元。
北京市海淀区人民法院(2017)京0108刑初2384号刑事判决书中显示,被告人采用技术手段破解被害单位的防抓取措施,使用「tt_spider」文件(该文件中包含通过头条号视频列表、分类视频列表、相关视频及评论3个接口对其服务器进行数据抓取,并将结果存入到数据库中的逻辑)实施视频数据抓取行为,在数据抓取过程中使用伪造device_id绕过服务器的身份校验,使用伪造UA及IP绕过服务器的访问频率限制,其行为造成被害单位损失技术服务费2万元,从而构成「非法获取计算机信息系统数据罪」。
根据《中华人民共和国刑法》第二百八十五条规定,非法获取计算机信息系统数据、非法控制计算机信息系统罪,是指违反国家规定,侵入国家事务、国防建设、尖端科学技术领域以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,情节严重的行为。
刑法第285条第2款明确规定,犯本罪的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
二、案件分析
(一)「 非法获取行为 」值得商榷
本案当中,数名被告都选择了以认罪认罚换取从轻量刑。本律师在互联网技术领域和爬虫技术领域有一定研究和从业经历,对本案是否涉罪,有一些不同的观点,在此做一些纯法律与技术层面的讨论。
本律师认为,非法获取计算机信息系统数据罪的犯罪客体是存储在计算机信息系统中的数据(国家事务、国防建设、尖端科学技术领域以外),本案的客观要件,是利用技术手段「非法」获取,但是从判决书中的信息来看,该技术手段是否非法,值得商榷。
判决书中提到「在数据抓取的过程中使用伪造device_id绕过服务器的身份校验」,可事实是,在不需要注册情况下,服务器实际上是不可能通过UA和IP进行身份校验,所谓的「身份」,只是服务器对访问者所作的临时性标记,这个标记短期内随时会失效。
众所周知,绝大部分家庭的宽带网络和移动网络,均使用动态IP,随时有可能更新。而且IP由国家统一分配,个人和企业根本无法伪造,本案的判决书中,认为伪造IP,可能存在事实认识错误。
在爬虫技术当中,往往需要使用代理IP,本案的合议庭可能认为,使用代理IP是伪造了自身的IP从而实现欺骗系统的目的,但是无论是使用自身网络IP还是代理IP,本质上都是一种效率工具的使用,且无任何法律禁止使用。因此,判决书中对「伪造并欺骗」的事实认定不够准确。
此外,所谓的UA(USER AGENT),本意即「代理」的意思。我们通常使用的电脑、手机浏览器就是一个UA。UA的存在,是为了让用户有更好的使用体验,而并不是用户的身份标志,任何浏览器或者第三方工具,都可以成为一个UA,本身UA就是无穷无尽的。UA的选择和使用,完全由使用者自行决定,对不懂技术的普通用户,可以任意选择浏览器或者软件工具,对专业的软件工程师,可以任意使用代码生成UA,效果与普通用户使用浏览器是一样的。
综上,本律师认为,无论使用代理IP,还是使用不同的UA,是一种纯技术的选择,跟我们通常所认知的伪造身份证或者冒充他人身份信息,完全不是一回事。身份就应该如同身份证、企业统一信用代码等一样,可与唯一主体对应起来。
而实际上本案服务器的身份校验,根本就无法识别身份,世界上没有一家科技企业,用IP和UA的组合来对用户身份进行确认,身份校验亦不存在。所谓「身份校验」的说法,应该来源于报案人单方面的说辞,并不具备技术上的真实性。
(二)犯罪客观要件缺乏
除了上述「伪造身份校验」的事实认定,判决书中提到「被告人采用技术手段破解被害单位的防抓取措施」。本案的犯罪要件,的确需要涉及「侵害计算机系统」,不懂技术的朋友可能认为,这里是否如同"非法侵入计算机信息系统罪"一样,入侵了被访问者的系统,获取了信息。
实际上,存在很大的不同。客观上来讲,本案的被告,的确破解了被害单位的反爬虫措施,但这些措施本质上属于公开的前端代码,无任何保密,而且全部运行在访问者自身的电脑上。
目前,一般科技公司的反爬虫技术,大多数采取前端反爬技术,都是将公开的Javascript代码进行混淆,根本上来说,只是增加了JS代码的阅读难度而已。举个简单的例子,普通未加密混淆的Javascript代码,可能会将一句话表述为「小明今年27岁」,但是反爬的Javascript代码可能会这样表示:「小明明年年龄【10220/365】岁」。无论怎么表示,最终都会被浏览器(即本案所说的UA),或其他软件进行透明解释。
因此无论从哪个角度来讲,破解该部分JS代码,都无法获取被害单位的系统权限以及侵入被害单位的服务器,无法构成犯罪的客观要件。
三、律师观点
结合以上观点,利用爬虫技术获取他人的商业数据,可以从民事侵权的角度,或者知识产权领域以及不正当竞争的角度去争取权益,对具有侵犯版权且情节严重的,应适用侵犯著作权罪。
但是本案却使用了「非法获取计算机信息系统罪」这个案由,我认为似有不妥。结合以上分析,本律师认为针对「非法获取计算机信息系统数据罪」与爬虫技术的罪与非罪,需要严格分析是否具有以下要件,并且缺一不可:
1)被爬取的数据是否为非公开数据;
2)必须要侵害到计算机系统,即通常所指的后端技术领域。
在计算机或互联网领域案件的审理当中,对公诉方、辩护方和审判人员的技术素养存在较高的要求,尤其是代理律师的技术理解能力,尤为关键。如果代理律师缺乏对网络技术的知识储备,是很难对涉案行为是否合法有正确充分的认知。
此外,作为公诉方和法院,对利用爬虫技术爬取信息的行为,应该从技术和事实的角度审慎分析。通常意义上的爬虫技术,是对网络上静态数据,或者通过API调取的动态数据的爬取,是无法侵入被爬取数据企业的服务器以及获取任何系统管理权限的。被爬取的数据,基本上是属于公开或者半公开(通过注册程序可获取)的数据。在民事法律关系当中能够处理的,应慎用刑事手段。