網絡攻擊特征的提取技術分析

時間:2022-06-25 03:25:02

導語:網絡攻擊特征的提取技術分析一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

網絡攻擊特征的提取技術分析

攻擊特征自動提取定義與分類

攻擊特征自動提取分為攻擊發現和提取特征兩個基本步驟。因此,與入侵檢測系統可以分為網絡IDS(NIDS)和主機IDS(HIDS)類似,根據發現攻擊的位置不同,攻擊特征自動提取也可以分為基于網絡和基于主機的兩大類,分別簡記為NSG(network-basedsignaturesgeneration)和HSG(host-basedsignaturesgeneration)。1)NSG主要是通過分析網絡上的可疑數據來提取字符型的特征。字符型的特征是指通過字符串(二進制串)的組成、分布或頻率來描述攻擊。NSG系統一般通過數據流分類器或Honeypot系統來發現網絡數據中可疑的攻擊行為,并獲得可能包括了攻擊樣本的可疑網絡數據;然后將其分成兩個部分,一部分NSG系統[8~9]對這些可疑數據進行聚類,使得來自同一攻擊的數據聚為一類,再對每一類提取出攻擊特征,另一部分NSG系統則沒有聚類過程,而是直接分析混合了多個攻擊樣本的數據,提取可以檢測多個攻擊的特征。最終NSG系統將提取出的攻擊特征轉化為檢測規則,應用于IDS系統的檢測。2)HSG主要是指檢測主機的異常并利用在主機上采集的信息來提取攻擊特征。根據獲得主機信息的多少,HSG又可以進一步分為白盒HSG方法、灰盒HSG方法和黑盒HSG方法三類。白盒HSG方法需要程序源代碼,通過監視程序執行發現攻擊行為的發生,進而對照源程序提取出攻擊特征;灰盒HSG方法不需要程序源代碼,但是必須密切地監視程序的執行情況,當發現攻擊后通過對進程上下文現場的分析提取攻擊特征;黑盒HSG方法最近才提出,它既不需要程序源代碼也不需要監視程序的執行,而是通過自己產生的“測試攻擊數據”對程序進行攻擊,如果攻擊成功,表明“測試數據”有效,并以該“測試數據”提取出攻擊的特征。

基于網絡的攻擊特征自動提取技術

下面介紹幾種NSG方法。基于最長公共子串方法早期的NSG系統[10~11]大多采用提取“最長公共子串”(LCS)的方法,即在可疑數據流中查找最長的公共子字符串。雖然基于后綴樹計算兩個序列的LCS可在線性時間內完成[12],但是LCS方法僅僅提取單個最長的特征片段,并不足以準確描述攻擊。基于固定長度負載出現頻率方法Autograph[13]按照不同的方法將可疑數據流劃分為固定長度的分片,然后基于Rabinfingerprints算法[14]計算分片在所有可疑數據流中出現的頻繁度,最后將頻繁度高的分片輸出為攻擊特征。該方法存在的問題是難以選取固定長度的大小、計算開銷和存儲開銷大、沒有考慮攻擊變形情況。YongTang等人將可疑數據流中含有多個特征片段的固定長度部分定義為“關鍵區域”,并利用Expectation-Maximization(EM)[15]和GibbsSampling[16]這兩種迭代計算算法查找關鍵區域。但是“關鍵區域"長度選取困難、算法不能確保收斂限制了該方法的有效性。基于可變長度負載出現頻率基于可變長度負載出現頻率的方法是當前比較有效的特征提取方法,由Newsome等人在本世紀初Polygraph[17]的研究中首次提出。可變長度負載出現頻率是指長度大于1的在可疑數據流中頻繁出現的字符串,可變長度負載出現頻率長度不固定,每一個可變長度負載出現頻率可能對應于攻擊中的一個特征片段。因此,基于可變長度負載出現頻率的方法的核心是提取出數據流中頻繁度大于一定閥值的所有可變長度負載出現頻率,一般都采用遍歷前綴樹的算法[18~19]。以可變長度負載出現頻率為核心,Poly-graph輸出三類攻擊特征:1)可變長度負載出現頻率組成的集合,稱為ConjunctionSignature;2)可變長度負載出現頻率組成的序列,稱為Token-subsequenceSignature;3)可變長度負載出現頻率附加貝葉斯概率值,稱為BayesSigna-ture。Polygraph在設計時考慮了攻擊變形的情況,并且首次引入聚類過程,因此大大提高了提取特征的準確性。基于有限狀態自動機Vinod等人提出的有限狀態自動機[20]首先對可疑數據流進行聚類,然后對每一類中的數據流應用sk-strings[21]算法生成一個有限狀態自動機,最后將有限狀態自動機轉化為攻擊特征。有限狀態自動機的主要創新是在特征提取過程中考慮了網絡協議的語義,因而可以在網絡層和會話層分別提取特征。然而因為需要協議的語義,所以有限狀態自動機只對特定的幾種協議有效,而通用性較差。

基于主機的特征自動提取技術

