A-A+

黑帽seo培训:黑帽SEO剖析之终结篇

2020年07月02日 站长资讯 暂无评论

本文是黑帽SEO剖析的终结篇,因为此系列文章总共分为四篇,分别是手法篇、工具篇、隐藏篇、总结篇,转载在freebuf上一天一篇,小编昨天转载了第一篇后真想把其余三篇一次性看完。于是今天转载第二篇时就加上其余二篇整理成一篇推荐给读者。希望对从事信息安全服务的人员了解黑帽SEO有所帮助,毕竟作为安全工程师我们真正需要做的,是帮助客户去防御攻击,抵御黑产(重点请看最后的总结部分)。

再次感谢nmask花时间整理分享,还有很多不错的关于信息安全的技术文章可以到作者的博客站点查看,小编在这里墙裂推荐。 博文站点:https://xxx.one/

此文章前续为黑帽SEO剖析手法篇,请查看本公众号昨天的推文。或直接点此链接查看:安全培训经典素材:黑帽SEO剖析之手法篇。

搞黑帽SEO往往都是批量操作,因此自动化工具不可或缺,也是整个黑产环中比较重要的一环。先介绍几款黑帽seo中常用的工具,由于本篇写于一年前,因此部分工具可能已淘汰或者升级。

寄生虫(jsc)

植入寄生虫是黑帽SEO常用的一种方法,通过侵入别人网站,植入寄生虫程序,自动生成各种非法页面。之所以叫做寄生虫是因为能够自己触发生成,而不是一次生成,例如在访问网页的时候触发,自动生成页面且形成链轮等。简单来说,寄生虫是一种程序,此程序的功能是能够自己创建网页文件,而创建的条件可以定制,比如说当有人访问某个页面时就会触发寄生虫程序生成一批新的网页文件,或者每天定时创建等等。

我曾经在给一个客户处理应急响应事件时,便遇到过此类状况。每当我清理完所有恶意网页文件后,服务器上都会不时地自动生成一大批新的网页文件。令人头疼的是,当时我完全掌握不了生成新文件的规律。后来我们在一一排除web服务器上的文件时,发现了其中一个恶意的动态语言文件(由于种种原因,样本没有保留下来),此恶意文件就是类似寄生虫程序,会在我们访问此网站的某个页面触发,生成一批新的恶意页面。

寄生虫分类

寄生虫分为动态与静态,动态寄生虫程序的就是会不断自动生成新的页面(如我上面所述案例),或者是刷新页面以后自动变化内容,动态寄生虫生成的恶意文件往往是asp/php后缀文件;而静态寄生虫程序生成的页面往往都是固定不变的内容,大多为html后缀文件。

寄生虫模板

寄生虫程序生成的页面往往都是有固定模板的,模板的好坏有时也决定了是否能够被搜索引擎快速收录,以下是我收集的两种寄生虫程序生成的模板页面。

寄生虫模板案例一:

寄生虫模板案例二:

静态寄生虫挂二级目录案例

案例来自去年处理的一起入侵检测事件,我们发现目标网站上被挂了非法推广页面,如下图所示:

通过登录web服务器查看,我们发现了网站根目录下多了一个二级目录ds,而ds目录内放满了html文件,都是通过寄生虫生成的。(由于时间久远,html样本文件已丢失)

通过登录服务器日志分析,我们最终发现黑客是通过web应用程序漏洞获取到了服务器权限,并在该服务器上利用静态寄生虫程序创建了大量恶意的html后缀文件,并存放在ds目录下,其利用的便是高权重网站二级目录手法。

以上占用大量篇幅介绍了很多黑帽seo的手法,也介绍了寄生虫程序这一自动生成网页文件的利器。那么黑帽seo是如何让这些非法页面快速被搜索引擎收录的呢?我们知道如果这些恶意推广的页面无法被搜索引擎收录,那么黑帽SEO就达不到预期的效果。起初在研究黑帽seo时我也一直在思考这个问题,按常理搜索引擎不应该会收录具有恶意内容的推广页面,而事实是目前我们随便在百度上搜site:.gov.cn 博彩或者site:.edu.cn 色情,就会出现一大批被挂上博彩色情的政府教育机构网站。显然这些页面目前还是能够很好地被搜索引擎收录,甚至能很快被收录,我曾经发现过几分钟内被收录的恶意页面。那么是搜索引擎故意为之,还是有人利用了搜索引擎的某些特征或者说漏洞?要理解这个问题,我想必须得介绍一下黑帽SEO又一大利器—-蜘蛛池。

