2024-03-29

黑链又称暗链、隐藏链接,是黑帽手法中相当普遍的一种手段,是指用非正常手段获取的其他网页的反向链接,最常见的黑链就是通过各种网页程序漏洞获取搜索引 擎权重或网页级别(PR)较高的网页的管理权限代码(Webshell),进而在被黑网页上链接自己的网页。该手段是搜索引擎中进行作弊最有效最迅速的方 法之一,在暴利行业使用尤多,例如游戏、外挂、彩铃等业务的行业。现有的黑链检测方法主要包括以下几种:

其一、网站管理人员通过经常查看网页源代码的方式,检查网页是否被挂上黑链。其二、查看网页中的链接是否可访问,如果存在未知链接,则怀疑被挂上黑链,删 除该未知链接。其三、通过FTP工具查看网页文件的修改时间,如果存在修改时间异于大多数文件修改时间的文件,则该文件就可能被修改了文件源代码,挂了黑 链。上述几种黑链检测方法都需要大量的人工操作,一方面浪费人力资源,对网站管理人员的黑链知识提出较高要求,无法实现黑链的自动检测;另一方面,对于新 出现的黑链作弊方式,很难及时有效地发现。

百度搜素引擎提供了一种检测黑链的算法处理装置,以便于实现黑链的自动检测。具体技术方案如下:

S 1、提取待检测网页的超链接,逐一对获取的超链接执行黑链检测流程.黑链检测流程包括:Al、判断超链接的视觉特征参数是否满足预设的不可见特征要求,如 果是,则确定该超链接为黑链。百度黑链检测算法的测试案例中在黑链检测流程的步骤Al中,如果判断结果为否,则进一步执行步骤A2;A2、判断该超链接的 外链引用次数是否超过预设的次数阀值,如果是,则确定该超链接为黑链。

百度黑链检测算法的测试案例中如果所述A2的判断结果为否,则将该超链接加入白名单数据库,结束对该超链接的黑链检测流程。百度黑链检测算法的测试案例中 在所述步骤Sl之前还包括:SO、将所述待检测网页的网址与已有的白名单数据库进行匹配,如果匹配得上,则确定所述待检测网页不存在黑链,结束流程;否则 继续执行所述步骤Slo百度黑链检测算法的测试案例中所述确定该超链接为黑链进一步包括:获取该超链接的网页内容特征;将获取的内容特征与已挖掘出的恶意 特征数据库进行匹配,如果匹配得上,则确定该超链接为黑链。

百度黑链检测算法的测试案例中所述恶意特征数据库中存储有被识别为黑链的网页的关键词;所述将获取的内容特征与已挖掘出的恶意特征数据库进行匹配具体包 括:将获取的该超链接的网页标题title或网页元信息l}Zeta与所述恶意特征数据库中存储的关键词进行匹配。

百度黑链检测算法的测试案例中在确定出该超链接为黑链后,进一步包括:从该黑链的网页中进一步提取关键词,将该关键词存储于恶意特征数据库。百度黑链检测 算法的测试案例中在所述步骤Al中,当所述视觉特征参数为颜色设置参数时,对应的不可见特征要求为该超链接的颜色设置参数与所述待检测网页背景颜色一致; 或者当所述视觉特征参数为字体参数时,对应的不可见特征要求为该超链接的字体参数的值小于或等于预设的字体参数阀值;或者当所述视觉特征参数为关键字位置 参数时,对应的不可见特征要求为该超链接的关键字位置在所述待检测网页的可见范围之外;或者当所述视觉特征参数为链接展现参数时,对应的不可见特征要求为 该超链接以跑马灯形式闪现或者不显示。

百度黑链检测算法的测试案例中所述恶意特征数据库存储有被确定为黑链的链接;该方法还包括:从网页库中获取超链接中包含了所述恶意特征数据库中链接的网 页,对该网页中的其他超链接逐一执行所述黑链检测流程,并将检测出的黑链加入所述恶意特征数据库;或者,从网页库中找出与所述恶意特征数据库中链接的网页 相似度满足预设相似度要求的网页,将找出的网页作为待检测网页转至步骤Sl处开始执行,然后将检测出的黑链加入所述恶意特征数据库。一种检测黑链的装置, 该装置包括:链接提取模块,用于提取待检测网页的超链接,并将提取的超链接逐一提供给检测模块;检测模块,用于判断超链接的视觉特征参数是否满足预设的不 可见特征要求,如果是,则将该超链接发送给黑链确定模块;黑链确定模块,用于将接收到的超链接确定为黑链。

