劉衛(wèi)國(guó),胡勇剛
(中南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙,410083)
近年來,病毒(如蠕蟲病毒)以及惡意代碼成為網(wǎng)絡(luò)安全的主要威脅。網(wǎng)絡(luò)攻擊行為給社會(huì)帶來巨大的經(jīng)濟(jì)損失?;诠籼卣鞯娜肭謾z測(cè)系統(tǒng)是目前解決此安全問題的有效手段,但各種入侵病毒和攻擊廣泛采用變形、多態(tài)和加殼等技術(shù),新的變異病毒不斷出現(xiàn),這對(duì)現(xiàn)有的入侵檢測(cè)系統(tǒng)提出很大的挑戰(zhàn)。因此,對(duì)于攻擊特征自提取技術(shù)的研究引起了許多研究者的注意,成為入侵檢測(cè)技術(shù)的研究熱點(diǎn)。攻擊特征提取算法通常分為2類:基于字符串模式和基于語義算法。基于語義的算法依賴于對(duì)某種特定類型的攻擊事先進(jìn)行語義分析,無法自動(dòng)生成一些未知攻擊的攻擊特征。因此,目前對(duì)于攻擊特征提取算法的研究主要是基于字符串模式,如基于最長(zhǎng)公共子串算法、基于可變長(zhǎng)度負(fù)載出現(xiàn)頻率算法、基于序列聯(lián)配算法等[1],其中基于序列聯(lián)配算法能夠提取長(zhǎng)度很短的特征片段,并且能發(fā)掘特征片段間的距離關(guān)系。Needleman等[2]提出Needleman-Wunsch算法,通過計(jì)算2個(gè)序列的相似值,得到1個(gè)相似度矩陣,再通過回溯尋找得到聯(lián)配結(jié)果,是目前特征提取準(zhǔn)確性較高的算法。但在序列聯(lián)配過程中存在碎片和噪聲干擾問題。為避免聯(lián)配過程中產(chǎn)生碎片和漏掉有效語義信息文字,Smith等[3]對(duì)Needleman-Wunsch算法進(jìn)行改進(jìn),提出Smith-Waterman算法,用局部聯(lián)配代替全局聯(lián)配,提高了聯(lián)配結(jié)果的準(zhǔn)確度。秦拯等[4]針對(duì)非最優(yōu)解的問題提出基于知識(shí)積累的序列聯(lián)配算法IASA,能有效地保留聯(lián)配過程中具有語義信息的片段,使聯(lián)配結(jié)果趨于合理。唐勇等[5-6]提出獎(jiǎng)勵(lì)相鄰匹配的全局聯(lián)配算法CMENW和層次式多序列聯(lián)配算法HMSA,有效地去除了聯(lián)配過程中的噪聲,減少了聯(lián)配過程中的碎片。在攻擊特征的提取中,一般是在網(wǎng)絡(luò)中捕獲攻擊數(shù)據(jù)包作為數(shù)據(jù)源,因此,在實(shí)際的攻擊樣本中往往包含多種攻擊,在針對(duì)某一攻擊行為進(jìn)行攻擊特征提取時(shí),其他攻擊樣本則可視為噪聲。要實(shí)現(xiàn)單一攻擊特征的提取,目前通常做法是通過對(duì)攻擊樣本進(jìn)行聚類,將多攻擊樣本轉(zhuǎn)換成含單一攻擊樣本,然后,提取該攻擊樣本特征。支持向量機(jī)(SVM)技術(shù)的應(yīng)用得到廣泛關(guān)注,SVM的自我學(xué)習(xí)能力能有效地提高網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的自適應(yīng)性[7]。陳光英等[8-9]采用SVM算法及其改進(jìn)的算法檢測(cè)攻擊行為;Zhou等[10]結(jié)合SVM和遺傳算法進(jìn)行攻擊行為檢測(cè),有效地提高系統(tǒng)的檢測(cè)率,降低系統(tǒng)的誤報(bào)率。本文提出一種基于兩序列聯(lián)配特征自提取模型,首先,使用SVM分類器對(duì)數(shù)據(jù)集進(jìn)行調(diào)整和分類;然后,使用改進(jìn)的Smith-Waterman算法對(duì)攻擊數(shù)據(jù)進(jìn)行序列聯(lián)配,以克服原有算法中的不足,獲取優(yōu)化聯(lián)配結(jié)果。
支持向量機(jī)是一種基于統(tǒng)計(jì)學(xué)理論的機(jī)器學(xué)習(xí)方法。它根據(jù)有限的樣本信息在模型的復(fù)雜性和學(xué)習(xí)能力之間尋求最佳折中,以期獲得最好的泛化能力[11-12]。支持向量就是一個(gè)訓(xùn)練數(shù)據(jù)集的子集,該子集通常用于定義2類數(shù)據(jù)的邊界。使用1個(gè)非線性函數(shù)將樣本數(shù)據(jù)映射到1個(gè)高維空間,在高維特征空間中,查找1個(gè)最優(yōu)超平面實(shí)現(xiàn)對(duì)數(shù)據(jù)集的分類,該超平面由一定數(shù)量的支持向量決定。
對(duì)于樣本{(x1,y1),(x2,y2),…,(xn,yn)},其中xi∈Rn,yi∈{1,-1},當(dāng)y取1時(shí)表示樣本屬于A類,y取-1時(shí)表示樣本屬于B類。分類邊界表示為:
若給定樣本集可分,則存在一對(duì)(ω,b)∈Rn×R使得:
其中:ω為權(quán)重向量;b為偏離值。合并式(2)得:
此時(shí),分類間隔為2/||ω||,分類間隔最大問題等價(jià)于使||ω||2最小。因此,滿足式(1)且使||ω||2/2最小的超平面稱為最優(yōu)分類面,求解最優(yōu)分類面可表示為:
支持向量機(jī)常被用來進(jìn)行預(yù)測(cè)或分類[13],其較高的分類準(zhǔn)確度有利于降低誤報(bào)率。根據(jù)分類結(jié)果,SVM分類可以分為一類分類和多類分類。采用SVM分類算法只能將樣本集中的一類與其他數(shù)據(jù)分開,這稱為一類SVM分類;對(duì)于k類混合樣本集,要將所有樣本分類,最直接的方法是采用k個(gè)一類SVM分類器;對(duì)于含有多種攻擊的數(shù)據(jù)集,為快速對(duì)各類攻擊進(jìn)行分類,本文采用k分類SVM分類器。
對(duì)于含有k類攻擊的數(shù)據(jù)集,將數(shù)據(jù)集分成k類,將k類分類器分解成k個(gè)一類分類,每個(gè)分類結(jié)果中包含所有攻擊樣本,第i個(gè)一類分類將第i類攻擊與其他攻擊類分開,因此將這k個(gè)一類分類的判決函數(shù)組合成形成k類分類的判決函數(shù)。對(duì)于輸入的數(shù)據(jù)集,使用k類分類判決函數(shù)進(jìn)行判斷,輸出結(jié)果中第i個(gè)輸出結(jié)果屬于第i類,其他輸出為其他類,從而實(shí)現(xiàn)對(duì)混合樣本集進(jìn)行k分類,如圖1所示。
圖1 k類SVM分類器Fig.1 SVM k-classifier
序列聯(lián)配的主要思想是通過序列字符的比較和適當(dāng)?shù)目瘴徊迦?,?jì)算相似度函數(shù)值,并構(gòu)建1個(gè)相似度矩陣,從而發(fā)現(xiàn)序列之間的相似性和辨別序列的差異[14]。進(jìn)行序列聯(lián)配的過程中,會(huì)適當(dāng)?shù)夭迦肟瘴粚⒙?lián)配的2個(gè)序列對(duì)齊;當(dāng)插入的空位位置不同時(shí),會(huì)得到不同的聯(lián)配結(jié)果。如序列1“jseefaiboc7dqp”與序列2“wuapbycudhseen”在進(jìn)行兩兩聯(lián)配時(shí),可能出現(xiàn)圖2所示2種結(jié)果。
圖2 兩序列聯(lián)配Fig.2 Two sequences alignment
在圖2(a)中,插入的空位數(shù)較少,并且找到4個(gè)相似的字符。在圖2(b)中,插入相對(duì)較多的空位,同時(shí)只找到3個(gè)相似的字符。從聯(lián)配的表象來看,根據(jù)相似度計(jì)算公式,序列聯(lián)配結(jié)果1(圖2(a))中以更多的相似字符得分和更少的空位罰分,計(jì)算出的相似度要高于序列聯(lián)配結(jié)果2(圖2(b))。
但在實(shí)際應(yīng)用中,序列聯(lián)配結(jié)果2(圖2(b))更能表示攻擊特征,被稱作為最優(yōu)聯(lián)配[15]。其原因如下。
(1)在序列聯(lián)配結(jié)果2中的碎片更少。通常把只包含1個(gè)字母的片段稱作碎片,在序列聯(lián)配結(jié)果1中的碎片數(shù)量為4,而序列聯(lián)配結(jié)果2中沒有碎片,若采用碎片數(shù)量較多的聯(lián)配結(jié)果描述入侵特征,則將導(dǎo)致大量的誤報(bào)。
(2)序列聯(lián)配結(jié)果2中含有語義信息。從圖2中的對(duì)比結(jié)果可以得到,用以匹配的序列中含有可以表示語義信息的連續(xù)字符串“see”,若采用Needleman-Wunsch算法進(jìn)行聯(lián)配,則單從相似度判斷將獲得序列1的聯(lián)配結(jié)果,但無法體現(xiàn)出該語義信息。通常的入侵特征都可由某一特定字符串表示,因此,能獲得連續(xù)的字符串更能準(zhǔn)確表示攻擊特征。
在比較2個(gè)序列時(shí),獲取局部的有語義的連續(xù)符號(hào)串比全局比較獲得大量碎片更具有實(shí)際意義。例如,在生物學(xué)中比較2個(gè)長(zhǎng)的DNA序列時(shí),物種的一些有效信息只包含在某一連續(xù)片段中。本文選擇Smith-Waterman算法中的局部聯(lián)配思想取代全局聯(lián)配,提出一種改進(jìn)的Smith-Waterman算法(ISW)。算法主要思想為:對(duì)于給定的比對(duì)序列m和m′,構(gòu)造相似度矩陣。令x是字符匹配得分,y是不匹配得分,z是空位罰分。在傳統(tǒng)聯(lián)配算法中,出現(xiàn)連續(xù)k個(gè)空位時(shí),則空位罰分為kz。在改進(jìn)算法中,對(duì)首先出現(xiàn)的空位罰分為p,當(dāng)出現(xiàn)連續(xù)k個(gè)空位時(shí),空位罰分為p+(k-1)×z(p>>z),同時(shí)鼓勵(lì)連續(xù)匹配字符,對(duì)于多個(gè)連續(xù)匹配的字符引進(jìn)鼓勵(lì)函數(shù)e(S)來增加匹配得分,其中S為連續(xù)匹配字符的相似度得分。算法描述如下:
輸入:序列m和序列m′。
初始化:
Lm為m的長(zhǎng)度;Lm′為m′的長(zhǎng)度;F(i,j)表示m和m′之間的最優(yōu)相似度得分;T(i,j)表示當(dāng)前相似度得分;s(i,j)表示對(duì)于某一字符和空位的相似度得分。
本文采用SVM分類器與改進(jìn)的Smith-Waterman算法得到基于序列聯(lián)配的攻擊特征自提取模型,其流程如圖3所示。
圖3 基于ISW算法的攻擊特征提取模型Fig.3 Attack signature generation model based on ISW
首先,用某一類攻擊行為的數(shù)據(jù)作為測(cè)試集對(duì)SVM分類器進(jìn)行訓(xùn)練,用經(jīng)過訓(xùn)練過后的分類器對(duì)網(wǎng)絡(luò)中捕獲的數(shù)據(jù)進(jìn)行分類,將分類出的攻擊數(shù)據(jù)傳送給序列聯(lián)配引擎。因?yàn)楦倪M(jìn)后的Smith-Waterman算法是1個(gè)兩序列聯(lián)配算法,在聯(lián)配過程中需不斷調(diào)用該算法,直到所有的序列都聯(lián)配完成為止。
本實(shí)驗(yàn)中采用KDD cup 99數(shù)據(jù)集,在數(shù)據(jù)集中攻擊數(shù)據(jù)可分為4類:拒絕服務(wù)攻擊、監(jiān)視及其他探測(cè)、遠(yuǎn)程非法訪問、本地未授權(quán)用戶登錄。將上述4類攻擊數(shù)據(jù)從數(shù)據(jù)集中剔除,僅留正常數(shù)據(jù)包。選用3種遠(yuǎn)程漏洞溢出攻擊:Apache-Knacker,BIND-TSIG和ATPhttpd,并通過病毒變形引擎進(jìn)行變異處理。使用IASA算法、CMENW算法及ISW算法進(jìn)行攻擊特征提取。
實(shí)驗(yàn)中參數(shù)設(shè)置如下:匹配得分取值為1,不匹配得分取值為-0.5,空位罰分取值為-1。對(duì)于ISW算法,第1次空位罰分取值為-1,出現(xiàn)連續(xù)的其他空位取值-0.02。對(duì)于連續(xù)匹配字符的相似度得分S,連續(xù)匹配獎(jiǎng)勵(lì)函數(shù)為:
分別采用IASA算法、CMENW算法以及ISW算法對(duì)3種攻擊進(jìn)行特征提取,實(shí)驗(yàn)結(jié)果如表1所示。
為驗(yàn)證改進(jìn)算法生成的攻擊特征用于檢測(cè)系統(tǒng)的效率,每種攻擊采樣100個(gè)加入正常數(shù)據(jù)集,將聯(lián)配結(jié)果轉(zhuǎn)化成Snort規(guī)則,使用Snort 2.0對(duì)樣本數(shù)據(jù)集進(jìn)行檢測(cè),每種攻擊檢測(cè)10次,統(tǒng)計(jì)其檢測(cè)率與誤報(bào)率并取平均值,對(duì)比結(jié)果如表2所示。
表1 IASA,CMENW和ISW算法攻擊特征的提取結(jié)果Table1 Attack signature generating results of IASA, CMENW and ISW
表2 IASA,CMENW和ISW算法聯(lián)配結(jié)果對(duì)比Table2 Comparison of IASA, CMENW and ISW alignment results
從表2可知:對(duì)于3種攻擊的變形,采用生成的攻擊特征都能有效地檢測(cè)出來。其中對(duì)于Apache-Knacker 攻擊使用IASA算法與ISW算法的攻擊特征,系統(tǒng)的誤報(bào)率均為0,使用ISW算法對(duì)于BIND-TSIG攻擊的提取結(jié)果,系統(tǒng)的誤報(bào)率為0。同樣對(duì)于ATPhttpd攻擊,使用ISW算法的提取結(jié)果中,系統(tǒng)的誤報(bào)率都要遠(yuǎn)比其他2種算法的低,說明使用本文提出的攻擊特征提取模型,能使聯(lián)配結(jié)果更加準(zhǔn)確地表達(dá)攻擊特征。
(1)采用SVM分類器對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,利用SVM方法高準(zhǔn)確率分類特點(diǎn)進(jìn)行攻擊特征選擇,可以減少聯(lián)配過程中的噪聲序列;SVM的小樣本學(xué)習(xí)能力能有效地提高系統(tǒng)應(yīng)對(duì)攻擊行為變異及新攻擊的能力。
(2)針對(duì)聯(lián)配過程的碎片問題,通過改變空位罰分的方式,并鼓勵(lì)字符連續(xù)匹配,能最大程度地保留攻擊行為的特征字符,因此,改進(jìn)的Smith-Waterman算法能更準(zhǔn)確地描述攻擊特征。
(3)應(yīng)用改進(jìn)后的攻擊特征自動(dòng)提取方法,使得入侵檢測(cè)系統(tǒng)能自動(dòng)地發(fā)現(xiàn)新的攻擊并提取新攻擊行為的特征,能有效地提高入侵檢測(cè)系統(tǒng)的自適應(yīng)性。
[1]唐勇, 盧錫城, 王勇軍.攻擊特征自動(dòng)提取技術(shù)綜述[J].通信學(xué)報(bào), 2009, 30(2): 96-104.TANG Yong, LU Xi-cheng, WANG Yong-jun.Survey of automatic attack signature generation[J].Journal on Communications, 2009, 30(2): 96-104.
[2]Needleman S B, Wunsch C D.A general method applicable to the search for similarities in the amino acid sequence of two proteins[J].Journal of Molecular Biology, 1970, 48(3): 443-453.
[3]Smith T F, Waterman M S, Identification of common molecular subsequences[J].Journal of Molecular Biology, 1981, 147(1):195-197.
[4]秦拯, 尹毅, 陳飛楊, 等.基于序列比對(duì)的攻擊特征自動(dòng)提取方法[J].湖南大學(xué)學(xué)報(bào): 自然科學(xué)版, 2008, 35(6): 77-80.QIN Zheng, YIN Yi, CHEN Fei-yang, et al.Automatic generation of attack signatures based on sequence alignment[J].Journal of Hunan University: Natural Sciences, 2008, 35(6):77-80.
[5]唐勇, 盧錫城, 胡華平.基于多序列聯(lián)配的攻擊特征自動(dòng)提取技術(shù)研究[J].計(jì)算機(jī)學(xué)報(bào), 2006, 29(9): 1533-1540.TANG Yong, LU Xi-cheng, HU Hua-ping.Automatic generation of attack signatures based on multi-sequence alignmen[J].Chinese Journal of Computers, 2006, 29(9):1533-1540.
[6]唐勇, 魏書寧, 胡華平.抗噪的攻擊特征自動(dòng)提取方法[J].通信學(xué)報(bào), 2009, 30(12): 124-130.TANG Yong, WEI Shu-ning, HU Hua-ping.Noise-tolerant approach for automatically generating signatures of network attacks[J].Journal on Communications, 2009, 30(12): 124-130.
[7]LI Bo, CHEN Yuan-yuan.The research of intrusion detection based on support vector machine[C]//International Conference on Computer and Communications Security.Los Alamitos, CA:IEEE Computer Society, 2009: 21-23.
[8]陳光英, 張千里, 李星.基于SVM分類機(jī)的入侵檢測(cè)系統(tǒng)[J].通信學(xué)報(bào), 2002, 23(5): 51-56.CHEN Guang-ying, ZHANG Qian-li, LI Xing.SVM classification-based intrusion detection system[J].Journal on Communications, 2002, 23(5): 51-56.
[9]ZHANG Xue-qin, GU Chun-hua, WU Ji-yi.Fast intrusion detection algorithm based on reduced SVM[J].Journal of South China University of Technology, 2011, 39(2): 108-112.
[10]ZHOU Hua, MENG Xiang-ru, ZHANG Li.Application of support vector machine and genetic algorithm to network intrusion detection[C]//International Conference on Wireless Communications, Networking and Mobile Computing.Shanghai,China: IEEE Computer Society, 2007: 2267-2269.
[11]張曉惠, 林柏鋼.基于特征選擇和多分類支持向量機(jī)的異常檢測(cè)[J].通信學(xué)報(bào), 2009, 30(10A): 68-73.ZHANG Xiao-hui, LIN Bo-gang.Anomaly detection based on feature selection and multi-class support vector machines[J].Journal on Communications, 2009, 30(10A): 68-73.
[12]GU Cheng-jie, ZHANG Shun-yi, XUE Xiao-zhen.Network intrusion detection based on improved proximal SVM[J].Advances in Information Sciences and Service Sciences, 2011,3(4): 132-140.
[13]ZHANG Yong-li, ZHU Yanwei.Application of improved support vector machines in intrusion detection[C]//Proceedings of the e-Business and Information System Security(EBISS).Tangshan, China: IEEE Express Conference, 2010: 1-4.
[14]朱笑榮, 楊德運(yùn).基于入侵檢測(cè)的特征提取方法[J].計(jì)算機(jī)應(yīng)用與軟件, 2010, 27(6): 30-32.ZHU Xiao-rong, YANG De-yun.Feature extraction on method based on intrusion detection[J].Computer Applications and Software, 2010, 27(6): 30-32.
[15]Nanda S, Tzi-cker Chiueh.Execution trace-driven automated attack signature generation[C]//Computer Security Applications Conference.Los Alamitos, CA: IEEE Computer Society, 2008:195-204.