劉衛國,胡勇剛
(中南大學 信息科學與工程學院,湖南 長沙,410083)
近年來,病毒(如蠕蟲病毒)以及惡意代碼成為網絡安全的主要威脅。網絡攻擊行為給社會帶來巨大的經濟損失。基于攻擊特征的入侵檢測系統是目前解決此安全問題的有效手段,但各種入侵病毒和攻擊廣泛采用變形、多態和加殼等技術,新的變異病毒不斷出現,這對現有的入侵檢測系統提出很大的挑戰。因此,對于攻擊特征自提取技術的研究引起了許多研究者的注意,成為入侵檢測技術的研究熱點。攻擊特征提取算法通常分為2類:基于字符串模式和基于語義算法。基于語義的算法依賴于對某種特定類型的攻擊事先進行語義分析,無法自動生成一些未知攻擊的攻擊特征。因此,目前對于攻擊特征提取算法的研究主要是基于字符串模式,如基于最長公共子串算法、基于可變長度負載出現頻率算法、基于序列聯配算法等[1],其中基于序列聯配算法能夠提取長度很短的特征片段,并且能發掘特征片段間的距離關系。Needleman等[2]提出Needleman-Wunsch算法,通過計算2個序列的相似值,得到1個相似度矩陣,再通過回溯尋找得到聯配結果,是目前特征提取準確性較高的算法。但在序列聯配過程中存在碎片和噪聲干擾問題。為避免聯配過程中產生碎片和漏掉有效語義信息文字,Smith等[3]對Needleman-Wunsch算法進行改進,提出Smith-Waterman算法,用局部聯配代替全局聯配,提高了聯配結果的準確度。秦拯等[4]針對非最優解的問題提出基于知識積累的序列聯配算法IASA,能有效地保留聯配過程中具有語義信息的片段,使聯配結果趨于合理。唐勇等[5-6]提出獎勵相鄰匹配的全局聯配算法CMENW和層次式多序列聯配算法HMSA,有效地去除了聯配過程中的噪聲,減少了聯配過程中的碎片。在攻擊特征的提取中,一般是在網絡中捕獲攻擊數據包作為數據源,因此,在實際的攻擊樣本中往往包含多種攻擊,在針對某一攻擊行為進行攻擊特征提取時,其他攻擊樣本則可視為噪聲。要實現單一攻擊特征的提取,目前通常做法是通過對攻擊樣本進行聚類,將多攻擊樣本轉換成含單一攻擊樣本,然后,提取該攻擊樣本特征。支持向量機(SVM)技術的應用得到廣泛關注,SVM的自我學習能力能有效地提高網絡入侵檢測系統的自適應性[7]。陳光英等[8-9]采用SVM算法及其改進的算法檢測攻擊行為;Zhou等[10]結合SVM和遺傳算法進行攻擊行為檢測,有效地提高系統的檢測率,降低系統的誤報率。本文提出一種基于兩序列聯配特征自提取模型,首先,使用SVM分類器對數據集進行調整和分類;然后,使用改進的Smith-Waterman算法對攻擊數據進行序列聯配,以克服原有算法中的不足,獲取優化聯配結果。
支持向量機是一種基于統計學理論的機器學習方法。它根據有限的樣本信息在模型的復雜性和學習能力之間尋求最佳折中,以期獲得最好的泛化能力[11-12]。支持向量就是一個訓練數據集的子集,該子集通常用于定義2類數據的邊界。使用1個非線性函數將樣本數據映射到1個高維空間,在高維特征空間中,查找1個最優超平面實現對數據集的分類,該超平面由一定數量的支持向量決定。
對于樣本{(x1,y1),(x2,y2),…,(xn,yn)},其中xi∈Rn,yi∈{1,-1},當y取1時表示樣本屬于A類,y取-1時表示樣本屬于B類。分類邊界表示為:

若給定樣本集可分,則存在一對(ω,b)∈Rn×R使得:

其中:ω為權重向量;b為偏離值。合并式(2)得:

