趙功勛,陳 運(yùn),楊義先
(1.成都信息工程學(xué)院計(jì)算機(jī)學(xué)院,四川成都610225;2.北京郵電大學(xué),北京100876)
隨著互聯(lián)網(wǎng)技術(shù)及應(yīng)用的普及,以及電子商務(wù)的飛速發(fā)展。越來越多的商業(yè)活動開始通過網(wǎng)絡(luò)進(jìn)行交易,由于巨大的經(jīng)濟(jì)利益,網(wǎng)上交易在給人們帶來方便的同時(shí),也成了不法分子的攻擊目標(biāo)。從中國反釣魚聯(lián)盟(APAC)發(fā)布的數(shù)據(jù)來看,截止到2014年2月,聯(lián)盟累計(jì)認(rèn)定并處理的釣魚網(wǎng)站多達(dá)170203個(gè)。
網(wǎng)絡(luò)釣魚[1](Phishing)是指釣魚者利用具有欺騙性的電子郵件或者仿造正規(guī)的網(wǎng)站進(jìn)行網(wǎng)絡(luò)詐騙。通過引導(dǎo)用戶點(diǎn)擊,最終鏈接到自己精心設(shè)計(jì)的釣魚頁面達(dá)到欺騙的目的。通常是獲得類似于銀行賬戶名,信用卡號等敏感信息?,F(xiàn)今,常見的網(wǎng)絡(luò)欺詐手段如下:(1)注冊和真實(shí)域名十分相似的網(wǎng)址,如釣魚者假冒網(wǎng)站域名和真實(shí)域名十分相似,這樣的方式很隱蔽,不容易被用戶察覺,因此該方法的欺騙率很高。如www.lcbc.com.cn假冒www.icbc.com.cn。(2)偽造與正規(guī)網(wǎng)站具有高相似度的頁面。假冒網(wǎng)站通常會利用正常頁面的大多數(shù)信息,如正規(guī)網(wǎng)站的logo、圖表、新聞內(nèi)容和鏈接等,在頁面的很少部分進(jìn)行更改,如賬號密碼輸入界面,達(dá)到迷惑用戶的目的。(3)通過編寫在網(wǎng)頁的腳本,對頁面進(jìn)行修改,最終鏈接到釣魚頁面。
目前,對于釣魚頁面的檢測,有基于黑白名單庫,基于頁面鏈接[2],基于網(wǎng)頁文本特征,基于機(jī)器學(xué)習(xí)[3],視覺相似度[4-5]等方法?;谝曈X相似度的檢測方法,雖取得一些效果。但存在很多問題,特別是在將整體頁面做成圖片進(jìn)行欺詐的情況下,檢測難度大,目前很難實(shí)際大范圍應(yīng)用。另外,對于腳本代碼的檢測,是需要人工進(jìn)行分析,同樣在應(yīng)用方面受到受限。
基于釣魚者行為的釣魚頁面檢測能夠很好的與以上各種檢測方式互為補(bǔ)充,也能以較高的準(zhǔn)確率對釣魚頁面進(jìn)行檢測。通常,攻擊者希望用較低的代價(jià)部署大規(guī)模的釣魚頁面,因此盡量繞過各種平臺的檢測成為攻擊者著重考慮的目標(biāo),為達(dá)到較高的攻擊成功率,考慮利用網(wǎng)頁之間的鏈狀結(jié)構(gòu)關(guān)系進(jìn)行網(wǎng)絡(luò)釣魚,很好的躲避了檢測。然而,由于這種釣魚頁面規(guī)模性的引入,在某種程度上成為可以被用來追蹤的釣魚者行為特征?;谶@種現(xiàn)實(shí)情況,挖掘釣魚頁面的鏈狀結(jié)構(gòu)信息,提取結(jié)構(gòu)特征、建立模型,作為檢測釣魚頁面的方法,提高釣魚頁面的檢測能力。
網(wǎng)頁釣魚者行為特征簡單表示為一個(gè)樹狀的有向圖,用(r,v,e,t)表示。其中:r表示原始釣魚頁面,頁面用URL(Uniform Resoure Locator)表示。r是有向圖的根節(jié)點(diǎn)。網(wǎng)頁鏈接節(jié)點(diǎn)集用v表示,每個(gè)節(jié)點(diǎn)代表一個(gè)鏈接,鏈接到網(wǎng)絡(luò)中的某項(xiàng)資源。e是所有有向邊的集合。對于任意vi∈v,如果用戶對于vi的請求導(dǎo)致頁面vj的請求,則有vj∈v且< vi,vj>∈e。t代表匯接點(diǎn)的集合。
匯接點(diǎn)代表一條路徑的最后一個(gè)節(jié)點(diǎn),一個(gè)匯接點(diǎn)就是最終代表的釣魚頁面,也標(biāo)志著一次成功的網(wǎng)絡(luò)釣魚。描述釣魚者的行為特征如圖1所示。
利用網(wǎng)頁的頻繁子圖[6]結(jié)構(gòu)進(jìn)行數(shù)據(jù)分析,獲取頁面之間的鏈狀結(jié)構(gòu)關(guān)系已成為近幾年來研究的熱點(diǎn)課題,與利用頁面鏈接植入木馬的情景類似[7]。利用頻繁子圖的相關(guān)挖掘算法,提取釣魚頁面的鏈接樹結(jié)構(gòu),獲得共性的圖狀結(jié)構(gòu)特征。如果待檢測的頁面與系統(tǒng)庫的釣魚頁面具有相似的子圖結(jié)構(gòu),那么可以判斷這些相似的子圖結(jié)構(gòu)能夠在某方面反映二者具有相同的釣魚特征。通過提取這些相同子圖特征,作為判斷未知頁面是否為釣魚頁面的標(biāo)準(zhǔn),結(jié)合傳統(tǒng)的釣魚頁面檢測技術(shù),提高釣魚頁面的檢出率。
圖1 釣魚者行為特征圖
圖2 釣魚網(wǎng)頁鏈接結(jié)構(gòu)實(shí)例
圖2是一個(gè)偽造在線購物網(wǎng)站進(jìn)行釣魚的頁面鏈接結(jié)構(gòu)圖,通過網(wǎng)頁的外鏈,用戶最終被引導(dǎo)至網(wǎng)絡(luò)釣魚者設(shè)計(jì)好的頁面,獲取用戶賬號密碼等敏感信息。對應(yīng)到公式(r,v,e,t)中,r表示節(jié)點(diǎn)1,即https://login.taobao.com/member/login.jhtml,代表原始的釣魚頁面。v在圖2中體現(xiàn)為初始釣魚頁面的外鏈,如節(jié)點(diǎn)2、3、4.在圖2中表示的邊集合e為節(jié)點(diǎn)1到2的邊,1到3的邊,1到4的邊的集合。匯結(jié)點(diǎn)t對應(yīng)圖2中的節(jié)點(diǎn)12,即最終的竊取帳號頁面。
給定集合和支持度閾值minsup,頻繁子圖挖掘的目標(biāo)是找出所有子圖支持度s(g),滿足s(g)>minsup的子圖g(其中子圖g的支持度定義為包含它的所有圖所占的百分比,GD為圖的集合,g'為同構(gòu)圖集合)。
頻繁子圖模式的挖掘非常耗時(shí),因?yàn)槟J降乃阉骺臻g是指數(shù)的。為了解釋這項(xiàng)任務(wù)的復(fù)雜性,考慮包含d個(gè)實(shí)體的數(shù)據(jù)集。在頻繁項(xiàng)集挖掘中,每個(gè)實(shí)體是一個(gè)項(xiàng),可能產(chǎn)生2的d次方個(gè)候選項(xiàng)集。在頻繁子圖挖掘中,每個(gè)實(shí)體是一個(gè)頂點(diǎn),頂點(diǎn)到其他頂點(diǎn)的邊的最大值為 d-1。假定唯一的頂點(diǎn)標(biāo)號,則子圖的總數(shù)是,其中,Cid是選擇i個(gè)頂點(diǎn)形成子圖的方法數(shù),而是子圖的頂點(diǎn)之邊的最大值。
將圖的邊 e=(vi,vj)表示為形式 (vi,ni,vj,nj,m)的 5 元組,也即圖的DFS編碼。其中2個(gè)節(jié)點(diǎn)標(biāo)識vi,vj,2個(gè)節(jié)點(diǎn)標(biāo)號ni,nj,1個(gè)邊標(biāo)號m。例如
圖3 標(biāo)號圖的表示方法
與 GSpan[9-10],CloseSpan[11-14]和FFSM[15]挖掘頻繁子圖算法相比,GraphGen 算法的時(shí)間復(fù)雜度是,表1為幾種挖掘算法復(fù)雜度的對比。
表1 幾種算法時(shí)間復(fù)雜度比
gSpan算法思想如下:(1)計(jì)算輸入圖中所有邊的支持度,刪除輸入圖集合中的非頻繁邊,以頻繁邊作為初始子圖。(2)對k頻繁子圖的最小DFS碼的DFS樹進(jìn)行最右路經(jīng)擴(kuò)展,每次增加一條邊,得到k+1候選子圖。(3)若k+1候選子圖不是最小DFS碼形式的,則該圖是冗余的,從候選子圖中刪除。(4)在計(jì)算頻繁子圖的支持度時(shí),記錄k頻繁子圖的所有可能情況,這樣k+1候選子圖的支持度就可以通過對k頻繁子圖的所有可能情況進(jìn)行最右路徑擴(kuò)展獲得。(5)當(dāng)某條頻繁邊的所有子節(jié)點(diǎn)都生成后,將該邊從輸入圖集合中刪除,減少輸入圖的集合。算法gSpan通過一個(gè)列表維護(hù)頻繁子圖的同構(gòu)圖,這樣做能夠很好地減少制約算法執(zhí)行效率的測試同構(gòu)次數(shù),但是,算法并不能完全避免子圖的同構(gòu)測試,且對于邊集的擴(kuò)展,算法的復(fù)雜度也很高O(2n),圖同構(gòu)的復(fù)雜度為O(2n),因此總的時(shí)間復(fù)雜度是O(2n2n)。
CloseGraph算法類似于gSpan算法,用閉頻繁圖集代替頻繁圖集,以減小頻繁子圖的挖掘的數(shù)量及搜索空間,并在gSpan的基礎(chǔ)上引入等價(jià)出現(xiàn)和提前終止的概念。與gSpan算法的思想一致,只是在剪枝的過程中增加一個(gè)對閉圖的判斷,如果判斷條件成立,則對圖g擴(kuò)展,不用再對圖g進(jìn)行最右路徑擴(kuò)展。因此在算法的時(shí)間復(fù)雜度上,二者沒有多大差別。
算法FFSM利用標(biāo)準(zhǔn)鄰接矩陣(Canonical Adjacent Matrix,CAM)對圖進(jìn)行描述.因此,F(xiàn)FSM不但將子圖同構(gòu)問題轉(zhuǎn)化成對矩陣的操作,也將圖擴(kuò)展過程巧妙的轉(zhuǎn)化為矩陣的聯(lián)接操作與矩陣的擴(kuò)展操作,因?yàn)槔镁仃嚨穆?lián)接以及擴(kuò)展完成圖的擴(kuò)展,所以擴(kuò)展邊的時(shí)間復(fù)雜性為O(2nm2n),圖同構(gòu)測試的時(shí)間復(fù)雜性為O(m2),總的時(shí)間復(fù)雜度為O(2nm4n)。具有m個(gè)節(jié)點(diǎn)的完全圖包含m(m-1)/2條邊,因此,其時(shí)間復(fù)雜性轉(zhuǎn)化為用頻繁邊數(shù)表示的情況為O(n32n)。
利用的算法是基于如下的步驟:采用深度優(yōu)先算法生成頻繁子樹,算法的復(fù)雜度為O(2n),通過參考文獻(xiàn)提出的方法,將子圖同構(gòu)[16-19]測試的時(shí)間復(fù)雜度控制在。然后對前一步生成的頻繁子樹進(jìn)行擴(kuò)展,以廣度優(yōu)先方式擴(kuò)展邊用來形成頻繁子圖。綜上,順序完成以上兩步的算法時(shí)間復(fù)雜度為經(jīng)過測試,在對1萬多個(gè)樣本的頻繁子圖挖掘的過程中,不到1分鐘就可以找到所有的頻繁子圖。
釣魚頁面檢測系統(tǒng)由以下幾部分構(gòu)成,系統(tǒng)能夠有效地檢測釣魚頁面的結(jié)構(gòu),已經(jīng)應(yīng)用在實(shí)際的釣魚頁面檢測中。
(1)釣魚頁面鏈接分析提取模塊
(2)頻繁子圖挖掘系統(tǒng)
(3)釣魚網(wǎng)頁頻繁子圖模式庫
(4)子圖特征匹配模塊
(5)其他處理模塊
釣魚頁面鏈接分析提取模塊利用網(wǎng)絡(luò)爬蟲,爬取釣魚頁面鏈接結(jié)構(gòu),分析url相互鏈接關(guān)系,形成url鏈接關(guān)系結(jié)構(gòu)圖。
頻繁子圖挖掘子系統(tǒng)基于GraphGen頻繁子圖模式挖掘算法,針對數(shù)萬級別的網(wǎng)頁釣魚頁面鏈接結(jié)構(gòu)進(jìn)行分析,挖掘頻繁模式,提取共同的頻繁子圖模式,通過人工分析和驗(yàn)證,得到頻繁子圖模式庫,作為判斷可疑網(wǎng)頁是否為釣魚網(wǎng)頁的標(biāo)準(zhǔn)。
釣魚頁面頻繁子圖模式庫是基于大量已知的釣魚頁面形成的頁面鏈接結(jié)構(gòu)知識庫。
子圖特征匹配模塊式輔助檢測,通過提取url的圖狀鏈接關(guān)系,獲得不同頁面之間的關(guān)系結(jié)構(gòu)圖,基于頻繁子圖模式庫,進(jìn)行子圖特征匹配。如果某一頻繁子圖模式能夠和頁面的結(jié)構(gòu)相匹配,那么就判定該頁面是釣魚頁面。
其他處理模塊可以是傳統(tǒng)的基于黑白名單庫,url特征等進(jìn)行釣魚頁面檢測。作為一種補(bǔ)充,用來判斷在特征子圖庫中沒有匹配到的頁面。經(jīng)過其他處理模塊判斷為釣魚url的網(wǎng)頁結(jié)構(gòu)添加到已有的頻繁子圖模式庫,用以更新模式庫。圖4為系統(tǒng)流程結(jié)構(gòu)圖。
系統(tǒng)實(shí)驗(yàn)采用的是華為的反釣魚平臺,實(shí)驗(yàn)數(shù)據(jù)集來自APWG,APAC,PhishTank等網(wǎng)站獲取的釣魚頁面的url。系統(tǒng)針對1萬多個(gè)url進(jìn)行分析,包括國內(nèi)外銀行網(wǎng)站以及網(wǎng)購網(wǎng)站,如ebay、淘寶等。通過提取網(wǎng)頁的url鏈接結(jié)構(gòu)圖,使用GraphGen頻繁子圖模式挖掘算法,選取某個(gè)支持度閾值(選擇閾值為100)進(jìn)行頻繁子圖的挖掘。經(jīng)過分析篩選,確定了50個(gè)子圖的模式,并將前10個(gè)不同模式的出現(xiàn)次數(shù)記錄下來,如表2所示。
圖4 系統(tǒng)流程結(jié)構(gòu)圖
表2 子圖模式出現(xiàn)頻度
圖5 頻繁子圖模式實(shí)例
由表2可以看出,模式a出現(xiàn)的次數(shù)最多,進(jìn)一步分析可知,模式出現(xiàn)頻率比較高的網(wǎng)頁中需要用戶提供個(gè)人的敏感信息登陸框,該模式主要出現(xiàn)在一些大型購物網(wǎng)站的頁面結(jié)構(gòu)中,釣魚者通常喜歡頻繁的攻擊這些網(wǎng)購網(wǎng)站,引導(dǎo)用戶,最終將頁面鏈接到精心設(shè)計(jì)的釣魚頁面上。
模式b(圖5)代表游戲賭博點(diǎn)卡充值類的釣魚url,頁面http://www.levillas.com/中的2個(gè)鏈接http://www.tb8899.com/?Intr=34952和http://www.ceo2010.com/?Intr=28628具有相同的頁面結(jié)構(gòu),均是通過用戶注冊,銀行賬號,手機(jī)號等用戶輸入框獲取用戶敏感信息,用戶完成注冊后,在提交頁面時(shí),頁面跳轉(zhuǎn)后的url和跳轉(zhuǎn)之前的url一樣,很明顯,釣魚者改變了頁面的url,這是一種欺詐手段。
正規(guī)的銀行網(wǎng)站因其多用戶,較大數(shù)據(jù)量的原因,網(wǎng)站的結(jié)構(gòu)設(shè)計(jì)通常很復(fù)雜,同樣,網(wǎng)站漏洞的修復(fù)、維護(hù)及業(yè)務(wù)的調(diào)整使得網(wǎng)頁的拓?fù)浣Y(jié)構(gòu)變得更加繁雜,頁面自然存在大量的鏈接。相對于銀行網(wǎng)站,偽造的釣魚頁面除了少數(shù)的相似頁面外,拓?fù)浣Y(jié)構(gòu)通常都非常簡單。圖6~7分別表示RBC官網(wǎng)和模仿的釣魚頁面鏈接結(jié)構(gòu)圖。
圖6 正規(guī)銀行網(wǎng)頁結(jié)構(gòu)
圖7 釣魚網(wǎng)頁鏈接結(jié)構(gòu)
為了檢測運(yùn)用子圖匹配模式進(jìn)行檢測的效率,將統(tǒng)計(jì)的數(shù)據(jù)記錄如表3所示。從表3可以看出,通過頻繁子圖模式檢測釣魚頁面的檢測率在80%左右,這表明通過頻繁子圖的方式可以對釣魚頁面進(jìn)行有效的檢測。該算法中對于閾值參數(shù)的選擇,可以通過實(shí)驗(yàn)的調(diào)整,結(jié)合數(shù)據(jù)挖掘中的回歸問題,選取合適的閾值,避免過分?jǐn)M合輸入數(shù)據(jù)。進(jìn)一步測試可以得到,在某個(gè)閾值處,該方法對于測試數(shù)據(jù)可以得到比較好的檢測率。大于或者小于該閾值,檢測率下降。因此,通過頻繁子圖的方式進(jìn)行釣魚頁面的檢測可以有效的檢出釣魚頁面。
表3 子圖模式檢測率
針對釣魚網(wǎng)頁的url鏈接結(jié)構(gòu),提出利用行為分析(挖掘網(wǎng)頁url鏈接結(jié)構(gòu))得到的頻繁子圖進(jìn)行挖掘,提取釣魚頁面的共同子圖特征,并利用釣魚頁面特征檢測系統(tǒng)進(jìn)行檢測,實(shí)驗(yàn)證明,該檢測方法能夠加強(qiáng)對釣魚頁面的檢測能力,作為傳統(tǒng)釣魚頁面檢測方法的補(bǔ)充,提高了檢出率。也可以將頁面的頻繁子圖作為判斷網(wǎng)頁是否為釣魚頁面的一種特征,將網(wǎng)頁url,視覺特性特征等其他特征作為判定釣魚頁面的總體特征向量,結(jié)合機(jī)器學(xué)習(xí)對可疑網(wǎng)頁進(jìn)行判定。對于基于頻繁子圖模式的釣魚頁面檢測,系統(tǒng)的開銷在于挖掘頁面的頻繁子圖模式上,同時(shí)匹配模式庫仍然占用了一定的時(shí)間,尋找更優(yōu)化高效的頻繁子圖挖掘算法對于大規(guī)模釣魚頁面的檢測很有必要。
致謝:感謝成都市高校院所科技成果轉(zhuǎn)化項(xiàng)目(12DXYB340JH-002);深圳市產(chǎn)學(xué)研合作項(xiàng)目(CXY201106240019A)對本文的資助
[1] Anti-Phishing Working Group.Phishing Activity Trends Report[R].Q42,2009.
[2] J Ma,S L K,S Stefan,et al.Beyond blacklists:learning to detect malicious websites from suspicious urls[C].Proceedings of the 15th international conference on Knowledge discovery and data mining,2009:1245-1254.
[3] Sujata Garera,Niels Provos,Monica Chew,et al.A Framework For Detection an dMeasurement of Phishing Attacks[A].In:Christopher Kruegel,ed[C].Proc.of the WORM’07.USA:ACM Press,2007:1-8.
[4] W Liu,X Deng,G Huang,et al.An Anti-Phishing Strategy Based on Visual Similarity Assessment[J].IEEE Internet Computing,2006,10(2):58-65.
[5] W Liu,G Huang,X Liu,et al.Detection of Phishing Web Pages Based on Visual Similarity[C].Proc.14th Int’l World Wide Web Conf,2005:1060-1061.
[6] 張喜.應(yīng)用于圖分類的頻繁圖挖掘算法的研究[D].秦皇島:燕山大學(xué),2013.
[7] 韓心慧,龔曉銳,諸葛建偉,等.基于頻繁子樹挖掘算法的網(wǎng)頁木馬檢測技術(shù)[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,(10).
[8] 李先通,李建中,高宏.一種高效頻繁子圖挖掘算法[D].哈爾濱:哈爾濱工業(yè)大學(xué),2007.
[9] X Yan,J Han.gSpan:Graph-based Substructure Pattern Mining[C].Proc.of the 2002 IEEE Intl.Conf.on Data Mining,Maebashi City:Japan,2002:721-724.
[10] Yan Y Han J.gSpan:Graph-Based substructure pattern mining[C].Proc.of the 2002 Int’l Conf.on Data Mining(ICDM 2002).Maebashi,2002.
[11] Yan X,Han J.CloseGraph:Mining closed frequent graph patterns[C].Proc.of the 9th ACM SIGKDD Int’l Conf.on Knowledge Discovery and Data Mining(KDD2003).Washington,2003.
[12] 陳曉.基于CloseGraph的圖分類算法研究[D].秦皇島:燕山大學(xué),2010.
[13] 董安國,高琳,趙建邦.圖模式挖掘中的子圖同構(gòu)算法[J].數(shù)學(xué)的實(shí)踐與認(rèn)識,2011,(13).
[14] 周溜溜.基于圖結(jié)構(gòu)的數(shù)據(jù)挖掘研究及應(yīng)用[D].南京:南京林業(yè)大學(xué),2013.
[15] Han J,Wang W,Prins J.Efficient mining of frequent subgraphs in the presence of isomorphism[C].Proc.of the IEEE Int’l Conf.on Data Mining(ICDM 2003),2003.
[16] Ueda N,Aoki-Kinoshita KF,Yamaguchi A,et al.A probabilistic model for mining labeled ordered trees:Capturing patterns in carbohydrate sugar chains[J].IEEE Trans.on Knowledge and Data Engineering,2005,17(8):1051.
[17] Buss SR.Alogtime algorithms for tree isomorphism,comparison and canonization[C].Computational Logic and Proof Theory,Proc.of the 5th G.del Colloquium’97,Lecture Notes in Computer Science#1289.Berlin:Springer-Verlag,1997:18-33.
[18] Yang R,Kalnis P,Tung AKH.Similarity evaluation on tree-structured data[C].Proc.of the SIGMOD 2005.Baltimore,2005.
[19] Rückert U,Kramer S.Frequent free tree discovery in graph data[C].Symp.on Applied Computing archive,Proc.of the 2004 ACM Symp.on Applied Computing.SESSION:Data Mining(DM).2004:564-570.
[20] Jin R,Wang C,Polshakov D,et al.Discovering frequent topological structures from graph datasets[C].Proc.of the KDD 2005.Chicago,2005:606-611.