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