因为爬虫失控,CTO 和程序员双双被判刑

Java技术江湖

共 2932字,需浏览 6分钟

 ·

2022-03-04 17:51

点击上方“Java技术江湖”,选择“设为星标

回复”666“获取全网最热的Java核心知识点整理

开发


KG公司2014年成立,早期做互联网金融,2017年转型做互联网科技公司,主营业务是“助贷”,也就为按揭贷款购房的客户提供赎楼及债务置换贷款等服务。


这个业务需要经常性地访问政府居住证网站,查询房产地址、房屋编码和学区房的使用情况,用于做房产的市场评估和客户风险评估。


因为手动查询效率低下,公司产品组经讨论后提出了一个建议——用爬虫软件自动查询。


2017年12月,CTO安排新入职的程序员负责这个项目,要求他研发一个自动定时抓取的小程序,主要用来查询、下载网上的数据。


2018年1月,项目经理给程序员一个抓取数据的程序源代码,程序员开始修改。


2018年3月,小程序被部署在阿某云服务器上自动运行,其内置的“网络爬虫”可以:

链接某市居住证网站,也就是某市公安局人口管理处的居住证系统; 

可以在某市居住证网站上查询到房产地址、房屋编码等对应的资料; 

软件对网站访问量能达到每小时数十万次。


查询的信息都被下载保存到公司购买的阿某云服务器上。


这个程序还被用于查询房地产中介(中原地产、链家地产、Q房网等)在网上挂盘的房子信息,主要是查询房价、用作参考。


出事

2018年4月27日10:43-12:00左右,居住证系统的承建单位发现系统出现宕机现象,追踪到请求应用服务器端口编号,但因日志缺失而无法定位IP来源,当时怀疑是人为攻击。

2018年5月2日10:00-12:00左右,系统再次遭遇攻击,这次管理人员成功地截取了IP地址并报案。

此时,公司这边还不知道惹祸了,直到2018年5月17日晚上11点,服务器维护人员接到了阿某云客服的电话。阿某云说他们公司的服务器IP被网警锁定了,因有攻击行为,让他们赶紧联系网警。CTO随即电话联系研发人员(应该是指程序员),对方说估计是因为居住证网站加了验证码,但公司程序没做相应的更新,就造成了程序出错发出攻击行为。

5月攻击事件的影响很大。

案发时,某市居住证服务平台的注册用户超过530万,服务面包括:
所有市民的网上自助受理系统;
151个派出所、街道办居住证受理点的现场受理系统;
后台接口为市网格办、市交警局、市民政局,市交委等多个政府部门提供居住证、居住登记条件查询和审核。

居住证系统受攻击瘫痪期间:
软件对某市居住证系统查询访问量为每秒183次,共计查询信息约151万条次,窃取大量建筑物编码数据,造成政府信息泄漏;
所有居住证办理、居住登记申报、信息查询、对外服务功能均无法正常工作,影响面极广;
市民无法办理居住证和居住登记,相关生产生活秩序受到严重影响。

除了此次攻击,还有一些派出所出具证明证实5月期间经常出现系统无法登陆,录入过程频繁出现掉线、系统数据异常等情况。居住证系统无法正常使用、出现异常情况的时间长达一个多月。

供述

2018年8月,CTO、程序员被捕。

公安分局依法对公司进行搜查,提取应用程序源程序,应用程序日志及运行在服务器获取的数据。经司法鉴定所鉴定确认:
导出的库备份中检出多个包含房产信息的数据表,包括房产的所处位置、楼宇编号、房间编号等信息,约有2905万条;
在程序员的电脑上检测出爬虫程序的源代码;
在IP地址为XXXX的服务器检出爬虫程序,这两个爬虫软件程序均使用遍历查询的方式短时间向目标网址URL地址“......”发起大量查询请求,从而实现非授权下载数据库内容。

针对某市居住证网站及服务器的司法鉴定意见确认:
网站遭受自动化程序攻击。IPXXXX对居住证服务器的持续大量的访问造成了平台在……期间无法正常对外提供服务,服务器无法正常运行。

CTO供述和辩解时说:
爬取的是公开信息,没有任何恶意去攻击网站和系统,只是为了提高查询效率。没有爬取个人信息,没有在市场上买卖或者和其他公司搞资源置换,没有通过查询某市居住证网站信息获利。软件是公司管理层开会决定开发的,由法定代表人交代技术部研发,系统里的查询和下载功能是程序员程序员负责开发的。程序员设定的是每周三次自动查询,后面怎么实施的我也不清楚,主要是程序员负责。

他还说自己也知道“从技术上来讲,如果超过服务器承载能力的查询肯定会引起系统卡顿或瘫痪”,但因不清楚网站和系统的承载能力,加上心存侥幸,就只是口头提醒同事在服务器晚间相对空闲的时候去查询,控制一下频率。

程序员供述和辩解时称:
不清楚抓取数据的原程序是谁研发的,没有因查询居住证网站而获利,这是工作任务。3月份后就去做公司安排的其他任务了,这个程序在服务器上启动后,也没有对程序做修改和更新,也没有进入服务器的权限,权限在运维部门。

没有爬取个人信息,没有在市场上买卖或者和其他公司搞资源置换,只是用于公司业务上的参考。4月27日在公司,5月2日在日本,当时没对程序作出修改,猜测是因为居住证平台更新了验证码登陆功能,而我们的查询软件未做相应的更新,导致程序出错,发出攻击行为。

判决

二被告对起诉状中指控的罪名没有异议,只是希望能轻判。做罪轻辩护时:
都提出自己只是过失、疏忽大意,没有预见可能会造成的后果,主观上完全没有破坏系统的故意;
都提出爬取的是公开信息,只是为了让公司业务更高效,并没有以此牟利;

CTO认为自己授权程序员开发爬虫程序,只是一次性爬取,并未要求每天自动爬取,不是主犯;
程序员认为自己只是按领导指示、完成工作任务……

法院认为,二人违反国家规定,对计算机信息系统进行干扰,造成为5万以上用户提供服务的计算机信息系统不能正常运行累计1小时以上,属于后果特别严重,应以破坏计算机信息系统罪追究其刑事责任。

CTO,负责并授权程序员开发涉案爬虫软件,系主犯,判处有期徒刑三年 程序员受指派开发爬虫软件,在共同犯罪中起次要作用,系从犯,判处有期徒刑一年六个月。

最高人民法院、最高人民检察院关于办理危害计算机信息系统安全刑事案件应用法律若千问题的解释

至于这个案子里的其他人,从公司的法定代表人、提出建议的产品经理、传达任务和给源代码的项目经理,到使用数据的业务部门的同事,都没责任,法务/合规/风控看起来更是从未出现。

总体来说,正常经营的公司,网络爬取数据引发民事纠纷的常见,涉刑的不常见。立项时多问一句“我们这么做有没有风险”“会不会出事”没坏处,毕竟看起来是“集体决策”的决策最后往往并不是集体买单!

最后:警钟长鸣,愿各位珍重,做一个守法、护法、有原则的技术人。
来源:数据保护官

Linus终于被劝动:用了30年的Linux内核C语言将升级


Spring Boot官宣:正式弃用 Java 8


为什么 Java 中“1000==1000”为false,而”100==100“为true?


关注公众号【Java技术江湖】后回复“PDF”即可领取200+页的《Java工程师面试指南》

强烈推荐,几乎涵盖所有Java工程师必知必会的知识点,不管是复习还是面试,都很实用。



浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报