此時,分類間隔為2/||ω||,分類間隔最大問題等價于使||ω||2最小。因此,滿足式(1)且使||ω||2/2最小的超平面稱為最優分類面,求解最優分類面可表示為:

支持向量機常被用來進行預測或分類[13],其較高的分類準確度有利于降低誤報率。根據分類結果,SVM分類可以分為一類分類和多類分類。采用SVM分類算法只能將樣本集中的一類與其他數據分開,這稱為一類SVM分類;對于k類混合樣本集,要將所有樣本分類,最直接的方法是采用k個一類SVM分類器;對于含有多種攻擊的數據集,為快速對各類攻擊進行分類,本文采用k分類SVM分類器。
對于含有k類攻擊的數據集,將數據集分成k類,將k類分類器分解成k個一類分類,每個分類結果中包含所有攻擊樣本,第i個一類分類將第i類攻擊與其他攻擊類分開,因此將這k個一類分類的判決函數組合成形成k類分類的判決函數。對于輸入的數據集,使用k類分類判決函數進行判斷,輸出結果中第i個輸出結果屬于第i類,其他輸出為其他類,從而實現對混合樣本集進行k分類,如圖1所示。

圖1 k類SVM分類器Fig.1 SVM k-classifier
序列聯配的主要思想是通過序列字符的比較和適當的空位插入,計算相似度函數值,并構建1個相似度矩陣,從而發現序列之間的相似性和辨別序列的差異[14]。進行序列聯配的過程中,會適當地插入空位將聯配的2個序列對齊;當插入的空位位置不同時,會得到不同的聯配結果。如序列1“jseefaiboc7dqp”與序列2“wuapbycudhseen”在進行兩兩聯配時,可能出現圖2所示2種結果。

圖2 兩序列聯配Fig.2 Two sequences alignment
在圖2(a)中,插入的空位數較少,并且找到4個相似的字符。在圖2(b)中,插入相對較多的空位,同時只找到3個相似的字符。從聯配的表象來看,根據相似度計算公式,序列聯配結果1(圖2(a))中以更多的相似字符得分和更少的空位罰分,計算出的相似度要高于序列聯配結果2(圖2(b))。
但在實際應用中,序列聯配結果2(圖2(b))更能表示攻擊特征,被稱作為最優聯配[15]。其原因如下。
(1)在序列聯配結果2中的碎片更少。通常把只包含1個字母的片段稱作碎片,在序列聯配結果1中的碎片數量為4,而序列聯配結果2中沒有碎片,若采用碎片數量較多的聯配結果描述入侵特征,則將導致大量的誤報。
(2)序列聯配結果2中含有語義信息。從圖2中的對比結果可以得到,用以匹配的序列中含有可以表示語義信息的連續字符串“see”,若采用Needleman-Wunsch算法進行聯配,則單從相似度判斷將獲得序列1的聯配結果,但無法體現出該語義信息。通常的入侵特征都可由某一特定字符串表示,因此,能獲得連續的字符串更能準確表示攻擊特征。
在比較2個序列時,獲取局部的有語義的連續符號串比全局比較獲得大量碎片更具有實際意義。例如,在生物學中比較2個長的DNA序列時,物種的一些有效信息只包含在某一連續片段中。本文選擇Smith-Waterman算法中的局部聯配思想取代全局聯配,提出一種改進的Smith-Waterman算法(ISW)。算法主要思想為:對于給定的比對序列m和m′,構造相似度矩陣。令x是字符匹配得分,y是不匹配得分,z是空位罰分。在傳統聯配算法中,出現連續k個空位時,則空位罰分為kz。在改進算法中,對首先出現的空位罰分為p,當出現連續k個空位時,空位罰分為p+(k-1)×z(p>>z),同時鼓勵連續匹配字符,對于多個連續匹配的字符引進鼓勵函數e(S)來增加匹配得分,其中S為連續匹配字符的相似度得分。算法描述如下:
輸入:序列m和序列m′。
初始化:
Lm為m的長度;Lm′為m′的長度;F(i,j)表示m和m′之間的最優相似度得分;T(i,j)表示當前相似度得分;s(i,j)表示對于某一字符和空位的相似度得分。

