張蕾,張鵬,孫偉,楊興東,邢麗超
(1. 中國科學院大學網(wǎng)絡空間安全學院,北京 100049;2. 中國科學院信息工程研究所,北京 100093;3. 北京交通大學計算機與信息技術(shù)學院,北京 100044;4. 北京航空航天大學計算機學院,北京 100191)
鏡像網(wǎng)站是將主/源網(wǎng)站的全部內(nèi)容或部分內(nèi)容上傳到不同服務器,同時擁有自己的域名和URL的網(wǎng)站,被稱為主/源網(wǎng)站的鏡像網(wǎng)站。鏡像網(wǎng)站的主要作用是當網(wǎng)站流量過高時對服務器進行減壓和分流,提高不同地區(qū)或不同ISP用戶的訪問速度,保存歷史性信息和數(shù)據(jù)。鏡像網(wǎng)站主要有2種網(wǎng)頁表現(xiàn)形式:一種是內(nèi)容完全重復的鏡像網(wǎng)頁;另一種是部分內(nèi)容相同的近似鏡像網(wǎng)頁,這種近似鏡像網(wǎng)頁在網(wǎng)頁格式、網(wǎng)頁標題、網(wǎng)站簽名等方面與主/源網(wǎng)站有所不同,但所呈現(xiàn)的主體內(nèi)容都是相同的。鏡像網(wǎng)站在提供便利的同時,也帶來很多問題和危害[1]。
在惡意鏡像層面,當正常網(wǎng)頁被惡意鏡像后,正常網(wǎng)頁的數(shù)據(jù)被盜用且內(nèi)容被同步。網(wǎng)站鏡像在占用資源的同時,也會影響正常網(wǎng)頁的加載速度。當網(wǎng)頁被惡意鏡像后,如果不及時處理將會面臨被搜索引擎降權(quán),甚至不被搜索引擎收錄的危險,尤其是對于一些剛上線沒有權(quán)重的新網(wǎng)頁。如果惡意鏡像的網(wǎng)頁掛有正常網(wǎng)頁的聯(lián)盟廣告,當用戶點擊這些廣告時,很容易造成用戶賬號被封。
在非法網(wǎng)頁層面,例如通過租用一些共用的IP主機,將非法內(nèi)容拷貝到鏡像主機中(去除一些未加密的非法內(nèi)容)。大部分惡意網(wǎng)頁可以通過這種鏡像手段繞過管控,令非法內(nèi)容繼續(xù)傳播。雖然我國對此類網(wǎng)站的治理比較嚴厲,但是在鏡像網(wǎng)站足夠多的情況下,進行逐一治理比較困難,從而導致一些惡意網(wǎng)站的治理失敗。
此外,更有一些非法分子對知名商業(yè)網(wǎng)站或金融網(wǎng)站進行鏡像,實施詐騙,因此,對于鏡像網(wǎng)站的檢測是極其必要的。為此,本文提出了一種面向高速網(wǎng)絡流量下惡意鏡像網(wǎng)站的檢測方法,主要創(chuàng)新點如下。
1) 提出了一種面向高速網(wǎng)絡流量的網(wǎng)頁源碼相似度計算方法。該方法從高速網(wǎng)絡流量中將碎片化數(shù)據(jù)拼接成完整的網(wǎng)頁源碼,對拼接的網(wǎng)頁源碼實現(xiàn) Gumbo標準化處理,并對標準化后的網(wǎng)頁源碼進行分塊處理,通過simhash算法對每個塊計算散列值,得到網(wǎng)頁源碼的simhash值,引入海明距離來計算網(wǎng)頁源碼之間的相似性。
2) 提出了一種基于網(wǎng)頁快照相似度的鏡像網(wǎng)頁識別方法。當網(wǎng)頁源碼之間的相似性在設定的閾值范圍內(nèi)時,該方法提取網(wǎng)頁圖像的 SIFT(scaleinvariant feature transform)特征點[2],通過聚類分析和映射處理得到網(wǎng)頁圖像的感知散列值。當被測網(wǎng)頁與基準網(wǎng)頁的圖像感知散列值的相似性大于設定的閾值時,判定該網(wǎng)頁為與基準網(wǎng)頁相對應的鏡像網(wǎng)頁。
目前,大多數(shù)惡意鏡像網(wǎng)頁的檢測方法都是通過主動采集的方式來獲取網(wǎng)頁信息進行檢測,使時間開銷較大。本文所提檢測方法的核心創(chuàng)新之處在于能夠同時兼顧性能和準確率,通過被動的方式,直接對網(wǎng)關(guān)流量進行實時解析,從流量中還原得到網(wǎng)頁信息,這大幅度降低了時間開銷;同時通過與基準網(wǎng)頁進行匹配,完成識別。與其他方法不同的是,本文并不是只通過網(wǎng)頁內(nèi)容或視覺特征進行檢測,而是將網(wǎng)頁內(nèi)容與網(wǎng)頁快照進行組合判斷,在兼顧性能的同時還能有效地提高識別準確率。
現(xiàn)有的鏡像網(wǎng)站檢測方法有很多種,這些方法大都是從網(wǎng)頁文本中提取相應特征進行檢測,具體分為以下3種。
1) 基于網(wǎng)頁正文內(nèi)容的相似性檢測
網(wǎng)頁正文內(nèi)容是指網(wǎng)頁信息的主體部分,而不是指網(wǎng)頁中的所有文本內(nèi)容。網(wǎng)頁正文內(nèi)容主要通過對網(wǎng)頁進行HTML標簽去噪處理后,通過一定的算法得到。基于網(wǎng)頁正文內(nèi)容的相似性檢測分為兩類[3]:基于聚類的網(wǎng)頁相似性檢測和基于特征匹配的網(wǎng)頁相似性檢測。
基于聚類的網(wǎng)頁相似性檢測方法以向量空間模型(VSM, vector space model)[4]為基礎進行網(wǎng)頁相似性檢測,這類算法的缺點是表示網(wǎng)頁的向量模型維度過高,使整個算法的計算時間過長,不適用于大量的網(wǎng)頁相似性檢測系統(tǒng)。基于特征匹配的網(wǎng)頁相似性檢測算法,主要提取的網(wǎng)頁特征有特征詞、特征串和特征句這3種,對整個網(wǎng)頁進行分詞并提取特征詞,用特征詞集合來表示網(wǎng)頁,通過計算集合中的特征詞的指紋來計算網(wǎng)頁的相似性。這類算法目前典型的有 simhash算法[5]、I-match算法[6]等。
2) 基于鏈接的相似性檢測
此類方法主要是通過比較網(wǎng)頁的入鏈(即連向網(wǎng)頁的URL)信息是否一致來確定網(wǎng)頁之間的相似性,當2個網(wǎng)頁的URL相近時,判斷這2個網(wǎng)頁互為近似的鏡像網(wǎng)頁。目前,常用的基于 URL檢測的方法有基于散列檢測[7]算法、基于 Bloom filter檢測[8]算法、基于深度學習檢測算法[9]等,這類算法的不足之處在于當網(wǎng)頁的入鏈較少,或者當網(wǎng)頁是全新的網(wǎng)頁時,相似的網(wǎng)頁很難被檢測出來。隨著網(wǎng)絡規(guī)模的日益增長,大多數(shù)網(wǎng)站都開辟了子域名,同一網(wǎng)站下相同的資源擁有不同的訪問地址,而使用基于鏈接的鏡像網(wǎng)頁檢測方法是無法檢測出來的,此類方法對鏡像網(wǎng)站的檢測效果越來越不盡人意。
3) 基于視覺的相似性檢測
基于視覺的檢測融合了網(wǎng)頁的文本、結(jié)構(gòu)、圖片、整體視覺效果等可視化特征,以視覺相似這一核心特點為出發(fā)點來分析表征網(wǎng)頁身份的特征集合。Liu等[10]從視覺特征入手,基于DOM(document object model)樹相似性對網(wǎng)頁進行檢測。Mao等[11]基于網(wǎng)頁視覺相似性提出了一種量化可疑性的算法。Zhang等[12]使用頁面圖像特征與詞匯特征來進行檢測。雖然基于視覺特征的相似性檢測誤報率較低,但是計算復雜度較高。
在高速網(wǎng)絡流量環(huán)境下,本文提出的方法先從流量中提取碎片化數(shù)據(jù)還原網(wǎng)頁源碼,然后將網(wǎng)頁源碼分塊,利用相似度散列算法通過計算每個塊的散列值,得到網(wǎng)頁源碼的相似度散列值,同時引入海明距離來計算網(wǎng)頁源碼之間的相似性。最后截取網(wǎng)頁快照,提取其SIFT特征點,通過聚類分析和映射處理得到網(wǎng)頁快照的感知散列值,計算感知散列值得到網(wǎng)頁相似性。實驗表明所提方法既具有較高的準確率和召回率,也能適應高速網(wǎng)絡流量的應用環(huán)境。
本文方法對惡意鏡像網(wǎng)頁的檢測數(shù)據(jù)主要從高速網(wǎng)絡流量中獲取,這樣可以降低時間成本,達到較高的準確率。在高速網(wǎng)絡流量環(huán)境下有著海量的網(wǎng)站,并且網(wǎng)站的應答信息呈現(xiàn)出多源鏈接及碎片化的特征,接收到的網(wǎng)頁內(nèi)容可能來自不同的服務器,并且呈現(xiàn)出無序、雜亂和碎片化的狀態(tài),這給標識、拼接網(wǎng)站流量還原網(wǎng)站內(nèi)容帶來了嚴重的問題。
本文方法在實驗室已有底層平臺的基礎[13],研究并開發(fā)了一套可以完整還原網(wǎng)頁內(nèi)容的程序,從網(wǎng)絡流量中解析網(wǎng)頁數(shù)據(jù),具體過程如圖1所示。
首先將網(wǎng)絡流量接入底層平臺,經(jīng)過IP碎片重組和 TCP/UDP流還原后得到完整的分組段。然后對所需要的HTTP流量進行識別,得到HTTP會話(即請求/應答分組對)。分析請求分組和應答分組的開始行,得到網(wǎng)頁的URL;對分組頭部進行分析得到HTTP分組頭域;對分組實體部分解Gzip壓縮和解chunk編碼,可以得到服務器返回的網(wǎng)頁實體內(nèi)容。到此為止,可以得到不同網(wǎng)頁的網(wǎng)頁數(shù)據(jù)。
由于通過解析得到的網(wǎng)頁實體內(nèi)容并不一定是完整的,還需要對網(wǎng)頁實體內(nèi)容進行拼接,從而得到完整的網(wǎng)頁數(shù)據(jù),拼接流程如圖2所示。