蜘蛛池

蜘蛛池是一种通过利用大型平台权重来获得搜索引擎收录以及排名的一种程序。原理可以理解为事先创建了一些站群,获取(豢养)了大量搜索引擎蜘蛛。当想要推广一个新的站点时,只需要将该站点以外链的形式添加到站群中,就能吸引蜘蛛爬取收录。简单来说就是通过购买大量域名,租用大量服务器,批量搭建网站形成站群。而这些网站彼此之间形成链轮,网站内容大多为超链接,或者一些动态的新闻内容等。经过一段时间的运营,此站群每天就能吸引一定量的搜索引擎蜘蛛,蜘蛛的多少要看网站内容搭建的好坏以及域名的个数。当蜘蛛数量达到一个量级且稳定以后,就可以往里面添加想要推广的网页,比如通过黑帽SEO手段创建的非法页面。这一过程就好比在一个高权重网站上添加友情链接,会达到快速收录的目的。

蜘蛛池交易平台

我随便百度了一下,发现互联网上存在很多蜘蛛池交易平台,即可通过互联网上的蜘蛛池推广恶意网页。这种方式省去了自己搭建蜘蛛池的麻烦,却也为黑帽seo人员提供了便利。在收集资料时,我挑选了其中一个交易平台,截图如下:

蜘蛛池站点案例

在为本篇文章收集黑帽SEO相关资料时,我发现了一款经典的蜘蛛池站点,在此分享。

其特点是内容动态生成,刷新页面发现内容随机改变

很明显此网站内容都是通过动态寄生虫程序生成的,且不断变化内容来增加百度对其收录。(百度目前对原创内容的收录率比较高)

几大搜索引擎收录情况

百度搜索引擎收录情况:

谷歌搜索引擎收录情况:

bing搜索引擎收录情况:

搜狗搜索引擎收录情况:

通过对比几大常用搜索引擎对此蜘蛛池站点的收录情况,我们不难看出这套蜘蛛池程序目前只对百度搜索引擎爬虫有效。当然78条的收录量对于一个蜘蛛池站点来说不算很高,说明百度对此手段已有所防范。

下面为隐身篇,主要介绍黑帽seo中一些隐身的手段。黑帽seo与其他黑产行为不同的是,它需要时间去创造价值。如果是倒卖数据,只需要入侵服务器脱裤走人,而黑帽seo需要潜伏在服务器上一段时间,因为它主要靠引流来创造价值。那么如何做到不被服务器运维发现就至关重要了,也是黑帽seo行为是否能最终成功的关键。

隐身的技术

在处理的一些入侵应急响应事件中,我们发现有些网站被挂恶意页面达数月甚至数年之久,而在此期间管理员竟然毫无察觉。有时这并非是管理员的粗心大意,而是黑客过于狡猾。在了解了我之前所介绍的网页劫持手段后,我想你大概能了解这其中的缘由了,网页劫持能控制跳转控制页面呈现的内容,这便是难以被管理员发现的主要原因。除此之外,寄生虫程序能够自动生成网页也使得其生存能力很强,不易被根除。其次我们在发现网站被挂恶意网页后,通常会登录服务器进行查看,而有时我们很难找到被非法篡改或者被恶意植入的脚本文件,因为此类型文件被黑客精心地隐藏了起来。那么除了上述手段之外,黑客还有哪些手段来隐藏自身,使之生生不灭?

网页劫持控制跳转

网页劫持中的控制跳转就是为了隐藏网站已被入侵的事实,让网站管理员不容易发现。

nginx二级目录反向代理技术

通过配置nginx/apache等中间件配置文件设置目录代理,将服务器上某个目录代理到自己搭建服务器上的某个目录。即浏览者在打开thief.one/2016/目录时,实际访问到的资源是自己服务器上的某个目录(目标服务器会去自己服务器上拿数据)。这种手法不需要修改目标服务器网站源码,只需要修改中间件配置文件,不易被删除也不易被发现。

隐藏文件