HSG的研究也是目前研究比較多的技術,經過幾年的發展也取得了很好的進展,產生了一些重要的研究成果。下面針對三類方法分別進行介紹。白盒方法因為需要程序源代碼,適用性較差,所以基于白盒方法的HSG系統較少。一種典型的技術是指令集隨機化(ISR)技術[22],這種技術主要原理是可以將程序的二進制代碼隨機打亂,使得攻擊者實施緩沖區攻擊后極有可能導致程序崩潰并產生異常。指令集隨機化技術是一種新型的保護系統免遭任何類型注入碼攻擊的通用方法。對系統指令集經過特殊的隨機處理,就可以在該系統上運行具有潛在漏洞的軟件。任何注入代碼攻擊成功利用的前提是攻擊者了解并熟悉被攻擊系統的語言,如果攻擊者對這種語言無法理解則很難進行攻擊,攻擊者在不知道隨機化算法密鑰的情況下,注入的指令是無法正確執行的。FLIPS[23]是一個基于ISR技術構建的HSG系統,當攻擊導致程序崩潰后,FLIPS對于此相關的網絡輸入數據用LCS算法提取出攻擊片段由于ISR技術要求具有程序的源代碼,所以FLIP是一種白盒方法。白盒方法需要了解源程序代碼,這在很多場是不可能的事情,因此需要一種不需要了解源程序代碼的方法,這種情況下黑盒方法面世。HACQIT[24]是最早的一個黑盒方法。當受保護程序發生意外崩潰后,通過將可疑的網絡請求重新發往該程序并判斷是否再次導致程序崩潰,HAC-QIT檢測出那些被稱為“bad-request”的請求。然而,HACQIT沒有進一步區分“bad-request”中哪些部分才是真正的攻擊特征。因為一個進程的虛擬地址空間范圍是有限的,緩沖區溢出攻擊成功后必然立刻執行一個跳轉指令,而該跳轉指令的目標地址一定位于虛擬地址空間范圍內。如果將該跳轉目標地址改變,將很可能造成攻擊的溢出失敗并導致程序崩潰。WANGX等基于這樣的思想提出了一個黑盒HSG系統PacketVaccine[25]:將可疑報文中那些類似跳轉目標地址(其值屬于虛擬地址空間范圍內)的字節進行隨機改變,構造出新報文,稱為“報文疫苗”(packvaccine),然后將“報文疫苗”輸入給受保護程序如果程序崩潰,則說明之前改變的字節就是攻擊溢出后的跳轉地址,可以作為攻擊特征。隨著現代技術的不斷推進,黑盒方面和白盒方法都只能應用于特征提取中的一些環節,一種新興技術介于兩種技術之間,而且還可以得到很好的應用,因此,灰盒技術應運而生。灰盒方法是指通過緊密跟蹤程序的執行從而發現攻擊并提取特征。因為灰盒方法并不需要程序的源代碼,所以適用于各種商業軟件。其分析的結果也比較準確,目前大多數HSG系統屬于這類方法。灰盒方法有以下幾種具體實現方式。1)基于動態數據流跟蹤TaintCheck[26]和Vigilante[27]都使用動態數據流跟蹤(taintanalysis)來檢測緩沖區溢出攻擊。其基本思想是:認為來自網絡上的數據是不可信的,因此跟蹤它們在內存中的傳播(稱為“污染”)情況如果函數指針或返回地址等被“受污染”的數據所覆蓋,則說明發生了攻擊;此后,從該“受污染”的數據開始,反向查詢“污染”的傳播過程,直到定位到作為“污染源”的具體的網絡輸入。不同的是TaintCheck選取3byte,而Vigilante選取偏移量作為輸出特征。2)基于地址空間隨機化(ASR)技術[28~29]是將進程的一些地址(如跳轉地址、函數返回地址、指針變量地址等)隨機化,使得攻擊者難以知道溢出目標的準確位置。使用ASR技術后,攻擊者將難以對程序成功實施緩沖區溢出攻擊,而溢出失敗后會導致程序崩潰及產生異常。與ISR技術相比,ASR技術的優點是不需要源代碼。

攻擊特征自動提取綜合技術