圖2 網(wǎng)頁實體內(nèi)容拼接流程
針對網(wǎng)頁數(shù)據(jù)碎片,通過構(gòu)造自定義數(shù)據(jù)分組的形式對傳遞到接收端的網(wǎng)頁實體內(nèi)容進行拼接。自定義數(shù)據(jù)分組格式如圖3所示。

圖1 高速網(wǎng)絡流量的數(shù)據(jù)解析過程

圖3 數(shù)據(jù)分組格式
數(shù)據(jù)分組頭部由源 IP(saddr)、目的 IP(daddr)、源端口(source)、目的端口(dest)、數(shù)據(jù)類型(opt_type)和數(shù)據(jù)長度(opt_len)組成。數(shù)據(jù)部分(opt_value) 有7種類型,包括四元組(tuple4)、網(wǎng)頁鏈接(url)、編碼(charset)、數(shù)據(jù)塊序號(http_seq)、數(shù)據(jù)開始(content_begin)、數(shù)據(jù)內(nèi)容(content_data)、數(shù)據(jù)結(jié)束(content_end)。接收端根據(jù)每次接收的數(shù)據(jù)分組頭部選項判斷接收分組的類型,將數(shù)據(jù)分組放入對應的隊列內(nèi)。最后將隊列中數(shù)據(jù)部分進行拼接,得到完整的網(wǎng)頁數(shù)據(jù),采用Google的Gumbo算法對網(wǎng)頁內(nèi)容進行對齊,補齊缺失的標簽,得到標準化的網(wǎng)頁源碼。
目前,常用的數(shù)據(jù)分塊技術(shù)主要有固定大小分塊技術(shù)(FSP, fixed-sized partition)和基于內(nèi)容的分塊重刪檢測技術(shù)(CDC, content defined chunking)[14],這2種技術(shù)雖然達到了不錯的去重效果,但對于數(shù)據(jù)塊來說,少量字符的變化將會導致整個數(shù)據(jù)塊“標識”的不同,從而影響相似性判定結(jié)果。本文方法所采用的分塊流程如圖4所示。
在本文方法中,對所獲取的網(wǎng)頁源碼 Gumbo標準化處理后再進行分塊處理,這里所采用的分塊技術(shù)是將源碼按行分塊,將分塊后的結(jié)果存入列表中等待下一步處理。
simhash算法[5]是一種局部敏感散列算法,與傳統(tǒng)的散列算法最大的不同點就在于對于2篇相似的文檔,通過局部敏感散列算法計算出來的散列值也是相似的。本文利用simhash算法為每一個網(wǎng)頁生成一個 fingerprint,使用海明距離計算相似性。simhash算法計算流程如圖5所示,分為5個步驟。1) 分詞:提取特征項,提取出n個(feature weight,weight)對。2) 散列:利用散列函數(shù)計算得到各特征項的散列值,得到nbit 的簽名。3) 加權(quán):對提取的特征向量進行加權(quán)。4) 合并:將每個特征項的加權(quán)值累加,得到一個序列串。5) 降維:對得到的nbit的序列串,序列串中小于0的位置為0,否則置為1。最終得到fingerprint,即文檔的simhash值。
從高速網(wǎng)絡流量中獲取網(wǎng)頁的源碼內(nèi)容后,計算網(wǎng)頁源碼的 64位 simhash值,與基準網(wǎng)頁的simhash值進行對比,判斷相似性。計算網(wǎng)頁源碼的simhash值主要是將simhash與上述分塊技術(shù)相結(jié)合,計算網(wǎng)頁源塊的散列值來計算整個源碼的simhash值,計算過程如圖6所示。