给文件设置属性隐藏。我曾经遇到过此类事件,当时我们一个技术人员通过肉眼选择了服务器上一批web目录下的文件进行copy。而当我们对这些文件进行扫描时,并未发现任何异常,一切都变得匪夷所思。而最后的结果让我们哭笑不得,原来恶意文件被设置成了属性隐藏,通过肉眼观察的技术人员并没有将此文件copy下来,因此这也算是一种有效的障眼法。

不死文件

不死文件指的是删除不了的webshell或者是非法页面文件(.html或者动态文件),此类事件在实际中没有遇到过,但理论上确实可行。

1)设置畸形目录

目录名中存在一个或多个. (点、英文句号)

md a..\

该目录无法被手工删除,当然命令行可以删除

rd /s /q a..\

2)特殊文件名

其实是系统设备名,这是Windows 系统保留的文件名,普通方法无法访问,主要有:lpt,aux,com1-9,prn,nul,con,例如:lpt.txt、com1.txt 、aux.txt,aux.pasp,aux.php等。

echo hello>\\.\c:\a..\aux.txt

3)畸形目录+特殊文件名

md c:\a..\

echo hello>\\.\c:\a..\aux.asp #注意:这里的路径要写绝对路径(上传的aux.php木马

删除:

rd /s /q \\.\c:\a..\

方法还有很多,不一一列举了。

最后为总结篇,主要介绍黑帽seo行为的检测以及预防。可以说此系列前面三篇文章,是为最后一篇做的铺垫,毕竟作为安全工程师我们真正需要做的,是帮助客户去防御攻击,抵御黑产。

如何检测自身网站是否被劫持?

前面介绍了很多关于黑帽seo的手法,那作为站长或者运维该怎么去监控自身网站是否被入侵,且被黑帽seo利用了呢?这里不说如何检测入侵,因为这不是本文的范畴,我们只谈如何检测被黑帽seo利用,这里提供几个思路。

内部监控

可以监控服务器web目录下的文件改动情况,一般黑帽seo都需要改动web目录下的文件(新增文件,或更改文件内容)。当然有些只改变nginx配置就可以达到目的,因此nginx等服务器的配置文件也需要进行监控。

小结:内部监控比较类似防篡改的检测,只是面对网页劫持,除了响应文件内容改动以外,还需要响应新增文件等行为,包括服务器配置文件的改动。

外部检测

黑帽seo手法从根本上是欺骗搜索引擎,因此检测本质上也可以从搜索引擎出发。检测网站在搜索引擎搜索显示下是否出现了敏感的内容,比如:博彩、色情等。由于网页劫持手法可以动态调控显示内容,比如不同地区点击返回不同的内容等,因此这需要我们的检测程序能够多维度得进行检测。

多维度包括但不局限于以下几种:

采用不同地区的IP检测目标网站

采用不同时间段内检测目标网站

采用不同的UA访问目标网站

采用不同的访问方式目标网站(百度搜索跳转、直接访问域名)

检测步骤分为:

获取搜索引擎搜索结果

模拟浏览器访问搜索结果网页

解析网页源码等元素

匹配规则判断网站是否被劫持

1)获取搜索引擎搜索结果

这一步骤需要爬取搜索引擎,比如我们要判断thief.one网站是否被劫持,可以搜索百度:site:thief.one 色情。关键词需要自己搜集,然后利用爬虫爬取百度的搜索结果。

显然这一步需要对抗百度搜索引擎,防止被其屏蔽问题,还要能够正确的获取百度的搜索结果。关于爬起搜索引擎可参考(如感兴趣请到作者博客上查看):

爬取搜索引擎之寻你千百度

爬取搜索引擎之搜狗

2)模拟浏览器访问搜索结果网页

当爬到所需要的网页链接后,我们需要重放url获取信息。这一步需要能够动态执行网页中嵌入的js代码,动态跟踪网页的走向(跳转)。这里推荐使用phantomjs当然也可以使用其他webkit。

3)解析网页源码等元素

可以利用python解析网页源码、网页标题、URL、js等内容,最方便的做法是获取各个参数的内容,处理数据打标后扔到机器学习的算法中进行模型计算。

4)匹配规则判断网站是否被劫持

可以使用正则等方式,根据黑帽seo等特征建立规则库去匹配。当然也可以利用机器学习的方式去对相关网页进行分类,我们曾经使用过某种算法,将准确率提高到了90%左右。

