背景技术
黑链,又被称作“网络牛皮癣”。公知的是,搜索引擎有一个排名系统,搜索引擎认为好的网站,在搜索结果的排名中就会靠前,相应地,网站的点击率就会越高。搜索引擎衡量一个网站的好坏有多方面的指标,其中非常重要的一点就是网站的外部链接。如果一个网站的外部链接都很不错,那么这个网站在搜索引擎中的排名就会相应地提高。
例如,某新开的网站在搜索引擎中的排名很靠后,之后某个权利高(排名好,质量高)的网站和这个新开的网站做了链接,那么搜索引擎就会认为这个新开的网站既然可以和这样权重高的网站做上链接,那么它的权重也不会低,所以这个网站在搜索引擎中的排名就会提升。如果有多个权重高的网站也都和这个网站做了链接,那么它的排名将会上升得非常快。
反之,如果一个新开的网站,没有任何背景,没有任何关系,它的权重不会很高,所以搜索引擎不会给它很高的排名,其在搜索结果中的排名就会比较靠后。对于搜索引擎的这种特性,目前有些工具提供了黑链技术,即通过入侵一些权重高的网站,入侵成功后将网站的链接插入到被入侵网站的页面中,从而实现链接的效果,并且通过隐藏网站链接,使别人在被入侵网站的页面上是看不到任何链接。
然而,目前采用黑链技术来实现搜索排名提升的,相当一部分是游戏私服网站、盗号木马网站、钓鱼网站和广告网站等不安全网站。对于这些不安全网站,搜索引擎不会给它们很高的排名,但通过“黑链”,它们的排名就会很靠前,在这种情况下,当使用搜索引擎的时候,点击打开这些网站的概率就会很高,如果用户没有做好安全防护工作,那么就会容易就会感染网站上的病毒。
目前,国内外主要采用以下两类黑链检测技术:
(1)静态特征匹配方式:
即通过特征串(即大量人工收集的关键字)匹配网页中的HTML正文,以判断其是否被黑链篡改。例如,被黑链篡改网页常见的特征分为黑客炫耀的特征如:hack、hacked by等,用于传播和经济利益的如:六合彩、性经历、外挂等。
(2)在网页发布系统中增加网页内容审核和校验机制:
即在网页发布系统中构建一个网页内容实时检测系统,所有网页发布的内容都经过该系统,经过确认后才能发布,同时还建立了网页内容指纹库,篡改检测系统通过定期扫描网页内容和指纹库内容对比来发现网页是否被黑链篡改。
上述现有技术中,静态特征匹配方式的优点是性能高,系统简单,但也具有非常明显的缺点,包括:
1)只能特征串严重依赖人工收集,特征串的更新跟不上篡改内容的更新,检测永远滞后;
2)误报率高:同样由于正常网站,例如:新闻网站也可能出现类似的关键词和特征串,因此简单的特征串匹配会导致高误报率;
在网页发布系统中增加网页内容审核和校验机制优点是准确率很高,但是也有明显的缺点,包括:
1)网站内容发布系统的复杂程和维护性都度大幅度增加,如果一个环节出现问题,都会导致发生大规模的误报事件;
2)对网站管理人员素质要求大大提高,同时增加了系统学习成本和工作量;
3)对于自动发布的动态网页内容很难被审核通过,从而导致网站工作效率下降;
4)由于网站需要做专门的软、硬件的采购,网站需要增加一大笔成本支出;
5)在网页被黑链篡改的实际情况中,往往是网站安全出现问题所导致,所以网页内容指纹库也可能不准确,从而导致大规模的误报或者漏报。
因此,目前需要本领域技术人员解决的一个技术问题就是,提供一种黑链检测的机制,用以在尽可能降低成本,减少人工干预的前提下,提高黑链检测的效率、可信度和准确度。
发明内容
本申请提供一种黑链检测的方法,用以在尽可能降低成本,减少人工干预的前提下,提高黑链检测的效率、可信度和准确度。
本申请还提供了一种黑链检测的装置,用以保证上述方法在实际中的应用及实现。
为了解决上述问题,本申请公开了一种黑链检测的方法,具体可以包括:
生成黑链特征数据;
搜索包含所述黑链特征数据的页面为目标页面;
分析所述黑链特征数据在目标页面中的布局,当发现布局异常时,从该目标页面中提取包含所述黑链特征数据的页面元素;
根据所述页面元素生成黑链规则。
优选的是,所述黑链特征数据可以包括篡改关键词和黑链URL。
优选的是,所述分析所述黑链特征数据在特征页面中的布局的步骤可以包括:
判断所述黑链特征数据的页面元素位置是否在预设阈值范围内,若是,则判定所述黑链特征数据在特征页面中的布局异常;
和/或,
判断所述黑链特征数据的页面元素属性是否为不可见属性,若是,则判定所述黑链特征数据在特征页面中的布局异常;
和/或,
判断所述黑链特征数据的页面元素属性是否为对浏览器隐藏的属性,若是,则判定所述黑链特征数据在特征页面中的布局异常。
优选的是,所述根据页面元素生成黑链规则的步骤可以为:
从包含所述篡改关键词和/或黑链URL的页面元素中,抽象出正则表达式作为黑链规则。
优选的是,所述的方法,还可以包括:
采用所述黑链规则在其它目标页面中进行匹配,提取新的黑链特征数据。
本申请同时公开了一种黑链检测的装置,具体可以包括:
特征数据生成模块,用于生成黑链特征数据;
目标页面搜索模块,用于搜索包含所述黑链特征数据的页面为目标页面;
布局分析模块,用于分析所述黑链特征数据在目标页面中的布局;
页面元素提取模块,用于在发现布局异常时,从该目标页面中提取包含所述黑链特征数据的页面元素;
黑链规则生成模块,用于根据所述页面元素生成黑链规则。
优选的是,所述黑链特征数据可以包括篡改关键词和黑链URL。
优选的是,所述布局分析模块可以包括:
第一判断子模块,用于判断所述黑链特征数据的页面元素位置是否在预设阈值范围内,若是,则判定所述黑链特征数据在特征页面中的布局异常;
和/或,
第二判断子模块,用于判断所述黑链特征数据的页面元素属性是否为不可见属性,若是,则判定所述黑链特征数据在特征页面中的布局异常;
和/或,
第三判断子模块,用于判断所述黑链特征数据的页面元素属性是否为对浏览器隐藏的属性,若是,则判定所述黑链特征数据在特征页面中的布局异常。
优选的是,所述黑链规则生成模块可以包括:
正则表达式抽取子模块,用于从包含所述篡改关键词和/或黑链URL的页面元素中,抽象出正则表达式作为黑链规则。
优选的是,所述的装置,还可以包括:
规则匹配模块,用于采用所述黑链规则在其它目标页面中进行匹配,提取新的黑链特征数据。
与现有技术相比,本申请具有以下优点:
本申请实施例根据黑链特征数据,结合搜索引擎技术,使用网络爬虫抓取包含此黑链特征数据的页面,然后分析包含此黑链特征数据页面的布局,从而判定页面是否被篡改,并提取所述被篡改页面中包含所述黑链特征数据的页面元素,最终形成一套通用的正则表达式作为黑链规则。本申请无需人工干预,无需额外设置系统,采用正则表达式作为黑链规则在页面中进行匹配,以提取更多的黑链特征数据,训练更多黑链规则的方式,能更好地适用于当前黑链产业化的情形,不仅能降低成本,还能更快更多地发现被篡改的页面,有效提高黑链检测的效率。并且,基于网络爬虫技术和浏览器内核隔离沙箱技术的实现,也有效保证了黑链检测的安全性、可信度和准确度。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
万维网成为大量信息的载体,为有效地提取并利用这些信息,搜索引擎(Search Engine)作为一个辅助人们检索信息的工具,成为用户访问万维网的入口和指南。
SEO(Search Engine Optimization,搜索引擎优化),是较为流行的网络营销方式,主要目的是增加特定关键字的曝光率以增加网站的能见度,使其提高搜索引擎排名,从而提高网站访问量,最终提升网站的销售能力或宣传能力。网站SEO数据表示本网站的内容在其它搜索引擎中被收录的数量,收录得越多就更容易被用户搜索到。
黑链是SEO黑帽手法中相当普遍的一种手段,笼统地说,它就是指一些人用非正常的手段获取的其它网站的反向链接,最常见的黑链就是通过各种网站程序漏洞获取搜索引擎权重或者PR(PageRank,网页级别),较高的网站的WEBSHELL(匿名用户(入侵者)通过网站端口对网站服务器的某种程度上操作的权限),进而在被黑网站上链接自己的网站。黑链主要针对搜索引擎,例如,对搜索引擎搜索出来的排名最靠前的几个网站进行简单的分析,查看其网站架构,关键词分布,以及外链等等,有可能发现一些网站排名非常好,而且关键词网页相关数都达到几百万,但网站架构一般,关键词密度不是很合适,最主要的是有些网站没有任何导出的链接,通过查看其反向链接才发现,绝大数外链都来自于黑链。SEO主要是靠高质量的外链来决定排名,按照百分比来讲,应超过50%,因此在权重较高的网站上做黑链有利于网站排名的。此外黑链一般以隐藏链接的模式,所以在网站的常规检查中管理员很难发现网站被做了黑链。目前,黑链一般用于暴利的黑(灰)色产业,例如私服,医疗,冷门高利润行业等等。黑链也已形成产业化。
正是本专利发明人发现这一问题的严重性,提出本申请实施例的核心构思之一在于,根据黑链特征数据,结合搜索引擎技术,使用网络爬虫抓取包含此黑链特征数据的页面,然后分析包含此黑链特征数据页面的布局,从而判定页面是否被篡改,并提取所述被篡改页面中包含所述黑链特征数据的页面元素,最终形成一套通用的正则表达式作为黑链规则。
参照图1,示出了本申请的一种黑链检测的方法实施例的步骤流程图,具体可以包括:
步骤101、生成黑链特征数据;
步骤102、搜索包含所述黑链特征数据的页面为目标页面;
步骤103、分析所述黑链特征数据在目标页面中的布局,当发现布局异常时,从该目标页面中提取包含所述黑链特征数据的页面元素;
步骤104、根据所述页面元素生成黑链规则。
在具体实现中,所述黑链特征数据可以包括篡改关键词和黑链URL。如篡改关键词“传奇私服发布”,黑链URL“http://www.45u.com”等。根据所述黑链特征数据,利用网络爬虫抓取包含所述黑链特征数据的页面,并将这些页面作为目标页面。
公知的是,搜索引擎从万维网上自动提取网页的功能是通过网络爬虫实现的。网络爬虫又称为网络蜘蛛,即Web Spider,网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。
目前的网络爬虫可以分为通用爬虫和聚焦爬虫。通用爬虫是基于广度优先搜索的思想,从一个或若干个初始网页的URL(Uniform ResourceLocator,统一资源定位符)开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。而聚焦爬虫是一个自动下载网页的程序,用于定向抓取相关页面资源。它根据既定的抓取目标,有选择地访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫不同,聚焦爬虫并不追求大的覆盖,而是将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。
现有的黑链技术中,隐藏链接有一些固定技巧,例如搜索引擎对javascript的识别不是很好,通过javascript来输出隐藏的div。这样的话,人工直接通过页面无法看到这些链接,而搜索引擎确认为这些链接是有效的。代码为:首先通过javascript写前面的div,设置display为none。然后输出一个table,table中包含了要挂的黑链。最后再通过javascript输出后半部分div。
采用浏览器内核的隔离沙箱技术可以快速、有效地察觉出页面被篡改。具体而言,浏览器内核的隔离沙箱技术为浏览器内核,比如IE或firefox,构建了一个安全的虚拟执行环境。用户通过浏览器所作的任何写磁盘操作,都将重定向到一个特定的临时文件夹中。这样,即使网页中包含病毒,木马,广告等恶意程序,被强行安装后,也只是安装到了临时文件夹中,不会对用户设备造成危害。浏览器内核负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。所以,通常所谓的浏览器内核也就是对页面进行下载、解析、执行、渲染的引擎,该引擎决定了浏览器如何显示网页的内容以及页面的格式信息。
根据浏览器内核的上述操作特性,采用隔离沙箱技术,可以安全地分析黑链特征数据在目标页面中的布局是否发生异常,具体而言,可以通过分析所述黑链特征数据的页面元素位置和属性,来判定黑链特征数据在目标页面中的布局是否异常,例如,判断所述黑链特征数据的页面元素的位置是否不在预设阈值范围内,所述黑链特征数据的页面元素是否具有不可见的属性,和/或,所述黑链特征数据的页面元素是否具有对浏览器隐藏的属性,若是,则判定黑链特征数据在目标页面中的布局异常。例如,若检测到某个页面的超链接是不可见的,或者,页面中某个html标签元素的长宽高是负值,则可判定该页面的布局异常,是被篡改的页面。
当发现布局异常时,从该布局异常的目标页面中提取包含所述所述篡改关键词和/或黑链URL的页面元素;然后从包含所述篡改关键词和/或黑链URL的页面元素中,抽象出正则表达式作为黑链规则。
公知的是,正则表达式是用于进行文本匹配的工具,通常由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。正则表达式的匹配可以理解为,在给定的字符串中,寻找与给定的正则表达式相匹配的部分。有可能字符串里有不止一个部分满足给定的正则表达式,这时每一个这样的部分被称为一个匹配。匹配在本文里可以包括三种含义:一种是形容词性的,比如说一个字符串匹配一个表达式;一种是动词性的,比如说在字符串里匹配正则表达式;还有一种是名词性的,就是刚刚说到的“字符串中满足给定的正则表达式的一部分”。
以下通过举例对正则表达式的生成规则进行说明。
假设要查找hi,则可以使用正则表达式hi。这个正则表达式可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。在实际中,正则表达式是可以忽略大小写的。如果很多单词里都包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这此单词里面的hi也会被找出来。如果要精确地查找hi这个单词的话,则应该使用\bhi\b。其中,\b是正则表达式的一个元字符,它代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格或标点符号或换行来分隔的,但是\b并不匹配这些单词分隔符中的任何一个,它只匹配一个位置。假如要找的是hi后面不远处跟着一个Lucy,则应该用\bhi\b.*\bLucy\b。其中,.是另一个元字符,匹配除了换行符以外的任意字符。*同样是元字符,它代表的是数量——即指定*前边的内容可以连续重复出现任意次以使整个表达式得到匹配。现在\bhi\b.*\bLucy\b的意思就很明显了:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。
例如,在页面布局异常的A页面的html片段里,提取包含黑链特征数据的页面元素如下:
<script>document.write('<d'+'iv st'+'yle'+'="po'+'si'+'tio'+'n:a'+'bso'+'lu'+'te;l'+'ef'+'t:'+'-'+'10'+'00'+'0'+'p'+'x;'+'"'+'>')>××××<script>document.write('<'+'/d'+'i'+'v>');</script>
根据上述页面元素生成作为黑链规则的正则表达式为:
<script.*?>document\.write.*?\(.*?\+.*?\+.*?\+.*?\+.*?\+.*?\).*?</script>([\S\s]+?)</div>
或如,在页面布局异常的B页面的html片段里,提取包含黑链特征数据的页面元素如下:
<a href=“http://www.45u.com”style=”margin-left:-83791;”>;
根据上述页面元素生成作为黑链规则的正则表达式为:
<a\s*href\s*=["\'].+?["\']\s*style=["\'][\w+\-]+:-[0-9]+.*?["\'].*?>.*?</a>。
当然,上述生成黑链规则的方法仅仅用作示例,本领域技术人员根据实际情况采用任一种黑链规则的生成方式都是可行的,本申请对此无需加以限制。
参考图2,其示出了本申请的一种黑链检测的方法实施例2的流程图,具体可以包括以下步骤:
步骤201、生成黑链特征数据;
步骤202、搜索包含所述黑链特征数据的页面为目标页面;
步骤203、分析所述黑链特征数据在目标页面中的布局,当发现布局异常时,从该目标页面中提取包含所述黑链特征数据的页面元素;
步骤204、根据所述页面元素生成黑链规则。
步骤205、采用所述黑链规则在其它目标页面中进行匹配,提取新的黑链特征数据。
本实施例与上述方法实施例1的区别之处在于,本实施例增加了采用黑链规则在其它页面中进行匹配,以提取更多的黑链特征数据,训练更多黑链规则,最终可形成针对全网黑链的特征库。
由于挂黑链如今已形成一个产业链,所以相同的篡改关键词和/或黑链URL会大量出现在其它被篡改的页面中。采用正则表达式作为黑链规则在页面中进行匹配,以提取更多的黑链特征数据,训练更多黑链规则,更适用于当前黑链产业化的情形,能更快更多地发现被篡改的页面,有效提高黑链检测的效率。
为使本领域技术人员更好地理解本申请实施例,以下通过一个具体示例更进一步说明本申请的黑链检测过程。
步骤S1、根据一个篡改关键词,例如“传奇私服”,利用网络爬虫抓取到包含此关键词的页面;
步骤S2、针对被抓取到的页面,利用IE沙箱技术,分析此页面的页面布局,确定篡改关键词在页面中的布局是否异常,比如,是否是正常显示或在浏览器是否可见等;
步骤S3、根据分析结果,从异常的页面布局中提取包含篡改关键词的HTML标签元素,从所述元素中抽象出的正则表达式作为黑链规则;
步骤S4、利用网络爬虫,根据已提取的黑链规则或篡改关键词或黑链URL,到其他页面抓取内容并分析其内容是否匹配到已知的规则和内容,并提取新的黑词、黑链和黑链规则。
综上所述,本申请提供了一种黑链检测的方法,通过根据黑链特征数据,结合搜索引擎技术,使用网络爬虫抓取包含此黑链特征数据的页面,然后分析包含此黑链特征数据页面的布局,从而判定页面是否被篡改,并提取所述被篡改页面中包含所述黑链特征数据的页面元素,最终形成一套通用的正则表达式作为黑链规则。本申请无需人工干预,无需额外设置系统,采用正则表达式作为黑链规则在页面中进行匹配,以提取更多的黑链特征数据,训练更多黑链规则的方式,能更好地适用于当前黑链产业化的情形,不仅能降低成本,还能更快更多地发现被篡改的页面,有效提高黑链检测的效率。并且,基于网络爬虫技术和浏览器内核隔离沙箱技术的实现,也有效保证了黑链检测的安全性、可信度和准确度。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参考图3,其示出了本申请的一种黑链检测的装置实施例的结构框图,具体可以包括以下模块:
特征数据生成模块301,用于生成黑链特征数据;
目标页面搜索模块302,用于搜索包含所述黑链特征数据的页面为目标页面;
布局分析模块303,用于分析所述黑链特征数据在目标页面中的布局;
页面元素提取模块304,用于在发现布局异常时,从该目标页面中提取包含所述黑链特征数据的页面元素;
黑链规则生成模块305,用于根据所述页面元素生成黑链规则。
在具体实现中,所述黑链特征数据可以包括篡改关键词和黑链URL。
作为本申请实施例具体应用的一种示例,所述页面布局可以包括所述黑链特征数据的页面元素位置和属性,所述页面布局异常可以包括所述黑链特征数据的页面元素位置不在预设阈值范围内,所述黑链特征数据的页面元素具有不可见的属性,和/或,所述黑链特征数据的页面元素具有对浏览器隐藏的属性等。
在本申请的一种优选实施例中,所述黑链规则生成模块包括:
正则表达式抽取子模块,用于从包含所述篡改关键词和/或黑链URL的页面元素中,抽象出正则表达式作为黑链规则。
在具体应用中,所述装置实施例还可以包括如下模块:
规则匹配模块306,用于采用所述黑链规则在其它目标页面中进行匹配,提取新的黑链特征数据。
由于所述装置实施例基本相应于前述图1和图2所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种黑链检测的方法,以及,一种黑链检测的装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。