高一男++蔡滿春
摘要:隨著因特網(wǎng)的日益發(fā)展,網(wǎng)絡(luò)空間的安全形勢也愈發(fā)嚴(yán)峻。其中,以盜取用戶敏感信息或者用戶名口令為目的的網(wǎng)絡(luò)釣魚活動(dòng)是網(wǎng)絡(luò)犯罪行為中危害較大、影響較為嚴(yán)重的一種。針對網(wǎng)絡(luò)釣魚頻發(fā)的現(xiàn)狀,文中提出了一種基于Hadoop和mahout的釣魚郵件檢測方法,此方法采用hadoop平臺(tái)的HDFS作為存儲(chǔ)基礎(chǔ),MapReduce作為并行計(jì)算框架.該方法對郵件信息進(jìn)行特征提取,利用mahout的貝葉斯算法對釣魚郵件進(jìn)行檢測。使用真實(shí)郵件數(shù)據(jù)集對該方法進(jìn)行測試,取得了良好的效果。
關(guān)鍵詞: 網(wǎng)絡(luò)釣魚;hadoop;mahout;貝葉斯分類
中圖分類號:TP393.08 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:1009-3044(2016)11-0027-04
Abstract:With the development of the Internet, the network space safety situation is increasingly serious.Phishing with purpose of stealing users sensitive information and password is one of cyber crime acitivity which harm a lot.In view of the situation of frequent phishing, this paper puts forward a fishing mail detection method based on Hadoop and mahout.This method uses the HDFS of Hadoop platform as the foundation of storage, MapReduce as the parallel computing framework.It extracts feature for E-mail messages and uses the bayesian algorithm of mahout to test the phishing emails.Using real email data set to test the method which has obtained good effect.
Key words:phishing; hadoop; mahout; bayesian classification
1 引言
近年來,人們生活中互聯(lián)網(wǎng)的使用日益頻繁,電子購物、網(wǎng)絡(luò)支付和電子商務(wù)在人們的消費(fèi)行為中占的比例越來越高。同時(shí),電子商務(wù)領(lǐng)域的網(wǎng)絡(luò)犯罪活動(dòng)也越來越頻繁。其中,以誘騙用戶敏感信息以及網(wǎng)絡(luò)金融賬號、密碼為主要目的的網(wǎng)絡(luò)釣魚行為的危害最為廣泛。釣魚郵件由于其成本低、發(fā)布方便和難以追蹤等原因成為網(wǎng)絡(luò)釣魚攻擊者的首選方式。本文著眼于當(dāng)前大數(shù)據(jù)的網(wǎng)絡(luò)環(huán)境,提出了一種基于hadoop和mahout的釣魚郵件檢測方法。在分析大量釣魚郵件的基礎(chǔ)上提出了釣魚郵件的特征,以此特征將電子郵件初始化;并使用mahout提供的貝葉斯分類算法庫構(gòu)建釣魚郵件分類器,對電子郵件進(jìn)行檢測判斷其是否為釣魚郵件,為打擊網(wǎng)絡(luò)釣魚犯罪提供了方法。
2 Hadoop平臺(tái)
Apache Hadoop項(xiàng)目是一個(gè)提供可靠的、大規(guī)模并行計(jì)算的開源軟件。Apache Hadoop軟件庫提供一個(gè)框架,此框架為基于大型計(jì)算機(jī)集群的分布式海量數(shù)據(jù)集處理提供了簡單的計(jì)算模型。Hadoop可以部署于數(shù)以萬計(jì)的計(jì)算機(jī)集群系統(tǒng)中,其中的每臺(tái)計(jì)算機(jī)提供計(jì)算和存儲(chǔ)功能。Hadoop自身可以在應(yīng)用層控制差錯(cuò),從而在計(jì)算機(jī)集群上層提供高可靠性服務(wù)。
Hadoop主要由三部分組成:
1)Hadoop Common:為Hadoop 的其它模塊提供基礎(chǔ);
2)Hadoop Distributed File System (HDFS):為應(yīng)用數(shù)據(jù)提供高生產(chǎn)力接入的分布式文件系統(tǒng);
3)Hadoop MapReduce:針對大型數(shù)據(jù)集的并行編程模型。
HDFS是 Google File System的開源實(shí)現(xiàn)。HDFS的設(shè)計(jì)是基于低廉的PC機(jī)上,所以HDFS一旦生就意味著它必須面對節(jié)點(diǎn)失效和文件錯(cuò)誤等問題,因此HDFS就必須達(dá)到一個(gè)可靠穩(wěn)定的分布式文件系統(tǒng)才可以運(yùn)用到實(shí)際應(yīng)用中。HDFS能快捷地部署在廉價(jià)的PC機(jī)上,它具有高容錯(cuò)性,十分適合那些有大數(shù)據(jù)集的應(yīng)用,并且HDFS具有高吞吐量,能滿足數(shù)據(jù)的高速讀寫。HDFS還支持傳統(tǒng)的層次文件組織結(jié)構(gòu),類似于現(xiàn)有的一些文件系統(tǒng),如可以對文件或文件夾進(jìn)行創(chuàng)建、刪除、移動(dòng)、連接(僅文件)和重命名等操作 。HDFS除了具備上述的兩項(xiàng)能力外,它還具備對分布數(shù)據(jù)的可擴(kuò)展訪問,只要通過簡單地往集群里添加計(jì)算節(jié)點(diǎn)就可以輕松解決大量客戶端同時(shí)訪問的瓶頸問題。總之,HDFS提供的是一個(gè)高吞吐量的分布式文件系統(tǒng),它是分布式計(jì)算的存儲(chǔ)基礎(chǔ)。
MapReduce是海量數(shù)據(jù)的分布式處理模型。通過簡單的邏輯實(shí)現(xiàn)就能在大型集群上執(zhí)行分布式應(yīng)用。Hadoop平臺(tái)中的MapReduce是Google 的 MapReduce 的開源實(shí)現(xiàn)。 MapReduce是一種簡化的并行計(jì)算編程模型,由Map段和Reduce段構(gòu)成,分別進(jìn)行任務(wù)的分解和對結(jié)果的匯總。基于MapReduce模型,編寫分布式計(jì)算程序的將變得異常簡單,用戶甚至不需要任何并行開發(fā)的經(jīng)驗(yàn),只需理解MapReduce兩端是如何銜接和數(shù)據(jù)如何傳遞就可以很便捷地開發(fā)出高效的分布式并行程序,完成海量數(shù)據(jù)的計(jì)算分析。
3 Mahout
Mahout是一個(gè)來自Apache的、開源的機(jī)器學(xué)習(xí)軟件庫。它所實(shí)現(xiàn)的算法歸屬于機(jī)器學(xué)習(xí)或集體智慧這個(gè)廣闊的領(lǐng)域。它主要關(guān)注于推薦引擎、聚類和分類。
其次,mahout是可擴(kuò)展的。它旨在當(dāng)所處理的數(shù)據(jù)規(guī)模遠(yuǎn)大于單機(jī)處理能力時(shí)成為一種可選的機(jī)器學(xué)習(xí)工具。在當(dāng)前的Mahout系統(tǒng)中,這些可擴(kuò)展的機(jī)器學(xué)習(xí)實(shí)現(xiàn)都是用Java來寫的,而且有些部分是建立在Apache的Hadoop分布式計(jì)算項(xiàng)目之上的。
最后,它是一個(gè)Java軟件庫,并不提供用戶接口、預(yù)裝服務(wù)器或安裝程序。它打算為開發(fā)者提供一個(gè)可用可改的工具框架。
Mahout是2008年作為Apache Lucene的子項(xiàng)目出現(xiàn)的。Lucene項(xiàng)目推出了一個(gè)同名的著名開源搜索引擎,并給出了搜索、文本挖掘和信息檢索技術(shù)的先進(jìn)實(shí)現(xiàn)方法。在計(jì)算機(jī)科學(xué)領(lǐng)域,這些術(shù)語和機(jī)器學(xué)習(xí)中的概念很接近,比如聚類,并在某種程度上與分類接近。這樣一來,某些Lucene貢獻(xiàn)者的工作更多落入機(jī)器學(xué)習(xí)領(lǐng)域,從而逐漸脫離出來形成了對立的子項(xiàng)目。之后不久,Mahout吸納了開源的協(xié)同過濾項(xiàng)目Taste。
Mahout所做的大量工作不僅體現(xiàn)在以高效和可擴(kuò)展的方式實(shí)現(xiàn)這些經(jīng)典算法,而且將部分算法進(jìn)行轉(zhuǎn)換使其可以在Hadoop上處理對摸的問題。
雖然Mahout項(xiàng)目在理論上可以實(shí)現(xiàn)所有類型的機(jī)器學(xué)習(xí)技術(shù),但在實(shí)際上當(dāng)前它僅關(guān)注機(jī)器學(xué)習(xí)的三個(gè)主要領(lǐng)域,即推薦引擎、聚類和分類。
1) 推薦引擎
目前采用的機(jī)器學(xué)習(xí)技術(shù)中,推薦引擎是最容易被一眼認(rèn)出來的。服務(wù)商或網(wǎng)站會(huì)根據(jù)用戶過去的行為向用戶推薦書籍、電影或者文章。它們會(huì)推測你的品位與愛好,并找到某些你可能感興趣的物品。如亞馬遜、淘寶向用戶推薦的商品;微博向用戶推薦的話題、用戶等,均是利用推薦引擎技術(shù)。
2) 聚類
聚類技術(shù)將大量的事務(wù)組合為擁有類似屬性的簇,借以在一些規(guī)模較大或難于理解的數(shù)據(jù)集上發(fā)現(xiàn)層次結(jié)構(gòu)和順序,以揭示一些有用的模式或讓數(shù)據(jù)更易于理解。利用聚類技術(shù),企業(yè)可以發(fā)現(xiàn)用戶中的潛在的群體,可以合理地組織大量的文檔,還可以根據(jù)日志來發(fā)現(xiàn)使用網(wǎng)站的常見模式。
3) 分類
分類技術(shù)決定了一個(gè)事物多大程度上從屬于某些類別或類型,或者多大程度上具有或不具有某些屬性。與聚類一樣,分類無處不在,但是跟多隱身于幕后。通常這些系統(tǒng)會(huì)考察類別中的大量實(shí)例,來學(xué)習(xí)推導(dǎo)出分類的規(guī)則。
分類有助于判斷一個(gè)新的輸入或新的事物是否與以前觀察到的模式匹配,它通常還被用于遴選異常的行為模式,來檢測可疑的網(wǎng)絡(luò)活動(dòng)或欺騙行為。它還可以用于”察覺“某個(gè)用戶的消息是否存在失望或滿意情緒。
4 貝葉斯分類算法
本文使用貝葉斯分類器對電子郵件分類。執(zhí)行分類操作時(shí),貝葉斯分類器輸出郵件屬于相應(yīng)類別的概率。設(shè)定G={g1,g2,g3,……gj,g5}代表郵件類別的集合,d是類別的總數(shù)。事實(shí)上,對于反網(wǎng)絡(luò)釣魚問題來說,只需要兩個(gè)類別:釣魚郵件g1,和正常郵件g2。給出郵件的一組向量(v1,v2,……,vn),分類器的作用是確定郵件屬于類別gj的概率P(其中,hi,T代表網(wǎng)頁T中第i個(gè)特征,而R代表電子郵件特征總數(shù), R用于擴(kuò)大
5 釣魚郵件檢測
郵件的檢測是分類算法的一種應(yīng)用形式,本文使用mahout提供的貝葉斯分類器對釣魚郵件進(jìn)行檢測分為三個(gè)步驟,其過程可以描述為:首先通過初始化將郵件信息轉(zhuǎn)化為一組特征向量的值,然后利用訓(xùn)練數(shù)據(jù)集對貝葉斯算法進(jìn)行訓(xùn)練生成分類模型,最后使用分類模型對測試數(shù)據(jù)集進(jìn)行分類。
5.1 數(shù)據(jù)的預(yù)處理
數(shù)據(jù)的預(yù)處理是釣魚郵件檢測過程的第一步。數(shù)據(jù)的初始化的主要工作是將郵件的特征屬性進(jìn)行提取,并以特征向量的形式表示郵件。釣魚郵件的特征選擇直接決定了網(wǎng)絡(luò)釣魚的檢測結(jié)果。國內(nèi)網(wǎng)民互聯(lián)網(wǎng)使用習(xí)慣和國外不盡相同,因此,確定釣魚郵件的特征時(shí)不能直接照搬國外的樣本。通過分析國內(nèi)釣魚郵件實(shí)例,結(jié)合有關(guān)網(wǎng)絡(luò)釣魚傳播方式的研究,確定了如表1所示的10項(xiàng)特征。對于用于訓(xùn)練以及測試的電子郵件數(shù)據(jù)集,根據(jù)這10項(xiàng)特征進(jìn)行初始化作為貝葉斯分類算法的輸入。
5.2 訓(xùn)練樸素貝葉斯分類器
貝葉斯分類屬于機(jī)器學(xué)習(xí)算法中的有監(jiān)督學(xué)習(xí)算法,因此,需要利用訓(xùn)練樣本集對其進(jìn)行訓(xùn)練使分類器生成能夠用于釣魚郵件檢測的模型。訓(xùn)練樣本集是已經(jīng)被人工分類的一系列郵件的集合,其中郵件轉(zhuǎn)化為向量表示{v1,v2,……,v10},并附有相應(yīng)的類別g1表示釣魚郵件,g2表示正常郵件。
訓(xùn)練樸素貝葉斯分類器的命令如下:
./bin/mahout trainnb
-i ${WORK_DIR}$/${DATA_DIR}$
-o ${WORK_DIR}$/model
-li ${WORK_DIR}$/labelindex
其中-i 參數(shù)指定任務(wù)的輸入文件目錄,輸入文件即經(jīng)過預(yù)處理的電子郵件數(shù)據(jù)集;-o 參數(shù)指定任務(wù)的輸出文件目錄,輸出文件即生成的分類模型;-li 參數(shù)指定標(biāo)識(shí)索引存儲(chǔ)路徑。
5.3 測試樸素貝葉斯分類模型
使用真實(shí)的電子郵件數(shù)據(jù)集對貝葉斯分類模型進(jìn)行測試,通過輸出的混淆矩陣及分類結(jié)果的各項(xiàng)指標(biāo)可以對構(gòu)造的分類器進(jìn)行評估,以達(dá)到掌握分類器性能并對其進(jìn)行相應(yīng)改進(jìn)的目的。
測試樸素貝葉斯分類器的命令如下:
./bin/mahout testnb
-i ${WORK_DIR}$/${DATA_DIR}$
-m ${WORK_DIR}$/model
-l ${WORK_DIR}$/labelindex
-ow -o ${WORK_DIR}$/
其中-i 參數(shù)指定任務(wù)的輸入文件目錄,輸入文件為待檢測的電子郵件數(shù)據(jù)集;-m 參數(shù)指定訓(xùn)練階段模型的路徑;-l 參數(shù)指定標(biāo)識(shí)索引存儲(chǔ)路徑,-ow 對輸出路徑進(jìn)行重寫,-o指定輸出路徑,此階段的輸出為分類結(jié)果。
6 實(shí)驗(yàn)及結(jié)果分析
本實(shí)驗(yàn)的環(huán)境為虛擬機(jī)環(huán)境,虛擬機(jī)設(shè)置為:1處理器,2G內(nèi)存,40G硬盤。軟件環(huán)境的設(shè)置為:操作系統(tǒng)使用Linux Centos7,Hadoop版本使用2.6.3,Hadoop配置模式為偽分布式配置,Mahout版本為0.11.1。
使用包含1500封電子郵件的訓(xùn)練數(shù)據(jù)集對貝葉斯算法進(jìn)行訓(xùn)練,生成預(yù)測釣魚郵件的貝葉斯分類模型。之后,使用包含341封釣魚郵件和2686封正常郵件的測試郵件數(shù)據(jù)集對得到的貝葉斯分類模型的性能進(jìn)行測試。
使用Mahout對釣魚郵件進(jìn)行分類實(shí)驗(yàn)的結(jié)果如圖2所示。
通過分析以上結(jié)果可以發(fā)現(xiàn),分類的準(zhǔn)確率表示對于釣魚郵件和正常郵件的正確分類可以達(dá)到94.2517%,召回率達(dá)到89.18%,使用Mahout的貝葉斯算法對于釣魚郵件樣本分類體現(xiàn)出了良好的分類效果。
7 結(jié)論
網(wǎng)絡(luò)釣魚犯罪嚴(yán)重危害了互聯(lián)網(wǎng)用戶的隱私和財(cái)產(chǎn)安全,在大數(shù)據(jù)的背景下,這種威脅顯得更加突出。同時(shí)釣魚郵件作為一種門檻低、發(fā)送方便等原因在網(wǎng)絡(luò)釣魚犯罪過程中使用的最為廣泛。Hadoop平臺(tái)的出現(xiàn)為處理大規(guī)模數(shù)據(jù)挖掘提供了良好的底層框架,而mahout提供了基于hadoop的機(jī)器學(xué)習(xí)類庫。本文提出的基于hadoop和mahout的釣魚郵件檢測方法,在對電子郵件進(jìn)行特征提取的基礎(chǔ)上,利用mahout的貝葉斯分類功能實(shí)現(xiàn)了對釣魚郵件的檢測,在使用真實(shí)電子郵件數(shù)據(jù)集對其進(jìn)行測試,驗(yàn)證了其性能良好。為打擊網(wǎng)絡(luò)釣魚犯罪,保護(hù)網(wǎng)民的隱私信息和財(cái)產(chǎn)安全提供了方法。
參考文獻(xiàn):
[1] Lam C. Hadoop in action[M]. Manning Publications Co., 2010.
[2] White T. Hadoop: The definitive guide[M]. O'Reilly Media, Inc., 2012.
[3] Berry M J, Linoff G. Data mining techniques: for marketing, sales, and customer support[M]. John Wiley & Sons, Inc., 1997.
[4] Giacomelli P. Apache mahout cookbook[M]. Packt Publishing Ltd, 2013.
[5] Harrington P. Machine learning in action[M]. Manning, 2012.
[6] Anil R, Dunning T, Friedman E. Mahout in action[M]. Shelter Island: Manning, 2011.
[7] 余輝. 基于 Mahout 的聚類算法的研究[D]. 上海師范大學(xué), 2014.
[8] 翟軍昌,秦玉平,王春立.改進(jìn)的樸素貝葉斯垃圾郵件過濾算法[J].計(jì)算機(jī)工程與應(yīng)用, 2009, 45(14): 145-148.