小结:外部检测难度比较大,目前黑帽seo主要针对百度,因此这相当于去检测百度的搜索结果;而如何模拟浏览器访问也是一大难题,当然最重要的是最后的机器学习,如何训练模型。

谁来为此买单?

基于黑帽SEO大多数都为博彩赌博行业做推广,将会增加网民沉迷网络赌博的风险,纵观身边因为网络赌博而家破人亡的事情不在少数;而也有一部分黑帽SEO在为枪支弹药、毒品违禁药物做推广,更是为犯罪分子提供了便利。在此之前,我一直认为黑产只是暴利并无太大危害,然而通过对黑帽SEO的研究发现,其危害的绝不仅仅只是经济而已。那么这一切,应该由谁来买单?

首先网站管理者难辞其咎,正因为管理员安全意识的淡薄,网站安全性不高,导致被入侵最终成为黑产的一部分。在我自身处理的几起类似事件中,网站管理员往往是一副无关紧要的态度,即使网站已经被黑帽SEO利用,也觉得没有对网站本身造成什么危害,觉悟性不高。

其次搜索引擎应该担负一定的责任,因为黑帽SEO行为主要针对搜索引擎,说白了就是利用搜索引擎算法漏洞,提升非法网站权重。国内大多数网民上网都使用搜索引擎。搜索引擎既然有权利决定显示哪些资源给用户,那么也必须有义务确保这些资源的安全性、正规性。

如何制止与防御?