圖6 網(wǎng)頁源碼simhash值計算過程
這里所采用的simhash是在原simhash算法的基礎上進行修改。首先,不再選擇特征項并計算其權(quán)重,而視分得的每一個塊為一個特征量;然后,不再根據(jù)特征項的出現(xiàn)次數(shù)設定不同的權(quán)重,而是設定每個特征項的權(quán)重為1。
比較網(wǎng)頁源碼相似性流程如圖7所示。

圖4 數(shù)據(jù)分塊流程

圖5 simhash計算流程

圖7 網(wǎng)頁源碼相似性比較
得到網(wǎng)頁源碼的simhash值以后,計算與數(shù)據(jù)庫中基準網(wǎng)頁的simhash值之間的海明距離,當海明距離小于設定的閾值t時,判斷網(wǎng)頁源碼相似;否則,網(wǎng)頁源碼不相似。
尺度不變特征變換(SIFT, scale-invariant feature transform)是圖像的局部特征,頑健性較好。Mikolajzcyk等[15]在對各種圖像描述子進行測評后,認為SIFT描述子具有最佳性能,但是SIFT特征的計算量較大,對于實時性要求較高的場合,其處理速度過于緩慢。因此,本文采用圖像 SIFT特征提取與圖像感知散列相結(jié)合的方式來計算網(wǎng)頁快照的指紋,采用 SIFT特征提取網(wǎng)頁快照的局部穩(wěn)定特征點,通過聚類分析對提取出的特征數(shù)據(jù)進行壓縮,再利用圖像感知散列得到最后的散列值,網(wǎng)頁快照的相似性通過海明距離進行評測。
本文所采用的方法主要分為網(wǎng)頁快照特征提取、特征數(shù)據(jù)壓縮、最終映射這3個步驟,其中特征數(shù)據(jù)壓縮涉及SIFT特征提取、聚類分析和圖像感知散列這3個關(guān)鍵技術(shù)。
1) 網(wǎng)頁快照特征提取
利用 SIFT特征提取網(wǎng)頁快照的局部穩(wěn)定特征點,得到特征點集合,經(jīng)過壓縮得到中間散列值。
2) 特征數(shù)據(jù)壓縮
通過聚類分析,將上一步得到的中間散列值進一步映射為最終散列值,這一步強調(diào)的是信息的壓縮表示。
圖8為特征數(shù)據(jù)壓縮的具體流程,詳細描述如下。① 預處理
首先對網(wǎng)頁快照進行預處理,將彩色圖像進行灰度處理,然后采用雙三次插值法將圖像大小規(guī)格化,統(tǒng)一成大小為k×k的圖像Ik×k,在本系統(tǒng)中,采用的是256像 素 × 256像素。

