【k哥爬虫普法】程序员183并发爬取官方网站,直接获刑3年?

【k哥爬虫普法】程序员183并发爬取官方网站,直接获刑3年?

我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了”K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用爬虫技术,警钟长鸣,做一个守法、护法、有原则的技术人员。

案情介绍

深圳市快鸽互联网科技有限公司成立于2014年,早期从事互联网金融,2017年转型为互联网科技公司。其主营业务为“助贷”,为客户提供按揭贷款、债务置换贷款等服务。

[En]

Shenzhen Express Pigeon Internet Technology Co., Ltd. was established in 2014, engaged in Internet finance in its early days, and transformed into an Internet technology company in 2017. Its main business is “loan assistance”, which provides customers with mortgage loans and debt swap loans and other services.

公司业务需要定期访问深圳市政府居住证网站,查询房地产地址、住房代码和学区房使用情况,用于房地产市场评估和客户风险评估。由于人工查询效率低下,公司产品组讨论后提出了建议–利用爬虫技术进行自动查询。

[En]

The company’s business needs to regularly visit the * Shenzhen Municipal Government residence permit website * to inquire about the real estate address, housing code and the use of school district rooms, which are used for real estate market assessment and customer risk assessment. * because of the inefficiency of manual query, the company’s product group put forward a suggestion after discussion– automatic query with crawler technology. *

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

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

2018 年 3 月,程序被部署在阿某云服务器上自动运行,其内置的”网络爬虫”对接了深圳市公安局人口管理处的居住证系统,可以在深圳市居住证网站上查询到房产地址、房屋编码等对应的资料,软件对网站访问量能达到每小时数十万次,查询的信息都被下载保存到公司购买的阿某云服务器上。

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

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

2018 年 5 月 17 日晚上 11 点,服务器维护人员接到了阿某云客服的电话。阿某云说他们公司的服务器 IP 被网警锁定了,因有攻击行为,让他们赶紧联系网警。

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

截至事发时,深圳市居住证服务平台注册用户已超过530万,包括全体市民网上自助受理系统、151个派出所、街道办居住证受理点现场受理系统以及市网格办、市交警局、市民政局、市交委等政府部门提供居住证和居住证登记条件查询审核的后台界面。

[En]

At the time of the incident, the Shenzhen residence permit service platform had more than 5.3 million registered users, including the online self-service acceptance system of all citizens, 151police stations, the on-site acceptance system of the street office residence permit acceptance point, and the background interface for the Municipal Grid Office, the Municipal Traffic Police Bureau, the Municipal Civil Affairs Bureau, the Municipal Traffic Commission and other government departments to provide inquiry and examination of residence permits and residential registration conditions.

在居住证系统受到攻击瘫痪期间,该软件每秒查询深圳居住证系统183次,总查询量约151万次,抓取了大量建筑代码数据,导致政府信息泄露。所有居住证办理、居住证申报、信息查询、对外服务等功能无法正常工作,影响极其广泛,公民无法办理居住证和居住证登记,相关生产生活秩序受到严重影响。除此次攻击外,部分派出所出具证明确认,5月份期间,系统经常无法登录,录入过程频繁掉线,系统数据异常。居住证制度不能正常使用,异常情况持续一个多月。

[En]

During the period when the residence permit system was attacked and paralyzed, the software queried Shenzhen residence permit system for 183 visits per second, with a total of about 1.51 million queries, grabbing a large number of building code data, resulting in government information leakage. All residence permit processing, residence registration declaration, information inquiry, external service functions are unable to work normally, the impact is extremely wide, citizens can not apply for residence permit and residence registration, the relevant production and life order has been seriously affected. In addition to this attack, some police stations issued certificates confirming that during May, the system was often unable to log in, the input process was frequently dropped, and the system data was abnormal. The residence permit system can not be used normally and the abnormal situation lasts for more than a month.

供述情况

CTO 的部分供述和辩解:我司查询并下载深圳市居住证网上的数据信息没有进行市场买卖,没有跟其他公司进行资源置换,也没有通过查询信息行为获利。我不清楚这款爬虫软件对深圳市居住证网站及系统造成的影响、深圳市居住证网站及系统的承载能力、爬虫软件的具体的启动和部署情况,但我知道从技术上来讲如果超过服务器承载能力的查询肯定会引起系统卡顿或瘫痪,所以我口头要求注意查询时间、控制查询频率,我司并无任何恶意去主观进行攻击。

程序员的部分供述和辩解:抓取数据的原程序是谁研发的我不知道,当时我接到这个任务时,是公司领导把源代码给我后让我修改的。这个程序查询信息的频率我不清楚,共查询多少条信息我也不清楚,我没有因查询深圳市居住证网站的信息而获利,这是我的工作任务。

判决情况

法院认为,被告人杨洁明、张国栋违反国家规定,干扰计算机信息系统功能,致使服务于5万余名用户的计算机信息系统无法正常运行1小时以上,后果特别严重,其行为已构成破坏计算机信息系统罪。

[En]

