張曉明,付 強(qiáng)
(沈陽工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110870)
對(duì)Web服務(wù)蜜罐的日志分析主要通過數(shù)據(jù)挖掘技術(shù)來實(shí)現(xiàn).目前主流的技術(shù)有Apriori算法及其改進(jìn)算法、KNN 算法、SVM 算法.Apriori算法的基本思想是:首先找出事務(wù)中所有的頻集,這些頻集出現(xiàn)的頻繁性需要大于或等于預(yù)先設(shè)定的最小支持度;隨后由頻集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則,這些規(guī)則必須大于最小支持度和最小可信度;使用遞推的方法生成所有頻集.其主要缺點(diǎn)是:①可能產(chǎn)生大量的候選集,沒有排除不應(yīng)該參與組合的元素.②需要重復(fù)掃描數(shù)據(jù)庫(kù).S-Apriori算法在Apriori算法的基礎(chǔ)上作了改進(jìn),采用新的數(shù)據(jù)結(jié)構(gòu),只需要掃描一次數(shù)據(jù)庫(kù),連接時(shí)無須重復(fù)判斷即可快速找到更高階的頻繁項(xiàng)目集,算法的效率也得到了提高[1].KNN 算法的思路是如果一個(gè)樣本在特征空間中的k 個(gè)最相似的樣本中的大多數(shù)屬于某一類別則該樣本也屬于這個(gè)類別,該算法廣泛應(yīng)用于文本分類.
支持向量機(jī)(SVM)是目前廣泛應(yīng)用于各個(gè)領(lǐng)域分類方法,其基本思想是在樣本空間或特征空間,構(gòu)造出最優(yōu)超平面使超平面與不同類樣本集之間的距離最大,從而達(dá)到最大的泛化能力.SVM 根據(jù)有限的樣本信息在模型的復(fù)雜性和學(xué)習(xí)能力之間尋求最佳折衷,以期獲得最好的推廣能力[2].
在本文中,分析判斷蜜罐日志中的記錄是否是一個(gè)攻擊,重點(diǎn)是分類的準(zhǔn)確率,因此采用了另外一種分類方法SVM 算法.在本實(shí)驗(yàn)中,使用Web Server蜜罐(WS蜜罐)作為Web服務(wù)的應(yīng)用程序,監(jiān)視、接收SOAP 消息并記錄其所有活動(dòng),進(jìn)而使用機(jī)器學(xué)習(xí)技術(shù)對(duì)其進(jìn)行分析,可以大大簡(jiǎn)化分析任務(wù).
SVM 是當(dāng)前數(shù)據(jù)挖掘領(lǐng)域中比較流行的機(jī)器學(xué)習(xí)方法,其結(jié)構(gòu)風(fēng)險(xiǎn)最小,泛化能力優(yōu)異,能解決高維度、非線性等問題.對(duì)于本文所要解決的問題,SVM 算法可描述為將輸入空間中的樣本通過一種非線性函數(shù)關(guān)系映射到一個(gè)高維特征空間中,使樣本在該高維特征空間中線性可分,并找到樣本在該維特征空間中的最優(yōu)線性分類超平面.
式中,k(x,xi)表示核函數(shù).
在SVM 中,常用的核函數(shù)有線性核函數(shù)、多項(xiàng)式核函數(shù)、徑向基核函數(shù)和Sigmoid核函數(shù),其中基于徑向基核函數(shù)的SVM 性能要優(yōu)于其他核函數(shù)[3],因此,本文采用徑向基核函數(shù)作為SVM核函數(shù),
即因此,基于SVM 算法的分類器為
式中,σ 表示核函數(shù)寬度;αi表示拉格朗日乘子.
首先建立一個(gè)高交互的WS蜜罐,它提供真正的Web服務(wù),與攻擊者進(jìn)行真實(shí)互動(dòng).蜜罐將收集到的信息存放在日志文件中,該日志文件主要記錄攻擊者的動(dòng)機(jī)以及攻擊中所使用的技術(shù)和手段,以便人類專家更好地采用更有針對(duì)性的方法來保護(hù)系統(tǒng)[4].但是日志文件也存在缺陷,它收集到的大量信息必須通過人類專家來分析.由于收集到的大部分信息是系統(tǒng)的正常行為,與攻擊沒有任何關(guān)系,因此,在分析這些信息的時(shí)候,人類的專家將被淹沒在大量數(shù)據(jù)審計(jì)中,并有可能漏掉真正的攻擊.因此,使用機(jī)器學(xué)習(xí)技術(shù)對(duì)收集到的信息進(jìn)行分析,該技術(shù)可以分析并學(xué)習(xí)蜜罐正常行為的信息,當(dāng)蜜罐檢測(cè)到重大的偏差行為時(shí),將該行為提交給人類專家決定.
在部署WS蜜罐之前,它必須首先經(jīng)歷一個(gè)訓(xùn)練階段,這是蜜罐在一個(gè)安全的環(huán)境下模擬學(xué)習(xí)Web服務(wù)的正常行為[5].在這個(gè)訓(xùn)練階段里要?jiǎng)?chuàng)建一個(gè)包含有關(guān)蜜罐的各種合法活動(dòng)和分類信息的數(shù)據(jù)集.這個(gè)階段后,WS蜜罐可以進(jìn)行部署并開始吸引攻擊者.然后,用戶對(duì)蜜罐上進(jìn)行的活動(dòng)進(jìn)行初始數(shù)據(jù)集分類,如果有錯(cuò)誤的分類(異常活動(dòng)),該活動(dòng)將被傳遞給人類專家,以檢查它是否是一個(gè)攻擊.如果它是以前沒有見過的正常活動(dòng),初始數(shù)據(jù)集將增加一個(gè)有關(guān)此活動(dòng)的新條目,以避免類似錯(cuò)誤分類的發(fā)生.此外,蜜罐已檢測(cè)并確認(rèn)的攻擊將被歸類在其他數(shù)據(jù)集,從而減少人類專家的工作量.
WS蜜罐的作用是模擬一個(gè)Web 服務(wù)的行為并且捕獲和分析用戶的活動(dòng).其系統(tǒng)架構(gòu)如圖1所示.
圖1 Web服務(wù)蜜罐框架Fig.1 Frame of Web server honeypot
(1)模擬Web服務(wù).本模塊的目的是利用一個(gè)真正的Web服務(wù)交互來誤導(dǎo)攻擊者.為了避免給人一種靜態(tài)的感覺,通過增加一個(gè)WSDL 文件的方法在蜜罐上部署真正的Web服務(wù).
(2)流量捕獲.流量記錄是一項(xiàng)收集和分類用戶活動(dòng)的重要任務(wù).這個(gè)組件包括流量捕獲機(jī)制和監(jiān)測(cè)工具兩部分,主要用來捕獲和分析WS蜜罐模擬服務(wù)的請(qǐng)求和響應(yīng).Web服務(wù)請(qǐng)求封裝在以HTTP作為傳輸協(xié)議的SOAP 消息里,對(duì)攻擊的檢測(cè)就是通過檢查這些消息來實(shí)現(xiàn)的.
(3)特征提取.通過WS蜜罐從每個(gè)SOAP消息提取特征.主要是通過將SOAP消息的內(nèi)容分為以下幾部分來實(shí)現(xiàn)的:IP 源、消息長(zhǎng)度、請(qǐng)求序列、響應(yīng)序列、每次請(qǐng)求時(shí)的調(diào)用操作,以及每個(gè)操作的輸入?yún)?shù).
(4)數(shù)據(jù)分析.在蜜罐中,數(shù)據(jù)分析是一個(gè)非常困難和煩瑣的任務(wù),為了簡(jiǎn)化這個(gè)任務(wù),利用機(jī)器學(xué)習(xí)技術(shù)來檢測(cè)蜜罐中的異?;顒?dòng).
在進(jìn)行數(shù)據(jù)分析之前,需要確定哪些屬性是有助于發(fā)現(xiàn)和理解攻擊行為的.對(duì)于蜜罐來說,每個(gè)時(shí)間戳表征了網(wǎng)絡(luò)連接發(fā)生的時(shí)間,而IP源表征了攻擊的產(chǎn)生源,那么帶有時(shí)間戳的來自同一個(gè)IP 源的網(wǎng)絡(luò)連接記錄集便構(gòu)成了一個(gè)時(shí)間序列[6].
在本文中,時(shí)間戳是獨(dú)立于攻擊特征的屬性,所以并未采用;消息長(zhǎng)度與SOAP消息的屬性也無直接關(guān)系,故也未采用.分析選擇的屬性包括:IP源、請(qǐng)求序列、響應(yīng)序列、每次請(qǐng)求時(shí)的調(diào)用操作、每次操作的輸入?yún)?shù).每一條SOAP 消息可以看做是一個(gè)事物Tk,SOAP消息的全體構(gòu)成了事務(wù)數(shù)據(jù)庫(kù)D.所有消息中IP源,請(qǐng)求序列,響應(yīng)序列,每次請(qǐng)求時(shí)的調(diào)用操作,每個(gè)操作的輸入?yún)?shù)的屬性值構(gòu)成了全體項(xiàng)的集合I.在這里,即使所有SOAP消息的IP 源屬性值相同,由于它們描述的請(qǐng)求和響應(yīng)序列以及其調(diào)用的操作不同,也被認(rèn)為是不同的項(xiàng).由于請(qǐng)求序列和響應(yīng)序列顯示了SOAP 消息在蜜罐中的所有行為,因此,該序列對(duì)SOAP 消息的分類起著至關(guān)重要的作用;對(duì)于每次請(qǐng)求調(diào)用的操作,由于網(wǎng)絡(luò)病毒或者黑客采取網(wǎng)絡(luò)攻擊連接對(duì)方服務(wù)器時(shí),需要調(diào)用一系列操作來實(shí)現(xiàn)其目的,因此,每次請(qǐng)求調(diào)用的操作列為機(jī)器學(xué)習(xí)的一項(xiàng)重要指標(biāo);對(duì)于每次操作的輸入?yún)?shù),由于網(wǎng)絡(luò)攻擊的攻擊方式和手段具有很強(qiáng)的可學(xué)習(xí)性,并且每次操作的輸入?yún)?shù)能夠很好地體現(xiàn)攻擊者的目的和意圖,因此輸入?yún)?shù)也列為機(jī)器學(xué)習(xí)的一項(xiàng)指標(biāo).這里選取IP源、請(qǐng)求序列、響應(yīng)序列、每次請(qǐng)求時(shí)的調(diào)用操作,及每個(gè)操作的輸入?yún)?shù)作為一個(gè)SOAP 消息的特征值,最后對(duì)這些屬性進(jìn)行分析和分類.
數(shù)據(jù)分析是將收到的所有請(qǐng)求,按照其內(nèi)容進(jìn)行分類,分類依賴于一個(gè)部署在蜜罐中逐步建成的學(xué)習(xí)數(shù)據(jù)集[7].如果在分類的時(shí)候發(fā)現(xiàn)有異?;顒?dòng),將該活動(dòng)傳遞給人類的專家檢查其是否是一個(gè)攻擊.
蜜罐中的數(shù)據(jù)分析任務(wù)是非常困難的,需要人類專家在數(shù)據(jù)分析方面付出很多努力.為了促進(jìn)這一任務(wù),使用機(jī)器學(xué)習(xí)技術(shù),其基本思想是捕捉并分析WS蜜罐收到的SOAP 消息,并將異常活動(dòng)提取出來交由人類專家進(jìn)行分析.該模塊的框架如圖2所示.
圖2 數(shù)據(jù)分析模塊框架Fig.2 Frame of data analysis module
要想利用這個(gè)蜜罐得出好結(jié)果,它必須經(jīng)過一個(gè)訓(xùn)練階段,在此期間,它必須部署在一個(gè)安全的環(huán)境中學(xué)習(xí)該系統(tǒng)的合法活動(dòng),從這些合法活動(dòng)中提取特征.蜜罐所捕獲到的信息,將存儲(chǔ)在一個(gè)標(biāo)有“學(xué)習(xí)數(shù)據(jù)集”的數(shù)據(jù)集中.
在訓(xùn)練結(jié)束后,WS蜜罐可以開始工作,對(duì)于蜜罐捕獲到的每個(gè)SOAP消息,提取的特征將被儲(chǔ)存在測(cè)試數(shù)據(jù)集中.然后,這些功能將在學(xué)習(xí)數(shù)據(jù)集的基礎(chǔ)上進(jìn)行SVM 分類,如果發(fā)現(xiàn)有分類錯(cuò)誤,該活動(dòng)將被遞給人類的專家審查其是否是一個(gè)攻擊.經(jīng)核實(shí)后,無論它是正?;顒?dòng)或者攻擊行為,都要將這項(xiàng)活動(dòng)加入到學(xué)習(xí)數(shù)據(jù)集中.
SVM 分類的作用是將接收的SOAP信息進(jìn)行分類,主要是基于SOAP 消息內(nèi)容的特征提取.該分類找到學(xué)習(xí)數(shù)據(jù)集中的每個(gè)消息,如果消息中的參數(shù)與某些已知分類參數(shù)有偏差,將會(huì)發(fā)生分類錯(cuò)誤,該消息會(huì)被傳遞給人類專家處理.
(1)數(shù)據(jù)源.IP 源、消息長(zhǎng)度、請(qǐng)求序列、響應(yīng)序列、每次請(qǐng)求時(shí)的調(diào)用操作、每個(gè)操作的輸入?yún)?shù).
(2)數(shù)據(jù)預(yù)處理.數(shù)據(jù)預(yù)處理的任務(wù)是將每個(gè)SOAP 消息的所有特征信息預(yù)處理成數(shù)量特征.由于每個(gè)SOAP 消息中包含很多信息和特征,在這些特征信息中,有一部分屬于字符型數(shù)據(jù),比如,IP 源,每次請(qǐng)求時(shí)的調(diào)用操作,每個(gè)操作的輸入?yún)?shù)等.要將SOAP消息轉(zhuǎn)換成檢測(cè)模型的輸入數(shù)據(jù),則需要把各自類型的字符數(shù)據(jù)進(jìn)行轉(zhuǎn)換,得到相應(yīng)的數(shù)量特征,然后再進(jìn)行歸一化處理,把大小不一的各種數(shù)量統(tǒng)一到小范圍內(nèi),如0~1之間.這樣,SOAP 消息就被初始化成標(biāo)準(zhǔn)的輸入矢量,就可以作為檢測(cè)模型的輸入數(shù)據(jù)了.另外,由于蜜罐模擬一些服務(wù),對(duì)SOAP 消息請(qǐng)求某些認(rèn)為是被攻擊的服務(wù)時(shí),該消息被自動(dòng)檢測(cè)為一個(gè)攻擊.
一是數(shù)據(jù)集格式轉(zhuǎn)換.首先應(yīng)該將SOAP消息進(jìn)行特征提取,提取到的字符型字段數(shù)據(jù)轉(zhuǎn)換成矢量數(shù)據(jù),即將每一字段可能的取值都用數(shù)字來表示,這樣就建立起了字符數(shù)據(jù)和矢量數(shù)據(jù)之間的一一對(duì)應(yīng)關(guān)系.將該關(guān)系構(gòu)造成一張表,稱為關(guān)鍵詞表.其他如服務(wù)類型和攻擊類型的關(guān)鍵詞表與此類似,不再贅述.
二是歸一化處理.當(dāng)眾多的字符數(shù)據(jù)都經(jīng)過矢量轉(zhuǎn)換后,它們依次賦予的整數(shù)因同字段內(nèi)相互不重復(fù)故使取值范圍可能會(huì)很大.為了處理方便,將所有數(shù)字特征歸一化處理到0~1之間.直接對(duì)準(zhǔn)備好的數(shù)據(jù)源進(jìn)行歸一化處理,并將處理后的訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)分別存儲(chǔ)在硬盤中.
在分類過程中,對(duì)WS蜜罐中每個(gè)活動(dòng)是根據(jù)它們的相似之處進(jìn)行特征提取.如果由于異常活動(dòng)出現(xiàn)的分類錯(cuò)誤,該活動(dòng)的詳細(xì)描述將被傳遞給人類專家.隨后,人類專家根據(jù)其具體情況對(duì)異?;顒?dòng)進(jìn)行分析,以確認(rèn)其是否是一個(gè)真正的攻擊.
為了驗(yàn)證該方法的有效性,首先通過在訓(xùn)練階段向WS 蜜罐發(fā)送合法的SOAP 消息對(duì)蜜罐進(jìn)行本地學(xué)習(xí),其次在測(cè)試階段,使用多種技術(shù)模擬各種攻擊,在本實(shí)驗(yàn)中,共發(fā)送365 條SOAP消息,其中惡意請(qǐng)求產(chǎn)生53個(gè)報(bào)警.
表1列出了實(shí)驗(yàn)中每種類型攻擊檢測(cè)的詳細(xì)信息.可以看出,該系統(tǒng)對(duì)一些比較常見的攻擊方法有一定的效果,并且有很高的準(zhǔn)確率,但是其自動(dòng)檢測(cè)率還有待提高,其主要原因是前期訓(xùn)練樣本不夠全面,數(shù)據(jù)集不夠健全;普通行為和攻擊行 為有很多相似之處,SVM 算法不能完全識(shí)別.
表1 實(shí)驗(yàn)中攻擊檢測(cè)的詳細(xì)信息Table 1 Detailed information of the attack detection in the experiments
通過部署一個(gè)WS蜜罐來收集信息,采用基于SVM 算法的機(jī)器學(xué)習(xí)技術(shù)來分析處理日志文件.從實(shí)驗(yàn)結(jié)果可以看出,該系統(tǒng)在大大減少人類專家的工作量的同時(shí)有很高的準(zhǔn)確率,但是其自動(dòng)檢測(cè)數(shù)量和漏報(bào)數(shù)量仍然需要改進(jìn).
[1]戴小廷.典型Apriori改進(jìn)算法的分析與比較[J].微計(jì)算機(jī)信息,2010,26(9):158-159.(Dai Xiaoting.Analysis and Comparison of Representative Algorithms for Apriori[J].Microcomputer Information,2010,26(9):158-159.)
[2]郭來德,張燕,曹楊,等.機(jī)動(dòng)車車牌識(shí)別中SVM的應(yīng)用[J].計(jì)算機(jī)與數(shù)字工程,2012,40(4):105-106.(Guo Laide,Zhang Yan,Cao Yang,et al.Application of SVM in Motor Vehicle License Plate Recognition[J].Computer &Digital Engineering,2012,40(4):105-106.)
[3]楊世恩,陳春梅.基于SVM的網(wǎng)絡(luò)攻擊檢測(cè)系統(tǒng)研究[J].長(zhǎng)江大學(xué)學(xué)報(bào):自然科學(xué)版,2011,8(8):81-84.(Yang Shi'en,Chen Chunmei,Research on the System of SVM-based Network Attacks Detection[J].Journal of Yangtze University:Natural Science Edition,2011,8(8):81-84.)
[4]王軍,李莉.虛擬多入口路由的蜜罐網(wǎng)絡(luò)構(gòu)建[J].沈陽大學(xué)學(xué)報(bào):自然科學(xué)版,2012,24(4):52-57.(Wang Jun,Li Li.Construction of Virtual Multi-entry Routes Honeypot Network[J].Journal of Shenyang University:Natural Science,2012,24(4):52-57.)
[5]蔡清體,譚漢松.基于SVM 主動(dòng)學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測(cè)算法研究[J].計(jì)算機(jī)與信息技術(shù),2009(12):41-43.(Cai Qingti,Tan Hansong.Intrusion Detection Algorithm based on SVM Active Learning Network[J].Computer &Information Technology,2009(12):41-43.)
[6]金濤.數(shù)據(jù)挖掘在蜜罐日志分析中的應(yīng)用研究[D].上海:上海交通大學(xué),2010.(Jin Tao.Research on Application of Data Mining in Honeypot Log Analysis[D].Shanghai:Shanghai Jiao Tong University,2010.)
[7]周洪利.基于SVM的網(wǎng)絡(luò)信息過濾研究[D].山東:山東師范大學(xué),2008.(Zhou Hongli.Research on the Network Information Filtering Based on SVM[D].Shandong:Shandong Normal University,2008.)