基于PageRank 算法的赌博网站静态检测技术改进研究
2020-03-05薛宛玥洪磊陈维杰程欣
薛宛玥,洪磊,陈维杰,程欣
(1.江苏警官学院计算机信息与网络安全系,南京210031;2.南京市公安局网络安全保卫支队,南京210005)
0 引言
网络时代,因为互联网的匿名和自由,赌博网站蔓延速度变快,危害变大[1]。尤其在移动互联网发展迅速的今天,赌博网站借助木马、钓鱼等技术,渗透到正常网站中,吸引人们尤其是青少年进行投彩、下注等行为,严重影响我国社会治安和经济安全。鉴于赌博网站的可复制性强,传播速度快的特点,准确和高效地识别赌博网站至关重要。
1 现有研究综述
违法网站自动识别技术已知的有3 大类,黑名单技术、静态检测技术和动态检测技术[2]。基于人工建立和维护网址黑名单的黑名单技术,工作量大,成本高,无法识别新网站;基于爬虫和决策树的静态检测技术,理论完备,技术成熟,但是主要基于网站的静态数据,如HTML 文档等,这类数据易被伪装,受反爬影响较大,相比黑名单技术对每一个网站写入一条黑名单,静态检测只需要维护相对少量的判断规则,维护更为方便,但是对于新网站的识别不够及时和主动;基于利用蜜罐技术主动访问检测被访问主页攻击方式的动态检测技术,难度大,耗时长,对挂马类违法网站识别效果较好,对博彩类网站识别效果较差。
黑名单检测人力成本过高且更新维护成本巨大,现阶段静态检测方法主动性不强、检测速度有待进一步提高。静态检测方法的准确度理论值极高,现阶段的瓶颈在于爬虫与反爬机制的对抗,以及OCR、语音识别的准确度。
新型自动识别方法也有许多,如凡友荣的基于URL 特征检测的识别方法[3]和张瀚珑的基于模板检测的违法网站识别方法[4]。一位是依据不同模版的URL进行聚类和特征提取,一位是依照网站模版的图像进行识别。
基于PageRank 的网页识别方法是在已有数据库的前提(本次测试数据4000 条)下,通过深度爬虫,基于原有链接与新链接之间的指向关系(数万条数据)批量获取分类结果,相比原有的静态检测方法更具主动性,经测试,每次分类可获取赌博网站数占总量的60%以上。
2 实验方法及原理
数据来源是前期通过爬虫获取的一批赌博网站数据,经过专家判断后获得了高质量域名数据集,也就是黑名单。
实验数据使用域名,而非完整URL。一方面是因为域名和URL 存在包含关系,一个域名可以有多个URL,直接使用域名效率相对更高,制作黑白名单所需要的存储空间更小,另一方面URL 的命名规则相对容易变化且成本较低,域名注册需要备案,虽然也可以批量注册但成本相对较高,即域名相对稳定不易变化。
赌博网站的特点之一是善于伪装[5],为了不容易被识别为赌博网站,有些赌博网站的主页看起来就像网址大全、新闻门户的主页,其中很多链接也会指向正常的服务而非赌博项目,还会有动态更新页面内容的赌博网站,当你浏览时间超过一定时间,其主页内容才会从看似正常的服务一下变更为赌博网站页面。赌博网站还具有一个特点,他们没有自己的转账服务,所以一定会指向电子银行的域名,同理,还可能存在邮箱等通讯服务的域名。
因为赌博网站具有上述两个特点,所以在后续的爬取过程中会获取一大批白名单网站域名,如www.baidu.com、www.58com、www.163.com 等。导致爬取的域名黑白名单混杂在一起,白名单指的是所有的非赌博网站,但绝大部分是提供搜索、转账、播放等正常服务的网站域名。虽然使用传统的方法可以实时对黑白名单加以更为准确地区分,但是在爬取完成后使用基于PageRank 算法原理改进静态检测方法可以实现批量区分。
基于PageRank 算法原理,可以根据域名指向关系获取重要程度(PR 值)排名,再以特定阈值将白名单与目标网站区分开,一方面为区分目标网站提供新的可能方法,另一方面,为有效扩充白名单提供了辅助方法。
赌博网站还具有集团性的特点,赌博网站也像很多公司一样有自己的Logo,有的赌博网站是比较小众的,根系也不发达,它的识别一般成本比较高,因为受众少也更难发现,而大部分为人知晓的赌博网站则比较庞大,成百上千个子域名都是可能的,可以将一个名称的或者多个名称不同但网站模版[6]相同的认为是一个集团,另外,比较大型的赌博集团不同时期的网站模板也不尽相同。
在实验过程中,没有对原始域名数据划分集团,发现存在直接计算PR 值,黑白域名区分度不高的情况。于是利用博彩网站存在的集团性使用社区发现算法再结合PageRank 排序,将两种规律相结合,提高了分类的准确度,形成基于PageRank 算法原理和聚类方法的静态检测方法。
图1 基于PageRank改进的静态检测流程
2.1 PageRank算法原理
PageRank 算法原本是Google 提出的网页排名算法,其基本思想是根据网页的出入链关系计算网页在网络中的重要程度,用PR 值表示,PR 值越高,表示网页越重要,其排名也会相对靠前,其具体算法如下:
假设存在网站A,B,C,…,Z(N),其中,B,C,D,…网站存在指向A 的链接,B,C,D,…网站的总外链数为L(B),L(C),L(D),PR 值分别为PR(B),PR(C),PR(D),…,则A 的PR 值计算公式如下:
其中,d 表示随机跳转概率,表示从某网站不经过链接而是地址栏跳转访问A 的概率,通常取0.85。
与PageRank 的原始试验对象有所区别,赌博网站识别实验中使用的节点并非页面,而是域名。众所周知,每个域名可以包含多个页面。但是,赌博网站域名的指向关系类似于互联网上的网站链接关系,用域名取代网页作为节点,用域名间的指向取代网页之间的超链接,则可以用PR 值表示某域名在赌博网站指向关系网中的“重要程度”。
在数据爬取和分析阶段,已经发现实验中提供正常服务的白名单网页的出现次数明显高于目标域名,猜想如果对域名使用PageRank 算法排序,白名单网站域名与赌博网站域名PR 值也会有明显的区别,白名单网站域名的“重要程度”也会比赌博网站域名的重要性大。
考虑到实际生活中访问赌博网站和访问正常网站时访问方式的不同,例如,正常访问百度,绝大部分人应该是在地址栏中直接输入地址。而网络赌民输入的应当是某个主站或者跳转站或者自己喜欢、认为可以给自己带来“好彩头”的域名,然后,接下来所有的访问几乎都是在点击跳转链接,可以认为几乎完全是通过点击跳转实现的,后续将随机跳转概率d 调整为0.99与通常的0.85 进行了对比,发现d=0.99 的确效果更好。
2.2 社区发现算法原理
社区发现算法也是一种聚类算法,通过节点之间的连接关系划分社区,根据社区之间是否有重叠部分可以分为重叠社区和非重叠社区,通常的社区发现算法包括关联人发现等。
在该实验中,由于博彩网站具有集团性,可以首先利用爬虫获取的新旧域名指向关系划分社区,社区与集团之间也存在一定的关联性。可能存在孤立的社团,其集团性质比较单一。也会有节点数量很多的社团,这类社团性质为重叠社区,由于不同集团之间存在业务竞争关系,新链接重叠部分大概率为普通公众业务,如转账、邮箱等正常服务。
赌博网站域名大部分为批量注册,其域名具有相似性。有通过计算URL 文本相对距离进行的赌博网站识别实验。统一集团某一时间段注册的域名都具有鲜明的相似性[3],可以利用域名的相似性,直观地判断划分出的小社团是否属于同一个集团。
实验中,由于博彩网站社团与常规的网站社团和人际关系社团不同,集团内部大量存在一对一和一对多的链接关系,集团之间大量存在多对一的链接关系,集团内关系并不复杂,直接使用连通子图对节点进行聚类也能取得较好的聚类结果。
图2 域名竞争关系
3 实验结果验证
利用爬虫扩大赌博网站域名数据库时,为批量判定新网站是否是目标网站,将域名作为节点,利用域名的指向关系构成边,将这样的连通图视为一个网络,利用PageRank 算法计算其中每个节点的PR 值,作为黑白名单划分的依据。实验发现只对爬取结果整体计算一次PR 值的效果并不好,整体的PR 值对高频数据(出现次数多)区分度不大。通过实验证明利用社区算法可以让域名的连接情况更加明显,例如在社区内分别放大节点的PR 值,虽然并不影响域名依据PR 值的排序结果,但是先通过聚类方法划分大小社区,再对大社区进行PR 值计算,可以大幅提高整体的分类准确率。
3.1 依照PageRank对新链接进行聚类的结果
前期经过专家确认的4000 多条高质量博彩网站域名,经过脱敏处理后,形成了原始数据表。
为了后续的处理,利用爬虫获取了原始域名指向的新域名,并记录了相互的指向关系共11000 多条。为了后续能够对识别结果进行验证,我们对所有获得的新域名进行了人工标注,形成了白名单列表用于最终结果验证。
表1 域名指向关系示例
利用表1 的边关系,使用PageRank 算法,计算节点的PR 值并排序,如表2 所示。
表2 PR 值TOP3 一览(d 值取0.99)
由于我们的原始数据是质量极高赌博网站,对于不包含公共服务的页面,应当获得较小的社团,对于包含公共服务的页面,会根据多对一的关系聚集成大的社团。根据白名单列表计算每个社团的白名单率并排序,发现一共156 个社团,只有大型社团(此处为上千域名数)才存在白名单,社团越大,白名单率越高。小型社团(此处不足一百域名数)均是纯粹的赌博集团。
与PR 值排序相比,其分布并不均匀,但较大部分小型社团分布在PR 值排序后1/2 部分。
但是,对于PR 值排序前1/2 以及大型社团内域名还未能加以区分。尝试引入社团内PR 值的概念。即对大社团内部的节点筛选出只包含这些节点的边关系,重新构成域名指向关系网,计算该域名指向关系网内各域名的PR 值,成功扩大第一次计算所得的PR 值。
但是,可能是由于赌博网站的集团性过于明显,将划分社区前后的PR 值进行比较,发现PR 值的确被放大了,但是每个域名PR 值排序的先后顺序并没有发生显著变化,如表3 所示。
表3 社团内PR 值与整体PR 值对比表
虽然直接选取第一次获得的整体PR 值排序结果和选取第二次划分社区后的PR 值排序结果几乎没有差别,但是经过比较发现,白名单集中存在于PR 值排名前半部分的规律并没有发生变化。即对于大社团,重新计算PR 值并加以排序后,后半部分依旧为赌博网站。
表4 PR 值排序中白名单在不同位置的比例
经过多次计算求平均值,发现98%的白名单都集中在排序后的PR 值列表的前60%,50%的白名单都集中在排序后的PR 值列表的50%-60%之间。
3.2 PageRank控制参数结果比较
d 表示由地址栏直接跳转到某一界面的概率,通常值为0.85。
由于赌博网站具有一定的隐蔽性导致难以被正常访问,虽然在日常生活中赌博小广告无孔不入,但是博彩域名极少具有意义难以记忆,所以应当与正常的网站相区分,访问方式应当主要利用已有网页跳转到新网页才更符合访问博彩网站的实际情况,所以随即跳转参数d 的值应当适当提高,实验中用0.99 与通常值0.85 进行对比。
表5 PR 值排序结果中前60%集中白名单比例
实验发现,d=0.99 时,获得的PageRank 排行用于分类的效果更好。
4 结语
利用赌博网站的集团性,采用聚类方法将域名依照相互间指向关系划分为小社团与大社团。根据PageRank 算法原理,利用域名间相互指向关系,计算出域名在赌博网站指向网中的重要性。通过观察分析,发现白名单网站和赌博网站在PageRank 排名中的分布具有规律性,使得批量分类赌博网站域名与白名单域名具有可行性。
分析赌博网站受众的特点[7],测试发现当随机跳转指数为0.99 时,黑白名单在PR 值排名中的分布性会更为明显。
在已有赌博网站数据库条件下,对二层爬虫所得域名聚类所得小型社团均为纯粹的赌博网站。对于大型社团计算PR 值,与整体PR 值排序结果没有变化,但黑白名单分布规律依旧符合半数规律,即整体白名单域名分布在整体PR 排序列表前半数,社团内白名单域名分布在社团内PR 排序列表前半数。
最后,通过多次试验,发现通过聚类和计算PR 值相结合的方法,利用黑白名单分布规律,可最终实现单次获取总数60%以上的赌博网站域名。