百度黑链检测算法的测试案例中该装置还包括:引用次数判断模块,用于在所述检测模块的判断结果为否时,判断该超链接的外链引用次数是否超过预设的次数阂 值,如果是,则将该超链接发送给所述黑链确定模块。百度黑链检测算法的测试案例中该装置还包括:白名单维护模块,用于在所述引用次数判断模块的判断结果为 否时,将该超链接加入白名单数据库。百度黑链检测算法的测试案例中该装置还包括:白名单判断模块,用于将所述待检测网页的网址与已有白名单数据库进行匹 配,如果匹配得上,则确定所述待检测网页不存在黑链;否则,触发所述链接提取模块。百度黑链检测算法的测试案例中该装置还包括:恶意特征匹配模块,用于获 取发送给所述黑链确定模块的超链接,获取该超链接的网页内容特征,将获取的内容特征与已挖掘出的恶意特征数据库进行匹配,如果匹配得上,则将该超链接发送 给所述黑链确定模块。百度黑链检测算法的测试案例中所述恶意特征数据库中存储有被识别为黑链的网页的关键词;所述恶意特征匹配模块在将获取的内容特征与已 挖掘出的恶意特征数据库进行匹配时,具体将获取的该超链接的网页标题title或网页元信息Meta与所述恶意特征数据库中存储的关键词进行匹配。

百度黑链检测算法的测试案例中该装置还包括:恶意特征库维护模块,用于在所述黑链确定模块将该超链接确定黑链后,从该黑链的网页中进一步提取关键词,将该 关键词存储于恶意特征数据库。百度黑链检测算法的测试案例中在所述检测模块中,当所述视觉特征参数为颜色设置参数时,采用的不可见特征要求为该超链接的颜 色设置参数与所述待检测网页背景颜色一致;或者当所述视觉特征参数为字体参数时,采用的不可见特征要求为该超链接的字体参数的值小于或等于预设的字体参数 I-7值;或者当所述视觉特征参数为关键字位置参数时,采用的不可见特征要求为该超链接的关键字位置在所述待检测网页的可见范围之外;或者当所述视觉特征 参数为链接展现参数时,采用的不可见特征要求为该超链接以跑马灯形式闪现或者不显示。百度黑链检测算法的测试案例中所述恶意特征数据库存储有被确定为黑链 的链接;该装置还包括:恶意特征库挖掘模块,用于从网页库中获取超链接中包含了所述恶意特征数据库中链接的网页,将该网页中的其他超链接逐一提供给所述检 测模块,并将所述黑链确定模块确定的黑链加入所述恶意特征数据库;或者,从网页库中找出与所述恶意特征数据库中链接的网页相似度满足预设相似度要求的网 页,将找出的网页作为待检测网页提供给所述链接提取模块,然后将所述黑链确定模块确定的黑链加入所述恶意特征数据库。

由以上技术方案可以看出,百度黑链检测算法提供了一种自动实现黑链检测的方式,无需手工操作,不再受限于网站管理员对黑链知识的掌握,由于百度黑链检测算 法基于黑链的基本行为特性,即不可见的视觉特征,因此即便是新出现的黑链,只要满足该基本行为特性均能够及时有效地发现。

【附图说明】

图1为百度黑链检测算法实施例一提供的检测黑链的方法流程图;图2为百度黑链检测算法实施例二提供的对超链接的视觉特征参数进行检测的流程图;图3为百度黑链检测算法实施例四提供的检测黑链的装置结构图。

 

QQ图片20140122104235.jpg

QQ图片20140122104340.jpg

QQ图片20140122104406.jpg

【具体实施方式】为了使百度黑链检测算法的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对百度黑链检测算法进行详细描述。