圖8 特征數(shù)據(jù)壓縮流程
利用SIFT特征,提取圖像Ik×k的局部穩(wěn)定特征點,得到網(wǎng)頁快照的特征向量。

其中,F(xiàn)i(1 ≤i≤n)表示所提取出的1×128維SIFT特征向量;集合F為n×128維的特征向量,表示提取出的所有局部穩(wěn)定特征點矢量。
③ 特征點壓縮
在上一步中得到了n×128維的SIFT特征點的特征向量F,將特征向量F按式(2)進行處理。

即將特征向量F按行求和,得到中間散列G,G為1× 128維的向量,達到了壓縮特征點的目的。
④ 聚類分析
計算中間散列值的分布質(zhì)心C,如式(3)所示。

其中,質(zhì)心C表示特征向量F的均值。這里根據(jù)質(zhì)心C來決定簇類,小于C的被分為C1簇,大于C的被分為C2簇。
3) 最終映射
根據(jù)聚類結(jié)果,將中間散列映射為“0,1”序列,具體映射規(guī)則如式(4)所示。

其中,C1<C2,最后得到128位散列值。
通過3.5節(jié)所介紹的算法,根據(jù)網(wǎng)頁標題對所需測試的網(wǎng)頁進行初步過濾,然后計算網(wǎng)頁源碼相似性和網(wǎng)頁正文相似性,當其閾值在設定的范圍內(nèi)時,提取網(wǎng)頁快照的SIFT特征點,通過聚類分析和映射處理得到網(wǎng)頁快照的感知散列值。當被測網(wǎng)頁與基準網(wǎng)頁的圖像感知散列值相似性大于一定閾值時,判定該網(wǎng)頁是惡意鏡像網(wǎng)頁。
本文采用海明距離來判定網(wǎng)頁快照的相似性。首先,通過3.5節(jié)所介紹的算法計算出待測網(wǎng)頁快照的128位圖像散列值 ,基準網(wǎng)頁圖像快照的散列值為g0,計算gt與g0之間的海明距離,如式(5)所示。