本文采用SVM分類器與改進的Smith-Waterman算法得到基于序列聯配的攻擊特征自提取模型,其流程如圖3所示。

圖3 基于ISW算法的攻擊特征提取模型Fig.3 Attack signature generation model based on ISW
首先,用某一類攻擊行為的數據作為測試集對SVM分類器進行訓練,用經過訓練過后的分類器對網絡中捕獲的數據進行分類,將分類出的攻擊數據傳送給序列聯配引擎。因為改進后的Smith-Waterman算法是1個兩序列聯配算法,在聯配過程中需不斷調用該算法,直到所有的序列都聯配完成為止。
本實驗中采用KDD cup 99數據集,在數據集中攻擊數據可分為4類:拒絕服務攻擊、監視及其他探測、遠程非法訪問、本地未授權用戶登錄。將上述4類攻擊數據從數據集中剔除,僅留正常數據包。選用3種遠程漏洞溢出攻擊:Apache-Knacker,BIND-TSIG和ATPhttpd,并通過病毒變形引擎進行變異處理。使用IASA算法、CMENW算法及ISW算法進行攻擊特征提取。
實驗中參數設置如下:匹配得分取值為1,不匹配得分取值為-0.5,空位罰分取值為-1。對于ISW算法,第1次空位罰分取值為-1,出現連續的其他空位取值-0.02。對于連續匹配字符的相似度得分S,連續匹配獎勵函數為:

分別采用IASA算法、CMENW算法以及ISW算法對3種攻擊進行特征提取,實驗結果如表1所示。
為驗證改進算法生成的攻擊特征用于檢測系統的效率,每種攻擊采樣100個加入正常數據集,將聯配結果轉化成Snort規則,使用Snort 2.0對樣本數據集進行檢測,每種攻擊檢測10次,統計其檢測率與誤報率并取平均值,對比結果如表2所示。

表1 IASA,CMENW和ISW算法攻擊特征的提取結果Table1 Attack signature generating results of IASA, CMENW and ISW

表2 IASA,CMENW和ISW算法聯配結果對比Table2 Comparison of IASA, CMENW and ISW alignment results
從表2可知:對于3種攻擊的變形,采用生成的攻擊特征都能有效地檢測出來。其中對于Apache-Knacker 攻擊使用IASA算法與ISW算法的攻擊特征,系統的誤報率均為0,使用ISW算法對于BIND-TSIG攻擊的提取結果,系統的誤報率為0。同樣對于ATPhttpd攻擊,使用ISW算法的提取結果中,系統的誤報率都要遠比其他2種算法的低,說明使用本文提出的攻擊特征提取模型,能使聯配結果更加準確地表達攻擊特征。
(1)采用SVM分類器對數據進行預處理,利用SVM方法高準確率分類特點進行攻擊特征選擇,可以減少聯配過程中的噪聲序列;SVM的小樣本學習能力能有效地提高系統應對攻擊行為變異及新攻擊的能力。
(2)針對聯配過程的碎片問題,通過改變空位罰分的方式,并鼓勵字符連續匹配,能最大程度地保留攻擊行為的特征字符,因此,改進的Smith-Waterman算法能更準確地描述攻擊特征。
(3)應用改進后的攻擊特征自動提取方法,使得入侵檢測系統能自動地發現新的攻擊并提取新攻擊行為的特征,能有效地提高入侵檢測系統的自適應性。
[1]唐勇, 盧錫城, 王勇軍.攻擊特征自動提取技術綜述[J].通信學報, 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]秦拯, 尹毅, 陳飛楊, 等.基于序列比對的攻擊特征自動提取方法[J].湖南大學學報: 自然科學版, 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]唐勇, 盧錫城, 胡華平.基于多序列聯配的攻擊特征自動提取技術研究[J].計算機學報, 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]唐勇, 魏書寧, 胡華平.抗噪的攻擊特征自動提取方法[J].通信學報, 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].通信學報, 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].通信學報, 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]朱笑榮, 楊德運.基于入侵檢測的特征提取方法[J].計算機應用與軟件, 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.