如果您是网民,制止黑帽seo最好的方式就是科学上网,发现非法网站及时提交到安全联盟(https://www.anquan.org/)或向搜索引擎举报。

如果您是网站管理员,请做好自身网站的安全建设,及时补漏;若已发现被入侵,及时联系技术人员处理。

谈谈心

当在写这篇文章前,我思索着尽量能够全面地介绍黑帽SEO知识以及手法。当开始写这篇文章的时候,我便有点无从下手,因为涉及知识面太广,手法又非常丰富,我研究黑帽SEO不久了解也不算深入。而当我写完这篇文章的时候,我觉得这一切才刚刚开始,也许我此刻抒写的正是黑客几年前或十几年前所用或者所流行的技术。

~本文是黑帽SEO剖析的终结篇,因为此系列文章总共分为四篇,分别是手法篇、工具篇、隐藏篇、总结篇,转载在freebuf上一天一篇,小编昨天转载了第一篇后真想把其余三篇一次性看完。于是今天转载第二篇时就加上其余二篇整理成一篇推荐给读者。希望对从事信息安全服务的人员了解黑帽SEO有所帮助,毕竟作为安全工程师我们真正需要做的,是帮助客户去防御攻击,抵御黑产(重点请看最后的总结部分)。

再次感谢nmask花时间整理分享,还有很多不错的关于信息安全的技术文章可以到作者的博客站点查看,小编在这里墙裂推荐。 博文站点:https://thief.one/

此文章前续为黑帽SEO剖析手法篇,请查看本公众号昨天的推文。或直接点此链接查看:安全培训经典素材:黑帽SEO剖析之手法篇。

搞黑帽SEO往往都是批量操作,因此自动化工具不可或缺,也是整个黑产环中比较重要的一环。先介绍几款黑帽seo中常用的工具,由于本篇写于一年前,因此部分工具可能已淘汰或者升级。

寄生虫(jsc)

植入寄生虫是黑帽SEO常用的一种方法,通过侵入别人网站,植入寄生虫程序,自动生成各种非法页面。之所以叫做寄生虫是因为能够自己触发生成,而不是一次生成,例如在访问网页的时候触发,自动生成页面且形成链轮等。简单来说,寄生虫是一种程序,此程序的功能是能够自己创建网页文件,而创建的条件可以定制,比如说当有人访问某个页面时就会触发寄生虫程序生成一批新的网页文件,或者每天定时创建等等。

我曾经在给一个客户处理应急响应事件时,便遇到过此类状况。每当我清理完所有恶意网页文件后,服务器上都会不时地自动生成一大批新的网页文件。令人头疼的是,当时我完全掌握不了生成新文件的规律。后来我们在一一排除web服务器上的文件时,发现了其中一个恶意的动态语言文件(由于种种原因,样本没有保留下来),此恶意文件就是类似寄生虫程序,会在我们访问此网站的某个页面触发,生成一批新的恶意页面。

寄生虫分类

寄生虫分为动态与静态,动态寄生虫程序的就是会不断自动生成新的页面(如我上面所述案例),或者是刷新页面以后自动变化内容,动态寄生虫生成的恶意文件往往是asp/php后缀文件;而静态寄生虫程序生成的页面往往都是固定不变的内容,大多为html后缀文件。

寄生虫模板

寄生虫程序生成的页面往往都是有固定模板的,模板的好坏有时也决定了是否能够被搜索引擎快速收录,以下是我收集的两种寄生虫程序生成的模板页面。

寄生虫模板案例一:

寄生虫模板案例二:

静态寄生虫挂二级目录案例

案例来自去年处理的一起入侵检测事件,我们发现目标网站上被挂了非法推广页面,如下图所示:

通过登录web服务器查看,我们发现了网站根目录下多了一个二级目录ds,而ds目录内放满了html文件,都是通过寄生虫生成的。(由于时间久远,html样本文件已丢失)

通过登录服务器日志分析,我们最终发现黑客是通过web应用程序漏洞获取到了服务器权限,并在该服务器上利用静态寄生虫程序创建了大量恶意的html后缀文件,并存放在ds目录下,其利用的便是高权重网站二级目录手法。

以上占用大量篇幅介绍了很多黑帽seo的手法,也介绍了寄生虫程序这一自动生成网页文件的利器。那么黑帽seo是如何让这些非法页面快速被搜索引擎收录的呢?我们知道如果这些恶意推广的页面无法被搜索引擎收录,那么黑帽SEO就达不到预期的效果。起初在研究黑帽seo时我也一直在思考这个问题,按常理搜索引擎不应该会收录具有恶意内容的推广页面,而事实是目前我们随便在百度上搜site:.gov.cn 博彩或者site:.edu.cn 色情,就会出现一大批被挂上博彩色情的政府教育机构网站。显然这些页面目前还是能够很好地被搜索引擎收录,甚至能很快被收录,我曾经发现过几分钟内被收录的恶意页面。那么是搜索引擎故意为之,还是有人利用了搜索引擎的某些特征或者说漏洞?要理解这个问题,我想必须得介绍一下黑帽SEO又一大利器—-蜘蛛池。

蜘蛛池

蜘蛛池是一种通过利用大型平台权重来获得搜索引擎收录以及排名的一种程序。原理可以理解为事先创建了一些站群,获取(豢养)了大量搜索引擎蜘蛛。当想要推广一个新的站点时,只需要将该站点以外链的形式添加到站群中,就能吸引蜘蛛爬取收录。简单来说就是通过购买大量域名,租用大量服务器,批量搭建网站形成站群。而这些网站彼此之间形成链轮,网站内容大多为超链接,或者一些动态的新闻内容等。经过一段时间的运营,此站群每天就能吸引一定量的搜索引擎蜘蛛,蜘蛛的多少要看网站内容搭建的好坏以及域名的个数。当蜘蛛数量达到一个量级且稳定以后,就可以往里面添加想要推广的网页,比如通过黑帽SEO手段创建的非法页面。这一过程就好比在一个高权重网站上添加友情链接,会达到快速收录的目的。

蜘蛛池交易平台

我随便百度了一下,发现互联网上存在很多蜘蛛池交易平台,即可通过互联网上的蜘蛛池推广恶意网页。这种方式省去了自己搭建蜘蛛池的麻烦,却也为黑帽seo人员提供了便利。在收集资料时,我挑选了其中一个交易平台,截图如下:

蜘蛛池站点案例

在为本篇文章收集黑帽SEO相关资料时,我发现了一款经典的蜘蛛池站点,在此分享。

其特点是内容动态生成,刷新页面发现内容随机改变

很明显此网站内容都是通过动态寄生虫程序生成的,且不断变化内容来增加百度对其收录。(百度目前对原创内容的收录率比较高)

几大搜索引擎收录情况

百度搜索引擎收录情况:

谷歌搜索引擎收录情况:

bing搜索引擎收录情况:

搜狗搜索引擎收录情况:

通过对比几大常用搜索引擎对此蜘蛛池站点的收录情况,我们不难看出这套蜘蛛池程序目前只对百度搜索引擎爬虫有效。当然78条的收录量对于一个蜘蛛池站点来说不算很高,说明百度对此手段已有所防范。

下面为隐身篇,主要介绍黑帽seo中一些隐身的手段。黑帽seo与其他黑产行为不同的是,它需要时间去创造价值。如果是倒卖数据,只需要入侵服务器脱裤走人,而黑帽seo需要潜伏在服务器上一段时间,因为它主要靠引流来创造价值。那么如何做到不被服务器运维发现就至关重要了,也是黑帽seo行为是否能最终成功的关键。

隐身的技术

在处理的一些入侵应急响应事件中,我们发现有些网站被挂恶意页面达数月甚至数年之久,而在此期间管理员竟然毫无察觉。有时这并非是管理员的粗心大意,而是黑客过于狡猾。在了解了我之前所介绍的网页劫持手段后,我想你大概能了解这其中的缘由了,网页劫持能控制跳转控制页面呈现的内容,这便是难以被管理员发现的主要原因。除此之外,寄生虫程序能够自动生成网页也使得其生存能力很强,不易被根除。其次我们在发现网站被挂恶意网页后,通常会登录服务器进行查看,而有时我们很难找到被非法篡改或者被恶意植入的脚本文件,因为此类型文件被黑客精心地隐藏了起来。那么除了上述手段之外,黑客还有哪些手段来隐藏自身,使之生生不灭?

网页劫持控制跳转

网页劫持中的控制跳转就是为了隐藏网站已被入侵的事实,让网站管理员不容易发现。

nginx二级目录反向代理技术

通过配置nginx/apache等中间件配置文件设置目录代理,将服务器上某个目录代理到自己搭建服务器上的某个目录。即浏览者在打开thief.one/2016/目录时,实际访问到的资源是自己服务器上的某个目录(目标服务器会去自己服务器上拿数据)。这种手法不需要修改目标服务器网站源码,只需要修改中间件配置文件,不易被删除也不易被发现。

隐藏文件

给文件设置属性隐藏。我曾经遇到过此类事件,当时我们一个技术人员通过肉眼选择了服务器上一批web目录下的文件进行copy。而当我们对这些文件进行扫描时,并未发现任何异常,一切都变得匪夷所思。而最后的结果让我们哭笑不得,原来恶意文件被设置成了属性隐藏,通过肉眼观察的技术人员并没有将此文件copy下来,因此这也算是一种有效的障眼法。

不死文件

不死文件指的是删除不了的webshell或者是非法页面文件(.html或者动态文件),此类事件在实际中没有遇到过,但理论上确实可行。

1)设置畸形目录