其中,“-”表示計算gt與g0之間的海明距離。根據(jù)計算出來的海明距離,可以得到待測網(wǎng)頁快照與基準網(wǎng)頁快照之間的相似度,如式(6)所示。

S的取值范圍為[0, 1],通過判斷S與閾值之間的大小來判定網(wǎng)頁快照之間的相似度。當S大于閾值時,待測網(wǎng)頁快照與基準網(wǎng)頁快照判定為相似;否則判定為不相似。
本文所檢測惡意鏡像網(wǎng)頁包括釣魚網(wǎng)頁、網(wǎng)絡博彩、低俗內(nèi)容、其他違法違規(guī)等網(wǎng)頁,利用Python爬蟲程序爬取Phishtank[17]上公開釣魚網(wǎng)頁,其余三類網(wǎng)頁由于沒有公開的數(shù)據(jù)集,通過捕獲網(wǎng)關(guān)流量的方式進行篩選查找,最終獲取到4 369個上述惡意網(wǎng)頁。其中,網(wǎng)絡博彩類(1 462個)和低俗內(nèi)容類(968個)網(wǎng)頁大多通過圖片和鏡像的方式;釣魚網(wǎng)頁類(2 653個)和其他違法違規(guī)類(714個)網(wǎng)頁大多采用對源碼進行修改的方式,通過提取網(wǎng)頁的源碼特征和網(wǎng)頁快照特征,構(gòu)建基準網(wǎng)頁數(shù)據(jù)庫。
數(shù)據(jù)庫版本為Oracle 12c Relase 2。
實驗環(huán)境如下。
CPU:Intel(R) Core(TM) i5-4210H CPU @2.90 GHz。
內(nèi)存:3 GB。
操作系統(tǒng):Red Hat Enterprise Linux Server release 7.2。
編程語言:C語言、Python2.7.5。
步驟1 采集基準網(wǎng)頁信息,提取基準網(wǎng)頁源碼和網(wǎng)頁快照特征,并存入數(shù)據(jù)庫。
步驟2 更改網(wǎng)卡配置,接入網(wǎng)關(guān)流量,進行7天流量檢測。
步驟3 根據(jù)第3節(jié)中介紹的流量數(shù)據(jù)解析流程,對接入的流量進行解析,得到URL、HTTP分組頭域和HTTP實體內(nèi)容,并以自定義數(shù)據(jù)分組的形式將解析出的網(wǎng)頁信息傳遞到接收端。
步驟4 接收端接收到數(shù)據(jù)分組后,對網(wǎng)頁數(shù)據(jù)碎片進行拼接得到完整的網(wǎng)頁數(shù)據(jù),并對網(wǎng)頁源碼標準化處理。
步驟5 利用網(wǎng)頁源碼特征提取模塊提取網(wǎng)頁的特征,并讀取數(shù)據(jù)庫中存儲的基準網(wǎng)頁數(shù)據(jù)進行相似性對比,采用海明距離判斷網(wǎng)頁源碼的相似性。當相似性小于設定的閾值時,進行步驟 6,否則直接將其過濾。通過實驗發(fā)現(xiàn),當閾值取3時,能達到最佳的過濾效果。
步驟6 通過網(wǎng)頁快照相似性比對進一步提高實驗結(jié)果準確率。
通過對測試數(shù)據(jù)經(jīng)過 URL初步過濾后,得到194 714個網(wǎng)頁。將可疑網(wǎng)頁與數(shù)據(jù)庫中的基準網(wǎng)頁進行源碼和快照的相似性比對,查找出目標網(wǎng)頁,即與基準網(wǎng)頁對應的惡意鏡像網(wǎng)頁和近似惡意鏡像網(wǎng)頁。實驗檢測出的目標網(wǎng)頁結(jié)果如圖9所示。

