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

相关文章
|
19小时前
|
机器学习/深度学习 算法 Python
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
|
1天前
|
机器学习/深度学习 算法 算法框架/工具
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
|
1天前
|
机器学习/深度学习 数据挖掘 网络架构
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
|
1天前
|
数据挖掘 数据处理 索引
如何使用Python的Pandas库进行数据筛选和过滤?
Pandas是Python数据分析的核心库,提供DataFrame数据结构。基本步骤包括导入库、创建DataFrame及进行数据筛选。示例代码展示了如何通过布尔索引、`query()`和`loc[]`方法筛选`Age`大于19的记录。
8 0
|
1天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
19 1
|
2天前
|
数据采集 存储 JSON
Python爬虫面试:requests、BeautifulSoup与Scrapy详解
【4月更文挑战第19天】本文聚焦于Python爬虫面试中的核心库——requests、BeautifulSoup和Scrapy。讲解了它们的常见问题、易错点及应对策略。对于requests,强调了异常处理、代理设置和请求重试;BeautifulSoup部分提到选择器使用、动态内容处理和解析效率优化;而Scrapy则关注项目架构、数据存储和分布式爬虫。通过实例代码,帮助读者深化理解并提升面试表现。
11 0
|
2天前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by='A', ascending=False)`。`rank()`函数用于计算排名,如`df['A'].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`和分别对'A'、'B'列排名。
13 2
|
3天前
|
Python
如何使用Python的Pandas库进行数据缺失值处理?
Pandas在Python中提供多种处理缺失值的方法:1) 使用`isnull()`检查;2) `dropna()`删除含缺失值的行或列;3) `fillna()`用常数、前后值填充;4) `interpolate()`进行插值填充。根据需求选择合适的方法处理数据缺失。
29 9
|
5天前
|
数据采集 JavaScript 前端开发
使用Python打造爬虫程序之破茧而出:Python爬虫遭遇反爬虫机制及应对策略
【4月更文挑战第19天】本文探讨了Python爬虫应对反爬虫机制的策略。常见的反爬虫机制包括User-Agent检测、IP限制、动态加载内容、验证码验证和Cookie跟踪。应对策略包括设置合理User-Agent、使用代理IP、处理动态加载内容、验证码识别及维护Cookie。此外,还提到高级策略如降低请求频率、模拟人类行为、分布式爬虫和学习网站规则。开发者需不断学习新策略,同时遵守规则和法律法规,确保爬虫的稳定性和合法性。
|
5天前
|
索引 Python
如何使用Python的Pandas库进行数据透视表(pivot table)操作?
使用Pandas在Python中创建数据透视表的步骤包括:安装Pandas库,导入它,创建或读取数据(如DataFrame),使用`pd.pivot_table()`指定数据框、行索引、列索引和值,计算聚合函数(如平均分),并可打印或保存结果到文件。这允许对数据进行高效汇总和分析。
10 2