5 亿微博数据疑泄露,Python 爬虫如何避免踩天坑?

简介: 真正遭遇信息泄漏时,你该做什么?

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

编者按:本文来自微信公众号“CSDN”(ID:CSDNnews),作者:马超,36氪经授权发布。

3月19日,默安科技CTO魏兴国发微博称,微博数据泄露了不少用户的手机号,当中涉及不少微博认证的明星和企业家。

亦有网友在他的微博评论区表示:“有超过5.38亿条微博用户信息在暗网出售,其中1.72亿条有账户基本信息,售价0.177比特币。涉及到的账号信息包括用户ID、账号发布的微博数、粉丝数、关注数、性别、地理位置等。”

目前,这条微博已经删除。

针对此事,微博方面回应称,数据泄露属实,目前微博已经及时强化安全策略,微博一直有提供根据通讯录手机号查询微博好友昵称的服务,用户授权后可以使用该服务。

但微博不提供用户性别和身份证号等信息,也没有“根据用户昵称查手机号”的服务。因此这起数据泄露不涉及身份证、密码,对微博服务没有影响。

据此我们可以判断出这次微博个人信息泄漏的安全事件,其原因应该是通讯录好友匹配攻击导致的。很多社交App都有通过通讯录匹配好友的功能。攻击者可以伪造本地通讯录来获得手机号到微博用户账号的关联。比如通过伪造的手机号匹配好友,并不断列举,就能关联出所有用户帐号到微博ID到手机号的关系。

本次事件纠其本质其实是利用合法API的不合理使用来套取、收集信息的过程,简单来讲就是一个爬虫引发的血案。

有关爬虫的是是非非实在太多了,据笔者观察2019年几乎所有的大数据即爬虫公司全部被查,包括新颜科技与魔蝎科技的CEO被查、公信宝被封、聚信立也宣布将暂停爬虫服务、国内大数据风控平台龙头同盾科技也被曝解散爬虫部门。

这其中最惹人关注的事件,还是那位来自巧达科技的程序员,因为写了一段爬虫程序,非法从某招聘网站上下载简历信息而被起诉,引发了全网关于程序员面向“监狱”编程的大讨论。

而站在笔者角度来看,有关爬虫的争议和信息泄漏防护需要从数据持有方和数据爬取方两个角度来审视。

数据持有方的盾:DLP数据泄露防护系统

这次信息泄漏事件发生后,我们可以看到微博第一时间就回应不涉及身份证、密码等敏感信息的外流,我相信这背后的底气还是来自于微博对其数据泄漏防护(Data leakage prevention, DLP)的信心。

远程办公大背景下,先要做好内部预防:据国家计算机信息安全测评中心数据显示,重要资料被黑客窃取和被内部员工泄露的比例为1:99.也就是说有互联网出口的企业,其内部重要机密通过网络泄密而造成重大损失的事件中,只有1%是被黑客窃取造成的,而都是由于内部员工有意或者无意之间泄露而造成的。尤其是在目前远程办公的背景下,这种由员工引发的信息泄漏情况其实风险更高,企业在数据边界建立一套安全防护体系十分重要。

员工终端出口防控:部分大厂都有一套数据沙盒运行或者加密机制,用来阻止数据由使用的客户端流出,并且一般在DLP的整体解决方案中,还会使用图像处理技术还会将员工屏幕图像的频域中加入特定指纹,以追踪员工泄漏截屏信息。记得在2017年阿里脚本秒杀月饼的事件中,就有人因泄漏截图信息而被处理,这背后其实就是频域指纹的技术。再有就是对内网中包括U盘、移动硬盘、红外、WIFI、蓝牙等输出端口实施监控,对拷贝到移动存储设备的文档进行强制加密。

互联网出口防控:而针对互联网出口DLP技术几乎和AI图像处理与NLP技术同步发展,一般都会使用最新的分类模型,监控异常流量,防止数据外泄,这里还是再次强调一下系统上云的重要性。