目录名中存在一个或多个. (点、英文句号)

md a..\

该目录无法被手工删除,当然命令行可以删除

rd /s /q a..\

2)特殊文件名

其实是系统设备名,这是Windows 系统保留的文件名,普通方法无法访问,主要有:lpt,aux,com1-9,prn,nul,con,例如:lpt.txt、com1.txt 、aux.txt,aux.pasp,aux.php等。

echo hello>\\.\c:\a..\aux.txt

3)畸形目录+特殊文件名

md c:\a..\

echo hello>\\.\c:\a..\aux.asp #注意:这里的路径要写绝对路径(上传的aux.php木马

删除:

rd /s /q \\.\c:\a..\

方法还有很多,不一一列举了。

最后为总结篇,主要介绍黑帽seo行为的检测以及预防。可以说此系列前面三篇文章,是为最后一篇做的铺垫,毕竟作为安全工程师我们真正需要做的,是帮助客户去防御攻击,抵御黑产。

如何检测自身网站是否被劫持?

前面介绍了很多关于黑帽seo的手法,那作为站长或者运维该怎么去监控自身网站是否被入侵,且被黑帽seo利用了呢?这里不说如何检测入侵,因为这不是本文的范畴,我们只谈如何检测被黑帽seo利用,这里提供几个思路。

内部监控

可以监控服务器web目录下的文件改动情况,一般黑帽seo都需要改动web目录下的文件(新增文件,或更改文件内容)。当然有些只改变nginx配置就可以达到目的,因此nginx等服务器的配置文件也需要进行监控。

小结:内部监控比较类似防篡改的检测,只是面对网页劫持,除了响应文件内容改动以外,还需要响应新增文件等行为,包括服务器配置文件的改动。

