
近些年来,互联网技术的飞速发展为人们对网络的使用带来了巨大的便利,但是网络信息纷乱繁杂,所以网络爬虫应运而生。虽然网络爬虫有效的提高了用户在互联网上的数据检索能力,但是其所带来的危害也不容忽视。
本文就网络环境中难以检测和防御的恶意爬虫及其变种进行研究,在已有研究的基础上介绍了一种恶意爬虫主动防御技术,采用动态化的方式改变WEB页面易被爬取的静态特征,以此来应对复杂多变的恶意爬虫。
网络爬虫[1],是一种能够通过浏览器在网络上模拟人类交互、自动向网站发起请求、进行数据检索并将其抓取下载的应用程序或者脚本[3]。网络爬虫可分为以下几种类型[5]:
这类爬虫能够在全互联网中大范围地爬行大量数据,所以对于爬行速度以及存储空间要求很高,但对于爬行页面的顺序要求相对较低。
能选择性地爬取相关信息,为特定的人群提供服务。相较于通用网络爬虫,聚焦网络爬虫能更好地节约网络及硬件资源。
针对已经下载的网页,在需要更新时只根据原网页下载已改变的部分,在一定程度上使其所爬行的网页是最新的,能有效地减少所下载的数据量。
由于网页可分为表层网页和深层网页,所以对于来说深层爬虫最重要的部分就是表单填写,根据表单填写方式的不同,又可以分为基于领域知识的表单填写和基于网页结构分析的表单填写。
网络爬虫在为用户带来便利的同时,也为网络带来了安全隐患。有一类爬虫,通过分析并自行构造参数对非公开接口进行数据爬取或提交,获取对方本不愿意被大量获取的数据,并有可能给对方服务器性能造成极大损耗或经济损失,我们将其定义为恶意爬虫。这些爬虫的存在,会占用网络带宽,并且增加服务器的负担,恶意爬虫所造成的安全隐患主要体现在以下几个方面:
根据恶意网络爬虫的不同工作形式,我们可以将其简单的分为两种。一类是在全网进行特定目的爬取,尽可能在全网获得更多的数据,无论数据的真实性是否达到标准。这种类型的爬虫一般采用深度优先的方式对所关注的目标进行遍历,他们同样可以采取广度优先的方式去爬取目标超链接,所以在此基础上,这类爬虫需要提前获取到目标网页中所有超链接及其解析规则。另一种爬虫与上一种相反,这类爬虫具有固定目标,针对目标进行预先买球官方网站解析,在了解到目标HTML之后,再针对其规则进行特定的爬虫规则编写,在完成好特定恶意爬虫的编写后,才能将其部署到目标中。这类爬虫能根据指令,在指定页面全自动地对目标数据进行爬取。从爬虫性能上来讲,后者是在有目标规则的前提下进行编写的爬虫,具有更强的针对性,这类爬虫具有很广泛的应用,例如在购物网站中进行商品抢购、对火车票、演唱会门票进行代抢、对目标进行恶意评价等。这种应用在特定场景的恶意爬虫都有同一个特点,就是它们在进行数据爬取之前都有类似网络攻击的前期分析过程,这个分析过程一般可以分为三步,第一步是通过对目标页面的整体分析,确定如何从该页面获取HTML代码、如何模拟原网页的HTTP请求过程以及前期爬取的反馈内容中的精确数据,从中获取准确的目标WEB页面解析规则。总而言之,第一步的工作即是获取到真实有效的目标网页的特定内容。在第一步的前提下,已经获取到目标WEB页面的解析规则以及HTTP请求过程,这时第二步则是将完成编写的爬虫安置在目标页面并对其数据进行爬取,将所获取的所有信息下载。最后则是将分析内容进行存储。
目前网络爬虫技术在不断发展,恶意网络爬虫的入侵方式及其相应的防御方式也在不断更新,虽然现有的检测防御手段具有一定的效果,但是在应对具有动态变化能力的恶意网络爬虫时仍有不足之处。本文通过翻阅各类文献和大量实验结果分析,汇总了当前有效的恶意爬虫检测防御技术,如图1-2所示。
综上所述,恶意网络爬虫抓取有效信息是一步一步完成的。大致可以分为HTML页面预解析、HTML页面下载和HTML页面解析三个部分来得到正确有效的数据。在这个过程中,大部分情况下攻击者只需要参与到规则解析及编写和爬虫脚本的部署这两个阶段。在现有的恶意爬虫检测和防御技术中,重点手段是抑制恶意爬虫对HTML页面的下载过程。据研究统计表明,多数攻击者将大量时间消耗在了针对HTML页面解析规则的编写上。随着爬虫技术的不断更新进步,普通用户也有通过浏览器接收HTML页面的需求。如果只是直截了当地阻止用户对HTML页面进行下载,即便在很大程度上对恶意爬虫进行了防御,但也对用户的体验效果造成了一定的影响。根据爬虫的生命周期,我们可以看出,针对恶意爬虫的防御一直时处于被动状态,与爬虫的存在时间和成本有着不对称的特性,HTML页面长时间不会发生变化,以此我们可以将对HTML页面的预解析看作是一个离线过程,所以攻击者就有了大量的时间针对HTML页面进行分析,从而编写出更为高效稳定的爬虫解析规则。再根据大批量获取的HTML页面,在较短时间之内便可获得大量有效数据。
现有的网络爬虫检测和防御方案,也是基于传统的防御模式来实现的,通过检测用户(包括网络爬虫)的访问频率,行为模式等,进行对恶意网络爬虫的识别。这种方案的弊端是,网络爬虫的编写者有足够的时间和精力来针对静态的HTML。
在以上所言中,对目前存在的而已爬虫的检测和防御技术进行了描述,这些这些方式都是根据恶意爬虫的访问频率、爬虫所收集的WEB日志以及恶意爬虫的访问规律这些信息来对恶意爬虫进行检测和防御的。虽然这些方式在一定程度上能够检测出爬虫并针对其特性进行防御,但是如果爬虫发生规律性变化,或者攻击者使用某种技术改变其特定静态特性,则这些方法都会失效,所以上述方式在针对动态复杂的恶意爬虫时则暴露出很多弊端。
第1章是本文的绪论部分,首先通过讲述研究背景和意义来说明现在的网络环境以及其所存在的风险;然后通过查阅文献,总结出现在国内外针对恶意爬虫防御技术的研究现状,在此基础上完成恶意爬虫主动防御技术的研究。
第2章主要介绍了现有恶意爬虫从检测到防御的相关技术,以及防御系统性能的相关介绍。
第3章主要从安全性和系统性能等方面对恶意爬虫主动防御技术进行研究,首先介绍了防御系统整体框架,然后对本章中所用到的WEB页面动态化技术、动态化跳变策略进行研究。
第4章对系统的主要部分进行了介绍,其中包括人机验证子系统、动态化跳变子系统以及后台业务支撑子系统。
恶意爬虫的检测一直是研究人员重点关注问题,所以研究恶意爬虫的防御机制也至关重要,现在主流的恶意网络爬虫的检测方式[2]有五种。
(1)基于Web日志的检测技术[4],通过对存放于Web日志中的robots.txt文件请求记录、Agent属性等数据进行分析,都能够直接检测出网络爬虫。这种检测技术能够有效的检测出非法请求,但是却无法应对网络爬虫易变化、能模拟的特性,从而很容易被攻击者躲过检测;
(2)基于访问模式的检测技术[13],网络爬虫在对目标进行爬行时,会产生各类不同的差别,能被多种智能算法如决策树、马尔科夫模型等识别。这种机制能够结合语法分析和模式分析这两种方法的特点,有效地弥补了单一语法分析的不足;
(3)基于访问行为的检测技术[14],由于网络爬虫目的不同,所导致的访问特征也有所不同,则可以将其用于检测。这种方式能够提取并分析点击时间、访问的停留时长以及加载详情等有利特征对网络爬虫进行检测;
(4)基于陷阱捕获的检测技术[8],这是一种被动检测技术,能够对恶意以及伪装爬虫进行检测,可以利用超文本协议的特点、通过设置网站陷阱将爬虫捕获。相较于其他方式,这种方式具有检测速度快、不用依赖过程会线)基于访问序列的检测技术[7],这种方法是DusanStevanovic等人研究出的应对爬虫新特性的检测机制,该方法具有良好的效果,但此方法属于静态检测机制,而爬虫又是复杂且多变的,所以只使用一种检测机制仍然无法达到预期效果。
在解决了恶意爬虫检测这一基础问题之后,就要对恶意爬虫进行防御。较为常见的爬虫防御机制通常是通过对可疑目标IP地址进行封禁、使用验证码进行认证或者利用网页页面元素的随机化来进行主动防御[6]。
利用直接封禁IP地址的方式来实现防御效果是一种常见的防御手段。任宏伟[9]曾提出基于BreakOut异常检测算法,通过将检测到的异常IP流量进行封杀的方式降低异常流量所占比例,以此缓解网络压力。该方法过度依赖检测结果,对检测结果的准确性有很高的要求,如检测结果存在偏差则会误封正常用户的IP地址,从而影响正确用户的体验。而且IPv4地址存在一定的局限性,多数用户通过同一IP出口,如果对IP地址进行封杀,则会同时封杀大量用户,使得其他正常用户无法对Web网站进行正常访问。所以该方法在封禁违规地址时并不能保证正常用户的体验。
另一种常用的防御方式是采用验证码的形式,鲁念平[15]通过检测结果对恶意爬虫进行拦截。但从当前的技术研究中来看,已经出现了针对验证码防御机制的识别策略,能够快速精确的对验证码进行识别和提交,使得该防御手段并无法达到预期效果。通过对验证方式的研究,欧阳志友等人[10]提出了行为式验证码,这种验证方式能够对访问者的鼠标轨迹进行分析分类,在一定程度上能够限制恶意爬虫的访问,但现有的恶意爬虫技术已经有能力通过事先录入鼠标行为轨迹进行类人行为的模拟,从而安全绕过该验证方式。
以上对恶意爬虫的检测方式和防御方式进行了简要分析,从上述方法来看,常用的防御手段都是以检测结果为基础,再进行针对性的防御。这些防御机制能够较好的针对个性化的恶意爬虫,对其进行有效防御,但在应对复杂多变的、或采用特殊技术的爬虫时,此类方法并不能达到预期效果,所以仍存在很大缺陷。
随着网络技术的日益发展,网络环境在不可预测的攻击下也愈发恶劣,以往使用的网络爬虫防御手段都处于非常被动的状态,当收到恶意攻击时才会进行防御,这种被动的防御方式难以应对现在日益多变的攻击手段,逐渐暴露了其局限性。为了改变这种不平等的处境,本文采取了主动防御的方式,使防御者在与攻击者博弈的过程中改变其被动的处境,首先占据更多的优势。动态防御技术使主动防御中的重要研究领域,转移目标将改变网络攻击和防御规则的观念。灵活的安全目标系统通过控制多级网络系统中的路径并修改动态网络配置特征和不同的网络组件来主动创建动态且稳定的网络环境,以这种方式解除了防御过程中对环境的依赖性。动态防御技术安全性的概念使动态地更改Web上的体系结构和代码组件成为可能。
动态防御技术作为全新的防御方式,其中“变化方式”,“如何变化”,“何时变化”这三点是首要解决的关键点,首先这三点的目的是解决原有恶意爬虫防御手段中的静态性、稳定性和同构性这三个缺点,通过动态防御技术使得攻击者无法获取到确定的攻击点,以动态的方式对目标进行保护。这种防御技术在国内外已经有了非常成熟的研究成果,可以从多方面来实现动态防御的目的,如将软件或WEB页面进行动态化处理的方式、采用网络端口动态跳变技术以及对受保护系统进行底层动态化等等。曾有学者提出了一种基于端口信息跳变的主动防御技术REF_Re\r\h[3],作者从军事跳变中得到启发,通过不断地自动化地改变通信端口,来实现隐藏通信内容。文中采用动态地方式,全程自动化地改变WEB服务器的配置信息,通过大量实验,最终实现对WEB服务器的动态保护。
主动防御技术中的一个关键技术点是如何解决采用动态防御方式时所产生的软硬件资源消耗,在这期间,多为研究人员对主动防御技术进行了比较和探讨,并根据所得实验结果采用一种较为高效的动态端口跳变策略,根据时间节点和特定事件触发来进行动态跳变,在这种前提下更够在一定程度上降低主动防御技术所产生的资源消耗,但是仍然没有获得更为理想的结果。
移动目标防御中较为关键的是动态策略带来的负面的资源消耗,现阶段己经有很多研究针对防御性能进行研究,多名学者对移动目标防御机制进行了对比,并根据分析内容分别提出过高效的跳变策略REF_Re\r\h[12],如根据事件和时间等进行跳变切换,通过相应策略能够很好降低跳变所带来的资源消耗,但是无法做到较为理想的效果。
响应时间、吞吐量和并发数作为WEB网站的主要性能指标,其主要衡量的是WEB系统的服务提供能力,在WEB系统提供服务时主要包含这四个处理过程:客户端和服务器端建立连接;客户端向服务器发送HTTP请求;服务器在处理完客户端请求之后,要向客户端发送响应消息;最后客户端和服务器端都可以关闭套接字来结束TCP/IP对话。
吞吐量是单位时间处理的请求数,通常用TPS来表示,是系统容量的直观体现。
并发数是系统同时能处理的请求数,对于同时在线用户数高的,短时间有大量用户使用的,譬如抢购类网站要求高,如果要让用户在短时间内都能访问到系统,需要有极高的并发能力支持。
传统的恶意爬虫防御手段是静态低效的,为了解决这个问题,达到更为高效精准的防御,本章节采用Web页面动态化的方式来研究恶意爬虫主动防御技术,首先系统地介绍了恶意爬虫主动防御模型的技术框架和工作流程;其次通过对动态算法进行比较分析和研究来确定动态化跳跃策略;然后通过实验分析来确定动态化技术。首先是确定主
DB3301∕T 0435-2023 公共场所自动体外除颤器设置与维护管理规范.docx
DB3311∕T 21-2014 生态休闲养生(养老)基地运营服务规范.docx
DB64∕T 1860-2023 贺兰山东麓酿酒葡萄质量控制技术规范.docx
DB3301∕T 1128-2023 高含油量油菜生产技术规程.docx
DB3302∕T 1138-2022 食品安全责任保险风险防控服务规范.docx
DB3303∕T 017-2020 黄瓜霜霉病、白粉病测报调查技术规程 .docx
数智化零售品类管理实务情境一即时零售高频刚需品类管理40课件讲解.pptx
carm-非侵入式脑机接口在神经康复临床应用中的专家共识解读PPT课件.pptx
深度解析(2026)《SHT 1841-2023乙烯-丙烯-二烯烃橡胶(EPDM)》.pptx
数智化零售品类管理实务情境一即时零售高频刚需品类管理44课件讲解.pptx
数智化零售品类管理实务情境一即时零售高频刚需品类管理09课件讲解.pptx
原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者