
近些年来,互联网技术的飞速发展为人们对网络的使用带来了巨大的便利,但是网络
信息纷乱繁杂,所以网络爬虫应运而生。虽然网络爬虫有效的提高了用户在互联网上的数
本文就网络环境中难以检测和防御的恶意爬虫及其变种进行研究,在已有研究的基础
上介绍了一种恶意爬虫主动防御技术,采用动态化的方式改变WEB页面易被爬取的静态
这类爬虫能够在全互联网中大范围地爬行大量数据,所以对于爬行速度以及存储空间
能选择性地爬取相关信息,为特定的人群提供服务。相较于通用网络爬虫,聚焦网络
针对已经下载的网页,在需要更新时只根据原网页下载已改变的部分,在一定程度上
由于网页可分为表层网页和深层网页,所以对于来说深层爬虫最重要的部分就是表单
填写,根据表单填写方式的不同,又可以分为基于领域知识的表单填写和基于网页结构分
网络爬虫在为用户带来便利的同时,也为网络带来买球股份有限公司了安全隐患。有一类爬虫,通过分
析并自行构造参数对非公开接口进行数据爬取或提交,获取对方本不愿意被大量获取的数
据,并有可能给对方服务器性能造成极大损耗或经济损失,我们将其定义为恶意爬虫。这
些爬虫的存在,会占用网络带宽,并且增加服务器的负担,恶意爬虫所造成的安全隐患主
根据恶意网络爬虫的不同工作形式,我们可以将其简单的分为两种。一类是在全网进
行特定目的爬取,尽可能在全网获得更多的数据,无论数据的真实性是否达到标准。这种
类型的爬虫一般采用深度优先的方式对所关注的目标进行遍历,他们同样可以采取广度优
先的方式去爬取目标超链接,所以在此基础上,这类爬虫需要提前获取到目标网页中所有
超链接及其解析规则。另一种爬虫与上一种相反,这类爬虫具有固定目标,针对目标进行
预先解析,在了解到目标HTML 之后,再针对其规则进行特定的爬虫规则编写,在完成好
特定恶意爬虫的编写后,才能将其部署到目标中。这类爬虫能根据指令,在指定页面全自
动地对目标数据进行爬取。从爬虫性能上来讲,后者是在有目标规则的前提下进行编写的
爬虫,具有更强的针对性,这类爬虫具有很广泛的应用,例如在购物网站中进行商品抢购、
对火车票、演唱会门票进行代抢、对目标进行恶意评价等。这种应用在特定场景的恶意爬
虫都有同一个特点,就是它们在进行数据爬取之前都有类似网络攻击的前期分析过程,这
个分析过程一般可以分为三步,第一步是通过对目标页面的整体分析,确定如何从该页面
获取HTML 代码、如何模拟原网页的HTTP 请求过程以及前期爬取的反馈内容中的精确数
据,从中获取准确的目标 WEB 页面解析规则。总而言之,第一步的工作即是获取到真实
有效的目标网页的特定内容。在第一步的前提下,已经获取到目标 WEB 页面的解析规则
以及HTTP 请求过程,这时第二步则是将完成编写的爬虫安置在目标页面并对其数据进行
目前网络爬虫技术在不断发展,恶意网络爬虫的入侵方式及其相应的防御方式也在不
断更新,虽然现有的检测防御手段具有一定的效果,但是在应对具有动态变化能力的恶意
网络爬虫时仍有不足之处。本文通过翻阅各类文献和大量实验结果分析,汇总了当前有效
综上所述,恶意网络爬虫抓取有效信息是一步一步完成的。大致可以分为HTML 页面
预解析、HTML 页面下载和HTML 页面解析三个部分来得到正确有效的数据。在这个过程
中,大部分情况下攻击者只需要参与到规则解析及编写和爬虫脚本的部署这两个阶段。在
现有的恶意爬虫检测和防御技术中,重点手段是抑制恶意爬虫对 HTML 页面的下载过程。
据研究统计表明,多数攻击者将大量时间消耗在了针对HTML 页面解析规则的编写上。随
着爬虫技术的不断更新进步,普通用户也有通过浏览器接收HTML 页面的需求。如果只是
直截了当地阻止用户对 HTML 页面进行下载,即便在很大程度上对恶意爬虫进行了防御,
但也对用户的体验效果造成了一定的影响。根据爬虫的生命周期,我们可以看出,针对恶
意爬虫的防御一直时处于被动状态,与爬虫的存在时间和成本有着不对称的特性,HTML
页面长时间不会发生变化,以此我们可以将对 HTML 页面的预解析看作是一个离线过程,
所以攻击者就有了大量的时间针对HTML 页面进行分析,从而编写出更为高效稳定的爬虫
解析规则。再根据大批量获取的HTML 页面,在较短时间之内便可获得大量有效数据。
现有的网络爬虫检测和防御方案,也是基于传统的防御模式来实现的,通过检测用户
(包括网络爬虫)的访问频率,行为模式等,进行对恶意网络爬虫的识别。这种方案的弊端
在以上所言中,对目前存在的而已爬虫的检测和防御技术进行了描述,这些这些方式
都是根据恶意爬虫的访问频率、爬虫所收集的 WEB 日志以及恶意爬虫的访问规律这些信
息来对恶意爬虫进行检测和防御的。虽然这些方式在一定程度上能够检测出爬虫并针对其
特性进行防御,但是如果爬虫发生规律性变化,或者攻击者使用某种技术改变其特定静态
特性,则这些方法都会失效,所以上述方式在针对动态复杂的恶意爬虫时则暴露出很多弊
第1 章是本文的绪论部分,首先通过讲述研究背景和意义来说明现在的网络环境以及
其所存在的风险;然后通过查阅文献,总结出现在国内外针对恶意爬虫防御技术的研究现
第2 章主要介绍了现有恶意爬虫从检测到防御的相关技术,以及防御系统性能的相关
第3 章主要从安全性和系统性能等方面对恶意爬虫主动防御技术进行研究,首先介绍
了防御系统整体框架,然后对本章中所用到的 WEB 页面动态化技术、动态化跳变策略进
第4 章对系统的主要部分进行了介绍,其中包括人机验证子系统、动态化跳变子系统
恶意爬虫的检测一直是研究人员重点关注问题,所以研究恶意爬虫的防御机制也至关
录、Agent 属性等数据进行分析,都能够直接检测出网络爬虫。这种检测技术能够有效的
检测出非法请求,但是却无法应对网络爬虫易变化、能模拟的特性,从而很容易被攻击者
的差别,能被多种智能算法如决策树、马尔科夫模型等识别。这种机制能够结合语法分析
所不同,则可以将其用于检测。这种方式能够提取并分析点击时间、访问的停留时长以及
进行检测,可以利用超文本协议的特点、通过设置网站陷阱将爬虫捕获。相较于其他方式,
虫新特性的检测机制,该方法具有良好的效果,但此方法属于静态检测机制,而爬虫又是
在解决了恶意爬虫检测这一基础问题之后,就要对恶意爬虫进行防御。较为常见的爬
虫防御机制通常是通过对可疑目标IP 地址进行封禁、使用验证码进行认证或者利用网页页
基于 BreakOut 异常检测算法,通过将检测到的异常 IP 流量进行封杀的方式降低异常流量
所占比例,以此缓解网络压力。该方法过度依赖检测结果,对检测结果的准确性有很高的
要求,如检测结果存在偏差则会误封正常用户的IP 地址,从而影响正确用户的体验。而且
IPv4 地址存在一定的局限性,多数用户通过同一IP 出口,如果对IP 地址进行封杀,则会
同时封杀大量用户,使得其他正常用户无法对Web 网站进行正常访问。所以该方法在封禁
拦截。但从当前的技术研究中来看,已经出现了针对验证码防御机制的识别策略,能够快
速精确的对验证码进行识别和提交,使得该防御手段并无法达到预期效果。通过对验证方
进行分析分类,在一定程度上能够限制恶意爬虫的访问,但现有的恶意爬虫技术已经有能
以上对恶意爬虫的检测方式和防御方式进行了简要分析,从上述方法来看,常用的防
御手段都是以检测结果为基础,再进行针对性的防御。这些防御机制能够较好的针对个性
化的恶意爬虫,对其进行有效防御,但在应对复杂多变的、或采用特殊技术的爬虫时,此
随着网络技术的日益发展,网络环境在不可预测的攻击下也愈发恶劣,以往使用的网
络爬虫防御手段都处于非常被动的状态,当收到恶意攻击时才会进行防御,这种被动的防
御方式难以应对现在日益多变的攻击手段,逐渐暴露了其局限性。为了改变这种不平等的
处境,本文采取了主动防御的方式,使防御者在与攻击者博弈的过程中改变其被动的处境,
首先占据更多的优势。动态防御技术使主动防御中的重要研究领域,转移目标将改变网络
攻击和防御规则的观念。灵活的安全目标系统通过控制多级网络系统中的路径并修改动态
网络配置特征和不同的网络组件来主动创建动态且稳定的网络环境,以这种方式解除了防
御过程中对环境的依赖性。动态防御技术安全性的概念使动态地更改Web 上的体系结构和
动态防御技术作为全新的防御方式,其中“变化方式”,“如何变化”,“何时变化”
这三点是首要解决的关键点,首先这三点的目的是解决原有恶意爬虫防御手段中的静态性、
稳定性和同构性这三个缺点,通过动态防御技术使得攻击者无法获取到确定的攻击点,以
动态的方式对目标进行保护。这种防御技术在国内外已经有了非常成熟的研究成果,可以
从多方面来实现动态防御的目的,如将软件或 WEB 页面进行动态化处理的方式、采用网
络端口动态跳变技术以及对受保护系统进行底层动态化等等。曾有学者提出了一种基于端
信端口,来实现隐藏通信内容。文中采用动态地方式,全程自动化地改变 WEB 服务器的
主动防御技术中的一个关键技术点是如何解决采用动态防御方式时所产生的软硬件
资源消耗,在这期间,多为研究人员对主动防御技术进行了比较和探讨,并根据所得实验
结果采用一种较为高效的动态端口跳变策略,根据时间节点和特定事件触发来进行动态跳
变,在这种前提下更够在一定程度上降低主动防御技术所产生的资源消耗,但是仍然没有
移动目标防御中较为关键的是动态策略带来的负面的资源消耗,现阶段己经有很多研
究针对防御性能进行研究,多名学者对移动目标防御机制进行了对比,并根据分析内容分
响应时间、吞吐量和并发数作为 WEB 网站的主要性能指标,其主要衡量的是 WEB
系统的服务提供能力,在 WEB 系统提供服务时主要包含这四个处理过程:客户端和服务
器端建立连接;客户端向服务器发送HTTP 请求;服务器在处理完客户端请求之后,要向
客户端发送响应消息;最后客户端和服务器端都可以关闭套接字来结束TCP/IP 对话。
吞吐量是单位时间处理的请求数,通常用TPS 来表示,是系统容量的直观体现。
并发数是系统同时能处理的请求数,对于同时在线用户数高的,短时间有大量用户使
用的,譬如抢购类网站要求高,如果要让用户在短时间内都能访问到系统,需要有极高的
传统的恶意爬虫防御手段是静态低效的,为了解决这个问题,达到更为高效精准的防
御,本章节采用Web 页面动态化的方式来研究恶意爬虫主动防御技术,首先系统地介绍了
恶意爬虫主动防御模型的技术框架和工作流程;其次通过对动态算法进行比较分析和研究
来确定动态化跳跃策略;然后通过实验分析来确定动态化技术。首先是确定主动防御程序