朱玉娜 韓繼紅 袁 霖 谷 文 范鈺丹
(解放軍信息工程大學(xué)鄭州450001)
?
基于熵估計(jì)的安全協(xié)議密文域識(shí)別方法
朱玉娜*韓繼紅袁霖谷文范鈺丹
(解放軍信息工程大學(xué)鄭州450001)
現(xiàn)有基于網(wǎng)絡(luò)報(bào)文流量信息的協(xié)議分析方法僅考慮報(bào)文載荷中的明文信息,不適用于包含大量密文信息的安全協(xié)議。為充分發(fā)掘利用未知規(guī)范安全協(xié)議的密文數(shù)據(jù)特征,針對(duì)安全協(xié)議報(bào)文明密文混合、密文位置可變的特點(diǎn),該文提出一種基于熵估計(jì)的安全協(xié)議密文域識(shí)別方法CFIA(Ciphertext Field Identification Approach)。在挖掘關(guān)鍵詞序列的基礎(chǔ)上,利用字節(jié)樣本熵描述網(wǎng)絡(luò)流中字節(jié)的分布特性,并依據(jù)密文的隨機(jī)性特征,基于熵估計(jì)預(yù)定位密文域分布區(qū)間,進(jìn)而查找密文長度域,定位密文域邊界,識(shí)別密文域。實(shí)驗(yàn)結(jié)果表明,該方法僅依靠網(wǎng)絡(luò)數(shù)據(jù)流量信息即可有效識(shí)別協(xié)議密文域,并具有較高的準(zhǔn)確率。
未知安全協(xié)議;協(xié)議格式;密文域;熵估計(jì)
隨著密碼技術(shù)的廣泛應(yīng)用,安全協(xié)議被大量應(yīng)用在互聯(lián)網(wǎng)各種核心、關(guān)鍵應(yīng)用中,與安全協(xié)議相關(guān)的各種數(shù)據(jù)在網(wǎng)絡(luò)流量中比重日益增加?;诰W(wǎng)絡(luò)報(bào)文載荷數(shù)據(jù),分析協(xié)議用戶交互行為信息是安全協(xié)議流量分析的關(guān)鍵內(nèi)容,有助于對(duì)各種網(wǎng)絡(luò)應(yīng)用實(shí)施監(jiān)控和管理,有效降低系統(tǒng)面臨的安全風(fēng)險(xiǎn)。目前存在很多私有協(xié)議,協(xié)議細(xì)節(jié)未公開,語法、語義、交互步驟缺少公開的描述文檔,無法基于已有的協(xié)議分析工具(例如著名的W ireshark)進(jìn)行分析。為此,如何提供一種方法,使其能夠有效支持未知安全協(xié)議格式信息的解析,是進(jìn)一步提升網(wǎng)絡(luò)空間安全防護(hù)技術(shù)的關(guān)鍵問題。
安全協(xié)議運(yùn)行過程中,頻繁使用數(shù)據(jù)加密、數(shù)字簽名、公鑰證書、校驗(yàn)和驗(yàn)證等各種密碼技術(shù)對(duì)關(guān)鍵信息進(jìn)行加密和保護(hù)。一方面,可用明文信息較少,僅依靠有限的明文信息難以滿足安全應(yīng)用的需求。另一方面,攻擊者在無法解密密文的情況下,常常通過重放、轉(zhuǎn)發(fā)密文進(jìn)行攻擊。因此對(duì)未知安全協(xié)議進(jìn)行格式解析時(shí),不僅需要解析可用明文格式特征,還需要充分發(fā)掘和利用協(xié)議報(bào)文中包含的密文數(shù)據(jù)特征。
目前,網(wǎng)絡(luò)協(xié)議格式解析技術(shù)包括兩類方法:基于目標(biāo)主機(jī)程序執(zhí)行軌跡的方法[15]-和基于網(wǎng)絡(luò)報(bào)文流量信息的方法[612]-。(1)前者借助特定二進(jìn)制分析平臺(tái),基于目標(biāo)主機(jī)上協(xié)議相關(guān)的應(yīng)用程序運(yùn)行狀態(tài)特征,分析網(wǎng)絡(luò)協(xié)議。該類方法可實(shí)現(xiàn)對(duì)安全協(xié)議的逆向。ReFormat[3]可以識(shí)別密碼算法,并解析明文格式,但不適用于解密過程與解析過程交替進(jìn)行的安全協(xié)議。為解決該問題,Dispatcher[4,5]允許多個(gè)加密過程與解析過程交替,識(shí)別力度細(xì)化到編碼函數(shù)級(jí)(加/解密函數(shù)、哈希函數(shù)等),但通用性和準(zhǔn)確性需進(jìn)一步驗(yàn)證。上述方法可以處理加密報(bào)文,但需要在目標(biāo)主機(jī)上獲取執(zhí)行協(xié)議的應(yīng)用程序信息,并部署特定監(jiān)測(cè)工具,實(shí)現(xiàn)復(fù)雜,局限性較大,無法真正滿足網(wǎng)絡(luò)環(huán)境中對(duì)數(shù)據(jù)報(bào)文監(jiān)測(cè)需求。(2)基于網(wǎng)絡(luò)報(bào)文流量信息的方法以捕獲的網(wǎng)絡(luò)流量數(shù)據(jù)為分析對(duì)象,依據(jù)協(xié)議字段的取值變化頻率和特征推斷得到協(xié)議格式,是使用范圍更廣的方法。文獻(xiàn)[6]基于序列比對(duì)算法解析協(xié)議的結(jié)構(gòu)信息。文獻(xiàn)[7]以循環(huán)聚類為核心思想,采用基于類型的序列比對(duì)算法,實(shí)現(xiàn)了針對(duì)性更強(qiáng)的報(bào)文格式逆向。文獻(xiàn)[8]基于隱半馬爾科夫模型對(duì)報(bào)文格式進(jìn)行分段。文獻(xiàn)[9]基于數(shù)據(jù)挖掘提取協(xié)議關(guān)鍵詞并構(gòu)建狀態(tài)機(jī)。文獻(xiàn)[10]基于無監(jiān)督分段方法提取協(xié)議格式特征。文獻(xiàn)[11,12]利用語義信息推斷協(xié)議格式。上述方法局限性較小,應(yīng)用范圍較廣,但僅解析報(bào)文中的明文信息格式,不考慮協(xié)議的密文數(shù)據(jù)特征,不適用包含大量密文的安全協(xié)議。
為有效利用安全協(xié)議密文數(shù)據(jù)特征,本文面向未知安全協(xié)議,針對(duì)其報(bào)文明密文混合、密文位置可變的特點(diǎn),提出了一種基于熵估計(jì)的密文域識(shí)別方法CFIA(Ciphertex t Field Identification Approach),僅依靠網(wǎng)絡(luò)數(shù)據(jù)流量信息即可有效識(shí)別協(xié)議密文域。本文主要貢獻(xiàn)有:(1)提出字節(jié)樣本熵,用于描述網(wǎng)絡(luò)流中字節(jié)的分布特性;(2)依據(jù)密文的隨機(jī)性特征,基于熵估計(jì)給出密文域分布區(qū)間的預(yù)定位方法;(3)啟發(fā)式查找密文長度域,進(jìn)而定位密文域邊界,識(shí)別密文域,從而為密文數(shù)據(jù)信息的有效利用提供了新的解決思路。
安全協(xié)議報(bào)文序列長、結(jié)構(gòu)復(fù)雜、變長域多,其載荷可能為全明文、全密文或者明密文混合,并且密文位置、長度通常為可變值。本文分析對(duì)象為未知規(guī)范安全協(xié)議,目的是識(shí)別協(xié)議密文域,定位密文域邊界,為入侵檢測(cè)、流量監(jiān)控、協(xié)議安全性在線分析等網(wǎng)絡(luò)安全關(guān)鍵應(yīng)用提供支撐。
協(xié)議格式由若干個(gè)域(具有特定語義且最小不可分割的連續(xù)字節(jié)序列)組成[4],域具有域類型、域邊界、語義和取值約束等屬性,域之間存在順序、并列和層次關(guān)系。根據(jù)域在網(wǎng)絡(luò)流中的取值變化情況,可將協(xié)議格式劃分為不變域和可變域。
定義1協(xié)議關(guān)鍵詞:報(bào)文格式中用于標(biāo)識(shí)協(xié)議報(bào)文類型和傳遞相關(guān)控制信息的協(xié)議字段。文獻(xiàn)[1]指出,絕大多數(shù)的網(wǎng)絡(luò)協(xié)議都會(huì)在報(bào)文格式中定義一個(gè)或多個(gè)關(guān)鍵詞,基于關(guān)鍵詞可以有效區(qū)分報(bào)文中協(xié)議的控制信息和用戶數(shù)據(jù)。
協(xié)議的關(guān)鍵詞可以是協(xié)議名稱和版本號(hào),也可以是協(xié)議的各種命令和響應(yīng)碼。按照關(guān)鍵詞出現(xiàn)的位置,可將其分為固定偏移關(guān)鍵詞和非固定偏移關(guān)鍵詞。前者在協(xié)議報(bào)文中位置固定;后者位置可變。
關(guān)鍵詞在協(xié)議報(bào)文中頻繁出現(xiàn),為協(xié)議的不變域。前后兩個(gè)關(guān)鍵詞之間是協(xié)議的用戶數(shù)據(jù),取值可變,為協(xié)議的可變域。根據(jù)域是否加密,將可變域劃分為明文域和密文域。安全協(xié)議為防止攻擊,常采用具有新鮮性的隨機(jī)數(shù)。普通網(wǎng)絡(luò)協(xié)議則一般不包含隨機(jī)數(shù)。本文將隨機(jī)數(shù)區(qū)域看作廣義上的密文域。
為識(shí)別密文域,需分析密文數(shù)據(jù)區(qū)別于明文數(shù)據(jù)的特征。從密碼學(xué)角度,密文數(shù)據(jù)消除了統(tǒng)計(jì)特征,近似為隨機(jī)數(shù)據(jù)。已有研究[1316]-基于密文數(shù)據(jù)的隨機(jī)性分析加密流量,但其處理對(duì)象與本文不同,文獻(xiàn)[13,14]針對(duì)全密文情況,文獻(xiàn)[15]針對(duì)已知協(xié)議,文獻(xiàn)[16]僅考慮報(bào)文前N個(gè)字節(jié),均無法解決協(xié)議密文域識(shí)別問題。
由于密文是隨機(jī)的,在密文域中不存在頻繁項(xiàng),也不可能存在關(guān)鍵詞,密文域一定位于前后兩個(gè)關(guān)鍵詞之間,或者最后一個(gè)位置的關(guān)鍵詞之后,因此可在提取關(guān)鍵詞序列的基礎(chǔ)上,對(duì)前后兩個(gè)關(guān)鍵詞之間的可變域進(jìn)一步解析,識(shí)別密文域。
本節(jié)給出CFIA總體框架,并詳細(xì)闡述框架的密文域識(shí)別階段,給出字節(jié)樣本熵計(jì)算方法、密文域預(yù)定位算法以及密文域邊界定位算法。
3.1 CFIA總體框架
CFIA總體框架如圖1所示。
(1)數(shù)據(jù)預(yù)處理:利用數(shù)據(jù)包大小、方向、偏移位置等特征對(duì)同一類協(xié)議流量進(jìn)行聚類,獲取相同類型的報(bào)文組,并對(duì)每一個(gè)報(bào)文組中的報(bào)文提取載荷字節(jié)序列,用于后續(xù)密文域識(shí)別。
(2)密文域識(shí)別:根據(jù)密文的隨機(jī)性,密文字節(jié)在網(wǎng)絡(luò)流中隨機(jī)取值。因此密文域中不存在頻繁出現(xiàn)的協(xié)議關(guān)鍵詞,密文域位于前后兩個(gè)關(guān)鍵詞之間。首先基于序列模式挖掘方法提取協(xié)議中具有時(shí)序關(guān)系的關(guān)鍵詞序列;在此基礎(chǔ)上,對(duì)前后兩個(gè)關(guān)鍵詞之間的可變域進(jìn)一步進(jìn)行解析,計(jì)算字節(jié)樣本熵,描述兩個(gè)關(guān)鍵詞之間各個(gè)對(duì)齊字節(jié)的取值變化特性;并依據(jù)密文數(shù)據(jù)的隨機(jī)性特征,基于熵估計(jì)預(yù)定位密文分布區(qū)間,進(jìn)而啟發(fā)式查找密文長度域,定位密文域邊界,識(shí)別密文域。
圖1 CFIA總體框架
3.2字節(jié)樣本熵
協(xié)議域通常以字節(jié)為小單位進(jìn)行組織[7],本文將相同偏移位置的字節(jié)作為隨機(jī)變量,利用信息熵來描述網(wǎng)絡(luò)流中字節(jié)的分布特性。
定義2字節(jié)偏移:字節(jié)在所屬載荷數(shù)據(jù)中的序號(hào)位置。
通過W ireshark在廣域網(wǎng)中捕獲SSL協(xié)議流量,并計(jì)算ClientHello報(bào)文前64 Byte的字節(jié)樣本熵(報(bào)文數(shù)目N=300),如圖2(c)所示。當(dāng)字節(jié)位于關(guān)鍵詞區(qū)域,其樣本熵值為0;當(dāng)字節(jié)位于明文區(qū)域,其樣本熵值大都在3.1886~3.3671之間。當(dāng)字節(jié)位于隨機(jī)數(shù)區(qū)域時(shí),偏移11~14的字節(jié)表示時(shí)間,不完全隨機(jī),其樣本熵值小于7;偏移15~42的字節(jié)為隨機(jī)值,樣本熵值位于7.1552~7.3770之間。
在實(shí)驗(yàn)室局域網(wǎng)中運(yùn)行NS公鑰協(xié)議應(yīng)用程序(采用Spi2java工具生成),并計(jì)算協(xié)議第1條報(bào)文前500 Byte的字節(jié)樣本熵(報(bào)文數(shù)目N=300),如圖2(d)所示。關(guān)鍵詞區(qū)域的字節(jié)樣本熵值為0;密文長度域區(qū)域的字節(jié)樣本熵值位于0~1之間。密文區(qū)域的字節(jié)樣本熵值在7.1317~7.4401之間。
依據(jù)文獻(xiàn)[16],密文字節(jié)變量近似滿足均勻分布。若字節(jié)屬于協(xié)議密文域,則在網(wǎng)絡(luò)流中隨機(jī)取值,其熵值最大。若字節(jié)屬于協(xié)議明文域,由于協(xié)議規(guī)范具有特定語義,字節(jié)取值在一定范圍,其熵值明顯小于密文域字節(jié)熵,與圖2結(jié)果一致。因此可基于字節(jié)樣本熵值區(qū)分密文域和明文域。
3.3密文域預(yù)定位算法
密文域預(yù)定位算法如表1所示。
(1)關(guān)鍵詞提取:同種協(xié)議包含一個(gè)或多個(gè)關(guān)鍵詞,組成具有時(shí)序關(guān)系的關(guān)鍵詞集合。為處理關(guān)鍵詞位置變化問題,本文基于序列模式挖掘方法PrefixSpan算法提取包含任意長度間隔的有序關(guān)鍵詞序列。
圖2 協(xié)議字節(jié)樣本熵(N=300)
(2)字節(jié)樣本熵計(jì)算:獲取關(guān)鍵字序列后,提取相鄰的兩個(gè)關(guān)鍵詞之間的載荷數(shù)據(jù),并將關(guān)鍵詞之間相同偏移(偏移從關(guān)鍵詞位置開始計(jì)數(shù))的字節(jié)作為隨機(jī)變量,計(jì)算字節(jié)樣本熵,如圖3所示。
表1 密文域預(yù)定位算法
(3)基于熵估計(jì)預(yù)定位密文分布區(qū)間:由熵的定義可知,均勻分布的熵值最大,為但字節(jié)樣本熵與所選擇的樣本相關(guān)。在NS協(xié)議流量第1條報(bào)文中,隨機(jī)選擇某一密文字節(jié)變量,計(jì)算其字節(jié)樣本熵,樣本數(shù)目N為1~2048,如圖4所示。當(dāng)N為有限值時(shí),特別在N~256或者N<256的情況下,字節(jié)樣本熵值與8之間存在誤差。只有N→∞時(shí),密文字節(jié)樣本熵值才近似為8[15]。為此,不能將樣本熵值與8相比較。
圖3 字節(jié)樣本熵計(jì)算
為檢測(cè)是否為密文字節(jié)變量,采用熵估計(jì)方法,計(jì)算樣本數(shù)目為N時(shí)均勻分布的熵大?。ǜ鶕?jù)文獻(xiàn)并與字節(jié)樣本熵相比較。文獻(xiàn)[15]等給出N-截?cái)囔兀∟-truncated entroy),估計(jì)分布依據(jù)分布p產(chǎn)生所有可能的長度為N的樣本,并通過最大似然估計(jì)對(duì)這些樣本進(jìn)行熵估計(jì),將估計(jì)的平均值作為N-截?cái)囔刂?,隨后證明了當(dāng)p滿足均勻分布時(shí),為無偏估計(jì)值。
圖4 樣本數(shù)目熵
其中,N為樣本數(shù)量,in為i值出現(xiàn)的次數(shù),
依據(jù)文獻(xiàn)[15],采用蒙特卡羅方法計(jì)算均勻分布的N-截?cái)囔丶捌渲眯艆^(qū)間6時(shí),置信水平近似為99.9%[15],即滿足均勻分布的變量以99.9%的概率位于區(qū)間為的標(biāo)準(zhǔn)偏移。隨后,將字節(jié)熵與均勻分布的N-截?cái)囔刂迪啾容^,若字節(jié)熵值落在置信區(qū)間中,則認(rèn)為該字節(jié)變量滿足均勻分布,為密文字節(jié)。最后,將連續(xù)的密文字節(jié)變量合并在一起,作為密文域分布區(qū)間,如圖5所示。
圖5 密文域分布區(qū)間預(yù)定位
3.4密文域邊界定位算法
由于密文相對(duì)關(guān)鍵詞偏移可變,密文長度可變,因此密文域分布區(qū)間不一定為密文域邊界。
在協(xié)議報(bào)文中,依據(jù)長度是否可變,密文數(shù)據(jù)分布存在如下兩種情況:(1)長度域||可變長度密文數(shù)據(jù):密文長度與所采用的密碼算法、明文長度、密鑰長度相關(guān)。密文長度通常可變,而變長字段必須使用長度域,以便接收方進(jìn)行解析。(2)固定長度密文數(shù)據(jù):密文為固定長度,前面可能無長度域。
根據(jù)密文和關(guān)鍵詞的相對(duì)位置,存在以下兩種情況:
(1)密文相對(duì)關(guān)鍵詞的偏移固定:(a)關(guān)鍵詞||固定長度密文…||關(guān)鍵詞;(b)關(guān)鍵詞||固定長度明文||固定長度密文…||關(guān)鍵詞;(c)關(guān)鍵詞||長度域||可變長度密文…||關(guān)鍵詞;(d)關(guān)鍵詞||固定長度明文||長度域||可變長度密文…||關(guān)鍵詞。若密文長度固定((a),(b)),則預(yù)定位的密文分布區(qū)間即為密文域邊界。若密文長度可變((c),(d)),預(yù)定位的密文分布區(qū)間起始位置即為密文域起始位置,但密文域結(jié)束位置不確定。
(2)密文相對(duì)關(guān)鍵詞的偏移可變:(a)關(guān)鍵詞||可變長度明文||固定長度密文…||關(guān)鍵詞;(b)關(guān)鍵詞||可變長度明文||長度域||可變長度密文…||關(guān)鍵詞。預(yù)定位的密文分布區(qū)間為密文域的一部分,不能確定密文域起止邊界。
為此,在預(yù)定位密文分布區(qū)間后,查找密文長度域,進(jìn)而定位密文域邊界。本文主要考慮16進(jìn)制值表示的長度域。
密文長度域的識(shí)別策略基于以下啟發(fā)式規(guī)則。(1)密文長度域一般采用1~2 Byte長度的16進(jìn)制數(shù)值表示。協(xié)議密文具有明確的規(guī)范,其長度在一定的范圍內(nèi)。通常情況下協(xié)議密文長度為128~4096 bit。密文長度為8 bit的倍數(shù),相應(yīng)的長度域10進(jìn)制取值范圍為16~512。(2)密文長度域與密文長度相關(guān)聯(lián)。長度域值隨著密文長度變化而改變。(3)密文長度域不可能出現(xiàn)在它所標(biāo)記的密文區(qū)間之后。
記3.3節(jié)預(yù)定位的密文分布區(qū)間Ii長度為1l(單位為Byte),起始關(guān)鍵詞和Ii起始位置之間的字節(jié)序列記為BS,BS中某一字節(jié)至下一關(guān)鍵詞之間的長度記為2l(單位為Byte),如圖6所示。
圖6 報(bào)文格式
密文域邊界定位算法描述如表2所示。
表2 密文域邊界定位算法
(1)對(duì)每個(gè)BS序列查找可能的密文長度域。若116l≥,關(guān)鍵詞之間可能存在密文域。對(duì)密文分布區(qū)間Ii之前的字節(jié)序列BS進(jìn)行處理,分別計(jì)算BS各個(gè)字節(jié)值n,和連續(xù)2Byte(字節(jié)以及相鄰的前一字節(jié))對(duì)應(yīng)的值512),記錄長度向量(字節(jié)所在起始關(guān)鍵詞K、字節(jié)所在終止關(guān)鍵詞K'、字節(jié)相對(duì)起始關(guān)鍵詞的偏移O、字節(jié)值,對(duì)應(yīng)的字節(jié)序列);(b)若m=n(例如“00 C0”和“C0”都作為長度域標(biāo)識(shí)密文域),長度域本身重疊,優(yōu)先選取m作為長度域。
(2)進(jìn)一步判定所記錄的n值和m值是否為長度域。根據(jù)(字節(jié)所在起始關(guān)鍵詞K、字節(jié)所在終止關(guān)鍵詞K'、字節(jié)相對(duì)起始關(guān)鍵詞的偏移O),對(duì)長度向量取交集。若存在,則密文相對(duì)關(guān)鍵詞偏移固定,交集即為正確的長度向量。若不存在,則密文相對(duì)關(guān)鍵詞偏移可變,查找明文長度域,確定明文字段長度,并從左至右層次化解析報(bào)文,確定密文長度域,定位密文域邊界。
(3)若不存在密文長度域,則為固定長度密文,進(jìn)一步查找明文長度域。若不存在,則明文為固定長度,密文相對(duì)關(guān)鍵詞偏移固定,預(yù)定位的密文分布區(qū)間即為密文域;若存在,根據(jù)明文長度域確定明文,進(jìn)而從左至右解析報(bào)文,定位密文域邊界。
SSL協(xié)議和SSH協(xié)議是網(wǎng)絡(luò)中廣泛應(yīng)用的安全通信協(xié)議;NS(Needham-Schroeder)公鑰協(xié)議和sof協(xié)議則屬于經(jīng)典基礎(chǔ)安全協(xié)議。本文選取這4個(gè)經(jīng)典的安全協(xié)議進(jìn)行實(shí)驗(yàn),結(jié)果表明本文方法可以準(zhǔn)確識(shí)別密文域。
4.1實(shí)驗(yàn)數(shù)據(jù)
協(xié)議流量數(shù)據(jù)集由3部分組成,如表3所示。第1部分來源于廣域網(wǎng)和MACCDC數(shù)據(jù)集[18],為包含SSL協(xié)議的網(wǎng)絡(luò)流量。第2部分來源于In foV is Contest數(shù)據(jù)集[19],為包含SSH協(xié)議的網(wǎng)絡(luò)流量。第3部分由實(shí)驗(yàn)室局域網(wǎng)環(huán)境產(chǎn)生,為包含NS公鑰協(xié)議和sof協(xié)議[20]的網(wǎng)絡(luò)流量。其中NS公鑰協(xié)議、sof協(xié)議的應(yīng)用程序采用Spi2Java[20]工具生成,并在各個(gè)主機(jī)上運(yùn)行。
表3 協(xié)議數(shù)據(jù)集
4.2實(shí)驗(yàn)結(jié)果
現(xiàn)有基于網(wǎng)絡(luò)報(bào)文流量信息的方法使用不公開的數(shù)據(jù)集,且主要解析協(xié)議的明文格式,難以和CFIA方法進(jìn)行比較。CFIA對(duì)密文域識(shí)別主要依據(jù)密文的隨機(jī)性,目前存在其它隨機(jī)性評(píng)估方法,例如NIST測(cè)試、卡方測(cè)試等。文獻(xiàn)[15]指出:(1)相比較樣本平均值、方差,熵是最抗噪的隨機(jī)性測(cè)試方法。(2)疊加使用多種隨機(jī)性測(cè)試方法,不能提升測(cè)試效果,無意義。因此本文不再采用其他方法,僅基于熵識(shí)別密文域。
為檢驗(yàn)CFIA方法的有效性,針對(duì)每個(gè)協(xié)議隨機(jī)選取完整的K個(gè)會(huì)話(取K=16,32,64,128和 256),統(tǒng)計(jì)不同樣本數(shù)K情況下密文域識(shí)別的正確率。絕大多數(shù)識(shí)別特征包含于流中第1條報(bào)文內(nèi)[21],對(duì)第1條報(bào)文包含密文域的SSL協(xié)議,NS協(xié)議和sof協(xié)議分別進(jìn)行1000次測(cè)試,統(tǒng)計(jì)報(bào)文密文域識(shí)別的正確率,如圖7所示,當(dāng)32K≥時(shí),密文識(shí)別率在95%以上,與熵估計(jì)要求K>16一致。
為進(jìn)一步驗(yàn)證CFIA方法的有效性,針對(duì)每個(gè)協(xié)議,隨機(jī)選取完整的M個(gè)會(huì)話作為訓(xùn)練集,用于解析協(xié)議格式;其余部分作為測(cè)試集,用于評(píng)估所解析的格式。采用如下性能指標(biāo):記測(cè)試集中某協(xié)議A的樣本數(shù)目為N。N1表示被正確識(shí)別為A的樣本數(shù),N2表示非A被錯(cuò)誤識(shí)別為A的樣本數(shù),識(shí)別率=N1/N,誤識(shí)別率=N2/(N1+N3)。識(shí)別率越高,誤識(shí)別率越低,相應(yīng)的識(shí)別效果越好。
不同訓(xùn)練樣本數(shù)的識(shí)別率如圖8所示。在小樣本情況下,協(xié)議會(huì)話類型偏少,所解析的格式只能代表協(xié)議部分類型的會(huì)話,識(shí)別率偏低。隨著M增加,選取的會(huì)話類型增多,解析的格式特征更為精確,識(shí)別率也隨之增加。當(dāng)M=128時(shí),識(shí)別率基本在94%以上。另一方面,不同訓(xùn)練樣本數(shù)目下,都可以提取有效的協(xié)議格式特征,與其他協(xié)議可以相區(qū)分,誤識(shí)別率都為0。由上可知,本文方法可以較好地識(shí)別協(xié)議。
圖7 協(xié)議第1條報(bào)文密文域識(shí)別正確率
圖8 訓(xùn)練集M不同大小時(shí)的識(shí)別率
本文提出CFIA方法,依據(jù)密文的隨機(jī)性特征,利用字節(jié)樣本熵和熵估計(jì)預(yù)定位密文域區(qū)間,進(jìn)而通過密文長度域定位密文邊界,識(shí)別密文域。最后對(duì)4個(gè)經(jīng)典安全協(xié)議進(jìn)行實(shí)驗(yàn),結(jié)果表明,該方法僅依靠網(wǎng)絡(luò)數(shù)據(jù)流量信息即可有效識(shí)別協(xié)議密文域。但CFIA未考慮協(xié)議的時(shí)序行為,存在一定的局限性。下一步需進(jìn)一步構(gòu)建未知安全協(xié)議狀態(tài)機(jī),給出協(xié)議的狀態(tài)轉(zhuǎn)換過程,刻畫協(xié)議的行為關(guān)系,為信息系統(tǒng)各種網(wǎng)絡(luò)安全應(yīng)用提供支撐。
[1]CABALLERO J,YIN H,LIANG Zhenkai,et al.Polyglot:York:2007:317-329.doi:10.1145/1315245.1315286.
[2]CUIWeidong,PEINADO M,CHEN K,et al.Automatic reverse engineering of input format[P].USA,8935677 B 2,2015-1-13.
[3]WANG Zhi,JIANG Xuxian,CUIWeidong,et al.ReFormat: Automatic reverse engineering of encrypted messages[C]. European Symposium on Research in Com puter Security,Berlin,2009:200-215.doi:10.1007/978-3-642-04444-1_13.
[4]CABALLERO J,POOSANKAM P,KREIBICH C,et al. Dispatcher:enab ling active botnet in filtration using automatic protocol reverse-engineering[C].Proceedings of the 16th ACM Con ference on Com puter and Communications Security,New York,2009:621-634.doi:10.1145/1653662. 1653737.
[5]CABALLERO J and SONG D.Au tom atic protocol reverseengineering:m essage form at extraction and field sem antics in ference[J].Computer Network,2013,57(2):451-474.doi: 10.1016/j.comnet.2012.08.003.
[6]BEDDOE M.The protocol information pro ject[EB/OL]. http://www.4tphi.net/~awalters/PI/PI.htm l,2004.
[7]CUI W eidong,KANNAN J,and WANG H J.D iscoverer: Au tom atic protocol reverse engineering from network traces[C].Proceedings of the 16th USENIX Security Sym posium,Berkeley,2007:199-212.
[8]黎敏,余順爭(zhēng).抗噪的未知應(yīng)用層協(xié)議報(bào)文格式最佳分段方法[J].軟件學(xué)報(bào),2013,24(3):604-617.doi:10.3724/SP.J. 1001.2013.04243.
LI M in and YU Shunzheng.Noise-tolerant and op timal segmentation of message formats for unknown applicationlayer p rotocols[J].Journal of Software,2013,24(3):604-617. doi:10.3724/SP.J.1001.2013.04243.
[9]LUO Jianzhen and YU Shunzheng.Position-based automatic reverse engineering of network protocols[J].Journal of Network and Com puter Applications,2013,36(3):1070-1077. doi:10.1016/j.jnca.2013.01.013.
[10]ZHANG Zhuo,ZHANG Zhibin,Lee P P C,et al.Toward unsupervised protocol feature Word extraction[J].IEEE Journal on Selected Areas in Commun ications,2014,32(10): 1894-1906.doi:10.1109/JSAC.2014.2358857.
[11]TéTARD O.Netzob[OL].http://www.netzob.org/,2013.
[12]BOSSERT G,GUIHéRY F,and HIET G.Towards autom ated protocol reverse engineering using semantic in formation[C].Proceedings of the 9th ACM Sym posium on Information,Com puter and Communications Security,Kyoto,2014:51-62.doi:10.1145/2590296.2590346.
[13]KUMANO Y,ATA S,NAKAMURA N,et al.Towards realtime processing for app lication identification of encrypted traffic[C].International Conference on Com puting,Networking and Comm unications,Honolulu,H I,2014: 136-140.doi:10.1109/ICCNC.2014.6785319.
[14]趙博,郭虹,劉勤讓,等.基于加權(quán)累積和檢驗(yàn)的加密流量盲識(shí)別算法[J].軟件學(xué)報(bào),2013,24(6):1334-1345.doi:10. 3724/SP.J.1001.2013.04279.
ZHAO Bo,GUO Hong,LIU Qinrang,et al.Protocol independent identification of encrypted traffic based on weighted cumulative sum test[J].Journal of Software,2013,24(6):1334-1345.doi:10.3724/SP.J.1001.2013.04279.
[15]OLIVAIN J and GOUBAULT-LARRECQ J.Detecting subverted cryptographic protocols by entropy checking[R]. LSV-06-13,2006.
[16]BONFIGLIO D,MELLIA M,MEO M,et al.Revealing skype traffic:when randomness plays w ith you[C].Proceedings of the ACM SIGCOMM Conference on App lications,Technologies,Architectures,and Protocols for Com puter Communications,Kyoto,2007:37-48.doi:10.1145/1282380. 1282386.
[17]PAN INSKI L.A coincidence-based test for un iform ity given very sparsely samp led discrete data[J].IEEE Transactions on Information Theory,2008,54(10):4750-4755.doi:10.1109/ TIT.2008.928987.
[18]MACCDC traces[OL].http://www.netresec.com/?page= MACCDC,2012.
[19]InfoVisContest traces[DB/OL].http://2009.hack.lu/index. php/InfoVisContest,2009.
[20]PIRONTI A,POZZA D,and SISTO R.Spi2Java User Manual-Version 3.1[R].Turin:Piedmont:Italy,Polytechnic University of Turin,2008.
[21]ACETO G,DAINOTT I A,DONATO W,et al.PortLoad: taking the best of two worlds in traffic classification[C]. Proceedings of IEEE International Conference on Com puter Communications,San Diego,CA,2010:1-5.doi:10.1109/ INFCOMW.2010.5466645.
朱玉娜:女,1985年生,博士生,研究方向?yàn)榘踩珔f(xié)議逆向與識(shí)別.
韓繼紅:女,1966年生,教授,博士生導(dǎo)師,研究方向?yàn)榫W(wǎng)絡(luò)與信息安全、安全協(xié)議形式化分析與自動(dòng)化驗(yàn)證.
袁霖:男,副教授,研究方向?yàn)榘踩珔f(xié)議形式化分析與自動(dòng)化驗(yàn)證、軟件可信性分析.
Protocol Ciphertext Field Identification by Entropy Estimating
ZHU Yuna HAN Jihong YUAN Lin GU Wen FAN Yudan
(PLA Information Engineering University,Zhengzhou 450001,China)
Previous network-trace-based m ethods only consider the p laintext format of pay load data,and are not suitable for security p rotocolswhich include a large number of ciphertext data;therefore,a novel approach named CFIA(Ciphertext Field Identification Approach)is p roposed based on entropy estimation for unknown security protocols.On the basis of keywords sequences extraction,CFIA utilizes byte sam ple entropy and entropy estimation to pre-locate ciphertext filed,and further searches ciphertext length field to identify ciphertext field. The experimental resu lts show that w ithout using dynam ic binary analysis,the proposed method can effectively identify ciphertext fields pu rely from network traces,and the inferred formats are high ly accurate in identifying the protocols.
Unknown security protocol;Protocol format;Ciphertext field;Entropy estimation
The National Natural Science Foundation of China(61309018)
TP393.08
A
1009-5896(2016)08-1865-07
10.11999/JEIT 151205
2015-10-29;改回日期:2016-02-25;網(wǎng)絡(luò)出版:2016-05-09
朱玉娜zyn_qingdao@126.com
國家自然科學(xué)基金(61309018)