近期欧亚大陆中高纬度加强的寒冷冬季及其与日最低温度变率的关系外文翻译资料
2022-12-04 14:50:30
英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
网络爬虫测量中虚假行为的分析与检测
Quan Bai, Gang Xiong ,*,Yong Zhao , Longtao He
Institute of Information Engineering, Chinese Academy of Science, 100093, China
中国科学院信息工程研究所,100093
摘要:
随着互联网的发展,搜索引擎技术越来越受到人们的青睐。网络爬虫已经占据了
大量的互联网带宽。除了谷歌,百度和其他一些著名搜索引擎以外,互联网充满了“虚假的”网络爬虫。这些爬虫的代码大致一样,它们严重危害到互联网的安全性。通过正确分析谷歌网络爬虫的交通特性和屏蔽“假”网络爬虫可以提高站点的性能和提升网络服务的质量。在本文中,我们测量了真实的高速网络中的大量的网络爬虫流量,并且对谷歌网络爬虫和虚假网络爬虫的统计特征进行比较,寻找二者的不同之处。我们提出了一个模型来侦查真实和虚假的网络爬虫,该模型的准确率约95%。
关键词:网络爬虫;伪行为;测量;高速网络;流量
- 引言
网络爬虫是一个可以自动浏览网页的程序。作为搜索引擎的重要组成部分,它是
为搜索引擎下载网页而设计的[1]。一般的网络爬虫从开始页中的一个或多个网址开始,获取起始页的URL列表;在抓取网页时,网络爬虫持续从当前页面提取新的URL,并将它们放入等待被抓取的URL队列,重复这一行为直到满足系统停止条件为止。根据系统结构和技术的实现,网络爬虫可以被分为以下几类[2]:通用网络爬虫,聚焦网络爬虫[3],增量爬虫,和深网爬虫[4]。
Ravi Bhushan等人[5]总结了网络爬虫的一般工作原理:爬行、索引、搜索直到过滤,以及信息排序。(1)从种子网址集中获取URL并为主机名称确定IP地址;然后下载Robot.txt文件,这个文件具有下载权限,同时指明了要被爬虫排除的文件;(2)读取页面文档并并从页面文档中提取链接或引用的其他网址。;(3)将URL链接转换为它们的等价的绝对URL,并把URL添加种子URL集合中并为新URL创建索引;(4)重复上述过程;(5)当用户输入网页查询时,搜索引擎会通过PageRank算法来搜索索引从而找到匹配的网页。
除了如谷歌和百度这样的著名的搜索引擎的网络爬虫之外,互联网充满了“虚假的”网络爬虫。这些爬虫编码大致一样,它们没有规则可言并严重危害互联网。精心设计的爬虫程序以合理的频率进行抓取数据,这样花费了较少的网站资源,而坏的爬虫也常常在同一时间能抓取几百万个同样的请求。
一旦一个中等规模的网站被设计不良的网络爬虫或不被允许的恶意爬虫访问的话,这个网站可能会减速甚至无法被访问。此外,许多Web爬虫目的在于非法访问数据[6];他们给网站带来沉重的负荷和并大大降低网站性能。同时,它们会带来隐私、知识产权和非法的商业利润问题,这严重阻碍了互联网产业的健康发展。
Thelwall M等人[7]指出爬虫活动的多样性往往导致诸如垃圾邮件和服务攻击这样的伦理问题。C. Lee Giles等人[8]提出了度量网络爬虫伦理的向量空间模型从而来定义衡量网络爬虫的伦理的伦理性指标。斯特凡诺维奇D等人[9]还指出,网络爬虫甚至可以导致DDoS攻击。因此,我们可以看到,我们可以通过测量和分析谷歌和百度等常规网络爬虫的爬虫流量来提高网站的性能,然后检测和屏蔽“伪”网页爬虫[10]。对于ISP,检测虚假的网络爬虫的流量也可以提高服务质量。这在网络性能与网络安全方面都有积极意义。
在本文中,我们测量了真正的高速网络中的大量的网络爬虫流量,通过统计的方法发现了一般特性。最后,我们用正式的公式化模型来区分谷歌网络爬虫与“假”的网络爬虫。本文的其余部分组织如下。第二节回顾相关的研究工作。第三节介绍了我们的分析和我们选择的方案。第四节介绍了实验结果,并规范了我们的检测模型。最后,第五节总结了我们的工作。
- 相关工作
目前,检测爬虫的方法主要有三种:(1)日志属性检测方法。这种方法基于Web日志的用户代理,或是爬虫访问的robots.txt file[11];(2)基于陷阱技术的方法。该方法通过在网页中嵌入的脚本[12]来捕捉鼠标和键盘的行为;(3)基于Web导航模式的方法[13]。
前两种方法只能检测访问这个网站的爬虫,有很大的局限性。第三种方法主要是基于人工智能的思想:建模、训练和优化。Tan P.等人[14]首次提出了一种Web爬虫的检测方法:根据爬虫和人类的行动的导航模式之间的流量差异,他们提取了25个特征如请求的时间间隔,并利用C4.5来测试模型。这个模型可以只接收4个请求后就检测网络爬虫的流量,,准确率为90%。Stassopoulou等人[15]引入了一种概率建模方法,并构建了一个贝叶斯网络来自动检测爬虫,其召回率和准确率始终在95%和83%以上。Lu等人[16]提出了一个隐马尔可夫模型(HMM),该模型基于HTTP请求的时间序列。该模型检出率为97.6%和假阳性率为0.2%。宋婷等人[17]提出了一种基于支持向量机的爬虫检测算法,该算法用于区分网络爬虫流和人类行为流。
基于人工智能的思想的方法在其测试集上获得较高的准确率。但他们的数据都是来自一个网站或一个企业级网站日志,所以他们在某种程度上不能反映互联网的真实情况;机器学习的一些方法不能适应高速网络。此外,这些方法不能区分常规的网络爬虫如谷歌和百度,以及虚假网络爬虫。
- 分析和方案
我们以谷歌爬虫为例。为了提高效率,大部分谷歌爬虫是C或C 程序,而且它们可以运行在Solaris或Linux中。该网站爬虫工作是由几个分布式爬虫完成。有一个URL服务器发送要被爬虫抓取的URL列表。爬虫使列表作为它们的种子URL,并抓取网页。之后,将获取的页面发送到存储服务器。每个网页都有相关的叫做docID的ID,无论什么时候从一个网页页面解析出一个新的URL都会分配一个docID[18]。
对于“乖巧”的爬虫像谷歌,它的用户代理字段在它的HTTP头中声明。谷歌爬虫有它自己的开放和固定用户代理。因此,匹配用户代理字段可能是个初步识别谷歌爬虫的简单有效的方法。
此外,因为谷歌爬虫程序在多台分布式机器上运行,而且它们的IP地址也是开放和固定的,这些IP地址也可以是谷歌爬虫的另一个证明。
根据这两种思想,我们分析了谷歌爬虫的用户代理字段。我们发现大部分消息以图1所示的形式显示。源IP地址是谷歌爬虫地址。它们是典型的谷歌爬虫流。
图1谷歌爬虫图
然而,有一些不同于上面消息的信息。从消息结构看,这些流只有如用户代理的字段和从其中被确认为爬虫流的必要信息。从IP地址看,这些流来自不同的没有明显的分布规律的网络。
因此,我们可以推测,有流量是由私人程序的“伪”爬虫造成的。为了被认可为谷歌爬虫,他们只有基本的字段,像用户代理,并且它们到外国IP地址的网站去获取网页。
典型的“伪”爬虫报文的例子如图2所示。
比较两种情况,我们发现,由于在谷歌爬虫程序中HTTP消息的结构是统一的,报文的HTTP消息字段在内容中有相应的统计规律。除此之外,每个字段的顺序也是一致的。然而其他爬虫或“假”爬虫可能没有这些特点。因此,字段的信息的统计特性和它们的顺序可以用来区分“真实”和“虚假的”爬虫。
图2测试图
根据这一思想,我们首先使用匹配的用户代理的方法进行统计高速网络中大量的谷歌爬虫流量;然后我们利用谷歌爬虫的IP地址过滤流量。我们发现了字段信息的一般规律和过滤后的流量顺序(用户代理和IP)谷歌爬虫的地址)。我们选择的字段包括HTTP头、主机、连接的请求方法等等。我们总结了字段信息的顺序和它们的统计特性,并且建立了一个正式的DFA(确定性有限自动机)模型来检测HTTP消息。使用这个模型,我们可以区分“真实”和“虚假的”爬虫。
- 结果和分析
4.1 环境
我们测量了在一个网络运营商(1235.952 Mbps, 905218Packets/s)的网络门户网页在半口的流量。为了更好地检测网页的流量,我们将流量分为OUT(从网络的内部到外部)和IN(从网络的外部到内部)。
表1数据表
对于谷歌爬虫的用户代理和IP地址的流量,我们记录他们的4元组,我们选择的每个字段的信息和这些字段的顺序。字段列表如表1所示。
4.2 结果和分析
4.2.1 谷歌爬虫的百分比
首先,我们在IN和OUT的方向都对带有谷歌IP地址的爬虫进行统计;它们占总HTTP流的百分比如表2所示。
表2谷歌爬虫HTTP统计表
总之,谷歌爬虫占互联网HTTP流量的大约3.3%。
-
-
- 谷歌爬虫每个字段的信息
-
- 请求方法
谷歌爬虫的信息报文主要是GET报文,约占99.79%,如表3所示。
表3谷歌爬虫HTTP请求表
- 主机
主机字段包含目的地址的域名,并分布均匀,这与谷歌爬虫抓取各种网站的事实一致。
- 连接
谷歌爬虫的连接字段主要是“Keep-Alive”,大约占了99.6%以上。
- 接受
接受领域谷歌爬虫主要有“*/*”,约占94.7%,意思是接受各种类型的网络信息。
- From
From谷歌爬虫字段主要是“Googlebot(AT)Googlebot .com”(95.2%),其他为空,如表4所示。
表4谷歌爬虫分类表
- 用户代理
我们发现谷歌爬虫的所有用户代理中,最多的是表5所示结果。
表5谷歌爬虫User-Agent表
- 引用
由机器指定,谷歌爬虫的参考字段主要是NULL,约占98.89%。
- 接受语言
网络中谷歌爬虫中接受语言这一字段主要是NULL或”zh-cn”,正如表6所示。
表6谷歌爬虫接收信息表
- 接受编码
网络中谷歌爬虫中接受编码这一字段主要是“压缩程序”,约占98.62%。
- Cookie
几乎没有谷歌爬虫有Cookie字段,大部分是NULL,约占99.273%。
-
-
- 谷歌爬虫的每个字段的顺序
-
我们从谷歌IP地址对爬虫每个字段的排序做了统计。因为像Cookie和Referer
之类的许多字段是NULL,我们只处理了没有这些子u但的谷歌爬虫的HTTP消息,而且我们发现它们的一般排序如下:
Host Connection Accept From User-Agent Accept- Encoding
遵循上述排序的流高达95%以上,所以这可以是检测真是谷歌爬虫的一个重要特性。
4.2.4 谷歌爬虫HTTP消息的一般特性
根据上面的特性,我们总结了谷歌爬虫HTTP消息的一般特性,即:谷歌爬虫的HTT消息按如下顺序组织:
这里:
Connection:Keep-Alive
Accept:*/*
From:goglebot(at)goglebot.com
User-Agent:(User-Agent of Google)
-
- 形式化
根据以前的分析和比较,我们基于数据将这种方法形式化。这个模型可以被看作是一个DFA(确定性有限自动机)M:
这里:
代表状态集合,这个集合包括11个中间状态及3个接受状态。
代表输入符号的集合,即HTTP消息,指的是HTTP消息的第个信息字段;
代表状态转移函数,该转移函数在输入符号 输入时,是一个映射,该映射为;
代表开始状态:在我们阅读HTTP消息之前,我们把它看作非谷歌爬虫;
是可接受状态的集合,代表最终的认定结果:F1代表非谷歌爬虫,F2代表虚假谷歌爬虫,F3代表谷歌爬虫。
利用这个有限自动机(DFA),我们可以输入一条HTTP消息,使用信息及每个字段的排序来改变这个DFA的状态,最终得到它的最终类型结果。
-
- 模型测试
使用这个模型,我们过滤了我们从匹配用户代理中得到的整个HTTP消息。我们发现:在IN(从外部到网络内部)的情况下,IP地址分布均匀,大部分消息匹配上述统计特性并且它们可以被模型识别为谷歌爬虫。大多数源IP地址(94.7%)是谷歌爬虫的IP地址(66.249.*.*)。
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[25350],资料为PDF文档或Word文档,PDF文档可免费转换为Word