数据爬取方之道:避免面向监狱编程

根据最新的流量分析,互联网40%左右的流量都是机器人也就是爬虫发起的,站在数据爬取方的角度,必须关注爬虫技术的法律边界,“技术无罪”的号往往不能保护广大程序员。

而有关爬虫的法律问题,笔者特意咨询了法务同事,根据我国的《刑法》、《网络安全法》的规定,爬虫可能涉及到的犯罪行为有如下情况:

1.首先侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,不论情节严重与否,构成非法侵入计算机信息系统罪。

2.违反国家有关规定,向他人出售或者提供公民个人信息,构成“侵犯公民个人信息罪”。也就是说通过出售个人信息获利或者侵入含有国家机密的系统均会构成犯罪,但这两种情况均不会是无心之过,但是以下规定需要格外注意。

3.违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,构成犯罪。也就是如果使用爬虫的抓取力度过大,造成被攫取的网站无法正常运行的情况,并造成严重后果的也会构成犯罪。我们前文所述巧达科技的程序员也是因为爬虫流量太大,造成目标网络接近瘫痪,而涉嫌触犯此条被捕。

也就是说避免面向监狱编程的三原则是

1. 不要触碰国家事务、国防建设的系统

2. 不要触碰个人信息,更不能贩卖个人信息

3. 合理设置爬取流量,避免DDOS攻击式的爬虫

另外为避免其它民事纠纷,要尽量遵守Robots 协议。Robots 协议是一种存放于网站根目录下的 ASCII 编码的文本文件,它通常告诉网络搜索引擎的漫游器也就是爬虫,此网站中的哪些内容是不应被爬虫获取的,哪些是可以被爬虫获取的。严格按照 Robots 协议 爬取网站相关信息一般不会出现太大问题。

因为司法实践中一般也会考虑行业的通行规范,因此一般遵守Robots 协议得到的信息不会被认为是商业机密或者个人隐私数据。或者说遵守协议所得的信息即使涉密其泄密责任一般也不会由爬取方承担。

实际遭遇信息泄漏时应该做什么

在所有的信息泄漏中最麻烦的就是密码或者身份证信息泄漏,对此笔者有如下建议:

1. 检查自己的征信记录:如果征信记录中有异常,尤其是遭遇不明原因的贷款时,那么大概率是遇到严重的信息泄漏情况了。此时如果联系不上贷款平台,可以尽早报案,以保护自己的合法权益。

2. 解除三方平台的绑定关系:一般来说银行对于客户银行卡的保护力度还是比三方支付公司要大的,所以如遇信息泄漏,可以先解除与三方支付平台的绑定关系及关闭定时自动扣款服务,必要时再更换银行卡。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-03-23
本文作者:马超
本文来自:“36Kr”,了解相关信息可以关注“36Kr

相关文章
|
20天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
7天前
|
数据采集 安全 定位技术
使用代理IP爬虫时数据不完整的原因探讨
在信息化时代,互联网成为生活的重要部分。使用HTTP代理爬取数据时,可能会遇到失败情况,如代理IP失效、速度慢、目标网站策略、请求频率过高、地理位置不当、网络连接问题、代理配置错误和目标网站内容变化等。解决方法包括更换代理IP、调整请求频率、检查配置及目标网站变化。
39 11
|
26天前
|
数据采集 JSON JavaScript
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
本文介绍了如何使用PHP模拟表单提交并结合代理IP技术抓取京东商品的实时名称和价格,特别是在电商大促期间的数据采集需求。通过cURL发送POST请求,设置User-Agent和Cookie,使用代理IP绕过限制,解析返回数据,展示了完整代码示例。
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
|
19天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
1月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
46 3
|
1月前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
28 1
|
1月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
1月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
1月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
77 0
|
1月前
|
数据采集 存储 分布式计算
超酷炫Python技术:交通数据的多维度分析
超酷炫Python技术:交通数据的多维度分析