吴晓晖 ,纪星
(1.湖北汽车工业学 院经管学院,湖北十堰42002;2.湖北省金蚂蚁网络有限公司,湖北十堰442002)
随着互联网的不断发展,搜索引擎技术的越来越普及,带来的弊端是许多搜索引擎网络爬虫大量地占据了互联网带宽。一旦一个中型的网站被技术不精的恶意或者非允许的网络爬虫爬取数据,很可能使得网站速度降低甚至不能访问。还有,好多的网络爬虫是以非法获取数据为目的,把获取的数据放到网站,制造虚假的PV,或者以获得非法商业利润为目的,例如:在点击付费的网络广告中,利用网络蜘蛛来模仿用户点击获取付费。因此,网络爬虫不仅给网络带来沉重的负担,使得网站性能大大降低,同时还会带来非法盗窃数据,隐私,知识产权,非法获取商业利润等问题,已经严重妨碍了与互联网相关的产业的健康发展。
为消除恶意网络爬虫带来的危害,国内外相关学者,高校等对网络爬虫检测识别技术进行了广泛深入的研究。在国外,研究爬虫检测技术的代表性学者是塞浦路斯的Marios D.Dikaiakos和Athena Stassopoulou等[1-4],他们在国际知名期刊(Computer Network等)上发表了关于研究Web爬虫的系列论文,其中包括通过分析访问日志来获取Web爬虫行为与普通用户访问行为的特征区别[1,4],并在此基础上采用了概率推理方法(即贝叶斯网络)[2-3]来进行Web爬虫检测,取得了一定的成果。
国内的研究网络爬虫检测技术的代表性学者主要有郭伟刚、菊时光、范纯龙等研究的Web Robot识别检测算法。郭等[9]在文献中阐述了利用一个事务中人与爬虫所请求的URL访问模式不同来检测网络蜘蛛,同时还阐述了利用爬行内容不同和设置阀值的方法来检测蜘蛛,但这些方法都要依赖于用户会话和日志分析,其实时反应慢。于是范等[7]在文献中阐述了在网页中设置陷阱的方法来捕获蜘蛛,这种方法优点是能快速实时的检测出蜘蛛,同时不需根据事务中人与爬虫所请求的URL的访问特征的不同来检测网络蜘蛛,另外本文还阐述了利用爬行内容不同和设置阀值的方法来检测蜘蛛,但这些方法都要依赖用户会话和日志分析,同时陷阱的方法也容易会造成链接污染,对正规合法搜索引擎形成影响,再者其特征明显,也很容易被新的网络蜘蛛所规避。
到目前为止,在爬虫检测思路上,主要有2类:1)基于日志中的爬虫和用户行为不同特征分析再利用阀值,决策树,贝叶斯网络等来进行判断检测网络蜘蛛;2)基于在网页上布置陷阱方法来捕获网络爬虫。
基于行为分析的研究都是通过对Web访问日志进行会话和事务划分,然后找出会话中和事务访问蜘蛛和人的访问行为特征不同,来进行爬虫检测。在分析国内外相关代表研究文献基础上,总结出人和蜘蛛的主要不同访问行为特征:
1)最大连续点击率 从直觉上来讲,用户在一定的时间内,存在着一个最大点击数,……
2)会话时长网络蜘蛛的一个会话时长要比人的会话时长大的多的多。
3)图片访问的百分比 在图片嵌入的网页中,爬虫会话中,爬虫所访问的图片所占访问总量的百分比远远少于用户会话中用户所访问的图片所占访问总量的百分比。
4)4XX错误响应百分比 在爬虫访问请求中,4XX错误响应所出现的百分比比用户访问请求要更高。
5)对robot.txt文件的访问 合法的爬行蜘蛛会请求访问robot.txt文件,但用户不会对其访问。
6)Url访问行为 用户对一个网站的访问通常都是按照网页设计者思路走下去,即访问的链接是满足链接关系的。而爬虫访问通常是杂乱无章的,一般不会形成链接关系路径。因为爬虫抓取网页通常只抓取新的或者已经更新了的网页。
7)访问内容在 一个会话中,人访问的内容通常是杂乱无章的。而蜘蛛访问内容通常都是有规律可循的,要么都是Html,或者都是pdf/jpg,MP3等。
基于以上特征,国内外的学者采用了流量分析,机器学习,阀值控制等方法来
基于陷阱方法捕获蜘蛛的思路是通过在网页上布置陷阱(即用户看不到而爬虫容易抓取的与URL相关的文件、网页等)来捕获网络爬虫。传统的布置陷阱方法有3种:
1)利用分布式蜜罐系统 Honeynet Project[12],在大范围内捕获和建设Spider地址库;
2)利用陷阱将Spider访问引导到爬虫收集网;
3)将Spider访问引入到能产生无限链接循环的页面,恶意消耗Spider访问能力,污染其链接和内容空间。
这3种传统的方式都有其缺点:第1种方式忽略考虑网络上IP地址是动态分配的;第2种方式,对于爬虫网站链接加入到黑名单中蜘蛛可以轻易跳过陷阱。第3种方式是损人不利己的方式,消耗蜘蛛资源同时也消耗自己资源。
基于以上传统的陷阱方式的缺点,国内学者[7]陷阱检测技术的理论及其模型进行了详细分析和研究,得出可以通过网页上布置一些url,这些url事实上是不存在的,如果爬虫访问这些url,就被重定向器定向到专门检测蜘蛛的网页集合中的理论模型和方法来捕捉蜘蛛。这种方法很好地弥补了传统方法的缺点,布置灵活方便。
由于基于爬虫检测技术而开发的识别分类器是二分类,即识别爬虫类和用户访问类。因此对于爬虫检测方法效果的评价主要是基于精度(Precision),召回率(Recall)和F1-measure。其假设在集合中爬虫类的访问有N个,那么经过识别分类器分类后,分出属于爬虫类的正确和错误分类和属于非爬虫类的正确和错误分类,其结果如表1所示。
表1 爬虫类识别分类情况
根据表1,其检测方法的定义如下:
1)正确率:P=TP/(TP+TF),衡量原本是爬虫类的划为爬虫类的精度。
2)召回率:R=TP/(TP+FP),衡量原本属于爬虫类的正确识别能力。
3)F1_measure=2PR/(P+R),是衡量一个爬虫识别分类器的正确率和召回率的一个综合指标,比较全面的测量爬虫识别分类器的总体性能。
到目前为止,对于爬虫检测技术来讲,还没有建立一个公开权威的测试数据集,各个学者所采用的数据来源各不相同,大部分是来自于大学网站上的访问日志数据,记录有几千条到几万条不等,百万条记录以上的访问日志数据很少。
表2是各文献中的实验结果对比,由于国内外的学者所采用的方法不同,如国外学者建立分类器的方法,国内学者采用统计阀值的方法;测试数据不同,国外选择人工标好的数据,国内是选择的原始访问日志,故国外学者给出了比较精确的测试结果。国内学者给出的结果由于会话项目中访问记录数目的限制等原因,例如文献[5],没有能按测试三大指标(P,R,F1)给出各个精确测试结果,要么只是给出了部分指标的精确结果,要么只是给出了检测出的网络蜘蛛的列表。造成此结果差异的原因主要是采用的方法不同,缺乏权威测试集。例如,从理论上讲,阀值限制的方法对于低于阀值的爬虫,检测出蜘蛛的百分比几乎为零,高于阀值检测的百分比几乎为100%,所以比较难于进行效果测试。即使这样,还是根据以上评价方法对各个网络蜘蛛检测技术性能做个大体的对比。
表2 文献中的实验结果对比
总体来讲,当今的爬虫检测技术对于单点式爬虫检测的召回率较高,基本能稳定在80%以上[7],但也存在着以下挑战∶
1)对于针对某些主题、模仿用户行为、探测检测阀值等网络爬虫,正确的检测还面临着检测效果不理想的问题。随着爬虫检测技术的不断提高,恶意爬虫技术也在不断进行改进升级,从而达到躲避检测的目的。例如,一些爬虫减少单位时间内访问次数,以低于检测阀值的频率访问网站,躲过蜘蛛检测系统窃取数据。
2)当前国内外研究对于爬虫的身份标识基本都是基于IP地址的,这样的身份标识很不合理,因为互联网上的好多IP地址也是动态分配的,不是一直不变的,同时存在着有一个IP地址可能会有多个用户共同使用,来源于此IP中的爬虫或许只是其中一个或几个用户发出的,不一定是所有共享此IP地址的用户发出的。因此基于IP标识爬虫身份的方法是不合理的。
3)这些成果研究的实验数据基本上是来自于大学网站的访问日志,研究的爬虫更多的是正规的网络爬虫特征,因此此成果是否具有很好地普实性,还有待于进行进一步的验证。同时,其研究所用培训数据是2个月的访问日志,测试数据是1个月的访问日志。但是对于这样1个月时间范围内数据总体测试效果,到了具体的实时的时间内识别网络爬虫的效果是否理想,作者也没有进一步的进行深入的研究。
4)布置陷阱捕获的方法对合法访问蜘蛛产生链接污染。
5)提出布置陷阱方法的学者在理论上还缺考虑到一个特殊情况,即非法用户也可以通过正当搜索引擎获得自己想要的数据,例如,可以通过google搜索返回的结果,提取特定主题相关的信息,即利用google具体网站限定功能,对某个具体网站返回的搜索结果进行提取。
本文从网络蜘蛛特征和检测方法出发,对其进行了优点和存在的问题和挑战进行了分析总结。基于此,笔者认为,要想达到实时的准确的识别恶意蜘蛛并加以拒绝,可以采用陷阱结合内容加密的方式来防止非法蜘蛛获取数据。这也是作者接下来要研究的方法。
[1]Marios D.Dikaiakos,Athena Stassopoulou,Loizos Papage Orgiou.An Investigation of Web Crawler Behaviour∶Chracterization and Metrics[J].Computer Communication,2005,28∶880-897.
[2]Athena Stassopoulou,Marios D.Dikaiakos.Web Robot Detection∶A Probabilistic Reasoning Approach[J].Computer Networks,2009,53∶265-278.
[3]Athena Stassopoulou,Marios D.Dikaiakos.A Probabilistic Reasoning Approach for Discovering Web Crawler Session[D].LNCS 4505,2007:265-272.
[4]Marios D.Dikaiakos,Athena Stassopoulou,Loizos Papage Orgiou.Characterizing Crawler Behavior from Web-Server Access Logs[D].LNCS 2738,2003:369-378.
[5]郭伟刚,菊时光.基于访问内容类型统计的Web Robot检测算法[J].计算机科学,2005(32)∶179-181.
[6]Tan Pang-Ning,Kumar v.Discovery of Robot Sessions based on their Navigational Patterns[J].Data Mining and Knowledge Discovery,2002,6(1):9~35k.
[7]范纯龙,袁滨,余周华,徐蕾.基于陷阱技术的网络爬虫检测[J].计算机应用,2010(7)∶1782-1784.
[8]郭伟刚,菊时光.电子商务网站中Web Robot的检测技术[J].计算机工程,2005(12):219-221.
[9]郭伟刚,菊时光.一个基于实务分析的Web Robot检测算法[J].计算机应用,2005(7):1580-1583.