外部检测

黑帽seo手法从根本上是欺骗搜索引擎,因此检测本质上也可以从搜索引擎出发。检测网站在搜索引擎搜索显示下是否出现了敏感的内容,比如:博彩、色情等。由于网页劫持手法可以动态调控显示内容,比如不同地区点击返回不同的内容等,因此这需要我们的检测程序能够多维度得进行检测。

多维度包括但不局限于以下几种:

采用不同地区的IP检测目标网站

采用不同时间段内检测目标网站

采用不同的UA访问目标网站

采用不同的访问方式目标网站(百度搜索跳转、直接访问域名)

检测步骤分为:

获取搜索引擎搜索结果

模拟浏览器访问搜索结果网页

解析网页源码等元素

匹配规则判断网站是否被劫持

1)获取搜索引擎搜索结果

这一步骤需要爬取搜索引擎,比如我们要判断thief.one网站是否被劫持,可以搜索百度:site:thief.one 色情。关键词需要自己搜集,然后利用爬虫爬取百度的搜索结果。

显然这一步需要对抗百度搜索引擎,防止被其屏蔽问题,还要能够正确的获取百度的搜索结果。关于爬起搜索引擎可参考(如感兴趣请到作者博客上查看):

爬取搜索引擎之寻你千百度

爬取搜索引擎之搜狗

2)模拟浏览器访问搜索结果网页

当爬到所需要的网页链接后,我们需要重放url获取信息。这一步需要能够动态执行网页中嵌入的js代码,动态跟踪网页的走向(跳转)。这里推荐使用phantomjs当然也可以使用其他webkit。

3)解析网页源码等元素

可以利用python解析网页源码、网页标题、URL、js等内容,最方便的做法是获取各个参数的内容,处理数据打标后扔到机器学习的算法中进行模型计算。

4)匹配规则判断网站是否被劫持

可以使用正则等方式,根据黑帽seo等特征建立规则库去匹配。当然也可以利用机器学习的方式去对相关网页进行分类,我们曾经使用过某种算法,将准确率提高到了90%左右。

小结:外部检测难度比较大,目前黑帽seo主要针对百度,因此这相当于去检测百度的搜索结果;而如何模拟浏览器访问也是一大难题,当然最重要的是最后的机器学习,如何训练模型。

谁来为此买单?

基于黑帽SEO大多数都为博彩赌博行业做推广,将会增加网民沉迷网络赌博的风险,纵观身边因为网络赌博而家破人亡的事情不在少数;而也有一部分黑帽SEO在为枪支弹药、毒品违禁药物做推广,更是为犯罪分子提供了便利。在此之前,我一直认为黑产只是暴利并无太大危害,然而通过对黑帽SEO的研究发现,其危害的绝不仅仅只是经济而已。那么这一切,应该由谁来买单?

首先网站管理者难辞其咎,正因为管理员安全意识的淡薄,网站安全性不高,导致被入侵最终成为黑产的一部分。在我自身处理的几起类似事件中,网站管理员往往是一副无关紧要的态度,即使网站已经被黑帽SEO利用,也觉得没有对网站本身造成什么危害,觉悟性不高。

其次搜索引擎应该担负一定的责任,因为黑帽SEO行为主要针对搜索引擎,说白了就是利用搜索引擎算法漏洞,提升非法网站权重。国内大多数网民上网都使用搜索引擎。搜索引擎既然有权利决定显示哪些资源给用户,那么也必须有义务确保这些资源的安全性、正规性。

如何制止与防御?

如果您是网民,制止黑帽seo最好的方式就是科学上网,发现非法网站及时提交到安全联盟(https://www.XXX.org/)或向搜索引擎举报。

如果您是网站管理员,请做好自身网站的安全建设,及时补漏;若已发现被入侵,及时联系技术人员处理。

谈谈心

当在写这篇文章前,我思索着尽量能够全面地介绍黑帽SEO知识以及手法。当开始写这篇文章的时候,我便有点无从下手,因为涉及知识面太广,手法又非常丰富,我研究黑帽SEO不久了解也不算深入。而当我写完这篇文章的时候,我觉得这一切才刚刚开始,也许我此刻抒写的正是黑客几年前或十几年前所用或者所流行的技术。

标签:

给我留言