李宏 姚君
中國電子科技集團(tuán)公司第五十四研究所 河北 050081
隨著網(wǎng)絡(luò)速率增加以及網(wǎng)絡(luò)應(yīng)用的日益復(fù)雜多樣,網(wǎng)絡(luò)環(huán)境下每天都可能有海量數(shù)據(jù),如何從這些數(shù)據(jù)中提取隱藏的重要信息,以便從中發(fā)現(xiàn)異常,人們將目光投向數(shù)據(jù)挖掘技術(shù),通過關(guān)聯(lián)分析、序列模式分析等算法,發(fā)掘數(shù)據(jù)間潛在的模式,找出某些容易被忽略的信息,以便于理解和觀察的方式返回給用戶作為決策依據(jù)。Lee首次將數(shù)據(jù)挖掘算法應(yīng)用于異常檢測(cè)研究領(lǐng)域;支持向量機(jī)是數(shù)據(jù)挖掘中的一項(xiàng)新技術(shù),借助最優(yōu)化方法解決機(jī)器學(xué)習(xí)問題的新工具,也被廣泛用于檢測(cè)過程中。另一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的問題求解方法的遺傳算法,在檢測(cè)過程中用于不同目的,使用遺傳算法取得分類規(guī)則,而將遺傳算法用于取得合適的分類規(guī)則。數(shù)據(jù)挖掘方式的優(yōu)點(diǎn)是數(shù)據(jù)驅(qū)動(dòng)形式,不需要依靠先前觀測(cè)的網(wǎng)絡(luò)行為模式,并且適于處理大量數(shù)據(jù)的情況,然而該方法中各種挖掘算法太過分散,針對(duì)的數(shù)據(jù)對(duì)象差異較大。
協(xié)議自動(dòng)分析技術(shù)的實(shí)現(xiàn)可以顯著減少人工分析的工作量,提高對(duì)私有協(xié)議的分析效率,并使對(duì)網(wǎng)絡(luò)安全事件的快速自動(dòng)響應(yīng)成為可能。在未知協(xié)議分析領(lǐng)域,國內(nèi)外已進(jìn)行了較為深入的研究。根據(jù)分析對(duì)象的不同,現(xiàn)有的協(xié)議分析技術(shù)大致分為兩類:報(bào)文序列(network trace)分析和指令執(zhí)行序列(execution trace)分析。
報(bào)文序列分析技術(shù)以嗅探得到的網(wǎng)絡(luò)數(shù)據(jù)流 X為分析對(duì)象,其可行性在于以下兩點(diǎn):(1)單個(gè)報(bào)文樣本的數(shù)據(jù)流為報(bào)文格式的一個(gè)實(shí)例,同一報(bào)文格式對(duì)應(yīng)的多個(gè)報(bào)文樣本具有相似性;(2)會(huì)話是協(xié)議實(shí)體之間的完整交互過程,協(xié)議實(shí)體在一次會(huì)話中的狀態(tài)轉(zhuǎn)換序列是協(xié)議狀態(tài)機(jī)的一個(gè)子集。同一會(huì)話內(nèi)報(bào)文的時(shí)序關(guān)系包含了部分協(xié)議狀態(tài)轉(zhuǎn)換的信息。
指令執(zhí)行序列分析技術(shù)是指以數(shù)據(jù)解析過程中的指令執(zhí)行序列為分析對(duì)象的一類技術(shù),其理論依據(jù)在于:(1)協(xié)議實(shí)體接受報(bào)文的過程即報(bào)文解析的過程,通過對(duì)程序處理域邊界及域的使用方式可以獲得協(xié)議格式的表達(dá)式和屬性;(2)完整會(huì)話的指令序列可劃分為單個(gè)報(bào)文指令序列的排列,子序列之間的順序關(guān)系包含了狀態(tài)轉(zhuǎn)換信息。
雖然未知協(xié)議分析技術(shù)的可行性已得到充分驗(yàn)證,但是由于方法本身的局限性和實(shí)現(xiàn)的復(fù)雜性,分析得到的協(xié)議描述與理想流程的目標(biāo)還有較大的差距。目前對(duì)未知網(wǎng)絡(luò)協(xié)議分析還有以下問題尚待解決:(1)對(duì)未知網(wǎng)絡(luò)協(xié)議語義屬性提取的研究,獲取的協(xié)議逆向描述有待進(jìn)一步完善。(2)現(xiàn)有方案都依賴于樣本集的完備程度,如果對(duì)應(yīng)于某種格式的報(bào)文不在樣本集中出現(xiàn),則無法分析得到該格式的描述。(3)當(dāng)前方案多數(shù)都沒有考慮加密協(xié)議的分析,少數(shù)指令執(zhí)行序列方案也僅依據(jù)算術(shù)指令占全部指令的比重識(shí)別解密過程,其準(zhǔn)確度無法保證。(4)當(dāng)前研究僅針對(duì)較為理想的單通道雙端協(xié)議模型,沒有考慮多通道、多交互方協(xié)議等應(yīng)用場(chǎng)景。
目前關(guān)于安全協(xié)議分析多從以下幾個(gè)方面進(jìn)行。
下圖描述了安全協(xié)議信息獲取及協(xié)議數(shù)據(jù)挖掘的主要步驟及流程。具體分為兩部分:安全協(xié)議信息獲取與安全協(xié)議數(shù)據(jù)挖掘,如圖1所示。
圖1 協(xié)議形式化建模流程圖
分析安全協(xié)議的目標(biāo)、缺陷及運(yùn)行環(huán)境,采用基于推理、攻擊與證明的結(jié)構(gòu)化方法對(duì)協(xié)議進(jìn)行形式化分析,涵蓋安全協(xié)議保密性、完整性、可證實(shí)性、不可抵賴性等特點(diǎn)進(jìn)行分析歸納;捕獲數(shù)據(jù)報(bào)文并對(duì)報(bào)文進(jìn)行逐層分析,在捕獲和分析過程中將數(shù)據(jù)分組以以太網(wǎng)數(shù)據(jù)幀和 IP數(shù)據(jù)報(bào)文混合的形式表示,然后再按照 TCP/IP協(xié)議棧分層統(tǒng)計(jì)網(wǎng)絡(luò)流量的組成,以樹形結(jié)構(gòu)顯示分析的結(jié)果;網(wǎng)絡(luò)流量獲取方法按照實(shí)現(xiàn)機(jī)制分為兩類:一類是基于硬件特性的網(wǎng)絡(luò)流量捕獲,一類是基于組合機(jī)的網(wǎng)絡(luò)流量捕獲。將捕獲到的數(shù)據(jù)分組按照 TCP/IP進(jìn)行分析,能獲得網(wǎng)絡(luò)數(shù)據(jù)分組的構(gòu)成情況,尤其是針對(duì)IP分片、TCP的連接建立、連接拆除以及TCP有限狀態(tài)機(jī)的狀態(tài)變化十分有效。并且可以基于TCP連接進(jìn)行分析,通過分析TCP的會(huì)話,從整體或更大的粒度了解網(wǎng)絡(luò)流量特征及行為特征。并且利用該功能自主構(gòu)造IP、TCP、ICMP、UDP等數(shù)據(jù)報(bào)文,通過構(gòu)造特殊的數(shù)據(jù)分組并控制數(shù)據(jù)的數(shù)量和特征,模擬一些攻擊行為如IP碎片攻擊、ICMP重定向攻擊等,并且可以在已有協(xié)議的基礎(chǔ)上實(shí)現(xiàn)網(wǎng)絡(luò)層、傳輸層新協(xié)議的開發(fā)和測(cè)試。
目前研究集中于分類分析、聚類分析、關(guān)聯(lián)分析、序列模式分析等數(shù)據(jù)挖掘方法,通過網(wǎng)絡(luò)流量信息進(jìn)行網(wǎng)絡(luò)安全態(tài)勢(shì)感知,研究基于Apriori的關(guān)聯(lián)規(guī)則挖掘算法、基于矩陣的態(tài)勢(shì)規(guī)則挖掘算法,根據(jù)關(guān)聯(lián)規(guī)則對(duì)網(wǎng)絡(luò)安全態(tài)勢(shì)進(jìn)行劃分并進(jìn)行安全預(yù)警,為網(wǎng)絡(luò)安全攻擊與防范奠定基礎(chǔ),通過可視化界面,在多業(yè)務(wù)、多流量環(huán)境下基于協(xié)議分析、信息獲取、數(shù)據(jù)挖掘等多種方法,為管理人員提供良好的可視化平臺(tái),實(shí)現(xiàn)網(wǎng)絡(luò)安全態(tài)勢(shì)感知及級(jí)別劃分,完成網(wǎng)絡(luò)節(jié)點(diǎn)信息、網(wǎng)管信息、鏈路信息等網(wǎng)絡(luò)信息實(shí)時(shí)監(jiān)控工具,完成對(duì)網(wǎng)絡(luò)安全狀態(tài)、節(jié)點(diǎn)安全狀態(tài)、鏈路安全狀態(tài)實(shí)時(shí)更新與監(jiān)控。基于Apriori的關(guān)聯(lián)規(guī)則挖掘算法安全態(tài)勢(shì)感知模型如圖2所示。
圖2 數(shù)據(jù)挖掘算法安全態(tài)勢(shì)感知模型
(1) 序列符號(hào)化:采用時(shí)間序列分段方法形成便于數(shù)據(jù)挖掘工具處理的符號(hào)序列。
(2) 數(shù)據(jù)挖掘:使用經(jīng)典的Apriori算法,可以得到滿足最小支持度和最小置信情況下的關(guān)聯(lián)規(guī)則。
(3) 對(duì)規(guī)則聚類:根據(jù)已知網(wǎng)絡(luò)攻擊對(duì)熵值序列的影響,把關(guān)聯(lián)規(guī)則分為正常空間和異??臻g,根據(jù)這些關(guān)聯(lián)規(guī)則把網(wǎng)絡(luò)態(tài)勢(shì)分成安全的,中等的,風(fēng)險(xiǎn)等級(jí)。
研究未知安全協(xié)議分析方法,首先要從現(xiàn)有未知安全協(xié)議分析方法入手,熟悉未知安全協(xié)議分析方法??偨Y(jié)未知安全協(xié)議分析一般方法,建立未知安全協(xié)議分析一般模型,為未知安全協(xié)議分析工具提供理論支持。
由于直觀實(shí)用,大多數(shù)安全協(xié)議都基于有限狀態(tài)機(jī)模型設(shè)計(jì)和實(shí)現(xiàn),例如著名的TCP協(xié)議、RSVP協(xié)議等等。有限狀態(tài)機(jī)(今后簡稱狀態(tài)機(jī))有很多形式模型,不同的模型適合于不同的應(yīng)用。狀態(tài)機(jī)模型的本質(zhì)在于反映出當(dāng)程序在特定狀態(tài)上接收到消息(事件)時(shí),如何轉(zhuǎn)移到另一個(gè)特定的狀態(tài)。未知安全協(xié)議分析就是從截獲的網(wǎng)絡(luò)數(shù)據(jù)流分析找出協(xié)議的有限狀態(tài)機(jī)的過程。目前的未知安全協(xié)議分析有一個(gè)較為固定的流程,圖3描述了未知協(xié)議分析主要流程。
圖3 未知協(xié)議分析一般流程圖
未知網(wǎng)絡(luò)協(xié)議一般會(huì)封裝在一些已知的網(wǎng)絡(luò)層或傳輸層數(shù)據(jù)報(bào)里,可以通過獲得已知協(xié)議報(bào)文的數(shù)據(jù)字段獲得未知網(wǎng)絡(luò)協(xié)議的會(huì)話字節(jié)流。這些字節(jié)流通常根據(jù)時(shí)間序列來判斷其交互關(guān)系,并分別進(jìn)行分析。同一報(bào)文的不同字段之間通常會(huì)在多次取樣中有不同的行為表現(xiàn),可以通過大量樣本的序列比對(duì)來對(duì)報(bào)文中各字段進(jìn)行分割。目前,對(duì)于字段的結(jié)構(gòu)識(shí)別多采用經(jīng)驗(yàn)上的做法,獲得協(xié)議字段的語法信息,再結(jié)合協(xié)議應(yīng)用場(chǎng)景人工推斷協(xié)議的語義信息。在獲得多個(gè)報(bào)文的語義信息后,可根據(jù)報(bào)文的先后順序得到未知協(xié)議中的狀態(tài)轉(zhuǎn)移信息,并可形成狀態(tài)前綴樹(狀態(tài)機(jī)的一部分)。之后,可以通過自動(dòng)的方法將狀態(tài)轉(zhuǎn)移樹合并,獲得協(xié)議的最小確定狀態(tài)機(jī),即通過目前的報(bào)文所分析出的協(xié)議的狀態(tài)機(jī)的一部分。
在以上流程為針對(duì)一般未知協(xié)議分析的通用流程,其研究背景也局限于較為理想的單通道雙端非加密協(xié)議,且其中很多階段的研究并不成熟。為了使未知協(xié)議的分析方法可以應(yīng)用于未知安全協(xié)議分析,下面兩個(gè)問題將是未來研究的重點(diǎn):安全協(xié)議語義屬性提取方法,安全協(xié)議加密字段分析方法。
未知安全協(xié)議根據(jù)其應(yīng)用的場(chǎng)景和目的,其內(nèi)部包含的語義屬性也會(huì)有所區(qū)別??梢岳梦粗踩珔f(xié)議的應(yīng)用場(chǎng)景對(duì)其內(nèi)部字段的語義屬性推斷提供新的依據(jù),提高語義推斷的速度和質(zhì)量。根據(jù)項(xiàng)目背景需求選擇兩種以上場(chǎng)景的三到五種已知私有安全協(xié)議,分析其字段的語義信息,總結(jié)在這些場(chǎng)景下協(xié)議常見語義內(nèi)容。利用之前人工分析的結(jié)論,編寫針對(duì)特定語義內(nèi)容的協(xié)議分析引擎,針對(duì)這幾種場(chǎng)景下未知的私有安全協(xié)議進(jìn)行協(xié)議分析,比較其自動(dòng)化程度與分析準(zhǔn)確度。
在協(xié)議格式提取階段多采用同一報(bào)文格式的多個(gè)報(bào)文之間進(jìn)行比對(duì),獲得報(bào)文的特征并由此識(shí)別報(bào)文字段。在加密協(xié)議中,經(jīng)過加密的報(bào)文特征經(jīng)過處理很難通過直接比對(duì)獲得,需要采用新的方法進(jìn)行協(xié)議格式提取。即使在加密協(xié)議中,也會(huì)存在非加密字段,通過對(duì)非加密字段的解析有助于推斷加密字段的語義信息。同時(shí),不同的加密方法會(huì)在數(shù)據(jù)流中留下相應(yīng)特征,通過對(duì)這些特征的解析可以推斷加密協(xié)議所可能采用的加密方法。
以上兩個(gè)問題是制約目前未知安全協(xié)議分析依賴人工,自動(dòng)化程度不高和適用范圍窄的關(guān)鍵問題。通過對(duì)這幾個(gè)問題的解決有助于安全協(xié)議分析工具對(duì)未知安全協(xié)議分析部分的實(shí)現(xiàn),可以提高未知安全協(xié)議分析的自動(dòng)化和精細(xì)化程度。
本文通過對(duì)安全協(xié)議分析各個(gè)方向研究現(xiàn)狀的闡述和分析,為安全協(xié)議分析領(lǐng)域相關(guān)研究提供參考和借鑒。
[1]W.Lee,S.J.Stolfo and K.Mok.A Data Mining Framework for Building Intrusion Detection Models.In Proceedings of IEEE Symposium on Security and Privacy.Oakland.1999.
[2]凌軍,曹陽,尹建華.基于時(shí)態(tài)知識(shí)模型的網(wǎng)絡(luò)入侵檢測(cè)方法研究.計(jì)算機(jī)學(xué)報(bào).2003.
[3]饒鮮,董春曦,楊紹全.基于支持向量機(jī)的入侵檢測(cè)系統(tǒng).軟件學(xué)報(bào).2003.
[4]W.Li.Using Genetic Algorithm for Network Intrusion Detection.C.S.G.Department of Energy.2004.
[5]J.Gomez and D.Dasgupta.Evolving fuzzy classifiers for intrusion detection.In IEEE Workshop on Information Assurance,United States Military Academy.2001.
[6]COMPARETTI P M,WONDRACEK G,KRUEGEL C,et al.Prospex:protocol specification extraction[C]//Proc of the 30th IEEE Symposium on Security and Privacy.2009.
[7]BEDDOE M. Protocol information project[EB /OL].( 2004-10-05)http://www.4tphi.net/awalters /PI /PI. Html.
[8]NEWSOME J,SONG D.Dynamic taint analysis for automatic detection,analysis,and signature generation of exploits on commodity software[C]//Proc of Network and Distributed System Security Symposium.2005.
[9]SHEVERTALOV M,MANCORIDIS S.A reverse engineering tool for extracting protocols of networked ap plications[C]//Proc of the 14thWorking Conference on Reverse Engineering.2007.