一種基于概率有效狀態自動機的攻擊特征自動提取技術,是根據概率有限狀態自動機學習算法PFSA(Probabi-listicFiniteStateAutomaton)對聚類形成的類簇歸納處理(ClusterGeneralization),轉化為可被有限狀態自動機所識別的正則語言,并提取特征。有限狀態自動機系統[30]包括數據提取組件(DataAbstractionComponent,DAC)和特征提取組件(SignatureGenerationComponent,SGC)兩個部分。數據提取組件通過一系列模塊對數據進行預處理和規范化,以適于聚類和特征提取,最終形成半結構化會話樹(SSTs)。DAC組件將SSTs編碼后形成的XML輸出到特征提取組件。SGC組件對規范化后的數據利用星聚類對連接和會話進行聚類,其中相似性度量采用余弦相似度方式,然后利用PFSA算法對聚類形成的類簇歸納處理,形成能被有限狀態自動機所識別的正則語言,即特征。的特征提取方法該方法是根據COPP算法對數據流進行動態切割,然后采用統計方法提取出攻擊特征。Autograph系統[31]的特征提取主要分為兩個過程。首先,使用COPP算法對通過啟發式方法找到的可疑數據流量進行數據分割,方法是先定義暫停標記,然后以滑動窗口的概念去比對,每次遇到暫停標記時就分割。其次,使用統計的方法找出出現最頻繁的數據包作為攻擊特征,計算分割完畢的各個數據包的出現次數,如果一個數據包的出現次數超過一定門限值,則產生特征。該方法的數據流劃分是根據遞推比較模式串與正文子串的哈希函數值來進行攻擊特征提取。RabinFingerprints算法定義一個哈希函數,并用該函數對模式串與正文子串進行預處理,然后以被比較的模式串與正文子串的哈希函數值相等為原則,依次進行比較。算法可以利用前一個哈希函數值遞推求出下一個哈希函數值,以降低字符串匹配算法的時間復雜度和空間復雜度。文獻[32]首次應用Rabinfingerprints算法于攻擊特征自動提取。該方法通過比較兩個主要的攻擊行為特征—由感染源得到的公共序列和目的地址,識別出新型攻擊,然后使用內容過濾算法自動生成攻擊特征。該方法是通過尋找最長的公共子字符串來進行攻擊特征提取。LCS算法要解決的問題就是找到兩個字符串中的最大公共子串和最大公共子串所在的位置。文獻[33]提出一種基于兩序列LCS算法提取攻擊特征的方法,在重組來自入侵檢測系統的數據后,用LCS算法兩兩比對尋找最長的公共子字符串,以此來確認攻擊特征。基于Honeypot數據[34~39]的Honeycomb系統,首先重組所有來自Honeypot的數據,然后在這些數據中,采用LCS算法兩兩匹配,尋找最長的公共子字符串,從而找出攻擊特征。

存在問題及研究方向

現有攻擊特征自動提取技術在檢測未知攻擊,以及自動提取出特征方面,取得了一些研究成果,但也存在著一些不足:1)特征提取算法的時間復雜度高和空間開銷大。如文獻[41]使用Rabin算法需要對字符串做預處理,設正文子串長度m,模式串長度n,則算法的預處理時間在非理想情況下的時間復雜度為O(mn),空間開銷亦較大。又如Autograph[40]使用基于COPP算法的統計方法進行特征提取,程序運行需占用大量的系統資源。2)提取出的攻擊特征質量較差,誤報率高。采用的算法本身有其缺點和不足:1)算法不穩定,例如,由于哈希函數的適用范圍有限,導致有時會產生錯誤的匹配;2)算法過于簡單,如Honeycomb[42]因算法過于簡單,使得對于如NetBIOS協議中的短字符串類型攻擊提取出的攻擊特征往往包括大量不相關的字符序列,導致提取出的攻擊特征質量較差,誤報率高。3)對于大量變形攻擊產生的特征不準確,漏報率高,只能對數量相當有限的攻擊類型進行特征自動提取。Ear-lybird[43]和基于COPP的Autograph[40]都沒有考慮協議的語義性,所以只能在有限的攻擊類型中進行特征提取。Autograph特征均為單一連續子字符串,攻擊者通過對其插入或刪除幾個字節即可逃避檢測。基于概率有效狀態自動機的攻擊特征自動提取技術,難以提取大量變形攻擊的特征。對于NSG方法而言,近年來的研究表明:只要攻擊樣本質量高并能夠正確聚類,便可以提取出高質量的特征。因此,當前NSG方法研究的關鍵在于:1)如何獲取高質量的攻擊樣本?通過改進Honeypot系統以及增加噪音過濾機制是可行的方向之一。2)如何正確地聚類攻擊樣本?現有的聚類方法還存在準確性較低和抗惡意攻擊能力差等問題,新的聚類方法可以借鑒相關領域,如生物信息學的研究成果。3)能夠有效抵抗攻擊者惡意攻擊也是NSG系統設計時必須考慮的重要問題。HSG能快速準確地發現攻擊并定位攻擊發生區域,提取復合型特征(即除了字節特征還加入與進程上下文相關的信息)會具有更強的描述能力,誤報率一般也更低,但是,它們難以被已有的各類IDS所使用。因此,提取盡可能簡單準確的可以被現有IDS應用的字節型特征是HSG發展的方向。目前的HSG系統輸出的字節型的特征相比NSG系統還不夠準確,如何充分利用主機上采集的信息使得提取出的字節型特征更精確和更完整是未來的方向之一。另外,減少對平臺和環境的依賴及減少對系統性能的影響也是HSG系統需要著重改進的方面。由于將HSG系統部署于Honeypot上一般不存在性能問題,因此HSG技術與高交互型Honeypo系統相結合是未來一個有價值的研究方向。

蒲天銀饒正嬋秦拯本文作者:工作單位:銅仁學院計算機科學系