The court held that the defendants Yang Jieming and Zhang Guodong violated state regulations by interfering with the functions of computer information systems, resulting in the failure of computer information systems serving more than 50,000 users to operate normally for more than one hour, and the consequences were particularly serious, and their behavior constituted a crime of destroying computer information systems.

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

判决文书全文:https://wenshu.court.gov.cn/website/wenshu/181107ANFZ0BXSK4/index.html?docId=ddbe90eedd1341888ed9ac24009b67fb

反思总结

  • 爬虫程序日志记录、监控告警的重要性:本案中,在被捕之前就有过一次目标网站宕机的情况,这时候请求成功率、数据量大小、目标网站服务器的响应情况等肯定会出现异常,正确的做法是有一定的告警策略,连续出现多少次无数据、目标网站访问异常的时候,就应该告警通知到程序员,特别是政府网站,本案中的程序显然没有这些功能,导致程序员未能及时发现问题并进行处理,要知道这次对方运维人员并没有成功定位到 IP,及时处理完全可以避免成为”爬虫牢玩家”,给过一次机会都把握不住,警察上门才知道酿成大祸,到那时候一切都晚了。
  • 爬虫代码的健壮性:根据本案中程序员的供述,目标网站更新了验证码登录的功能,但是程序并没有针对这种情况做处理,也没有及时更新,导致程序出现死循环,进而导致短时间内出现了大量请求,这就体现了代码健壮性的重要性,在编写程序时就要综合考虑到可能出现的情况,检测到某个接口异常,无法拿到正确的数据,重试是正常的,但不能任何情况都重试,也不能一直重试出现死循环的情况,应该有合理的规则,合理的重试次数,超过设定的次数就应该告警并停止程序的运行,一部分程序员喜欢直接暴力使用 try except 语句直接捕获所有异常,然后 except 里就直接重试,正确的做法是针对不同可能出现的异常做不同处理,取值异常应该怎么处理,连接异常应该怎么处理等等。
  • 避免单一真实 IP 采集:本案中的程序使用一个固定 IP 采集了约 151 万条次的数据信息,很显然目标网站没有封 IP 的策略,但这并不意味着我们程序就不用使用代理,当然使用代理,也得建立在合法合规的请求之上,部分代理商也会协助你判断请求是否合规,完善的请求统计也能帮助你判断是否出现异常情况。
  • 爬虫频率控制:本案中,造成目标服务器宕机时,程序的并发是每秒 183 次,在普通的爬虫程序中这点儿并发确实不是很大,但要注意的是,目标网站是政府网站,尤其是地方政府的专属职能系统,这些网站在软硬件上都不会投入太多资源,加上该网站为151个派出所、街道办等多个部门提供服务,某个时刻可能会出现多个部门同时大量处理事务的情况,再加上你的爬虫程序,服务器撑不住很正常,案例中程序设置了凌晨1时至2时进行采集是比较正确的做法,政府网站降低频率、错峰采集,一定程度上也能避免爬宕机的情况。
  • 对需求的风险评估及把控不足:CTO 自述中表明意识到这么操作会破坏深圳市公安局居住证服务平台,但是为了方便以后的查询,就着急着去做了,没有考虑那么多的后果。也就是在明知道可能存在风险的情况下,还未对该需求进行严格的监管,正因为抱有侥幸心理,为以后埋下了”定时炸弹”。正确的做法应当是做细致严谨的规划,研究该需求的合理性,再考虑要不要下发实施,而程序员也没对下发需求做可行性分析,拿着需求和基础代码就去做了,还未进行监控管理,这提醒我们立项时多问一句”我们这么做有没有风险”没坏处,特别是爬虫工程师们要多对需求进行理性分析,隐患大的需求该拒绝就拒绝,毕竟有些事看起来是”集体”的决策最后往往并不是集体买单,如果公司因此威胁辞退你,那赶紧拿钱跑路,这种公司迟早得出问题!
  • 温馨提醒:以上案例提醒我们,在工作中碰到类似情况后,建议在事前咨询公司法务或者专业人士,不要想当然,不要自以为是。谨记一点,公司是老板的,自由是自己的,法律是不容触犯的!

友情提示之公司辞退员工补偿标准:

劳动合同法》第47条规定:

1、经济补偿按劳动者在本单位工作的年限每满一年支付一个月工资的标准向劳动者支付;

2、六个月以上不满一年的,按一年计算;

3、不满六个月的,向劳动者支付半个月工资的经济补偿,月工资是指劳动者在劳动合同解除或者终止前十二个月的平均工资。

合同未到期,员工无过错情形下,单位提出与员工解除劳动合同的非自行离职的情况下,可索要 N+1 月工资的补偿:N 为在职年限,不足一年但超过半年,则按一年算;1 为辞退员工需要提前一个月通知,否则需要补偿 1 个月工资作为代通知金。

【k哥爬虫普法】程序员183并发爬取官方网站,直接获刑3年?

Original: https://www.cnblogs.com/ikdl/p/16580091.html
Author: K哥爬虫
Title: 【k哥爬虫普法】程序员183并发爬取官方网站,直接获刑3年?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/498811/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球