实施例一、图1为百度黑链检测算法实施例一提供的检测黑链的方法流程图,如图1所示,该方法可以包括以下步骤:步骤101:将待检测网页的网址与已有的白 名单数据库进行匹配,如果待检测网页存在于白名单数据库中,则确定该待检测网页不存在黑链,结束流程;否则执行步骤102。进行黑链检测时,可以首先调用 白名单数据库进行检测。在百度黑链检测算法实施例中可以预先将已经确认的没有被挂黑链的网页的url存储在白名单数据库中,该白名单数据库可以是一个动态 更新的数据库,可以采用手工方式进行添加,也可以在本实施例步骤104中确定某超链接安全时,将该超链接加入白名单数据库。本步骤用于提高黑链的检测效 率,并不是百度黑链检测算法的必要步骤。步骤102:提取该待检测网页的超链接,逐一对获取的超链接执行步骤103至步骤106。针对待检测网页进行黑链 检测时,目的是为了检测该待检测网页中是否被挂上了黑链,因此提取其中所有的超链接,逐一进行检测。步骤103:判断超链接的视觉特征参数是否满足预设的 不可见特征要求,如果是,则确定该超链接为可疑链接,执行步骤105;否则,执行步骤1040经观察被挂的黑链通常都具有一些不可见特征,目的是为了不易 被察觉,这些特征通过链接的视觉特征参数体现,这些视觉特征参数包括但不限于:颜色设置参数、字体参数、关键字位置参数、链接展现参数等中的一种或任意组 合。当视觉特征参数为颜色设置参数时,对应的不可见特征要求可以为该超链接的颜色设置参数与待检测网页背景颜色一致。当视觉特征参数为字体参数时,其中字 体参数可以为:字体大小和/或字体高度,对应的不可见特征要求可以为该超链接的字体参数的值小于或等于预设字体参数阀值。例如,字体大小小于1像素,或 者,字体高度小于1像素等。当视觉特征参数为关键字位置参数时,关键字位置参数可以通过div标签中的left和top参数体现,对应的不可见特征要求可 以为该超链接的关键字位置在待检测网页的可见范围之外。当视觉特征参数为链接展现参数时,链接展现参数可以为滚动文字(marquee)标签中的,此时对 应的不可见特征要求可以为该超链接以跑马灯形式闪现;链接展现参数还可以为显示属性(display)参数,该参数可以是div标签中的、 document. write中的或者javascript中的,此时对应的不可见特征要求为该超链接不显示。具体检测将以实施例二为例进行描述。

