薛宛玥,洪磊,陳維杰,程欣
(1.江蘇警官學(xué)院計(jì)算機(jī)信息與網(wǎng)絡(luò)安全系,南京210031;2.南京市公安局網(wǎng)絡(luò)安全保衛(wèi)支隊(duì),南京210005)
網(wǎng)絡(luò)時(shí)代,因?yàn)榛ヂ?lián)網(wǎng)的匿名和自由,賭博網(wǎng)站蔓延速度變快,危害變大[1]。尤其在移動(dòng)互聯(lián)網(wǎng)發(fā)展迅速的今天,賭博網(wǎng)站借助木馬、釣魚(yú)等技術(shù),滲透到正常網(wǎng)站中,吸引人們尤其是青少年進(jìn)行投彩、下注等行為,嚴(yán)重影響我國(guó)社會(huì)治安和經(jīng)濟(jì)安全。鑒于賭博網(wǎng)站的可復(fù)制性強(qiáng),傳播速度快的特點(diǎn),準(zhǔn)確和高效地識(shí)別賭博網(wǎng)站至關(guān)重要。
違法網(wǎng)站自動(dòng)識(shí)別技術(shù)已知的有3 大類(lèi),黑名單技術(shù)、靜態(tài)檢測(cè)技術(shù)和動(dòng)態(tài)檢測(cè)技術(shù)[2]?;谌斯そ⒑途S護(hù)網(wǎng)址黑名單的黑名單技術(shù),工作量大,成本高,無(wú)法識(shí)別新網(wǎng)站;基于爬蟲(chóng)和決策樹(shù)的靜態(tài)檢測(cè)技術(shù),理論完備,技術(shù)成熟,但是主要基于網(wǎng)站的靜態(tài)數(shù)據(jù),如HTML 文檔等,這類(lèi)數(shù)據(jù)易被偽裝,受反爬影響較大,相比黑名單技術(shù)對(duì)每一個(gè)網(wǎng)站寫(xiě)入一條黑名單,靜態(tài)檢測(cè)只需要維護(hù)相對(duì)少量的判斷規(guī)則,維護(hù)更為方便,但是對(duì)于新網(wǎng)站的識(shí)別不夠及時(shí)和主動(dòng);基于利用蜜罐技術(shù)主動(dòng)訪問(wèn)檢測(cè)被訪問(wèn)主頁(yè)攻擊方式的動(dòng)態(tài)檢測(cè)技術(shù),難度大,耗時(shí)長(zhǎng),對(duì)掛馬類(lèi)違法網(wǎng)站識(shí)別效果較好,對(duì)博彩類(lèi)網(wǎng)站識(shí)別效果較差。
黑名單檢測(cè)人力成本過(guò)高且更新維護(hù)成本巨大,現(xiàn)階段靜態(tài)檢測(cè)方法主動(dòng)性不強(qiáng)、檢測(cè)速度有待進(jìn)一步提高。靜態(tài)檢測(cè)方法的準(zhǔn)確度理論值極高,現(xiàn)階段的瓶頸在于爬蟲(chóng)與反爬機(jī)制的對(duì)抗,以及OCR、語(yǔ)音識(shí)別的準(zhǔn)確度。
新型自動(dòng)識(shí)別方法也有許多,如凡友榮的基于URL 特征檢測(cè)的識(shí)別方法[3]和張瀚瓏的基于模板檢測(cè)的違法網(wǎng)站識(shí)別方法[4]。一位是依據(jù)不同模版的URL進(jìn)行聚類(lèi)和特征提取,一位是依照網(wǎng)站模版的圖像進(jìn)行識(shí)別。
基于PageRank 的網(wǎng)頁(yè)識(shí)別方法是在已有數(shù)據(jù)庫(kù)的前提(本次測(cè)試數(shù)據(jù)4000 條)下,通過(guò)深度爬蟲(chóng),基于原有鏈接與新鏈接之間的指向關(guān)系(數(shù)萬(wàn)條數(shù)據(jù))批量獲取分類(lèi)結(jié)果,相比原有的靜態(tài)檢測(cè)方法更具主動(dòng)性,經(jīng)測(cè)試,每次分類(lèi)可獲取賭博網(wǎng)站數(shù)占總量的60%以上。
數(shù)據(jù)來(lái)源是前期通過(guò)爬蟲(chóng)獲取的一批賭博網(wǎng)站數(shù)據(jù),經(jīng)過(guò)專家判斷后獲得了高質(zhì)量域名數(shù)據(jù)集,也就是黑名單。
實(shí)驗(yàn)數(shù)據(jù)使用域名,而非完整URL。一方面是因?yàn)橛蛎蚒RL 存在包含關(guān)系,一個(gè)域名可以有多個(gè)URL,直接使用域名效率相對(duì)更高,制作黑白名單所需要的存儲(chǔ)空間更小,另一方面URL 的命名規(guī)則相對(duì)容易變化且成本較低,域名注冊(cè)需要備案,雖然也可以批量注冊(cè)但成本相對(duì)較高,即域名相對(duì)穩(wěn)定不易變化。
賭博網(wǎng)站的特點(diǎn)之一是善于偽裝[5],為了不容易被識(shí)別為賭博網(wǎng)站,有些賭博網(wǎng)站的主頁(yè)看起來(lái)就像網(wǎng)址大全、新聞門(mén)戶的主頁(yè),其中很多鏈接也會(huì)指向正常的服務(wù)而非賭博項(xiàng)目,還會(huì)有動(dòng)態(tài)更新頁(yè)面內(nèi)容的賭博網(wǎng)站,當(dāng)你瀏覽時(shí)間超過(guò)一定時(shí)間,其主頁(yè)內(nèi)容才會(huì)從看似正常的服務(wù)一下變更為賭博網(wǎng)站頁(yè)面。賭博網(wǎng)站還具有一個(gè)特點(diǎn),他們沒(méi)有自己的轉(zhuǎn)賬服務(wù),所以一定會(huì)指向電子銀行的域名,同理,還可能存在郵箱等通訊服務(wù)的域名。
因?yàn)橘€博網(wǎng)站具有上述兩個(gè)特點(diǎn),所以在后續(xù)的爬取過(guò)程中會(huì)獲取一大批白名單網(wǎng)站域名,如www.baidu.com、www.58com、www.163.com 等。導(dǎo)致爬取的域名黑白名單混雜在一起,白名單指的是所有的非賭博網(wǎng)站,但絕大部分是提供搜索、轉(zhuǎn)賬、播放等正常服務(wù)的網(wǎng)站域名。雖然使用傳統(tǒng)的方法可以實(shí)時(shí)對(duì)黑白名單加以更為準(zhǔn)確地區(qū)分,但是在爬取完成后使用基于PageRank 算法原理改進(jìn)靜態(tài)檢測(cè)方法可以實(shí)現(xiàn)批量區(qū)分。
基于PageRank 算法原理,可以根據(jù)域名指向關(guān)系獲取重要程度(PR 值)排名,再以特定閾值將白名單與目標(biāo)網(wǎng)站區(qū)分開(kāi),一方面為區(qū)分目標(biāo)網(wǎng)站提供新的可能方法,另一方面,為有效擴(kuò)充白名單提供了輔助方法。
賭博網(wǎng)站還具有集團(tuán)性的特點(diǎn),賭博網(wǎng)站也像很多公司一樣有自己的Logo,有的賭博網(wǎng)站是比較小眾的,根系也不發(fā)達(dá),它的識(shí)別一般成本比較高,因?yàn)槭鼙娚僖哺y發(fā)現(xiàn),而大部分為人知曉的賭博網(wǎng)站則比較龐大,成百上千個(gè)子域名都是可能的,可以將一個(gè)名稱的或者多個(gè)名稱不同但網(wǎng)站模版[6]相同的認(rèn)為是一個(gè)集團(tuán),另外,比較大型的賭博集團(tuán)不同時(shí)期的網(wǎng)站模板也不盡相同。
在實(shí)驗(yàn)過(guò)程中,沒(méi)有對(duì)原始域名數(shù)據(jù)劃分集團(tuán),發(fā)現(xiàn)存在直接計(jì)算PR 值,黑白域名區(qū)分度不高的情況。于是利用博彩網(wǎng)站存在的集團(tuán)性使用社區(qū)發(fā)現(xiàn)算法再結(jié)合PageRank 排序,將兩種規(guī)律相結(jié)合,提高了分類(lèi)的準(zhǔn)確度,形成基于PageRank 算法原理和聚類(lèi)方法的靜態(tài)檢測(cè)方法。
圖1 基于PageRank改進(jìn)的靜態(tài)檢測(cè)流程
PageRank 算法原本是Google 提出的網(wǎng)頁(yè)排名算法,其基本思想是根據(jù)網(wǎng)頁(yè)的出入鏈關(guān)系計(jì)算網(wǎng)頁(yè)在網(wǎng)絡(luò)中的重要程度,用PR 值表示,PR 值越高,表示網(wǎng)頁(yè)越重要,其排名也會(huì)相對(duì)靠前,其具體算法如下:
假設(shè)存在網(wǎng)站A,B,C,…,Z(N),其中,B,C,D,…網(wǎng)站存在指向A 的鏈接,B,C,D,…網(wǎng)站的總外鏈數(shù)為L(zhǎng)(B),L(C),L(D),PR 值分別為PR(B),PR(C),PR(D),…,則A 的PR 值計(jì)算公式如下:
其中,d 表示隨機(jī)跳轉(zhuǎn)概率,表示從某網(wǎng)站不經(jīng)過(guò)鏈接而是地址欄跳轉(zhuǎn)訪問(wèn)A 的概率,通常取0.85。
與PageRank 的原始試驗(yàn)對(duì)象有所區(qū)別,賭博網(wǎng)站識(shí)別實(shí)驗(yàn)中使用的節(jié)點(diǎn)并非頁(yè)面,而是域名。眾所周知,每個(gè)域名可以包含多個(gè)頁(yè)面。但是,賭博網(wǎng)站域名的指向關(guān)系類(lèi)似于互聯(lián)網(wǎng)上的網(wǎng)站鏈接關(guān)系,用域名取代網(wǎng)頁(yè)作為節(jié)點(diǎn),用域名間的指向取代網(wǎng)頁(yè)之間的超鏈接,則可以用PR 值表示某域名在賭博網(wǎng)站指向關(guān)系網(wǎng)中的“重要程度”。
在數(shù)據(jù)爬取和分析階段,已經(jīng)發(fā)現(xiàn)實(shí)驗(yàn)中提供正常服務(wù)的白名單網(wǎng)頁(yè)的出現(xiàn)次數(shù)明顯高于目標(biāo)域名,猜想如果對(duì)域名使用PageRank 算法排序,白名單網(wǎng)站域名與賭博網(wǎng)站域名PR 值也會(huì)有明顯的區(qū)別,白名單網(wǎng)站域名的“重要程度”也會(huì)比賭博網(wǎng)站域名的重要性大。
考慮到實(shí)際生活中訪問(wèn)賭博網(wǎng)站和訪問(wèn)正常網(wǎng)站時(shí)訪問(wèn)方式的不同,例如,正常訪問(wèn)百度,絕大部分人應(yīng)該是在地址欄中直接輸入地址。而網(wǎng)絡(luò)賭民輸入的應(yīng)當(dāng)是某個(gè)主站或者跳轉(zhuǎn)站或者自己喜歡、認(rèn)為可以給自己帶來(lái)“好彩頭”的域名,然后,接下來(lái)所有的訪問(wèn)幾乎都是在點(diǎn)擊跳轉(zhuǎn)鏈接,可以認(rèn)為幾乎完全是通過(guò)點(diǎn)擊跳轉(zhuǎn)實(shí)現(xiàn)的,后續(xù)將隨機(jī)跳轉(zhuǎn)概率d 調(diào)整為0.99與通常的0.85 進(jìn)行了對(duì)比,發(fā)現(xiàn)d=0.99 的確效果更好。
社區(qū)發(fā)現(xiàn)算法也是一種聚類(lèi)算法,通過(guò)節(jié)點(diǎn)之間的連接關(guān)系劃分社區(qū),根據(jù)社區(qū)之間是否有重疊部分可以分為重疊社區(qū)和非重疊社區(qū),通常的社區(qū)發(fā)現(xiàn)算法包括關(guān)聯(lián)人發(fā)現(xiàn)等。
在該實(shí)驗(yàn)中,由于博彩網(wǎng)站具有集團(tuán)性,可以首先利用爬蟲(chóng)獲取的新舊域名指向關(guān)系劃分社區(qū),社區(qū)與集團(tuán)之間也存在一定的關(guān)聯(lián)性。可能存在孤立的社團(tuán),其集團(tuán)性質(zhì)比較單一。也會(huì)有節(jié)點(diǎn)數(shù)量很多的社團(tuán),這類(lèi)社團(tuán)性質(zhì)為重疊社區(qū),由于不同集團(tuán)之間存在業(yè)務(wù)競(jìng)爭(zhēng)關(guān)系,新鏈接重疊部分大概率為普通公眾業(yè)務(wù),如轉(zhuǎn)賬、郵箱等正常服務(wù)。
賭博網(wǎng)站域名大部分為批量注冊(cè),其域名具有相似性。有通過(guò)計(jì)算URL 文本相對(duì)距離進(jìn)行的賭博網(wǎng)站識(shí)別實(shí)驗(yàn)。統(tǒng)一集團(tuán)某一時(shí)間段注冊(cè)的域名都具有鮮明的相似性[3],可以利用域名的相似性,直觀地判斷劃分出的小社團(tuán)是否屬于同一個(gè)集團(tuán)。
實(shí)驗(yàn)中,由于博彩網(wǎng)站社團(tuán)與常規(guī)的網(wǎng)站社團(tuán)和人際關(guān)系社團(tuán)不同,集團(tuán)內(nèi)部大量存在一對(duì)一和一對(duì)多的鏈接關(guān)系,集團(tuán)之間大量存在多對(duì)一的鏈接關(guān)系,集團(tuán)內(nèi)關(guān)系并不復(fù)雜,直接使用連通子圖對(duì)節(jié)點(diǎn)進(jìn)行聚類(lèi)也能取得較好的聚類(lèi)結(jié)果。
圖2 域名競(jìng)爭(zhēng)關(guān)系
利用爬蟲(chóng)擴(kuò)大賭博網(wǎng)站域名數(shù)據(jù)庫(kù)時(shí),為批量判定新網(wǎng)站是否是目標(biāo)網(wǎng)站,將域名作為節(jié)點(diǎn),利用域名的指向關(guān)系構(gòu)成邊,將這樣的連通圖視為一個(gè)網(wǎng)絡(luò),利用PageRank 算法計(jì)算其中每個(gè)節(jié)點(diǎn)的PR 值,作為黑白名單劃分的依據(jù)。實(shí)驗(yàn)發(fā)現(xiàn)只對(duì)爬取結(jié)果整體計(jì)算一次PR 值的效果并不好,整體的PR 值對(duì)高頻數(shù)據(jù)(出現(xiàn)次數(shù)多)區(qū)分度不大。通過(guò)實(shí)驗(yàn)證明利用社區(qū)算法可以讓域名的連接情況更加明顯,例如在社區(qū)內(nèi)分別放大節(jié)點(diǎn)的PR 值,雖然并不影響域名依據(jù)PR 值的排序結(jié)果,但是先通過(guò)聚類(lèi)方法劃分大小社區(qū),再對(duì)大社區(qū)進(jìn)行PR 值計(jì)算,可以大幅提高整體的分類(lèi)準(zhǔn)確率。
前期經(jīng)過(guò)專家確認(rèn)的4000 多條高質(zhì)量博彩網(wǎng)站域名,經(jīng)過(guò)脫敏處理后,形成了原始數(shù)據(jù)表。
為了后續(xù)的處理,利用爬蟲(chóng)獲取了原始域名指向的新域名,并記錄了相互的指向關(guān)系共11000 多條。為了后續(xù)能夠?qū)ψR(shí)別結(jié)果進(jìn)行驗(yàn)證,我們對(duì)所有獲得的新域名進(jìn)行了人工標(biāo)注,形成了白名單列表用于最終結(jié)果驗(yàn)證。
表1 域名指向關(guān)系示例
利用表1 的邊關(guān)系,使用PageRank 算法,計(jì)算節(jié)點(diǎn)的PR 值并排序,如表2 所示。
表2 PR 值TOP3 一覽(d 值取0.99)
由于我們的原始數(shù)據(jù)是質(zhì)量極高賭博網(wǎng)站,對(duì)于不包含公共服務(wù)的頁(yè)面,應(yīng)當(dāng)獲得較小的社團(tuán),對(duì)于包含公共服務(wù)的頁(yè)面,會(huì)根據(jù)多對(duì)一的關(guān)系聚集成大的社團(tuán)。根據(jù)白名單列表計(jì)算每個(gè)社團(tuán)的白名單率并排序,發(fā)現(xiàn)一共156 個(gè)社團(tuán),只有大型社團(tuán)(此處為上千域名數(shù))才存在白名單,社團(tuán)越大,白名單率越高。小型社團(tuán)(此處不足一百域名數(shù))均是純粹的賭博集團(tuán)。
與PR 值排序相比,其分布并不均勻,但較大部分小型社團(tuán)分布在PR 值排序后1/2 部分。
但是,對(duì)于PR 值排序前1/2 以及大型社團(tuán)內(nèi)域名還未能加以區(qū)分。嘗試引入社團(tuán)內(nèi)PR 值的概念。即對(duì)大社團(tuán)內(nèi)部的節(jié)點(diǎn)篩選出只包含這些節(jié)點(diǎn)的邊關(guān)系,重新構(gòu)成域名指向關(guān)系網(wǎng),計(jì)算該域名指向關(guān)系網(wǎng)內(nèi)各域名的PR 值,成功擴(kuò)大第一次計(jì)算所得的PR 值。
但是,可能是由于賭博網(wǎng)站的集團(tuán)性過(guò)于明顯,將劃分社區(qū)前后的PR 值進(jìn)行比較,發(fā)現(xiàn)PR 值的確被放大了,但是每個(gè)域名PR 值排序的先后順序并沒(méi)有發(fā)生顯著變化,如表3 所示。
表3 社團(tuán)內(nèi)PR 值與整體PR 值對(duì)比表
雖然直接選取第一次獲得的整體PR 值排序結(jié)果和選取第二次劃分社區(qū)后的PR 值排序結(jié)果幾乎沒(méi)有差別,但是經(jīng)過(guò)比較發(fā)現(xiàn),白名單集中存在于PR 值排名前半部分的規(guī)律并沒(méi)有發(fā)生變化。即對(duì)于大社團(tuán),重新計(jì)算PR 值并加以排序后,后半部分依舊為賭博網(wǎng)站。
表4 PR 值排序中白名單在不同位置的比例
經(jīng)過(guò)多次計(jì)算求平均值,發(fā)現(xiàn)98%的白名單都集中在排序后的PR 值列表的前60%,50%的白名單都集中在排序后的PR 值列表的50%-60%之間。
d 表示由地址欄直接跳轉(zhuǎn)到某一界面的概率,通常值為0.85。
由于賭博網(wǎng)站具有一定的隱蔽性導(dǎo)致難以被正常訪問(wèn),雖然在日常生活中賭博小廣告無(wú)孔不入,但是博彩域名極少具有意義難以記憶,所以應(yīng)當(dāng)與正常的網(wǎng)站相區(qū)分,訪問(wèn)方式應(yīng)當(dāng)主要利用已有網(wǎng)頁(yè)跳轉(zhuǎn)到新網(wǎng)頁(yè)才更符合訪問(wèn)博彩網(wǎng)站的實(shí)際情況,所以隨即跳轉(zhuǎn)參數(shù)d 的值應(yīng)當(dāng)適當(dāng)提高,實(shí)驗(yàn)中用0.99 與通常值0.85 進(jìn)行對(duì)比。
表5 PR 值排序結(jié)果中前60%集中白名單比例
實(shí)驗(yàn)發(fā)現(xiàn),d=0.99 時(shí),獲得的PageRank 排行用于分類(lèi)的效果更好。
利用賭博網(wǎng)站的集團(tuán)性,采用聚類(lèi)方法將域名依照相互間指向關(guān)系劃分為小社團(tuán)與大社團(tuán)。根據(jù)PageRank 算法原理,利用域名間相互指向關(guān)系,計(jì)算出域名在賭博網(wǎng)站指向網(wǎng)中的重要性。通過(guò)觀察分析,發(fā)現(xiàn)白名單網(wǎng)站和賭博網(wǎng)站在PageRank 排名中的分布具有規(guī)律性,使得批量分類(lèi)賭博網(wǎng)站域名與白名單域名具有可行性。
分析賭博網(wǎng)站受眾的特點(diǎn)[7],測(cè)試發(fā)現(xiàn)當(dāng)隨機(jī)跳轉(zhuǎn)指數(shù)為0.99 時(shí),黑白名單在PR 值排名中的分布性會(huì)更為明顯。
在已有賭博網(wǎng)站數(shù)據(jù)庫(kù)條件下,對(duì)二層爬蟲(chóng)所得域名聚類(lèi)所得小型社團(tuán)均為純粹的賭博網(wǎng)站。對(duì)于大型社團(tuán)計(jì)算PR 值,與整體PR 值排序結(jié)果沒(méi)有變化,但黑白名單分布規(guī)律依舊符合半數(shù)規(guī)律,即整體白名單域名分布在整體PR 排序列表前半數(shù),社團(tuán)內(nèi)白名單域名分布在社團(tuán)內(nèi)PR 排序列表前半數(shù)。
最后,通過(guò)多次試驗(yàn),發(fā)現(xiàn)通過(guò)聚類(lèi)和計(jì)算PR 值相結(jié)合的方法,利用黑白名單分布規(guī)律,可最終實(shí)現(xiàn)單次獲取總數(shù)60%以上的賭博網(wǎng)站域名。