一种网页篡改的检测方法及装置制造方法

文档序号:6521589阅读:307来源:国知局
一种网页篡改的检测方法及装置制造方法【专利摘要】本发明公开了一种网页篡改的检测方法,包括:代理服务器获取源站针对访问请求的响应网页;所述代理服务器在所述网页中嵌入篡改检测脚本;将所述网页发送至发出访问请求的客户端浏览器;所述浏览器执行所述篡改检测脚本,检测所述网页是否被篡改;若所述网页已被篡改,则将所述网页上报检测服务器。本发明的上述方案既克服了现有技术中由统一的网页篡改检测服务器集中检测带来的效率低下问题,也克服了需要对每个网页分别嵌入篡改检测脚本而导致的灵活性问题,其在不影响用户访问网页的同时极大地提高了网站安全性。【专利说明】一种网页篡改的检测方法及装置【
技术领域
】[0001]本发明涉及计算机网站安全领域,特别是涉及一种网页篡改的检测方法及装置。【
背景技术
】[0002]随着互联网的快速发展,互联网上网站数量也越来越多。许多网站都是实体机构及组织在互联网中的形象展示。而一些具有不良企图的组织或个人通过扫描服务器的弱口令、漏洞,然后攻击网站并对其进行恶意篡改。[0003]虽然目前已有防火墙、入侵检测等安全防范手段,但现代操作系统的复杂性和多样性导致系统漏洞层出不穷,防不胜防。黑客入侵和篡改页面的事件时有发生。针对此,网页防篡改系统应运而生。例如,给网页挂恶意链接,如黑链、挂马链接等,这些是网页篡改的主要表现形式。[0004]目前,国内外主要采用以下两类方式检测网页篡改内容:[0005](I)静态特征匹配方式:[0006]即通过特征串(即大量人工收集的关键字)匹配网页中的HTML正文,以判断其是否被加入恶意链接。[0007](2)在网页发布系统中增加网页内容审核和校验机制:[0008]即在网页发布系统中构建一个网页内容实时检测系统,所有网页发布的内容都经过该系统,经过确认后才能发布,同时还建立了网页内容指纹库,篡改检测系统通过定期扫描网页内容和指纹库内容对比来发现网页是否被黑链篡改。[0009]现有技术中,通常由专门的网页防篡改系统或搜索引擎对网页篡改进行检测。其将先将从源站下载用户请求的网页,并利用篡改特征库中的篡改特征规则匹配所述网页内容,如果发现与所述篡改特征规则相匹配的内容,则认为该网页被篡改,否则将其发送给用户。所述篡改特征规则通常由正则表达式表示,而使用正则表达式匹配网页内容比较耗时,效率低下,实时性比较差。目前网页篡改方式层出不穷,日益变化,篡改特征规则库中的篡改特征规则也将随之增加,这就意味着每一次检测都将耗费大量资源,且用户体验不佳,导致用户对网站的期望值下降,对于一些商业网站来说,这将是致命的。[0010]因此需要一种新的检测网页篡改的方法,在不影响用户访问网页速度的前提下,提供网站的安全性,为用户提供更好地服务。【
发明内容】[0011]为解决现有技术中存在的上述问题,本发明提出了一种网页篡改的检测方法,在用户毫无觉察的情况下检测网页中的篡改内容,为用户提供最佳的安全服务。[0012]根据本发明一方面,其提供了一种网页篡改的检测方法,包括:[0013]代理服务器获取源站针对访问请求的响应网页;[0014]所述代理服务器在所述网页中嵌入篡改检测脚本;[0015]将所述网页发送至发出访问请求的客户端浏览器;[0016]所述浏览器执行所述篡改检测脚本,检测所述网页是否被篡改;[0017]若所述网页已被篡改,则将所述网页上报检测服务器。[0018]可选地,所述篡改检测脚本通过判断所述网页中是否被挂马来检测所述网页是否被篡改。[0019]可选地,所述篡改检测脚本通过判断所述网页中是否存在黑链来检测所述网页是否被篡改。[0020]可选地,还包括:[0021]判断所上报的网页是否存在于白名单或黑名单中,其中,所述白名单和黑名单存储于所述检测服务器中;[0022]若所述网页存在于白名单中,则不作处理;[0023]若所述网页存在于黑名单中,则存入篡改数据库,并发出警报。[0024]可选地,还包括:[0025]在所述检测服务器中对所上报的网页进行进一步检测。[0026]可选地,在所述检测服务器中对所述网页进行进一步检测包括:[0027]根据篡改特征库检测网页中的篡改内容,提取所述篡改内容中的黑词-黑链对,所述黑词-黑链对由黑词及其对应的黑链组成;[0028]若所述黑词-黑链对的出现频率高于预定阈值,则将其存入黑词-黑链库中;[0029]根据黑词-黑链库检测网页中的篡改内容;[0030]若待检测网页中出现的黑词对应的链接存在于所述黑词-黑链库中该黑词对应的黑链集中,则确定该待检测网页被篡改。[0031]可选地,所述发出警报包括:[0032]将篡改信息发送至通知服务器;[0033]所述通知服务器通过邮件/短信方式向网站管理员发出所述警报信息。[0034]可选地,所述篡改检测脚本为Javascript脚本。[0035]根据本发明的另一方面,其还提供了一种网页篡改的检测装置,包括:[0036]代理模块,其获取源站针对访问请求的响应网页,并在网页中嵌入篡改检测脚本;[0037]发送模块,其将所述网页发送至发出访问请求的浏览器模块;[0038]浏览器模块,其用于执行所述篡改检测脚本,检测所述网页是否被篡改;[0039]上报模块,若所述网页已被篡改,其将所述网页上报检测服务器。[0040]可选地,所述篡改检测脚本通过判断所述网页中是否被挂马来检测所述网页是否被篡改。[0041]可选地,所述篡改检测脚本通过判断所述网页中是否存在黑链来检测所述网页是否被篡改。[0042]可选地,还包括:[0043]判断模块,用于判断所上报的网页是否存在于白名单或黑名单中,其中,所述白名单和黑名单存储于所述检测服务器中;若所述网页存在于白名单中,则不作处理;若所述网页存在于黑名单中,则存入篡改数据库,并发出警报。[0044]可选地,还包括:[0045]检测模块,用于对所上报的网页进行进一步检测。[0046]可选地,所述检测模块包括:[0047]提取模块,其根据篡改特征库检测网页中的篡改内容,提取所述篡改内容中的黑词-黑链对,所述黑词-黑链对由黑词及其对应的黑链组成;[0048]库生成模块,其在所述黑词-黑链对的出现频率高于预定阈值时,将黑词-黑链存入黑词-黑链库中;[0049]检测子模块:其根据黑词-黑链库检测网页中的篡改内容,若待检测网页中出现的黑词对应的链接存在于所述黑词-黑链库中该黑词对应的黑链集中,则确定该待检测网页被篡改。[0050]可选地,所述判断模块进一步包括:[0051]警报模块,其将篡改信息发送至通知模块;[0052]通知模块,其通过邮件/短信方式向网站管理员发出所述警报信息。[0053]可选地,所述篡改检测脚本为Javascript脚本。[0054]可见,本发明提出的上述网页篡改的检测方法及装置,通过专门设置的代理服务器在网页源码中嵌入篡改检测脚本,无需网站管理员手动嵌入篡改检测脚本,在用户打开浏览器的同时由浏览器执行所述篡改检测脚本对网页进行检测。且本发明提出的上述方案中的篡改检测脚本为javascript脚本,其在启动后只在后台执行,对用户不会产生任何影响。这种检测方法既克服了现有技术中由统一的网页篡改检测服务器集中检测带来的效率低下问题,也克服了需要每个网站管理员手动嵌入篡改检测脚本而导致的灵活性问题,其在不影响用户访问网页的同时极大地提高了网站安全性。【专利附图】【附图说明】[0055]图1是本发明提出的一种网页篡改的检测方法流程图;[0056]图2是本发明实施例中检测服务器根据上报网页的篡改内容进行处理的方法流程图;[0057]图3是本发明实施例中检测服务器对上报网页的进一步检测方法流程图;[0058]图4是本发明提出的一种网页篡改的检测装置结构图;[0059]图5是本发明中检测服务器中对上报网页做进一步检测的装置结构图。【具体实施方式】[0060]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。[0061]图1示出了本发明提出的一种网页篡改的检测方法流程图。如图1所示,该方法包括:[0062]步骤101:代理服务器获取源站针对访问请求的响应网页;[0063]步骤102:所述代理服务器在所述网页中嵌入篡改检测脚本;[0064]步骤103:将所述网页发送至发出访问请求的客户端浏览器;[0065]步骤104:所述浏览器执行所述篡改检测脚本,检测所述网页是否被篡改;[0066]步骤105:若所述网页已被篡改,则将所述网页上报检测服务器。[0067]下面根据具体的实施例对本发明提出上述网页篡改的检测方法的各个步骤进行详细说明。[0068]步骤101中,代理服务器获取源站针对访问请求的响应网页。[0069]代理服务器通常的功能是代理网络用户取得网络信息,代理服务器通常是介于浏览器和Web网站服务器之间的一台服务器,有了它之后,浏览器不是直接到Web网站服务器上取回网页,而是向代理服务器发出请求,代理服务器根据所述请求从Web网站服务器获取所请求的网页并返回给浏览器。通常代理服务器都设置一个较大的硬盘缓冲区,它不断的将新取得的数据储存到它本地的硬盘缓冲区中,如果浏览器请求的数据在它本机的存储器上,而且是最新的,那么它就不重新从Web服务器区数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览器速度和效率。[0070]步骤102:所述代理服务器在所述网页中嵌入篡改检测脚本。[0071]所谓网页篡改就是一些具有不良企图的组织或个人通过扫描服务器的弱口令、漏洞,获得网站的账户权限后,对网站的网页源码进行恶意修改。最典型的一种修改方式就是在网页源码中插入恶意链接,如挂马链接和黑链等。[0072]网页是构成网站的基本元素,通常网页都是由超文本标记语言(HTML语言)编写而成的文件,其需要通过浏览器阅读。而通过浏览器打开某个网页时,浏览器执行相应的HTML文件,根据HTML文件中的格式显示网页的文字、图片等等。黑客通过各种方式获得网站的管理员权限后,对该网站上的网页源码即其对应的HTML文件进行修改,在其中一些不良元素,如黑链和挂马链接等。而黑客在网页中所植入的黑链和挂马链接用户往往无法察觉,其可能是通过改写网页对应的HTML文件,将黑链或挂马链接隐藏起来,如黑链或挂马链接的显示格式设置为不可见、或浏览器显示区域之外,或者隐藏在一张图片底层等等。在用户通过浏览器打开该被篡改的网页时,就可能直接转向带有木马病毒的恶意网站,或者直接执行木马病毒等等。[0073]目前对网页篡改的检测机制是由专门的检测工具或者搜索引擎集中检测,即对用户请求的网页先预下载之后进行检测,并在检测通过之后发送给用户。这在网站较多和/或访问网站用户较多时,会导致用户的访问速度下降。[0074]鉴于此,本发明利用代理服务器的特性,由代理服务器在所抓取的用户请求网页源码中嵌入检测网页篡改内容的篡改检测脚本。采用这种方式的优点在于:一、无需专门的服务器对用户请求的网页进行集中检测,提高了效率;二、无需在网页源码中手动嵌入篡改检测脚本,便于统一管理,并且脚本的嵌入对网站开发人员及用户都是透明的。[0075]代理服务器在具有了嵌入篡改检测脚本这一功能之后,对从Web网站服务器抓取的网页对应的HTML文件中嵌入篡改检测脚本。具体地,可以在获取的HTML文件的头标签head中插入嵌入篡改检测脚本。可选地,本发明中篡改检测脚本采用Javascript脚本来实现。Javascript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给Html网页添加动态功能。[0076]Javascript脚本程序是纯文本语句,不需要编译,因此其可以由浏览器直接解释执行。在将检测网页是否被篡改的Javascript语句嵌入到网页对应的HTML文件中,用户在打开该网页时就可触发该Javascript脚本执行相应操作,以检测网页中的内容是否被篡改。[0077]下面以嵌入Javascript脚本举例说明如何在HTML文件的头标签head中嵌入篡改检测脚本:[0078]假设HTML文件为:[0079]<htmlxmlns=http://www.XXXX.cn/xhtml><head><^也>欢迎访问XXXX网站!〈/title〉</head>嵌入Javascript脚本之后如下所示:<htinlXmIηS=`http://www.XXXX.cn/xhtml><head><廿也>欢迎访问XXXX网站!</til:le><!--开始嵌入JavaScript代码--><scriptlanguage」”javascript,,type=,,text/javascriptw>functionsctAdd(){varAtag=docxiTrient.gclFlcrncntByTag(“a”);if(Atag.style.1ndexOf(“display:n()ne”)){初步命中黑链,需上传服务器检测;}〈/script.〉<!--结束--></head>[0080]上述示例仅用作举例说明,本发明对脚本的嵌入形式并不做具体限定。[0081]采用Javascript脚本嵌入的方式除了能提高检测速度外,另一个优点是Javascript脚本程序只在后台执行,用户对其不可见,因此不会妨碍用户的其它操作。[0082]本发明中除了使用Javascript脚本外,还可以使用其他任何可以嵌入到网页中的脚本语言,只要浏览器能够解释执行即可,本发明对此不作具体限定。[0083]步骤103:将所述网页发送至发出访问请求的客户端浏览器。该步骤中,代理服务器在获取的网页HTML文件中嵌入篡改检测脚本后,将所述网页HTML文件发送给请求访问该网页的客户端浏览器。[0084]步骤104:所述浏览器执行所述篡改检测脚本,检测所述网页是否被篡改。[0085]浏览器在接收到代理服务器发送的网页HTML文件后,在加载完该HTML文件后,开始执行其头标签head中插入的篡改检测脚本由所述篡改检测脚本检测用户打开的网页源码中是否存在篡改内容。[0086]所述篡改检测脚本的检测方式可以有多种,本发明一实施例中,篡改检测脚本通过判断所述网页中是否被挂马来检测所述网页是否被篡改。[0087]所谓挂马,就是黑客通过各种手段,包括SQL注入,网站敏感文件扫描,服务器漏洞,网站程序Oday等各种方法获得网站管理员账号,[0088]然后登陆网站后台,通过国数据库备份/恢复或者上传漏洞获得一个webshell,利用所获得的webshell修改网站页面的内容,向网页中加入恶意转向代码,即挂马链接。当用户访问被加入挂马链接的页面时,自动的访问被转向的地址或者下载木马病毒。如果进入了被挂马的网站,则会感染木马病毒,并丢失大量的宝贵文件资料和账户密码,其危害极大。[0089]挂马链接主要目的是散播木马病毒或骗取流量和点击率等。挂马链接的插入方式多种多样,如通过iframe框架进行挂马链接的插入:[0090]〈iframesrc=http://www.xxx.com/example,html[0091]width=Oheight=0><iframe>[0092]上述插入在网页源码中的语句表示在打开某一网站“www.xxx.com”的同时,打开另一个网页“example,html”,而“example,html”网页极有可能包含大量的木马病毒,也可能仅仅是为了骗取流量或点击率。挂马方式多种多样,上面仅为举例说明,本领域技术人员应当理解本发明中涉及的挂马方式不限于此。[0093]本发明另一实施例中,篡改检测脚本通过判断所述网页中是否存在黑链来检测所述网页是否被篡改。[0094]插入黑链的主要目标就是提升自己在搜索引擎中的排名。万维网成为大量信息的载体,为有效地提取并利用这些信息,搜索引擎(SearchEngine)作为一个辅助人们检索信息的工具,成为用户访问万维网的入口和指南。[0095]例如,某新网站在搜索引擎中的排名很靠后,之后某个权利高(排名好,质量高)的网站和这个新开的网站做了链接,那么搜索引擎就会认为这个新开的网站既然可以和这样权重高的网站做上链接,那么它的权重也不会低,所以这个网站在搜索弓丨擎中的排名就会提升。如果有多个权重高的网站也都和这个网站做了链接,那么它的排名将会上升得非常快。[0096]反之,一个新网站的权重不会很高,搜索引擎不会给它很高的排名,其在搜索结果中的排名就会比较靠后。对于搜索引擎的这种特性,目前有些工具提供了黑链技术,即通过入侵一些权重高的网站,入侵成功后将网站的链接插入到被入侵网站的页面中,从而实现链接的效果,并且通过隐藏网站链接,使别人在被入侵网站的页面上是看不到任何链接。[0097]然而,目前采用黑链技术来实现搜索排名提升的,相当一部分是游戏私服网站、盗号木马网站、钓鱼网站和广告网站等不安全网站。对于这些不安全网站,搜索引擎不会给它们很高的排名,但通过“黑链”,它们的排名就会很靠前,在这种情况下,当使用搜索引擎的时候,点击打开这些网站的概率就会很高,如果用户没有做好安全防护工作,那么就会容易就会感染网站上的病毒。[0098]现有的黑链技术中,隐藏链接有一些固定技巧,例如搜索引擎对javascript的识别不是很好,通过javascript来输出隐藏的div。这样的话,人工直接通过页面无法看到这些链接,而搜索引擎确认为这些链接是有效的。代码为:首先通过javascript写前面的div,设置display为none。然后输出一个table,table中包含了要挂的黑链。最后再通过javascript输出后半部分div。[0099]例如,黑客通过在网页的源码插入下面语句,实现在目标网页中插入黑链的目的:[0100]<ahref=“http://www.45u.com,,style=margin-left:-83791;”〉传奇私服发布</a>[0101]其中,通过设置style=^margin-left:-83791;”,使得该黑链在网页中不可见。[0102]本发明实施例中,对于黑链和/或挂马连接等恶意链接,篡改检测脚本可以通过将网页的HTML文件解析成DOMTree,并对解析后得到的DOMTree文件进行检测。DOM是文档对象化模模型(DocumentObjectModel)的简称,DOMTree是指通过DOM将HTML页面进行解析,并生成HTMLtree树状结构和对应访问方法。借助DOMTree,能够直接而且简易的操作HTML页面上的每个标记内容。[0103]以黑链检测为例加以说明。对于网页中插入的下面的黑链形式:[0104]<ahref=“http://www.45u.com”style=”display:none;”〉传奇私服发布</a>。[0105]篡改检测脚本可以如下编写:[0106]varAtag=document.gctElcmentByTag('a);if(Atag.style.1ndexOf(44display:nonew)){初步命中黑链,需上传服务器检测;}[0107]代理服务器可以将上述脚本代码插入在HTML文件的头标签head中,也可以将脚本代码嵌入HTML文件的主体标签body中。上述篡改检测脚本在执行的时候是通过从解析出的DOMTree文件中获取“a”标记,并且在该标记后跟随的style是“display:none”,即该标记后的内容的显示格式为不显示,则初步认定其为篡改内容。由于黑客为了防止用户发现其插入的黑链和挂马链接,通常将其显示格式设置为不可见。因此篡改检测脚本可以基于黑链和/或恶意链接的插入方式进行编写。[0108]以上代码仅对黑链的显示形式进行了判断,本领域的技术人员应当理解,黑链的检测规则多种多样,都可以通过编写类似脚本嵌入网页的方式进行检测。[0109]步骤105:若所述网页已被篡改,则将所述网页上报检测服务器。[0110]该步骤中,浏览器利用篡改检测脚本检测出所述网页被篡改后,将该被篡改的网页上报给检测服务器。[0111]所述检测服务器在接收到所述被篡改的网页之后,通知该网页的网站管理人员,所述管理员可以通过修改网页源码和管理权限修补漏洞。为了降低误报率,可选地,所述检测服务器根据上报网页的篡改内容做进一步处理。[0112]图2示出了本发明中检测服务器根据上报网页的篡改内容进行处理的方法流程图。如图2所示,该方法包括:[0113]步骤201:判断所上报的网页中的篡改内容是否存在于白名单或黑名单中,其中,所述白名单和黑名单存储于所述检测服务器中;[0114]步骤202:若所述网页的篡改内容存在于白名单中,则不作处理;[0115]步骤203:若所述网页的篡改内容存在于黑名单中,则存入篡改数据库,并发出警报。[0116]所述黑名单和白名单可以通过经验值以及从可靠的第三方收集获得,在白名单存储确定为正常网站的链接,而在黑名单中存储一些病毒网站、色情服务网站或在检测的过程中确定的恶意网站等的链接。黑名单和白名单的更新还可以通过各个网站管理员的反馈进行。[0117]可选地,为了提高准确率,检测服务器还对上报的网页做进一步检测。由于篡改检测脚本是嵌入在网页中的检测脚本,如javascript脚本,为了确保准确率,检测服务器对上报的网页做进一步检测。[0118]下面以检测篡改内容中的黑链为例来说明检测服务器对上报网页的进一步检测流程。本领域技术人员应当理解,下面将介绍的方法步骤虽然针对黑链,但不限于检测黑链,使用类似的方法还可以检测其它恶意链接如挂马链接等。此外,还可以采用相应的方式检测其它篡改内容。[0119]图3示出了本发明实施例中检测服务器对上报网页的进一步检测方法流程图。如图3所示,该方法包括:[0120]步骤301:根据篡改特征库检测网页中的篡改内容,提取所述篡改内容中的黑词-黑链对,所述黑词-黑链对由黑词及其对应的黑链组成;[0121]步骤302:若所述黑词-黑链对的出现频率高于预定阈值,则将其存入黑词-黑链库中;[0122]步骤303:根据黑词-黑链库检测网页中的篡改内容;[0123]步骤304:若待检测网页中出现的黑词对应的链接存在于所述黑词-黑链库中该黑词对应的黑链集中,则确定该待检测网页被篡改。[0124]本发明中,所述检测服务器先根据篡改特征库检测网页中的篡改内容。所述篡改特征库是由多个篡改关键词和/或恶意链接的正则表达式所组成。对于待检测网页,首先获取其源码,然后利用现有的篡改特征库中的正则表达式匹配所述源码,以获取与正则表达式相一致的内容。如果通过篡改特征库中的正则表达式命中待检测网页中的内容,则说明该待检测网页中存在篡改内容。[0125]正则表达式是用于进行文本匹配的工具,通常由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。正则表达式的匹配可以理解为,在给定的字符串中,寻找与给定的正则表达式相匹配的部分。有可能字符串里有不止一个部分满足给定的正则表达式,这时每一个这样的部分被称为一个匹配。匹配在本文里可以包括三种含义:一种是形容词性的,比如说一个字符串匹配一个表达式;一种是动词性的,比如说在字符串里匹配正则表达式;还有一种是名词性的,就是刚刚说到的“字符串中满足给定的正则表达式的一部分”。[0126]以下通过举例对正则表达式的生成规则进行说明。[0127]假设要查找hi,则可以使用正则表达式hi。这个正则表达式可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。在实际中,正则表达式是可以忽略大小写的。如果很多单词里都包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这此单词里面的hi也会被找出来。如果要精确地查找hi这个单词的话,则应该使用\bhi\b。其中,\b是正则表达式的一个元字符,它代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格或标点符号或换行来分隔的,但是\b并不匹配这些单词分隔符中的任何一个,它只匹配一个位置。假如要找的是hi后面不远处跟着一个Lucy,则应该用\bhi\b.*\bLucv\b。其中,.是另一个元字符,匹配除了换行符以外的任意字符。*同样是元字符,它代表的是数量——即指定*前边的内容可以连续重复出现任意次以使整个表达式得到匹配。现在\bhi\b.*\bLucy\b的意思就很明显了:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单ο[0128]例如,篡改特征库中篡改特征规则对应的正则表达式如下所示:[0129]〈script.*?>document\.write.*?\(.*?\+.*?\+.*?\+.*?\+.*?\+.*?\).*?</script〉([\S\s]+?)</div>[0130]则该正则表达式在网页中匹配命中的网页元素可以为:[0131]<script>document.write('<d'+'ivst'+'yle1+1="po'+'si'+'tio/+'n:a'+'bso/+'lu'+'te;l'+'ef+'t:'+'+'10'+'00'+'0'+'p'+'X;'+""+'y)>XXXX<script>document.write('〈'+'/d'+'i'+'v>');</script>[0132]可见,篡改特征规则对应的正则表达式用于匹配网页中具有特定格式的网页内容,如具有“〈script>document.write”和“<script>document.write(1<1+1/d'+1i1+1v>');〈/script>”元素的内容等。[0133]或如,另一篡改特征规则对应的正则表达式如下所示:[0134]<a\s*href\s*=["\1].+?["\1]\s*style=["\1][\w+\_]+:-[0-9]+.*?["Xi].*?>.*?</a>。[0135]通过该篡改特征规则能够命中的页面元素可以为:[0136]<ahref=“http://www.45u.com”style=,>margin-left:-83791;”〉;[0137]该正则表达式用于匹配网页中出现“〈ahref=”且其后面跟随的篡改关键词“style”的值中存在负值(负值表示其不在显示区域中显示)的网页内容。[0138]当然,上述正则表达式的表示方式仅仅用作示例,本领域技术人员根据实际情况采用任一种正则表达式的表示方式都是可行的,本申请对此无需加以限制。[0139]本发明实施例中,检测服务器可以通过所述正则表达式匹配分析所述待检测网页中的页面元素位置和显示方式,来判定其是否为被篡改的内容。例如,判断黑链篡改时,可以通过正则表达式匹配判断所述待检测网页中的页面元素的位置是否不在预设阈值范围内,或者所述页面元素是否具有不可见的属性,和/或,所述页面元素是否对浏览器隐藏等,若是,则判定所述待检测页面中的所述页面元素为被篡改内容。例如,若检测到某个页面的超链接是不可见的,或者,页面中某个html标签元素的长宽高是负值,则可判定该页面被篡改的内容。[0140]本发明实施例中,检测服务器还可以通过正则表达式匹配所述待检测网页中是否存在已确定的恶意链接和/或其对应的篡改关键词,来判读其是否被篡改。检测服务器还从所述篡改内容中提取黑词-黑链对,所述黑词-黑链对由黑词及其对应的黑链组成。例如,上述所命中的篡改内容'<ahref=“http://www.45u.com”style=”margin-left:-83791;”〉传奇私服发布</aV中的黑词-黑链对为:传奇私服发布-http://www.45u.com。现有的网页检测方法中,通常都是篡改特征库中的篡改特征规则对待检测网页的源码进行匹配,所述篡改特征规则为用于匹配网页内容中具有一定格式的连接,在检测过程中,若命中篡改特征规则则认为该网页被篡改,若没有命中,则认为待检测网页是安全的,将其显示给用户。但是目前黑链的插入方式层出不穷,日益变化。而使用固定的篡改特征库或者利用人工手动更新篡改特征库显然跟不上黑客的步伐。[0141]基于此,本发明的检测服务器在检测出网页被篡改后,还从篡改内容中提取黑词-黑链对,以便之后根据该黑词-黑链对对网页进一步进行检测。[0142]一般情况下,在被篡改的网页内容中,黑词-黑链都会对应特定的篡改关键词。可选地,在提取黑词-黑链的同时提取与其对应的篡改关键词,以便进一步利用。[0143]例如:下面的黑链:[0144]<ahref=“http://www.45u.com”style=”display:none;”〉传奇私服发布</a>。[0145]从中提取的篡改关键词可以为“display:none”,其表示该黑词-黑链的显示属性为不可见。[0146]步骤301中每提取一个黑词-黑链对,都将其存储于数据存储服务器中。[0147]本发明的方案中,为了提高检测的准确率,专门设置了黑词-黑链库。所述黑词-黑链库中用于存储频繁出现的黑词-黑链对。本发明实施例中,在将所提取黑词-黑链对存储在数据存储服务器的同时,还统计其出现的次数,如果统计出某个黑词-黑链对的出现次数超过第一预定阈值,则将该黑词-黑链对存储至黑词-黑链库中。[0148]黑词-黑链对在黑词-黑链库中的存储方式可以根据具体需要进行选择。可选地,可以将所述黑词-黑链对存储为黑链集的方式,即每个黑词对应一个黑链集的方式进行存储。[0149]例如:黑词-黑链库中的黑词-黑链对如下存储:[0150]黑词I——{黑链I,黑链2,黑链3,……,黑链ml}[0151]黑词2——{黑链I,黑链2,黑链3,……,黑链m2}[0152]......[0153]黑词η——{黑链I,黑链2,黑链3,……,黑链mn}[0154]可选地,所述黑词-黑链库中的黑链集合可以是有序集合,即根据黑链集中黑链出现的次数对其进行排序,次数最多的排在第一位,如黑链1,次数最少的排在最后,如黑链ml。在存储过程中,每获得一个黑词-黑链对,则根据其中的黑词查找黑词-黑链库中是否已经存在该黑词,如果存在则查找该黑词对应的黑链集中是否存在所述黑词-黑链对中的黑链,如果存在则更新该黑链的排名,否则将其插入在黑链集的尾端;如果黑词-黑链库中不存在黑词-黑链对中的所述黑词,则重新建立一条黑词以及其对应的黑链集。[0155]可选地,为提高检测的准确率,本发明不仅仅利用篡改特征库检测网页的篡改内容,其还利用黑词-黑链库对网页进行检测。由于篡改特征库相对稳定且更新不及时,因此对于很多新出现的黑词-黑链,利用篡改特征库无法及时检测出篡改内容。因此,本发明的方案中,对无法根据所述篡改规则库检测到的篡改内容,还根据所述黑词-黑链库进行检测。[0156]本发明实施例中,利用黑词-黑链库对网页进行检测,是通过黑词-黑链库中的黑词匹配所述网页内容,若网页中存在与所述黑词-黑链库中的黑词相匹配的内容,则初步认定该网页被篡改,则提取相应的初步篡改内容。[0157]可选地,对于初步篡改内容,再进一步查看该初步篡改内容中是否存在所述黑词对应的黑链,即可以匹配该黑词对应的黑链集中的黑链是否存在于该初步篡改内容中,若匹配成功则认为该网页被篡改。[0158]可选地,在利用黑词对应的黑链集中的黑链匹配所处初步篡改内容时,可以设置所述初步篡改内容中存在排名靠前的黑链,即存在所述黑词对应的黑链集中预定位置前的黑链时,才认为该网页被篡改。所述预定位置可以根据需要以及经验进行预先设定,如果检测的目的是尽可能的查全,则所述预定位置可以设置的相对较大,如果检测的目的是尽可能的查准,则所述预定位置可以设置的相对较小。[0159]检测服务器对上报网页的进一步检测过程中,之所以选择先用黑词进行匹配,而不直接使用黑链进行匹配是因为黑词匹配速度快,效率比较高。如果直接用黑链匹配的话,由于组成黑链的字符和/或字母等较多,匹配速度显然不及直接用文字即黑词进行匹配。可见,本发明提出的上述方案兼顾了网页篡改检测的准确率及效率,使得整个检测过程消耗资源较少,而且准确率也有极大地提高。[0160]本发明的上述方案中,检测服务器一旦确定上报网页中确实存在篡改内容后,将发出警报。所述警报可以先发送给通知服务器,即将所述篡改内容、相应的网页信息等警报信息发送给通知服务器,通知服务器通过邮件或短信的方式将所述篡改信息发送给网站管理员。网站管理员在接收到警报信息后通过修改网页源码、网站管理员账户密码等方式进行修复。[0161]本发明提出的上述方案中,通过代理服务器统一在网页中嵌入篡改检测脚本,并将网页的篡改检测分散到各个用户端执行,且使用网页中嵌入脚本的形式在后台执行检测程序,对用户不可见,不妨碍用户的其它操作。用户端的浏览器通过解释执行篡改检测脚本检测出网页被篡改后,将其上报给检测服务器,检测服务器通过对其进一步检测后向网站管理人员发出警报信息,为网站提供网站安全检测服务。本方案不但提高了网站安全检测的检测效率,还通过黑白名单和如黑词黑链这种方式的进一步检测提高了检测的准确率。[0162]图4示出了本发明提出的网页篡改的检测装置结构图。如图4所示,该装置包括:[0163]代理模块401,其获取源站针对访问请求的响应网页,并在网页中嵌入篡改检测脚本;[0164]发送模块402,其将所述网页发送至发出访问请求的浏览器模块;[0165]浏览器模块403,其用于执行所述篡改检测脚本,检测所述网页是否被篡改;[0166]上报模块404,若所述网页已被篡改,其将所述网页上报检测服务器。[0167]如图1所示的方法实施例所述,本发明上述装置中,代理模块401从源站获取用户请求访问的网页,并将检测网页篡改内容的篡改检测脚本直接嵌入到网页源码即网页的HTML文件中。这样,可以实现统一在网页中嵌入篡改检测脚本,且能够将网页篡改的检测工作分散到各个用户端,能够提高检测效率。[0168]具体地,代理服务器在获取的HTML文件的头标签中插入篡改检测脚本代码,之后通过发送模块402将网页返回给浏览器模块403。可选地,本发明中篡改检测脚本采用Javascript脚本来实现。Javascript脚本程序是纯文本语句,不需要编译,因此其可以由浏览器直接解释执行。在将检测网页是否被篡改的Javascript语句嵌入到网页对应的HTML文件中,用户在打开该网页时就可触发该Javascript脚本执行相应操作,以检测网页中的内容是否被篡改。[0169]采用Javascript脚本嵌入的方式除了能提高检测速度外,另一个优点是Javascript脚本程序只在后台执行,用户对其不可见,因此不会妨碍用户的其它操作。[0170]本发明中除了使用Javascript脚本外,还可以使用其他任何可以嵌入到网页中的脚本语言,只要浏览器能够解释执行即可,本发明对此不作具体限定。[0171]浏览器模块404响应用户打开网页事件而执行所述篡改检测脚本,并在加载完成所述HTML文件后,执行该HTML文件头标签中嵌入的篡改检测脚本,并由所述篡改检测脚本检测用户打开的网页源码中是否存在篡改内容。[0172]所述篡改检测脚本的检测方式可以有多种,根据本发明一实施例,篡改检测脚本通过判断所述网页中是否被挂马来检测所述网页是否被篡改;根据本发明另一实施例,篡改检测脚本通过判断所述网页中是否存在黑链来检测所述网页是否被篡改。[0173]本发明实施例中,对于黑链和/或挂马连接等恶意链接,篡改检测脚本可以通过将网页的HTML文件解析成DOMTree,并对解析后得到的DOMTree文件进行检测。[0174]以黑链检测为例加以说明。对于网页中插入的下面的黑链形式:[0175]<ahref=“http://www.45u.com”style=”display:none;”〉传奇私服发布</a>。[0176]篡改检测脚本可以如下编写:[0177]【权利要求】1.一种网页篡改的检测方法,包括:代理服务器获取源站针对访问请求的响应网页;所述代理服务器在所述网页中嵌入篡改检测脚本;将所述网页发送至发出访问请求的客户端浏览器;所述浏览器执行所述篡改检测脚本,检测所述网页是否被篡改;若所述网页已被篡改,则将所述网页上报检测服务器。2.如权利要求1所述的网页篡改的检测方法,其中,所述篡改检测脚本通过判断所述网页中是否被挂马来检测所述网页是否被篡改。3.如权利要求1所述的网页篡改的检测方法,其中,所述篡改检测脚本通过判断所述网页中是否存在黑链来检测所述网页是否被篡改。4.如权利要求1所述的网页篡改的检测方法,还包括:判断所上报的网页中的篡改内容是否存在于白名单或黑名单中,其中,所述白名单和黑名单存储于所述检测服务器中;若所述网页的篡改内容存在于白名单中,则不作处理;若所述网页的篡改内容存在于黑名单中,则存入篡改数据库,并发出警报。5.如权利要求1-4中任一项所述的网页篡改的检测方法,还包括:在所述检测服务器中对所上报的网页进行进一步检测。6.如权利要求5所述的网页篡改的检测方法,其中,在所述检测服务器中对所述网页进行进一步检测包括:根据篡改特征库检测网页中的篡改内容,提取所述篡改内容中的黑词-黑链对,所述黑词-黑链对由黑词及其对应的黑链组成;若所述黑词-黑链对的出现频率高于预定阈值,则将其存入黑词-黑链库中;根据黑词-黑链库检测网页中的篡改内容;若待检测网页中出现的黑词对应的链接存在于所述黑词-黑链库中该黑词对应的黑链集中,则确定该待检测网页被篡改。7.如权利要求4所述的网页篡改的检测方法,其中,所述发出警报包括:将篡改信息发送至通知服务器;所述通知服务器通过邮件/短信方式向网站管理员发出所述警报信息。8.如权利要求1-4中任一项所述的网页篡改的检测方法,其中,所述篡改检测脚本为Javascript脚本。9.一种网页篡改的检测装置,包括:代理模块,其获取源站针对访问请求的响应网页,并在网页中嵌入篡改检测脚本;发送模块,其将所述网页发送至发出访问请求的浏览器模块;浏览器模块,其用于执行所述篡改检测脚本,检测所述网页是否被篡改;上报模块,若所述网页已被篡改,其将所述网页上报检测服务器。10.如权利要求9所述的网页篡改的检测装置,其中,所述篡改检测脚本通过判断所述网页中是否被挂马来检测所述网页是否被篡改。【文档编号】G06F21/56GK103605926SQ201310631867【公开日】2014年2月26日申请日期:2013年11月29日优先权日:2013年11月29日【发明者】何振科,赵武申请人:北京奇虎科技有限公司,奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1