步骤104:判断该超链接的外链引用次数是否超过预设的次数阀值,如果是,则确定该超链接为可疑链接,执行步骤105;否则将该超链接加入白名单数据库, 结束对该超链接的判断流程。在通过步骤103所述的检测方式没有确定出可疑链接时,还可以通过本步骤进行进一步的判断,如果一个超链接被挂在其他网页上的 次数,即外链引用次数,超过预设的次数阂值,说明该超链接多次被挂在其他网页上,这通常是不正常的现象,例如多个视频或音频等网页上均挂了一个相同的卖药 的超链接,则该卖药的超链接很有可能就是黑链。其中预设的次数阀值通常采用经验值。优选地,在判断出该超链接的外链引用次数没有超过预设的次数阀值时,可 以进一步存在一个审核的步骤,待审核确认后可以将该超链接加入白名单,从而避免误报。步骤105:获取该超链接的网页内容特征。在确定出可疑链接时,为了 提高检测准确性,可以进一步对该超链接进行基于内容特征的检测。本步骤中获取的网页内容特征可以包括但不限于:网页标题(title)、网页元信息 ((Metes)等。步骤106:将获取的内容特征与已挖掘出的恶意特征数据库进行匹配,如果匹配得上,则确定该超链接为黑链。

百度黑链检测算法实施例中恶意特征数据库的形成可以通过手工的方式预先设置,也可以通过自动挖掘的方式形成。恶意特征数据库中至少存储有被识别为黑链的网 页的关键词,该关键词可以从网页title和/或Metes中提取,关键词用于在黑链检测过程中将超链接的内容特征与恶意特征数据库进行匹配时使用,即将 从超链接的网页中提取的title或Metes与恶意特征数据库中的关键词进行匹配,如果匹配得上,则可以确认该超链接为黑链,也就是说被检测网页存在黑 链,如果没有匹配上,则可以确认该超链接为安全的链接。除此之外,恶意特征数据库还可以存储有被识别为黑链的网页url,用于进行恶意特征数据库的进一步 挖掘,该过程将在实施例三中详细描述。

在此从确定出的黑链的网页中进一步提取关键词,将该关键词存入恶意特征数据库,并将该黑链存入恶意特征数据库。在确定出黑链之后,可以将黑链和挂黑链的网 页(即待检测网页)进行上报。需要说明的是,上述步骤105和步骤106可以是进一步的过程,如果不需要足够高的准确度,也可以直接将可疑链接确定为黑 链。

实施例二、图2为百度黑链检测算法实施例二提供的对超链接的视觉特征参数进行检测的流程图,如图2所示,该流程可以具体包括以下步骤:步骤201:获取超 链接的颜色设置参数。步骤202:判断该颜色设置参数是否与被检测网页的网页背景颜色设置一致,如果是,则确定该超链接为可疑链接;否则执行步骤2030 如果超链接的颜色设置与其被挂在的网页背景颜色设置一致,这种情况该超链接不易被察觉,很有可能是黑链。这种黑链实现代码为:<a href=http://www. xxx. com/style=’‘color:#FFFFFF;’‘)关键字</a>步骤203:获取该超链接的字体大小(font-size)参数 和字体高度(line-size)参数。本步骤是获取超链接的字体参数。步骤204:判断font-size或line-size是否小于或等于1像素, 如果是,则确定该超链接为可疑链接;否则执行步骤2050此处1像素是采用的一个经验值,如果超链接的链接文字大小小于或等于1像素,则不易被察觉,很有 可能为黑链。这种黑链实现代码为:<a herf=http:/; www. xxx. com/style=”font-size:lpx;’‘>关键字</a} <a herf=http:/jwww. xxx. com/style=’‘line-height:lpx;’‘)关键字</a}步骤 205:获取该超链接所对应标签中的关键字位置参数。例如,获取超链接所对应div标签中的top和left参数。步骤206:根据该关键字位置参数判断 该超链接是否位于被检测网页的可见范围之外,如果是,确定该超链接为可疑链接;否则执行步骤207如果链接的关键字位于其锁挂在的网页可见范围之外,则不 易被察觉,很有可能为黑链,例如偏离屏幕左上角999像素,在屏幕上是显示不到的,再例如如果其位置参数为一个较大的负值,在屏幕上也是显示不到的。其黑 链实现代码为:<div  style=’‘position:absolute;top:-999px;lefi:-999px;”><a herf=http:/; www. xxx. com>关键词</a></div>或者<div  style’‘position:absolute;left:expression_ r (1-900) ;top:expression_ r (3-999);’‘><a href=http:/; www. xxx. com/>关键字</a><%div>步骤207:获取超链接所对应的marquee标签中的链接展现参数。步骤208: 判断该marquee标签中的链接展现参数是否为跑马灯形式闪现,如果是,则确定该超链接为可疑链接;否则执行步骤2090如果marquee标签中的长 度和高度参数为1或者。则说明该超链接以跑马灯形式闪现,不易被察觉,很有可能是黑链。这种黑链实现代码为:<marquee  height=1 width=1 scrollamount=3000 scrolldelay=20000Wahref=http://www. xxx. com>关键词</aW/marquees除了从超链接的marquee标签直接判断之外,还可以采用检测超链接脚本 (javascript)中marquee标签的方式来判断,如果脚本中marquee标签指示调用跑马灯形式闪现,同样确定为黑链。此种黑链实现代码 为:<script  language=’‘javascript’‘type=’‘text/javascript”>document. write(”<marquee scrollAmount=5000 width=‘1‘height=‘5‘>’‘);</scripts<diW<a href=’‘http://www. xxx. com/’‘title=’‘关键字’‘>关键字</a} <script  language=’‘javascript’‘type=’‘text/javascript”>document. write(’‘</marquees’‘);</scripts步骤209:获取超链接所对应标签的display参数。步骤210:判断 display参数是否为none,如果是,则确定该超链接为可疑链接;否则,转至实施例一中的步骤1040其中display参数可以是div标签中 的,如果div标签中出现display:none,则表明其属性为不显示,有可能该超链接为黑链。这种黑链的实现代码为:<a herf=http://www. xxx.com style=’‘display:none’‘>关键词</a}或者<div  style=’‘display:none;’‘><a href=http:j /www. xxx. com/>关键字</a></div>另外,display参数也可以该超链接的document.write中的,如果 document.write中出现display:none,则表明其属性为不显示,有可能该超链接为黑链。这种黑链的实现代码 为:<script  language=‘javascript’‘type=‘text/javascript’‘>document. write(’‘<div style=‘display:none;‘>’‘)</script>WdiW<ahref=http:j /www. xxx. com/>关键字</a}<script  language=’‘javascript’‘type=‘text/javascript’‘>document. write(’‘</div>’‘);</script>另外,d i sp 7 ay参数也可以该超链接的javascrip七中的,如果javascript中出现display:none,则表明其属性为不显示,有可能该超链接为 黑链。这种黑链的实现代码为:<div  id=’‘关键字’‘><a href=’‘http : //www. xxx. com”>关键字</a}</diW<script language=javascript document.getElementBy工d(关键字).style. display=’‘none’‘</scripts需要说明的是,本实施例中各步骤的实现可以采用其中的一种或任意组合的方式以任意顺序实现,木 实施例所示的仅是一种优选实例。

实施例三、在该实施例中主要对恶意特征数据库的挖掘过程进行描述,首先说明恶意数据库的挖掘来源,在此主要存在两种来源:第一种来源:包含黑链的网页中的 其他超链接。如果确定出某链接为黑链,则说明挂了该链接的网页存在漏洞,很有可能还挂有其他黑链,因此,可以从网页库中获取超链接中包含了恶意特征数据库 中链接的网页,该对该网页中的其他超链接逐一执行百度黑链检测算法实施例一中步骤103至步骤106所述的检测黑链的方式来检测其他超链接是否为黑链。当 然,如实施例一种所述,也可以仅采用步骤103的方式检测黑链,也可以采用步骤103至步骤101检测黑链。如果检测到其他超链接中存在黑链,则将检测出 的黑链加入恶意特征数据库。第二种来源:从网页库中找出与恶意特征数据库中的网页相似度满足预设相似度要求的网页,将该网页作为待检测网页执行百度黑链检 测算法实施例一所述的检测方法来检测该待检测网页中是否包含黑链,并将检测出的黑链加入恶意特征数据库。之所以采用这种挖掘来源,是因为攻击者在挂黑链时 通常会采用具有相似性的网页。

当采用了上述恶意特征数据库的挖掘方式之后,使百度黑链检测算法实施例提供的黑链检测方法形成了一个迭代,可以利用恶意网页数据库对网页进行检测确定是否 存在黑链,而对于挖掘到黑链的网页又可以作为恶意网页数据库的挖掘来源或者作为特征从网页库中为恶意网页数据库中选取挖掘来源。以上是对百度黑链检测算法 所提供的方法进行的描述,下面通过实施例四对百度黑链检测算法所提供的装置进行详细描述。

实施例四、图3为百度黑链检测算法实施例四提供的检测黑链的装置结构图,如图3所示,该装置包括:链接提取模块301、检测模块302以及黑链确定模块 3030链接提取模块301提取待检测网页的超链接,并将提取的超链接逐一提供给检测模块3020检测模块302判断超链接的视觉特征参数是否满足预设的 不可见特征要求,如果是,则将该超链接发送给黑链确定模块303。这些视觉特征参数包括但不限于:颜色设置参数、字体参数、关键字位置参数、链接展现参数 等中的一种或任意组合。在检测模块302中,当视觉特征参数为颜色设置参数时,采用的不可见特征要求为该超链接的颜色设置参数与待检测网页背景颜色一致; 或者当视觉特征参数为字体参数时,采用的不可见特征要求为该超链接的字体参数的值小于或等于预设的字体参数闰值;或者当视觉特征参数为关键字位置参数时, 采用的不可见特征要求为该超链接的关键字位置在待检测网页的可见范围之外;或者当视觉特征参数为链接展现参数时,采用的不可见特征要求为该超链接以跑马灯 形式闪现或者不显示。黑链确定模块303将接收到的超链接确定为黑链。除此之外,黑链确定模块303可以进一步上报确定出的黑链以及被挂了黑链的网页。为 了提高检测效率,该装置还可以包括:白名单判断模块300,在检测开始时,该白名单判断模块300首先被调用,用于将待检测网页的网址与已有白名单数据库 进行匹配,如果匹配得上,则确定待检测网页不存在黑链;否则触发链接提取模块3010在百度黑链检测算法实施例中可以预先将已经确认的没有被挂黑链的网页 的url存储在白名单数据库中,该白名单数据库可以是一个动态更新的数据库。

更进一步地,如果一个超链接被挂在其他网页上的次数,即外链引用次数,超过预设的次数阀值,说明该超链接多次被挂在其他网页上,这通常是不正常的现象,例 如多个视频或音频等网页上均挂了一个相同的卖药的超链接,则该卖药的超链接很有可能就是黑链。针对于此,该装置还可以包括:引用次数判断模块304,用于 在检测模块302的判断结果为否时,判断该超链接的外链引用次数是否超过预设的次数阀值,如果是,则将该超链接发送给黑链确定模块303。其中预设的次数 阀值通常采用经验值。如果引用次数判断模块304的判断结果为否,则说明该超链接安全,对于此,该装置还可以包括:白名单维护模块305,用于在引用次数 判断模块304的判断结果为否时,将该超链接加入白名单数据库。为了进一步提高检测准确性,该装置还可以包括:恶意特征匹配模块306,用于获取检测模块 302以及引用次数判断模块304发送给黑链确定模块303的超链接,获取该超链接的网页内容特征,将获取的内容特征与已挖掘出的恶意特征数据库进行匹 配,如果匹配得上,则将该超链接发送给黑链确定模块303。也就是说,检测模块302以及引用次数判断模块304经过判断后,如果判断结果为是,可以首先 确定该超链接为可疑链接,然后经由恶意特征匹配模块306的匹配之后,在进一步确定该可疑链接是否为黑链。其中,恶意特征数据库中存储有被识别为黑链的网 页的关键词;此时,恶意特征匹配模块306在将获取的内容特征与已挖掘出的恶意特征数据库进行匹配时,可以具体将获取的该超链接的网页title或 Meta与恶意特征数据库中存储的关键词进行匹配。另外,该装置还可以包括:恶意特征库维护模块307,用于在黑链确定模块303将该超链接确定黑链后, 从该黑链的网页中进一步提取关键词,将该关键词存储于恶意特征数据库。

上述恶意特征数据库的形成可以通过手工的方式预先设置,也可以通过自动挖掘的方式形成。恶意特征数据库存储有被确定为黑链的链接,为了实现恶意特征数据库 的挖掘,该装置还包括:恶意特征库挖掘模块308,从网页库中获取超链接中包含了恶意特征数据库中链接的网页,将该网页中的其他超链接逐一提供给检测模块 302,并将黑链确定模块303确定的黑链加入恶意特征数据库;或者,从网页库中找出与恶意特征数据库中链接的网页相似度满足预设相似度要求的网页,将找 出的网页作为待检测网页提供给链接提取模块301,然后将黑链确定模块303确定的黑链加入恶意特征数据库。

在采用百度黑链检测算法的上述实施例检测出黑链以及被挂了黑链的网页之后,可以方便对被挂了黑链的网页进行漏洞扫描和安全加固。例如,可以进行端口扫描、 系统漏洞扫描或web安全漏洞扫描等等。具体的漏洞扫描和安全加固方式百度黑链检测算法并不加以限制。由以上描述可以看出,百度黑链检测算法提供的方法和 装置具备以下优点:1)能够自动实现黑链的检测,无需手工操作,不再受限于网站管理员对黑链知识的掌握。 2)百度黑链检测算法基于黑链的基本行为特性,即不可见的视觉特征,因此即便是新出现的黑链,只要满足该基本行为特性均能够及时有效地发现。3)对于基于 不可见的视觉特性无法检测出的黑链,能够进一步采用基于外链引用次数的判别方式,从而提高黑链检测的覆盖率。4)在基于不可见的视觉特性和外链引用次数的 判别方式之外,进一步对可疑的超链接进行基于恶意特征数据库的匹配,从而提高黑链的检测正确率。5)百度黑链检测算法还额外提供了恶意特征数据库的挖掘方 式,这种挖掘方式使黑链检测方法形成了一个迭代,从而使得黑链检测更加趋近于丰富和高覆盖率。

发表评论

邮箱地址不会被公开。