圖9 檢測結(jié)果
圖9中分別展示了每天所檢測出的4種類型的惡意網(wǎng)頁數(shù),這4種類型分別與各自的基準網(wǎng)頁對應,符合本文對惡意鏡像網(wǎng)頁的定義。通過人工評測,除了正確檢測出的目標網(wǎng)頁外,還存在一些誤判的網(wǎng)頁,其中,釣魚網(wǎng)頁類有 31條,網(wǎng)絡博彩類有24條,低俗內(nèi)容類有29條,其他違法違規(guī)類有19條。產(chǎn)生誤判是因為惡意鏡像網(wǎng)頁有時效性,大多數(shù)惡意鏡像網(wǎng)頁在很短時間內(nèi)就會失效,而本文是實時對網(wǎng)關(guān)流量進行監(jiān)測,通過本文所提方法對網(wǎng)關(guān)流量中的網(wǎng)頁數(shù)據(jù)進行還原并與基準網(wǎng)頁進行比對,進行判斷是否為惡意鏡像網(wǎng)頁;基準網(wǎng)頁中的數(shù)據(jù)需要提前采集,由于公開的數(shù)據(jù)集較少,需要捕獲網(wǎng)關(guān)流量通過自動與人工相結(jié)合的方式進行收集并更新,會花費一定的時間,因此在基準網(wǎng)頁與實時網(wǎng)關(guān)流量中的網(wǎng)頁數(shù)據(jù)之間會有一定的時間差,導致出現(xiàn)誤判的情況。實驗發(fā)現(xiàn),本文所提惡意鏡像網(wǎng)頁檢測算法總的準確率為 93.42%。由于預先無法得知測試數(shù)據(jù)中所有的惡意鏡像網(wǎng)頁與近似惡意鏡像網(wǎng)頁總數(shù),通過人工查找得到總數(shù)為1 623條,由此計算該算法的召回率為90.20%,F(xiàn)值為0.92。從而可以看出,本文所提出的大規(guī)模網(wǎng)絡流下惡意鏡像網(wǎng)頁檢測算法是有實際意義和有效性的。
本文在相同的實驗環(huán)境以及硬件設備下,采用同一組基準網(wǎng)頁,對基于 URL相似度、基于內(nèi)容相似度、基于視覺相似度等常用的鏡像網(wǎng)頁檢測算法和本文所采用的方法進行對比,表1為實驗測試結(jié)果。從實驗結(jié)果可以看出,只對網(wǎng)頁內(nèi)容進行檢測的準確率僅比基于 URL的檢測算法準確率高,這是因為存在一些惡意鏡像網(wǎng)頁的網(wǎng)頁源碼中并沒有實質(zhì)性的內(nèi)容,而主要是一些Javascript鏈接,因此僅通過網(wǎng)頁內(nèi)容進行檢測對該類網(wǎng)頁不能有效地識別,降低了檢測的準確率。基于 URL相似度的檢測算法的準確率相對較低,這類方法的不足之處在于當網(wǎng)頁的入鏈較少時,或者當網(wǎng)頁是全新的網(wǎng)頁時,是很難檢測出來的。基于網(wǎng)頁視覺的檢測算法比前2種算法的準確率都高,但比本文的檢測算法的準確率略低,且需要通過主動采集的方式,時間花銷較高,且計算復雜度較高。

