張曉明, 王玉鑫, 王 廣, 張戈彤, 武瑞江
(北京石油化工學院 信息工程學院 計算機系,北京 102617)
?
基于Hadoop的網(wǎng)站入侵檢測與分析系統(tǒng)設計
張曉明, 王玉鑫, 王 廣, 張戈彤, 武瑞江
(北京石油化工學院 信息工程學院 計算機系,北京 102617)
基于大規(guī)模數(shù)據(jù)的入侵檢測分析具有重要的研究意義和實用性。針對現(xiàn)有系統(tǒng)的仿真和離線分析不足,設計和實現(xiàn)一套真實的網(wǎng)站入侵檢測綜合分析系統(tǒng),能夠?qū)⑷肭謾z測系統(tǒng)和大數(shù)據(jù)分析系統(tǒng)結(jié)合起來。通過網(wǎng)絡構(gòu)建和軟件設計,可以完成真實網(wǎng)站的入侵檢測、數(shù)據(jù)存儲、數(shù)據(jù)清洗和數(shù)據(jù)挖掘等功能。通過定時和主動兩種方式,系統(tǒng)將入侵檢測數(shù)據(jù)傳輸?shù)綌?shù)據(jù)庫中,然后導入到Hadoop系統(tǒng)中。設計了人機交互軟件,能夠完成Hadoop系統(tǒng)和Mahout技術的大數(shù)據(jù)分析。實驗結(jié)果表明,該系統(tǒng)能夠快速完成隨機森林模型的構(gòu)建和測試,獲得了滿意的檢測效果。
入侵檢測; Hadoop; 大數(shù)據(jù); Mahout; 分類; 隨機森林
隨著網(wǎng)絡攻防技術的發(fā)展,網(wǎng)站安全的防護要求越來越高,單一的入侵檢測系統(tǒng)(Intrusion Detection System, IDS)已不能完全滿足這種需要。例如,文獻[1] 設計了一種IDS測試的實驗系統(tǒng),能夠開展網(wǎng)絡流量仿真和攻擊仿真,并完成了包捕獲率和檢測率的實驗。文獻[2]提出了基于 Snort 的入侵檢測實驗方案,在實驗室搭建了實驗環(huán)境。但是,文中采用的集線器設備已很少使用,而且Snort軟件是基于規(guī)則匹配的,在復雜攻擊方面難以防范。目前的主要發(fā)展方向之一是利用大規(guī)模數(shù)據(jù)資源,通過數(shù)據(jù)挖掘算法找出規(guī)律,形成更為有效的入侵規(guī)則,從而為入侵預測提供依據(jù)。文獻[3]采用Snort和異常檢測相結(jié)合的方法,但測試數(shù)據(jù)有限。文獻[4]基于隨機森林算法和One-R方法結(jié)合,提高了檢測率。文獻[5]將傳統(tǒng)的Apriori關聯(lián)規(guī)則算法移植于Hadoop云平臺中,使之適應于云平臺的入侵檢測系統(tǒng),結(jié)果表明:經(jīng)過優(yōu)化后的Hadoop云平臺IDS具有較好的檢測效果。文獻[6]基于Hadoop系統(tǒng)開展了模糊關聯(lián)規(guī)則分析,通過與傳統(tǒng)的Apriori算法比較,驗證了基于云計算的優(yōu)越性。不過,這三篇文獻的仿真數(shù)據(jù)都是來自于KDD-CUP99[7-8]的評測數(shù)據(jù)集,缺少網(wǎng)絡實證過程。文獻[9]針對大規(guī)模網(wǎng)絡安全態(tài)勢分析中報警關聯(lián)的需要,提出了海量報警日志的多維關聯(lián)規(guī)則挖掘算法,制定了一種有利于理解安全事件的關聯(lián)規(guī)則模板,能夠在最小支持度較低時,完成大規(guī)模報警日志的挖掘任務;并進行了報警的時間序列規(guī)則挖掘,發(fā)現(xiàn)復雜攻擊事件中的攻擊模式。其測試數(shù)據(jù)來自于評測數(shù)據(jù)集LLS DDOS 1.O和自定義的一組大規(guī)模報警日志。文獻[10]設計了一種入侵檢測的實驗系統(tǒng),實現(xiàn)對網(wǎng)絡嗅探和端口掃描兩種類型的入侵進行檢測。針對網(wǎng)絡中的嗅探攻擊,利用 WinPcap 網(wǎng)絡開發(fā)包,實現(xiàn)基于ARP 報文探測的嗅探攻擊的演示。此外,實驗系統(tǒng)還針對網(wǎng)絡中的 TCP 端口掃描攻擊,利用 Libnids 網(wǎng)絡開發(fā)包,實現(xiàn)了基于統(tǒng)計閾值檢測法的 TCP 端口掃描攻擊的演示。該系統(tǒng)僅能滿足實驗教學的數(shù)據(jù)采集和展示需要。文獻[11]通過Hadoop搭建了基于云的WEB服務器曰志檢測系統(tǒng),提高攻擊檢測性能,同時將檢測結(jié)果和Snort告警進行融合,提高攻擊告警的準確性,結(jié)果表明融合后的系統(tǒng)提高了告警的準確性,但該文沒有給出具體實驗數(shù)據(jù)信息。文獻[12]構(gòu)建了一個包含20個計算節(jié)點的云平臺,通過隨機森林算法的改進設計,驗證了云計算的分類效率。文獻[13-14]基于Apache Mahout/Hadoop架構(gòu)[15],分別研究了在線邏輯回歸分類和K-均值聚類方法的應用效果,測試數(shù)據(jù)仍然是KDD-CUP99。
為了解決大規(guī)模入侵檢測和在線數(shù)據(jù)分析問題,本文設計了一個基于Hadoop平臺的網(wǎng)站入侵檢測實驗系統(tǒng),該系統(tǒng)采集的數(shù)據(jù)具有實時性。針對一定周期內(nèi)的數(shù)據(jù),可以采用多種數(shù)據(jù)挖掘算法進行入侵檢測或預測。下面,具體闡述該系統(tǒng)的設計要點、關鍵技術、實驗方法和效果。
本系統(tǒng)監(jiān)測的是真實的WEB服務器,運行我校大學生科研訓練項目管理和信息發(fā)布系統(tǒng),面向全校師生的項目申報、運行、結(jié)題和發(fā)布用。為此,要求系統(tǒng)實時和可靠。一旦發(fā)生問題,能夠及時通告管理員。為了預防復雜的網(wǎng)絡攻擊,需要采用大數(shù)據(jù)技術進行深入分析。
1.1 系統(tǒng)功能設計
整個系統(tǒng)包括了實時監(jiān)測、數(shù)據(jù)ETL、和Hadoop大數(shù)據(jù)分析共三大部分,其系統(tǒng)功能框圖如圖1所示。
圖1 監(jiān)測系統(tǒng)功能框圖
通過IDS實時獲得可疑數(shù)據(jù),并自動保存在日志文件中。然后,通過專用程序定時將日志文件遠程傳輸?shù)組ySQL數(shù)據(jù)管理系統(tǒng)中。接著是數(shù)據(jù)ETL,指數(shù)據(jù)抽取、清洗和轉(zhuǎn)換,根據(jù)分析需要進行數(shù)據(jù)編碼、格式調(diào)整和數(shù)據(jù)過濾等處理,形成格式化的文本文件。進一步,文本文件傳輸?shù)紿adoop文件系統(tǒng)中存儲,便于數(shù)據(jù)挖掘處理,并形成可視化分析結(jié)果。
1.2 系統(tǒng)拓撲結(jié)構(gòu)設計
監(jiān)測系統(tǒng)綜合了外網(wǎng)和內(nèi)網(wǎng)兩部分,通過路由器進行安全訪問。系統(tǒng)拓撲圖如圖2所示。
圖2 Web監(jiān)測系統(tǒng)的網(wǎng)絡拓撲圖
圖2中,IDS控制臺可以通過采集的數(shù)據(jù)來監(jiān)測Web服務器,顯示數(shù)據(jù)有列表、圖形等方式,并自動備份到數(shù)據(jù)文件中。表1列出了網(wǎng)絡地址設置的詳細信息。
云計算服務器負責大規(guī)模數(shù)據(jù)處理與分析,主要由4臺刀片服務器組成,每個服務器的基本配置是:CPU1個(64 b,4核,主頻2.8 GHz),內(nèi)存32 GB,SATA硬盤2 TB,千兆以太網(wǎng)卡2個。通過千兆交換機連接,安裝配置了Centos 6.5和Hadoop 2.6操作系統(tǒng)。其中1臺作為Master節(jié)點,另3臺為計算計算節(jié)點。此外,單獨1臺服務器作為數(shù)據(jù)庫存儲用,安裝了MySQL數(shù)據(jù)庫管理系統(tǒng)。
2.1 Hadoop系統(tǒng)的數(shù)據(jù)挖掘技術
基于Hadoop的生態(tài)系統(tǒng),能夠?qū)崿F(xiàn)大數(shù)據(jù)的機器學習、可視化分析和查詢等功能。其中的Apache Mahout就是針對大規(guī)模數(shù)據(jù)集的可伸縮的機器學習算法,該算法運行在Hadoop平臺下,通過MapReduce模式實現(xiàn)。Mahout的API函數(shù)主要有:
表1 系統(tǒng)設備IP地址分配表
● 基于協(xié)同過濾的Taste相關API: org.apache.mahout.cf.taste
● 聚類:org.apache.mahout.clustering
● 分類:org.apache.mahout.classifier
● 頻繁模式:org.apache.mahout.fpm
● 數(shù)學計算相關算法:org.apache.mahout.math
● 向量計算相關算法:org.apache.mahout.vectorizer
針對網(wǎng)站IDS的數(shù)據(jù)特點,采用隨機森林算法。隨機森林是一個包含多個決策樹的分類器,并且其輸出的類別是由個別樹輸出的類別的眾數(shù)而定。隨機森林既可以處理屬性為離散值的量,比如ID3算法,也可以處理屬性為連續(xù)值的量,比如C4.5算法。另外,隨機森林還可以用來進行無監(jiān)督學習聚類和異常點檢測。
隨機森林具有很多優(yōu)點:能夠處理很高維度的數(shù)據(jù),并且不用做特征選擇;訓練速度快;在訓練過程中,能夠檢測到特征間的互相影響;實現(xiàn)比較簡單,且容易做成并行化方法;在訓練完后,它能夠給出哪些特征比較重要。
2.2 系統(tǒng)遠程管理技術
通過Java編程,設計與實現(xiàn)了系統(tǒng)遠程管理功能:
(1)通過SSH遠程連接云計算服務器Hadoop系統(tǒng),執(zhí)行shell命令;
(2)執(zhí)行shell命令將數(shù)據(jù)整合后的IDS檢測數(shù)據(jù)上傳至HDFS;
(3)通過shell指令執(zhí)行隨機森林算法,生成決策樹,并輸出結(jié)果,提供決策信息。
下面描述上傳文件情況,其軟件界面如圖3所示。
圖3 系統(tǒng)遠程管理界面
圖中為上傳文件123.txt至Hadoop系統(tǒng)的test文件夾,點擊“上傳”按鈕后完成上傳。在“命令”窗口,輸入shell的ls命令,點擊“執(zhí)行“按鈕”就能夠查看test文件夾內(nèi)的內(nèi)容。
3.1 實驗數(shù)據(jù)預處理
訓練和測試數(shù)據(jù)來自于設計的IDS監(jiān)測系統(tǒng),涵蓋了將近1個月的近萬條數(shù)據(jù),針對真實網(wǎng)站進行入侵檢測。選擇2/3數(shù)據(jù)集用于訓練,其它用于測試。經(jīng)過適當預處理,有關IP地址、端口號和日期等數(shù)據(jù)做了一定的調(diào)整。既避免信息泄露,又符合隨機森林分類算法的要求。每行數(shù)據(jù)共有25列,其中,第1列為序號,第2列為使用的訪問的協(xié)議,最后1列是系統(tǒng)狀態(tài)[normal, anomaly],分別表示為正常和異常。
3.2 建模過程
基于Hadoop 2.6和mahout-0.10環(huán)境,采用隨機森林分類算法進行數(shù)據(jù)分析。
主要執(zhí)行步驟如下:
(1)上傳測試數(shù)據(jù)文件trainIds.txt,生成描述文件。
Hadoop jar mahout-examples-0.10.0-job.jar org.apache.mahout.classifier.df.tools.Describe-p testIDS/trainIds.txt-f testIDS/trainIds.info-d I C 23 N L
(2)建立森林模型。
hadoop jar mahout-examples-0.10.0-job.jar org.apache.mahout.classifier.df.mapreduce.BuildForest-d testIDS/testIds.txt-ds testIDS/trainIds.info-sl 3-ms 3-p-t 5-o IdsOut0607
建立的決策樹如圖4所示。
圖4 查看決策樹
(3)測試模型。
hadoop jar mahout-examples-0.10.0-job.jar org.apache.mahout.classifier.df.mapreduce.TestForest-i testIDS/testIds.txt-ds testIDS/trainIds.info-m IdsOut0607-mr-a-o idsOut0607
測試過程和分類結(jié)果如圖5所示。可見,總體檢測率達到98.5%。從混淆矩陣結(jié)果看,正常狀態(tài)的誤報率僅為7/590=1.2%,異常狀態(tài)的誤報率為2/30=6.7%。
圖5 隨機森林模型的測試結(jié)果
針對真實網(wǎng)站的入侵檢測需要,設計和實現(xiàn)了一套大數(shù)據(jù)采集和分析實驗系統(tǒng),能夠自動獲取IDS日志信息并遠程傳輸?shù)皆朴嬎惴掌髦?。通過Hadoop系統(tǒng)和Mahout技術,利用隨機森林算法進行入侵檢測日志數(shù)據(jù)分析。結(jié)果表明,建立的決策樹模型具有很高的檢測率和較低的誤報率。系統(tǒng)具有一定的通用性,可以為其他類似系統(tǒng)提供參考。今后,將增加網(wǎng)站運行的日志信息分析,通過綜合多種數(shù)據(jù)源,進一步提高檢測的可靠性。
[1] 何增穎, 陳建銳. 入侵檢測系統(tǒng)測試實驗設計與實現(xiàn)[J]. 實驗室研究與探索, 2010,29(3): 80-82.
[2] 張旭珍, 黃成玉,張志波. 基于 Snort 的入侵檢測系統(tǒng)教學實驗設計與實現(xiàn)[J]. 實驗室研究與探索, 2014,33(4):159-163.
[3] 高 崢,陳蜀宇,李國勇. 混合入侵檢測系統(tǒng)的研究[J]. 計算機技術與發(fā)展,2010,20(6):148-151.
[4] 王 翔,胡學鋼,楊秋潔.基于One_R的改進隨機森林入侵檢測模型研究[J].合肥工業(yè)大學學報(自然科學版),2015,38(5):627-630.
[5] 陳 真. Hadoop云平臺的入侵檢測系統(tǒng)優(yōu)化設計[J]. 西安工業(yè)大學學報,2012,32(9):716-722.
[6] 魏德志. 基于云計算的模糊規(guī)則挖掘算法在入侵檢測中的應用[J]. 吉林師范大學學報, 2012(1):115-118.
[7] ACM KDD CUP [Online]. www.sigkdd.org/ kdd-cup-1999-computer-network-intrusion-detection..
[8] 張新有,曾華燊,賈 磊. 入侵檢測數(shù)據(jù)集 KDD CUP99 研究[J]. 計算機工程與設計. 2010,31(22): 4809-4812.
[9] 孫藝峻, 張宏莉,何 慧.大規(guī)模網(wǎng)絡安全態(tài)勢分析中的報警關聯(lián)規(guī)則挖掘[C]//2007年全國網(wǎng)絡與信息安全研討會論文集,2007.
[10] 孫國梓.一種入侵檢測實驗系統(tǒng)的設計與實現(xiàn)[J]. 計算機教育, 2010(6):154-157.
[11] 劉建軍.基于Hadoop的WEB入侵檢測分析[C]//2014第十九屆全國青年通信學術年會論文集,2014.
[12] 許 旻.高維數(shù)據(jù)下基于云平臺的隨機森林算法的研究與實現(xiàn)[J]. 科技通報,2014,30(6):222-224.
[13] Mohammed Nazim Feroz,Susan Mengel.Examination of Data, Rule Generation and Detection of Phishing URLs using Online Logistic Regression[C]//2014 IEEE International Conference on Big Data, 2014.
[14] Jakrarin Therdphapiyanak,Krerk Piromsopa. An analysis of suitable parameters for efficiently applying K-means clustering to large TCPdump data set using Hadoop framework[C]//2013 10thInt Conf on Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology(ECTI-CON). 2013.
[15] overview-Apache mahout-Apache software foundation [Online].https://cwiki.apache.org/confluence/display/MAHOUT/Overview.
Hadoop-based System Design for Website Intrusion Detection and Analysis
ZHANGXiao-ming,WANGYu-xin,WANGGuang,ZHANGGe-tong,WURui-jiang
(Department of Computer, College of Information Engineering,Beijing Institute of Petrochemical Technology, Beijing 102617, China)
It is very important and practical to make data analysis for intrusion detection based on large scale data. For the current system problem in simulation and off-line analysis, a system is proposed to complete intrusion detection and analysis for true website. The system is integrated with two subsystems of intrusion detection and large data analysis. Through network construction and software design, the system achieves functions of intrusion detection, data storage, data cleaning and data mining for true website. With two kinds of modes of timing and active management, the data can be transmitted to the database and Hadoop system online in the system. By means of the designed software, it can make large data analysis under Hadoop system and Mahout technology. Experimental results show that the system can quickly establish the random forest model. It can achieve good detection effects.
intrusion detection; Hadoop; large data; Mahout; classification; random forest
2015-10-29
2015年度國家級大學生創(chuàng)新創(chuàng)業(yè)計劃項目(2015J00137);北京石油化工學院優(yōu)秀責任教授資助項目(BIPT-POPME-2015);北京石油化工學院重點教改項目(ZD20140302)
張曉明(1968-),男,江西寧都人,博士,教授,主要研究方向為網(wǎng)絡計算和大數(shù)據(jù)技術。E-mail: zhangxiaoming@bipt.edu.cn
TP 393.08;TP 181
A
1006-7167(2016)04-0125-04