表1 惡意網(wǎng)頁檢測算法對比
相較于幾種常見的算法,本文所采用的主被動相結(jié)合的面向高速網(wǎng)絡流量的惡意鏡像網(wǎng)站識別方法(IMM4HT, an identification method of malicious mirror website for high-speed network traffic)在準確率和召回率都有較大的提升。分析其原因,是因為從網(wǎng)關(guān)實時捕獲真實的流量并還原網(wǎng)頁數(shù)據(jù),能夠得到最原始的網(wǎng)頁數(shù)據(jù);同時,計算網(wǎng)頁源碼的相似性和網(wǎng)頁快照的相似性進行集成判斷,能夠有效地提升分類準確率。綜合以上評價指標,本文所采用的方法取得了較好的實驗結(jié)果,更適用于高速的網(wǎng)絡流環(huán)境,在具有較高準確率的同時能夠保證一定的性能。

圖10 IMM4HT執(zhí)行時間隨網(wǎng)頁規(guī)模的變化趨勢
下面考察 IMM4HT在不同網(wǎng)頁規(guī)模情況下的性能,實驗效果如圖10所示。圖10表示了不同網(wǎng)頁規(guī)模下執(zhí)行所需的時間變化情況,其中,p為大于68 KB[1]的網(wǎng)頁在實驗數(shù)據(jù)集中所占比例。為了全面檢查 IMM4HT的性能,對每種情況獨立運行10 000次,以統(tǒng)計執(zhí)行時間的分布情況。由圖 10可知,當網(wǎng)頁的配置數(shù)小于300萬的情況時,執(zhí)行規(guī)則的時間一般在20 μs以下,且不隨時間線性增長。IMM4HT執(zhí)行時間的分布隨著p的增加而變得稀疏,p越大,執(zhí)行時間越長。但IMM4HT的平均執(zhí)行時間基本不變。
本文提出了面向高速網(wǎng)絡流量的惡意鏡像網(wǎng)站識別方法,該方法首先接入網(wǎng)絡流量,利用底層平臺對流量進行IP碎片重組、TCP/UDP流還原得到完整的分組段。然后對所需要的HTTP流量進行識別,得到完整的網(wǎng)頁內(nèi)容。接著對拼接的完整網(wǎng)頁內(nèi)容進行Gumbo標準化處理并分塊,通過simhash計算出網(wǎng)頁源碼散列值。最后與基準網(wǎng)頁進行比對,計算網(wǎng)頁源碼散列和網(wǎng)頁正文散列與基準網(wǎng)頁之間的海明距離。當其閾值在設定的范圍內(nèi)時,提取網(wǎng)頁快照的 SIFT特征點,通過聚類分析和映射處理得到網(wǎng)頁快照的感知散列值。當被測網(wǎng)頁與基準網(wǎng)頁快照的感知散列值相似性大于一定閾值時,判定該網(wǎng)頁是惡意鏡像網(wǎng)頁。實驗表明該方法在準確率、召回率、處理時延這3項指標的綜合評價最高。
由于惡意鏡像網(wǎng)頁的形式多種多樣,一些惡意鏡像網(wǎng)頁與其基準網(wǎng)頁在源碼上存在較高的相似度,而網(wǎng)頁快照則存在較大差異;另一些惡意鏡像網(wǎng)頁與其基準網(wǎng)頁的網(wǎng)頁快照存在較高相似度,而源碼卻截然不同。在下一步的研究與學習中,將針對這兩方面對所提方法進行改進。