張宇飛,沈 瑤,楊 威,肖?漢,黃劉生
1(中國科學技術大學 蘇州研究院,江蘇 蘇州 215123)
2(中國科學技術大學 軟件學院,江蘇 蘇州 215123)
3(中國科學技術大學 計算機科學與技術學院,安徽 合肥 230026)
通訊作者:張宇飛,E-mail:SA614137@mail.ustc.edu.cn
網(wǎng)絡隱蔽信道技術是指利用網(wǎng)絡中的合法通信信道構建秘密信道,進行隱秘信息的傳輸.隱蔽信道在加密傳輸信息內容的同時,對傳輸信息行為也進行了加密.傳統(tǒng)的加密技術很容易引起注意,并被加以破解.隨著密碼學等相關理論的發(fā)展,密文的破譯技術得到了飛速發(fā)展,加密技術的可靠性將面臨挑戰(zhàn).隱蔽信道技術相比加密技術具有更強的隱蔽性.自1973 年Lampson 提出隱蔽信道的概念至今,對于隱蔽信道技術的研究成果層出不窮;與此同時,隱蔽信道檢測技術也隨著隱蔽信道技術的發(fā)展而被研究.對于隱蔽信道領域的正向研究,主要目標是提出具有更高信道容量、更高傳輸效率、更強隱蔽性的隱蔽信道實現(xiàn)方案,以保障重要信息傳輸過程的安全;反向研究則是探索更通用、更可靠、檢測率更高的隱蔽信道檢測算法,及時發(fā)現(xiàn)并阻止不法分子利用隱蔽信道竊取機密信息.
根據(jù)存儲載體的不同,現(xiàn)有的網(wǎng)絡隱蔽信道實現(xiàn)方式主要分為兩類:網(wǎng)絡存儲型隱蔽信道利用網(wǎng)絡數(shù)據(jù)包中的某些字段編碼隱秘信息進行傳輸;網(wǎng)絡時序型隱蔽信道則將隱秘信息編碼到相鄰數(shù)據(jù)包的時間間隔中,利用網(wǎng)絡中數(shù)據(jù)包的傳輸速率、發(fā)送時間和到達時間進行隱秘信息的傳輸.
時序型隱蔽信道利用數(shù)據(jù)包的時間間隔傳輸信息,而數(shù)據(jù)包的時間間隔容易受到網(wǎng)絡環(huán)境影響.當網(wǎng)絡環(huán)境不穩(wěn)定時,數(shù)據(jù)包的時間間隔也會發(fā)生較大的抖動,造成隱蔽信道傳輸信息的錯誤.因此相比存儲型隱蔽信道,時序型隱蔽信道的可靠性較差.但是時序型隱蔽信道的優(yōu)點在于其隱蔽性很強,實現(xiàn)機理和信息編碼過程的復雜多變,使得目前尚無方法有效檢測所有類型的網(wǎng)絡時序型隱蔽信道;并且隨著網(wǎng)絡和通信技術的發(fā)展,網(wǎng)絡環(huán)境也在逐步改善,這也使得時序型隱蔽信道的準確率和可靠性在逐步提升.因此,時序型隱蔽信道檢測技術的研究成為了目前隱蔽信道檢測技術研究工作的重點.
針對上述問題,本文提出一種基于差分運算和信息熵的網(wǎng)絡時序型隱蔽信道檢測算法,其主要貢獻如下:
(1)提出了差分信息熵(difference entropy)的概念,通過理論研究得到差分熵的特性,為檢測算法的有效性提供理論基礎;
(2)提出了基于差分信息熵的時序型隱蔽信道檢測算法,并通過一系列實驗確定算法的最優(yōu)參數(shù)設定;
(3)設計了對照實驗,比較了本文提出的差分熵算法和相似度算法、隨機性檢測算法、CCE 算法以及熵評估算法對于IPCTC,TRCTC,JitterBug 這3 種時序型隱蔽信道的檢測效果,著重研究了對于JitterBug隱蔽信道的檢測效果.
本文第1 節(jié)介紹研究背景,簡要描述本文中涉及到的一些預備知識.第2 節(jié)提出差分信息熵的概念并描述其特性.第3 節(jié)介紹基于差分信息熵的網(wǎng)絡時序型隱蔽信道檢測算法的原理.第4 節(jié)介紹算法的實現(xiàn)過程,包括數(shù)據(jù)的收集、處理方式以及算法在程序實現(xiàn)過程中涉及到的參數(shù)設定.第5 節(jié)通過設計實驗來檢驗算法的性能和效果.最后,第6 節(jié)說明目前研究過程中存在的問題以及之后的研究方向,并且總結全文.
隱蔽信道的概念最初由Lampson 在1973 年提出,他將隱蔽信道定義為本意不是用來傳輸信息的通信信道[1].即:如果采用某種手段或方法,利用一個本不是用于通信的系統(tǒng)或過程來傳輸信息,那么這種手段或方法就構建了一條隱蔽信道.文獻[1]中,作者將兩個具有調用關系的程序稱為 Customer 和 Service,并給出了在Customer 調用Service 時,程序Service 可能將Customer 的信息泄露給第三方的6 種可能的情況,進而表明:即使Customer 在調用Service 時為Service 規(guī)定了嚴格的數(shù)據(jù)訪問權限,Customer 的數(shù)據(jù)依然有可能被泄漏.通過對6 種情況的闡述,作者認為,Service 程序將產(chǎn)生3 種類型的通信信道.
· 存儲信道:Service 可以將數(shù)據(jù)存儲在可以被第三方訪問到的存儲空間中來實現(xiàn)數(shù)據(jù)的隱秘傳輸;
· 加密信道:Service 利用某種方式,在合法信道中嵌入機密信息進行傳輸;
· 隱蔽信道:通過某種方式,利用本不是用來傳輸信息的過程或機制來傳輸信息.
Lampson 隱蔽信道的定義后來被Tsai 等人進一步完善.Tsai 給出的隱蔽信道的定義是:給定一個強制安全策略模型M以及其在操作系統(tǒng)中的解釋I(M),I(M)中的兩個主體I(Sh)和I(Sl)之間的通信是隱蔽的,當且僅當模型M中的對應主體Sh和Sl之間的任何通信都是非法的[2].該定義認為:隱蔽信道只與系統(tǒng)的強制訪問控制策略模型相關,并且廣泛存在于部署了強制訪問控制機制的安全操作系統(tǒng)、安全網(wǎng)絡和安全數(shù)據(jù)庫中[3].
從1973 年至今,對于隱蔽信道方面的研究成果層出不窮.Wang 等人、Zander 等人對于目前已有隱蔽信道方面的研究成果進行了充分的總結和歸納[3,4].Wang 在其綜述中描述了4 種類型的隱蔽信道[3].
(1)數(shù)據(jù)庫信道:利用數(shù)據(jù)庫系統(tǒng)對外傳輸數(shù)據(jù),主要利用數(shù)據(jù)庫中的存儲資源、管理資源以及事務并發(fā)控制機制構建隱蔽信道;
(2)閾下信道:基于公鑰密碼技術的數(shù)字簽名、認證等應用密碼體制的輸出密碼數(shù)據(jù)中建立起來的一種隱蔽信道;
(3)網(wǎng)絡信道:網(wǎng)絡信道可以分為兩種:第1 種存在于多級安全系統(tǒng)中,是一種用于從高安全級向低安全級傳輸信息的隱蔽信道;第2 種則不涉及多級安全的概念,在普通的通信信道中嵌入一層隱蔽的通信信道,這里普通信道是隱蔽信道的載體;
(4)推理信道:嚴格意義上講,推理信道并不是一種通信信道,它利用某種方式,通過對公開數(shù)據(jù)的查看來推理出隱私數(shù)據(jù)的內容.這種技術通常用于獲取數(shù)據(jù)庫中的私有信息,例如:利用數(shù)據(jù)庫中的某些聚集查詢和函數(shù)查詢來推斷某一條數(shù)據(jù)記錄的具體內容.
從文獻[3]可以看出,對于隱蔽信道的研究已經(jīng)擴展了Lampson 和Tsai 最初對于隱蔽信道的定義.Lampson提出的3 類信道,在現(xiàn)今的研究中都可以歸于隱蔽信道的范疇;Wang 所描述的4 類隱蔽信道中,數(shù)據(jù)庫信道對應于 Lampson 描述的存儲信道,閾下信道和網(wǎng)絡信道則對應于 Lampson 提出的加密信道,推理信道對應于Lampson 的隱蔽信道.目前研究的隱蔽信道主要針對利用網(wǎng)絡協(xié)議規(guī)定的數(shù)據(jù)幀或數(shù)據(jù)報來構建的隱蔽信道,對應于Wang 在其綜述中提到的第2 類網(wǎng)絡信道.
網(wǎng)絡隱蔽信道是指利用計算機網(wǎng)絡中的各種協(xié)議,以合法通信信道作為載體,構建用于傳輸隱秘信息的通信信道.這里關于術語隱蔽信道(covert channel)的意義和指代的范疇,Zander 在其綜述中做出了明確的界定[4]:利用網(wǎng)絡中的各種協(xié)議幀的格式來嵌入隱秘信息的技術稱為隱蔽信道;通過加密技術將隱秘信息嵌入到數(shù)據(jù)明文中的方式則稱為隱寫術(steganography);術語信息隱藏(information hiding)涵蓋了以上兩者.作為載體的合法信道則稱為公開信道(overt channel).
對于網(wǎng)絡隱蔽信道技術,我們可以從多個角度進行分類.
(1)按照隱秘信息編碼原理劃分,網(wǎng)絡隱蔽信道可以劃分為網(wǎng)絡存儲型隱蔽信道和網(wǎng)絡時序型隱蔽信道:前者主要利用網(wǎng)絡協(xié)議中的一些控制字段編碼隱秘信息,實現(xiàn)隱秘傳輸;后者則利用了數(shù)據(jù)包的發(fā)送時間、接收時間、時間間隔來進行隱秘信息的編碼;
(2)按照傳輸載體劃分,網(wǎng)絡隱蔽信道可以分為網(wǎng)絡協(xié)議隱蔽信道和網(wǎng)絡應用隱蔽信道:前者利用的是涉及到網(wǎng)絡基礎建設的底層協(xié)議,諸如TCP,UDP,IP,ICMP 以及其他的鏈路層協(xié)議;后者利用的則是涉及到高級網(wǎng)絡應用的應用層協(xié)議,諸如HTTP,HTTPS,SMTP 以及SSH 等;
(3)按照與合法信道的關系劃分,網(wǎng)絡隱蔽信道可以分為主動式隱蔽信道和被動式隱蔽信道.主動式隱蔽信道的發(fā)送方和接受方與合法信道的發(fā)送方和接收方是相同的,因此,主動式隱蔽信道可以直接操縱信道的容量和傳輸速率;被動式隱蔽信道的發(fā)送方、接受方與合法信道的發(fā)送方、接收方不同,而是介于合法信道發(fā)送方和接收方之間.被動式隱蔽信道僅僅是借助于合法信道作為載體,對于信道的控制力較弱,隱蔽信道的傳輸能力和性能也主要取決于作為載體的合法信道的情況.被動式隱蔽信道和主動式隱蔽信道的區(qū)別可以用圖1、圖2 來描述.
Fig.2 Active covert channel圖2 主動式隱蔽信道
以上的分類方式中,第1 種分類方式最能體現(xiàn)隱蔽信道的本質,下文中的討論都基于該分類方式.
1.2.1 網(wǎng)絡存儲型隱蔽信道
網(wǎng)絡存儲隱蔽信道主要利用網(wǎng)絡協(xié)議幀中的字段編碼隱秘信息,構建隱蔽通信信道.常用的載體有IP 數(shù)據(jù)報中的服務類型(TOS)[5]、標志位(flag)[6]、數(shù)據(jù)報編號(identification)[7,8]、生存時間(TTL)[9,10]、數(shù)據(jù)報長度等字段以及TCP 報文中的緊急指針(URG)[11]、報文序號(sequence)[12,13]等字段.另外,以上協(xié)議中的選項部分和填充字節(jié)也可以作為隱秘信息的載體.
網(wǎng)絡存儲型隱蔽信道的構建不僅可以利用底層的網(wǎng)絡協(xié)議,還可以利用一些應用層的協(xié)議,如HTTP[14-16]和DNS[17]協(xié)議.一些TCP/IP 層之下的協(xié)議,諸如以太網(wǎng)、令牌環(huán)網(wǎng)絡中涉及的相關協(xié)議也可以作為網(wǎng)絡存儲型隱蔽信道的載體[18-20].
本文提出的檢測算法主要針對網(wǎng)絡時序型隱蔽信道,因此對于存儲型隱蔽信道,這里僅簡要說明.
1.2.2 網(wǎng)絡時序型隱蔽信道
網(wǎng)絡時序型隱蔽信道將隱秘信息編碼為數(shù)據(jù)包傳輸過程中的時間間隔,達到隱秘傳輸?shù)哪康?對于主動式的網(wǎng)絡時序型隱蔽信道,發(fā)送端在發(fā)送數(shù)據(jù)包時就將隱秘信息編碼到了數(shù)據(jù)包的時間間隔中,發(fā)送端發(fā)送數(shù)據(jù)包時,發(fā)送的時間間隔就根據(jù)要傳輸?shù)碾[秘信息進行了調制;對于被動式時序型隱蔽信道,則主要通過攔截、抓取正常網(wǎng)絡信道中正在傳輸?shù)臄?shù)據(jù)包,根據(jù)要傳送的隱秘信息,將數(shù)據(jù)包的時間間隔延長或縮短,達到傳輸隱秘信息的目的.
以下是部分網(wǎng)絡時序型隱蔽信道類型的簡要介紹.
· IPCTC (IP covert timing channel)
2004 年,Cabuk 提出了一種時序型隱蔽信道稱為IPCTC[21],在其實現(xiàn)中,發(fā)送方和接受方需要事先約定一個時間間隔t.發(fā)送開始后,對于每一個時間間隔t,如果發(fā)送方需要發(fā)送比特1,就在該時間間隔內發(fā)送一個數(shù)據(jù)包;否則,發(fā)送方保持靜默,接收方觀察數(shù)據(jù)包到達的時間間隔,就可以得到信道中包含的隱秘信息.如果在時間間隔t之內收到了發(fā)送方發(fā)送的數(shù)據(jù)包,傳輸?shù)臄?shù)據(jù)被識別為比特1;否則,識別為比特0.IPCTC 的傳輸原理如圖3所示.
Cabuk 還在文中給出了發(fā)送方和接收方的同步機制,并指出了4 種可能影響IPCTC 隱蔽信道傳輸性能的因素.其中,時間間隔t直接決定了信道的容量和傳輸效率:t值越小,信道的傳輸速率越高;但是時間間隔的減小,會導致傳輸過程中的錯誤率提高.理論上,該信道的極限傳輸速率等同于發(fā)送端處理數(shù)據(jù)的速率.
IPCTC 利用在約定的時間區(qū)間中是否發(fā)送數(shù)據(jù)包來表示傳輸比特0 或比特1.該信道并不是直接將信息編碼到數(shù)據(jù)包時間間隔的數(shù)值中,而是利用在時間區(qū)間內的發(fā)送或不發(fā)送數(shù)據(jù)包的事件,在發(fā)送方和接收方之間建立了一個可以共享的布爾值,接收方通過觀察這個布爾值的結果來接收隱秘信息.在Zander 的綜述中,IPCTC又被稱為ON/OFF 隱蔽信道[4].
Fig.3 IP covert timing channel (IPCTC)圖3 IPCTC 網(wǎng)絡時序型隱蔽信道
· TRCTC (time replay covert timing channel)
2006 年,Cabuk 對其提出的IPCTC 隱蔽信道進行了改進[22],提出了一種新的時序型隱蔽信道——TRCTC.隨意確定的時間間隔t很有可能會改變包間隔數(shù)據(jù)的統(tǒng)計特征,從而使得IPCTC 的隱蔽性和抗檢測性降低.TRCTC 首先對正常網(wǎng)絡信道中的數(shù)據(jù)包時間間隔進行采樣,然后將采樣得到的數(shù)據(jù)劃分為兩個集合S0和S1,傳輸數(shù)據(jù)時,如果需要傳輸比特0,就從集合S0中選擇一個時間間隔,發(fā)送數(shù)據(jù)包;如果需要傳輸比特1,就從S1中選擇一個時間間隔,發(fā)送數(shù)據(jù)包.由于通信中用到的時間間隔采樣自合法通信中的時間間隔,TRCTC 和正常通信產(chǎn)生的包間隔具有相似的數(shù)值特性.相比IPCTC,TRCTC 的隱蔽性更好.
· JitterBug
2006 年,Shah 等人提出一種利用用戶敲擊鍵盤的時間間隔來編碼信息的時序型隱蔽信道——JitterBug[23].JitterBug 設定了一個時間參數(shù)ω,如果需要傳輸比特1,就增加用戶兩次敲擊鍵盤的時間間隔,使該間隔可以被參數(shù)ω整除;如果要傳輸比特0,就增加時間間隔使其可以被ω/2 整除,但不能被ω整除.顯然,參數(shù)ω的選擇直接決定了信道的容量和傳輸效率:ω的值越小,信道的傳輸速率越高;并且,ω的值越小,產(chǎn)生的時間間隔數(shù)據(jù)和合法信道的數(shù)據(jù)的相似度就會越高,信道的隱蔽性就越強.Jitterbug 信道的缺點在于它是一個被動式隱蔽信道,不論ω的取值為多少,信道的極限容量和傳輸效率本質上取決于載體信道的容量和傳輸效率.
以上3 種方式為時序型隱蔽信道的主要實現(xiàn)方式,除此之外,時序型隱蔽信道的種類還有MBCTC[24],DM[25]等.下文中的研究主要涉及到了上面提到的3 種類型的隱蔽信道,因此對于其他的類型,這里不再贅述.
相比存儲型隱蔽信道,時序型隱蔽信道隱蔽性更強,檢測時序型隱蔽信道的難度也更大.時序型隱蔽信道是一種即時通信,發(fā)送方發(fā)送數(shù)據(jù)后,接收方必須及時接收,否則,數(shù)據(jù)包傳輸完畢后,傳輸?shù)男畔⒁搽S之丟失.另外,時序型隱蔽信道利用數(shù)據(jù)包時間間隔進行隱秘信息的編碼,所以對于網(wǎng)絡環(huán)境有一定的要求,當前網(wǎng)絡環(huán)境的穩(wěn)定性直接影響到時序型隱蔽信道傳輸過程的可靠性和傳輸信息的正確性.
1.2.3 其他類型的網(wǎng)絡隱蔽信道
近幾年來,對于網(wǎng)絡隱蔽信道技術的研究提出了更多的網(wǎng)絡隱蔽信道實現(xiàn)方案.存儲型和時序型的分類已經(jīng)無法完全涵蓋所有的隱蔽信道類型,例如:利用虛擬機之間共享的硬件資源在兩個虛擬機實例之間構建隱蔽信道[26];利用數(shù)據(jù)包的排序方式來構建隱蔽信道[27];利用多條通信流的構建隱蔽信道[28]等.這些隱蔽信道無法從嚴格意義上講其屬于存儲型或時序型的類型,也不在本文的研究范圍.
時序型隱蔽信道將隱秘信息編碼到網(wǎng)絡數(shù)據(jù)包傳輸?shù)臅r間間隔中.對于合法信道,數(shù)據(jù)包的時間間隔僅取決于當前的網(wǎng)絡環(huán)境;而對于時序型隱蔽信道,數(shù)據(jù)包的時間間隔則主要取決于要傳輸?shù)碾[秘信息.因此,時序型隱蔽信道的包時間間隔數(shù)據(jù)會在一些統(tǒng)計特征上呈現(xiàn)出和合法信道的差別.所以目前比較成熟的時序型隱蔽信道檢測技術主要通過評估待測數(shù)據(jù)的統(tǒng)計特征,包括均值、方差等統(tǒng)計量,來達到檢測和識別時序型隱蔽信道的目的.
Cabuk 認為:由于正常數(shù)據(jù)包的傳輸時間間隔僅僅由網(wǎng)絡環(huán)境決定,因此時間間隔數(shù)據(jù)的隨機性較高;而時序隱蔽信道中的時間間隔用于傳輸隱秘信息而被刻意操縱,因此隨機性比較低[21].基于這樣的觀點,Cabuk 提出了兩種時序型隱蔽信道檢測方式.
· 第1 種方式稱為隨機性檢測算法,該算法檢測數(shù)據(jù)包時間間隔的標準差.通過將待檢測數(shù)據(jù)劃分N個窗口,分別計算每個窗口的標準差,結果分別記為:σ1,σ2,...,σN.然后計算不同窗口標準差的差距的標準差,如下:其中,STDEV表示計算標準差.Cabuk 認為:合法信道數(shù)據(jù)的隨機性高,因此數(shù)據(jù)的標準差不是恒定的,因此regularity的值也因標準差數(shù)據(jù)的波動較大;而隱蔽信道數(shù)據(jù)的隨機性低,在傳輸數(shù)據(jù)的過程中,包時間間隔的標準差是恒定的,所以regularity的值會很??;
· Cabuk 提出的第2 種檢測方式稱為ε相似度(ε-similarity),基本思想是:合法通信中的各個數(shù)據(jù)包時間間隔是相互獨立的;而隱蔽信道的數(shù)據(jù)包間隔編碼了隱秘信息,因此數(shù)據(jù)包時間間隔之間是否獨立取決于要傳輸?shù)臄?shù)據(jù).ε相似度算法計算排序后的相鄰包間隔數(shù)據(jù)之間的相似度.對于排序后的包間隔數(shù)據(jù)序列P1,P2,...,PN,相鄰數(shù)據(jù)包間相似度的計算方式如下:
計算所有數(shù)據(jù)對的相似度后,統(tǒng)計相似度小于ε值的數(shù)據(jù)的比例.比例越大,待測信道中存在隱蔽信道的可能性就越高.
檢測時序型隱蔽信道的另一種較為成熟的技術是評估待測數(shù)據(jù)的熵率.熵(entropy)是隨機變量隨機程度的定量度量,它的定義來自于Shannon 提出的信息論[29],而熵率(entropy rate)則是隨機變量序列的平均信息熵,或者等價定義為無限個隨機變量序列的極限條件熵.熵(記作EN)和熵率(記作ER)的計算方式如下:
由于熵率是一個極限定義,對于有限的數(shù)據(jù)無法計算.Gianvecchio 提出一種帶修正值的條件信息熵(correct condition entropy),使得可以通過有限的數(shù)據(jù)來估計熵率[30].計算方式如下:
其中,Xn表示長度為n的隨機變量的序列,CE(X1,X2,...,Xn)表示X1,X2,...,Xn的條件信息熵,perc(Xn)則表示測試數(shù)據(jù)中所有唯一的n長度序列占所有n長度序列的比例,EN(X1)就是隨機變量X的熵值.而熵率的估計值就是取不同的n值得到的CCE(Xn)的最小值.
Gianvecchio 的觀點和Cabuk 是相同的,同樣認為隱蔽信道的數(shù)據(jù)的隨機性要比正常數(shù)據(jù)低,熵率值越小,信道中含有隱蔽信道的可能性就越高.
檢測時序型隱蔽信道還有其他的算法,諸如基于SVM 的隱蔽信道分類器[31-33]、基于神經(jīng)網(wǎng)絡[34-36]的檢測算法、基于熵率和標準差的檢測方法[37]等.本文提出的檢測算法主要基于ε相似度和熵,因此對于其他類型的檢測算法,這里不再詳述.
本節(jié)主要對差分信息熵理論進行闡述.通過下文中的理論分析可以看到,差分信息熵可以同時對待檢測數(shù)據(jù)的分布特性和數(shù)值特性進行評估.下文中為了便于分析,首先給出了一些定義和定理,然后對差分信息熵理論進行說明.
信息熵是一種對隨機變量隨機性程度的定量度量.熵的概念源于熱力學,由Shannon 在1948 年提出信息論后引入計算機和通信領域[29].離散型隨機變量信息熵的計算方式前文中已經(jīng)給出.Gianvecchio 通過評估數(shù)據(jù)的熵率來檢測時序型隱蔽信道.文獻[30]作者用4 種隱蔽信道組織實驗驗證其提出的CCE 算法的有效性[30]:IPCTC,TRCTC,MBCTC,Jitterbug.根據(jù)作者提供的實驗數(shù)據(jù),CCE 算法對于JitterBug 隱蔽信道的檢測效果很差,這主要是因為Jitterbug 隱蔽信道對于數(shù)據(jù)包間隔做出的修改很小,使得產(chǎn)生的包間隔數(shù)據(jù)和正常數(shù)據(jù)在統(tǒng)計特性上的差別很小.
我們認為,利用熵率來對數(shù)據(jù)進行評估僅僅考慮到了數(shù)據(jù)的統(tǒng)計特性,而沒有考慮數(shù)據(jù)的數(shù)值特性.例如,對于兩個離散型隨機變量X,Y,假設X可能的取值為1,3,5,7,取到每個值的概率為1/4;Y可能取值是1,5,6,11,取到每一個值的概率同樣為1/4.那么代入信息熵計算公式,X和Y得到的熵值是相同的:
但是很顯然,從數(shù)值上來看,變量X的規(guī)律性更強.對于相互獨立的隨機變量序列,熵率的值跟熵值是相同的;對于非獨立的隨機變量序列,熵率的大小低于熵值,此時,熵率和熵值的差距取決于序列中各個元素關聯(lián)度的大小.Gianvecchio 提出的CCE 算法之所以對于JitterBug 隱蔽信道的檢測效果不好,我們認為,主要是因為熵率僅僅評估了待測數(shù)據(jù)的分布特性,而沒有評估待測數(shù)據(jù)數(shù)值特性.根據(jù)構建原理,JitterBug 中的時間序列的要么是參數(shù)ω的倍數(shù),要么是ω/2 的倍數(shù).因此,Jitterbug 中的任意兩個數(shù)據(jù)的差值一定是一個ω/2 的倍數(shù).就數(shù)值特性而言,JitterBug 隱蔽信道中的數(shù)據(jù)表現(xiàn)出了和正常數(shù)據(jù)不同的特性.
為了同時對數(shù)據(jù)的分布特性和數(shù)值特性進行評估,我們結合Cabuk 提出的ε相似度算法和Gianvecchio 提出的CCE 算法,提出差分信息熵的概念,進而提出差分信息熵的網(wǎng)絡時序型隱蔽信道檢測算法.
為了便于下文中對于差分信息熵的詳細說明,首先需要說明下面的定理:
定理1.對于任意的正數(shù)序列p1,p2,...,pn,可以得到:
證明:只要將不等式兩邊的式子求差即可:
由于序列中的每個pi都是正數(shù),因此,一定是大于1 的數(shù),所以結果和式中的每一項都是正數(shù),也就說明上面的做差結果是大于0 的,原式成立.
對于一個可能的取值有v1,v2,...,vn、對應的概率分別是p1,p2,...,pn的離散型隨機變量X,我們可以為其定義兩種操作:
定義1.通過隨機變量X定義隨機變量Y,Y的取值規(guī)則如下:
此時,我們可以說隨機變量Y由隨機變量X通過合并(merge)操作得到.
定義2.定義二值的隨機變量a,a以概率q取值為1,以概率(1-q)取值為0,然后通過隨機變量X和a定義一個隨機變量Z,Z的取值規(guī)則如下:
其中,?1≤i≤n,vn+1≠vi.此時,我們可以說隨機變量Z由隨機變量X通過拆分(split)操作得到.
現(xiàn)在考慮通過合并和拆分X得到的隨機變量Y和Z的熵值.隨機變量X具有n個可能取值,而隨機變量Y在X的值為vn-1或vn時,取值都是vn,因此Y只有n-1 種可能的取值;而通過拆分操作得到隨機變量Z 在X的值為vn時根據(jù)隨機變量a的取值情況有兩種取值:vn和vn+1,因此,Z共有n+1 種可能的取值.通過代入熵計算公式,Y和Z的熵值分別為
然后,將其和X的熵值做差:
根據(jù)定理1,我們可以得到EN(Y)-EN(X)的結果小于0,EN(Z)-EN(X)的結果大于0,因此可以得到如下定理:
定理2.拆分一個隨機變量會使熵增大,合并一個隨機變量會使熵減小.
本節(jié)定義兩個輔助矩陣來幫助下文中對于差分信息熵的討論.
定義3.設離散型隨機變量X可能取值有v1,v2,...,vn,對應的概率分別是p1,p2,...,pn,這里為了便于分析,將數(shù)值v1,v2,...,vn遞增排序.然后定義一個隨機變量Y=X1-X2,其中,X1和X2相互獨立并且和X具有完全相同的概率分布.此時可以定義一個n×n的矩陣Dv,矩陣中的元素vij表示X1取值vi并且X2取值vj時的Y值;同時還可以定義另一個n×n的矩陣Dp,矩陣中的第i行第j列元素pij表示表示X1取vi、X2取vj時的聯(lián)合概率.此時稱矩陣Dv為變量X的差分值矩陣(difference value matrix),矩陣Dp為變量X的差分概率矩陣(difference probability matrix).
由于X1,X2獨立,所以pij就是pi和pj的乘積.X的差分值矩陣和差分概率矩陣如下:
通過觀察可以發(fā)現(xiàn),差分值矩陣Dv具有如下的性質.
(1)主對角線上的值均為X1,X2取相同值的情況,因此主對角線上的元素v1,1,v2,2,...,vn,n的值均為0;
(2)關于主對角線互相對稱的兩個元素的結果互為相反數(shù).顯然,對于任意元素vi,j=vi-vj,它關于主對角線的對稱位置為vj,i=vj-vi,和vi,j互為相反數(shù);
(3)每一個元素一定都比它上方和右方的元素大.這個結果是顯而易見的.任意一個元素vi,j=vi-vj,它右邊的元素是vi,j+1=vi-vj+1,上邊的元素是vi-1,j=vi-1-vj,由于vj+1>vj,vi>vi-1,所以vi,j>vi-1,j;同時,vi,j>vi,j+1;
(4)矩陣中數(shù)值最大的元素在左下角,最小的則在右上角;并且任意一行、任意一列中一定不存在相同的元素;
(5)整個矩陣中最多包含n2-n+1 個不同的值,最少包含2n-1 個不同的值.對于前者,由于整個矩陣包含n2個元素,而主對角線上的元素都是0,共有n個0,如果其余的元素任意兩個都不相同,那么此時,矩陣包含的不同元素最多,這個最大值就是n2-n+1;對于后者,則基于這樣的事實:不論X具有怎樣的數(shù)值特征,矩陣Dv中,總可以找到一條從左下角的最大元素到達右上角的最小元素的路徑,使得沿著該條路徑移動時,方向總是向上或向右,此時這條路徑一定包含2n-1 個元素.圖4 給出了對于X有4 個不同取值的情況,沿著路徑遍歷這些元素時,得到的一定是嚴格遞減的序列.也就是說,不論X具有怎樣的數(shù)值特征,在矩陣中都可以找到2n-1 個不同的元素.
Fig.4 There are at least 2n-1 different elements in the matrix Dv (two paths are shown in this figure)圖4 Dv 矩陣中至少包含2n-1 個不同元素(圖中給出了其中的2 條路徑)
2.4.1 差分信息熵的定義
對于離散型的隨機變量X,我們用下面的方式定義其差分信息熵:
定義4.對于一個離散型隨機變量X,定義一個隨機變量Y=X1-X2,其中,X1和X2相互獨立并且和X具有完全相同的概率分布.此時,隨機變量X的差分信息熵為隨機變量Y的信息熵,記作DEN(X),即:
下面說明差分信息熵DEN(X)的特征.根據(jù)上文中差分矩陣的性質(5),對于有n個可能取值的隨機變量X做差分運算后,最多有n2-n+1 種不同的結果;最少有2n-1 種不同結果.而如果不考慮差值,僅僅考慮X1,X2不同的取值組合,則有n2種情況.我們可以將這些不同的取值組合按照差分值Y分組,得到的分組數(shù)目記為C,并將這C個分組分別為g1,g2,...,gC.圖5 是一個分組的樣例.
Fig.5 Example of classifying the combination of X1and X2according to the difference result (X1-X2)圖5 根據(jù)差分結果對隨機變量的取值組合分組的樣例
顯然,這里的分組數(shù)目C滿足下面的關系式:
分組完成后,可以得到計算差分熵DEN(X)的公式如下:
其中,
2.4.2 數(shù)值特性對差分熵的影響
本節(jié)說明數(shù)值特性對于差分熵的影響,并給出差分熵的值域.下文將分3 種情況說明:首先考慮兩種特殊情況,然后再說明更一般的情況.
情況1.取值序列v1,v2,...,vn是等差數(shù)列,假設公差為d,此時,差分值矩陣變成了如圖6 所示的形式.
Fig.6 Difference value matrix in the case 1圖6 情況1 的差分值矩陣
如圖6 所示,此時位于同一條斜線上的元素的值都相等,矩陣中不同的值的個數(shù)恰好為最小值2n-1,即C=2n-1,此時對應的差分熵為
關于這個值和熵值EN(X)的大小關系,我們尚未找出完全的證明方式,這里僅僅給出一個不完全的分析.根據(jù)差分概率矩陣Dp,我們可以定義一個離散隨機變量X′,X′共有n個可能的取值,記作:r1,r2,...,rn,而對應的概率,則由下面的規(guī)則給出:
X′的分布律可以用圖7 來描述.
Fig.7 Distribution law of random variable X′圖7 隨機變量X′的分布律
為了更直觀地表達,我們列舉各個變量值對應的概率如下:
可以看到,X′的每個概率值都是由X的概率值通過輪換相乘然后求和得到.這是一個平均化的運算過程,這意味著X′的概率分布比X跟接近于均勻分布(此處尚未找到完全的證明方式,但多次實驗結果表明該結論是正確的).由于均勻分布的隨機性最高,熵值最大,所以可以得到下面的結論:
下面通過拆分的方式,通過X′構造Y,將上文中每個ri概率值拆分出來,如圖8 所示.
Fig.8 Getting Y from X′ by splitting operation圖8 拆分X′得到Y
可以看到,此時Y的熵值就是DENmin(X).根據(jù)定理2,拆分使得熵值增大,因此:
表1 是通過程序模擬得到的實驗數(shù)據(jù),對于每一個不同的分布律,表中只列出各個取值的概率,隨機變量具體可以取到哪些值并不影響實驗結果,因此沒有列出.實驗數(shù)據(jù)充分表明,前文中的結論在絕大多數(shù)情況下是正確的.
Table 1 Data from the experiment comparing values of entropy and minimum difference entropy表1 隨機變量熵值和最小差分熵值的比較實驗數(shù)據(jù)
情況2.取值序列v1,v2,...,vn呈不規(guī)則分布,使得任意兩個不同的項作差值結果都不相同,此時,差分結果Y可能的取值個數(shù)為最大值n2-n+1,因此C=n2-n+1.此時,對應的差分熵值是:
根據(jù)定理1,可得:
于是,
因此我們可以知道,隨機變量X的差分熵的最大值小于2 倍的X熵值,即:
情況3.對于更一般的情況,2n-1<C<n2-n+1.考慮情況2,Y的取值個數(shù)是n2-n+1,此時矩陣Dp中,除去主對角線的元素,其余的每一個元素都對應Y的一個不同的取值的概率.而我們現(xiàn)在討論的一般情況中,C<n2-n+1,因此這種情況下,矩陣Dp中,除去主對角線的元素,一定存在2 個或多個元素表示同一個差分值的概率的情況.所以,對于一般情況的差分變量Y,可以通過情況2 對應的Y通過合并操作得到.根據(jù)定理2,合并操作會使熵值減小,因此,對于更一般的情況:
然后我們考慮情況1.情況1 對應的差分概率矩陣中,位于同一條斜線的元素表示同一個差分值的概率,而這里討論的一般情況,Y的取值個數(shù)是大于情況1 中Y的取值個數(shù).說明這里對應的差分值矩陣中位于同一條斜線上的元素值不再相等.因此,一般情況的Y變量可以看做是由情況1 中的Y變量通過拆分操作得到.根據(jù)定理2,拆分操作會使熵值增大,我們可以得到:
此時,可以得到下面的定理.
定理3.對于離散型隨機變量X,不論其數(shù)值特性如何,其差分熵DEN(X)都滿足下面的式子:
2.4.3 分布特性對差分熵的影響
本節(jié)討論隨機變量分布特性對于差分熵的影響.對于更一般的情況分析還有待研究.這里僅考慮特殊情況——二值隨機變量,即X可能取的值只有兩種,對應概率分別為p和1-p.此時,可以寫出X的熵值與差分熵值:
此時,EN(X)和DEN(X)均可以看做是概值p的函數(shù),因此,我們可以采用分析函數(shù)的方法分析上面兩個式子.
求得導函數(shù)如下:
當p=1/2 時,兩個導函數(shù)同時取0 值,說明均勻分布時,熵值和差分熵值都達到了最大值;同時,當p<1/2 時,兩個導函數(shù)均為正值;p>1/2 時,兩個導函數(shù)均為負數(shù),這說明當隨機變量的分布情況接近于均勻分布時,熵與差分熵最大.
熵值和差分熵值的原函數(shù)和導函數(shù)圖像如圖9、圖10 所示.
Fig.9 Image of entropy (line I)and difference entropy (line II)for binary random variable圖9 二值隨機變量的熵值(曲線I)和差分熵值(曲線II)的函數(shù)圖像
Fig.10 Image of derivative function of entropy (line I)and difference entropy (line II)of the binary random variable圖10 二值隨機變量熵值(曲線I)和差分熵值(曲線II)導函數(shù)圖像
可以發(fā)現(xiàn):兩個導函數(shù)的圖像具有3 個交點,3 個交點的橫坐標大約是0.3,0.5,0.7(此處0.3 和0.7 為近似值),說明在[0.3,0.7]的范圍內,熵值的變化速率比差分熵值要快;而[0,0.3]以及[0.7,1]的范圍內,則差分熵值的變化速率更快.
接下來討論熵值和差分熵值的差距,將它們的差分熵值和熵值做差如下:
做出以上差值函數(shù)圖像如圖11 所示.
從圖11 中可以看到,圖像的峰值大約處于p=0.3 和p=0.7 的位置,這兩個位置也恰好也是熵和差分熵導函數(shù)的交點位置.從總的趨勢上來看,中心部分的差值較大,兩邊則差值較小.這說明隨機變量的分布情況越接近于均勻分布,差分熵和熵的差距就越大.
通過以上分析,我們可以得到下面的定理.
定理4.關于離散型隨機變量X,具有下面的結論.
(1)X的分布越接近均勻分布,熵值和差分熵值就越大;
(2)X的差分熵值永遠大于X的熵值;同時,X的隨機性增大時,熵值和差分熵值的差距也在逐漸增大.在平均分布的附近會達到最大值;
(3)如果X的分布接近均勻分布,那么在改變X的概率分布時,熵值比差分熵值對于分布情況變化更加敏感;如果X的分布是傾斜的,不同的取值對應的概率差距很大,那么在改變X的概率分布時,差分熵值比熵值對于分布情況的變化更加敏感.
Fig.11 Image of the difference result entropy and difference entropy of binary random variable圖11 二值隨機變量熵值與信息熵值的差分函數(shù)圖像
本節(jié)描述了差分熵的定義以及相關的特性.通過上文的分析可知,差分熵會同時受到數(shù)據(jù)的數(shù)值特性和分布特性的影響,并在某些情況下,差分熵值對于數(shù)據(jù)特性變化表現(xiàn)出了更高的敏感度.
本節(jié)提出基于差分信息熵的網(wǎng)絡時序型隱蔽信道檢測算法.首先需要說明的是:Cabuk 和Gianvecchio 提出的算法均假設正常數(shù)據(jù)的隨機性比隱蔽信道數(shù)據(jù)大[21,30],但是筆者認為,正常信道的特征取決于實際的網(wǎng)絡環(huán)境,如果網(wǎng)絡通暢,數(shù)據(jù)包的間隔的抖動可能會很小,此時包間隔數(shù)據(jù)的隨機性也就會很小.因此,我們不可以對正常網(wǎng)絡的數(shù)據(jù)特征進行任何的假設,而應該通過實驗對正常數(shù)據(jù)進行特征提取,然后從待測數(shù)據(jù)中提取特征后,與正常數(shù)據(jù)的特征做比對,決定其中是否包含隱蔽信道.
基于以上的思想,設計基于差分信息熵的網(wǎng)絡時序型隱蔽信道檢測算法的思路如下.
(1)收集網(wǎng)絡中包時間間隔數(shù)據(jù),構造時間間隔序列:{s1,s2,...,sn};
(2)數(shù)據(jù)分類,根據(jù)一定的規(guī)則,將數(shù)據(jù)劃分為m類,記作c1,c2,...,cm,并對每一個類賦予一個代表該類數(shù)據(jù)的數(shù)值:v1,v2,...,vm.分類后,同一個類中的數(shù)據(jù)不加區(qū)別,統(tǒng)一用該類的代表數(shù)值來表示.分類后的序列表示為{t1,t2,...,tn},其中,si∈cj→ti=vj;
(3)將分類后的序列劃分成大小為w的多個子窗口,如果采集到的數(shù)據(jù)量為n,那么可以劃分的窗口個數(shù)為,并經(jīng)每個窗口中的序列記作:{ti,1,ti,2,…,ti,w};
(4)計算每個窗口的熵值ENi.統(tǒng)計窗口中每個數(shù)值出現(xiàn)的比率,計算熵值,其中,cnti,j表示檢測窗口i中屬于cj類的數(shù)據(jù)的個數(shù);
(5)計算每個窗口序列的差分序列,記作:{pi,1,pi,2,…,pi,w-1},其中,pi,j=ti,j-ti,j+1;
(6)計算每個窗口的差分熵值,記作DENi.根據(jù)上一節(jié)的分析,對原始數(shù)據(jù)劃分m類后,差分運算后的數(shù)據(jù)最多有m2-m+1 類,最少則有2m-1 類.這里記差分運算后的數(shù)據(jù)類簇個數(shù)為m′,并將差分值的各個類簇記作,然后計算差分熵值,其中,表示檢測窗口i中屬于dj類的差分值的個數(shù);
(7)將每個窗口的計算結果和正常信道的對應結果EN0以及DEN0比較,根據(jù)給定的偏差值εE和εD,如果|ENi-EN0|≤εE并且|DENi-DEN0|≤εD,說明當前檢測窗口的數(shù)據(jù)中沒有隱蔽信道;否則,可以認為當前檢測窗口的數(shù)據(jù)可能包含隱蔽信道.
以上是算法的基本思路.
本節(jié)說明算法在實現(xiàn)過程涉及到的一些參數(shù)確定,我們將通過實驗來確定最優(yōu)的參數(shù)設定方案.通過前文對于算法原理的描述可知,待確定的參數(shù)值有:劃分類簇的個數(shù)m、每個類簇的代表值vi、窗口大小w以及正常信道的閾值EN0,DEN0和對應的偏差值εE和εD.下文中,我們首先分析正常數(shù)據(jù)的特點,然后確定這些參數(shù)值.
我們通過程序實時抓取網(wǎng)絡數(shù)據(jù)包,統(tǒng)計包時間間隔的分布情況.實驗結果表明:當前的實驗室環(huán)境下,網(wǎng)絡數(shù)據(jù)包的時間間隔主要分布在(75,1075]范圍內.這里,為了便于數(shù)據(jù)分析,我們將數(shù)據(jù)包間隔的范圍劃分為40個長度為25 的子區(qū)間,記作R1,R2,...,Rn,并將每個區(qū)間內數(shù)據(jù)的頻率記作pi.而落在(75,1075]范圍以外的數(shù)據(jù)被認為是離群點,不作為實驗數(shù)據(jù).統(tǒng)計落在各個子區(qū)間內的數(shù)據(jù)所占比例,如圖12 所示.
Fig.12 Bar-chart of the packet interval of legitimate channel圖12 正常網(wǎng)絡數(shù)據(jù)包時間間隔統(tǒng)計
接下來,用指數(shù)分布(exponential distribution)來描述正常數(shù)據(jù)包的分布情況,指數(shù)分布的密度函數(shù)如下:
這里涉及到了參數(shù)λ,可以采用一階矩估計法對參數(shù)λ進行估計:
代入我們的實驗數(shù)據(jù),可以得到:λ≈0.0029.
于是,正常數(shù)據(jù)包的時間間隔分布的密度函數(shù)如下:
至此,前文中所有的分析和說明都是基于離散型的隨機變量,但是在實際網(wǎng)絡環(huán)境中,數(shù)據(jù)包的時間間隔可以看做是一個連續(xù)型的隨機變量.為了便于發(fā)現(xiàn)數(shù)據(jù)的特征,簡化數(shù)據(jù)處理過程,我們首先需要對數(shù)據(jù)進行離散化,具體方法就是對數(shù)據(jù)進行分類,將連續(xù)型的隨機變量按照取值范圍劃分類簇.數(shù)據(jù)離散化的過程對應于第3節(jié)算法執(zhí)行步驟中的步驟(2).
數(shù)據(jù)離散化過程中,劃分類簇的個數(shù)將會直接影響后續(xù)算法的處理效果.劃分類簇過少,使得數(shù)據(jù)中的某些特征丟失;而劃分類簇過多,則增加了算法處理的復雜度,影響檢測效率.顯然,我們知道這樣兩個事實:劃分的類簇越多,就需要越多的測試數(shù)據(jù)才可以將數(shù)據(jù)中的特征表現(xiàn)出來,對于差分熵而言,最壞情況下,差分結果的類簇個數(shù)會隨著原始數(shù)據(jù)的類簇個數(shù)的增長而呈現(xiàn)平方式的增長,如果數(shù)據(jù)量不夠,則會使得計算得到的差分熵值不準確.
圖13 給出了對于有5 個類簇均勻分布的情況下,熵值和差分熵值隨著樣本容量增大時的變化情況.可以看到:一開始,隨著樣本容量的增大,熵值和差分熵值也在顯著增大;而當樣本個數(shù)大于150 時,熵值開始趨向于穩(wěn)定;當樣本個數(shù)大于950 時,差分熵值也在開始趨向穩(wěn)定.所以可以說:當樣本個數(shù)大于950 時,樣本大小基本不會影響實驗結果,此時的結果主要取決于數(shù)據(jù)本身的特性.這里,我們稱可以包含全部數(shù)據(jù)特征的最小樣本容量為有效樣本容量(adequate sample size).
Fig.13 Influence of sample size on the entropy and difference entropy (5 bins)圖13 樣本個數(shù)對于熵值和差分熵值的影響(類簇個數(shù):5)
表2 記錄了我們通過實驗測試得到的對于不同的類簇個數(shù)下的有效樣本容量的大小.
Table 2 Adequate sample size of different amount of bins表2 類簇個數(shù)與有效樣本容量大小
可以看到,劃分的類簇個數(shù)越多,有效樣本容量也就越大.兼顧檢測效果和檢測效率,我們決定將實驗數(shù)據(jù)劃分為10 個類簇;同時,窗口大小設置為1 500.即:m=10,w=1500.
Gianvecchio 在文獻[30]提出了一種數(shù)據(jù)離散化的方式,根據(jù)數(shù)據(jù)包時間間隔的概率分布劃分類簇,使得數(shù)據(jù)落入每一個類簇中的概率相等.作者認為,這樣劃分類簇的好處是使得程序可以在常數(shù)時間內決定采集到的每一個數(shù)據(jù)項屬于哪個類簇.如果將數(shù)據(jù)劃分m類,并用F(x)表示時間間隔數(shù)據(jù)的分布函數(shù),那么落入每個類簇的概率為1/m;同時,對于某個特定的數(shù)值x,可以通過來計算數(shù)據(jù)落入的類簇.
這里,我們按照正常網(wǎng)絡中的數(shù)據(jù)分布情況來對數(shù)據(jù)進行等概率劃分類簇,類簇個數(shù)為10,因此落入每個類簇的概率是10%.我們需要找到正常數(shù)據(jù)對應指數(shù)分布的10%,20%,...,90%的分位點,來確定每個類簇的邊界.這樣處理的好處是不管正常信道中的包間隔數(shù)據(jù)的分布情況是怎樣的,數(shù)據(jù)離散化處理后,正常的數(shù)據(jù)分布情況一定是均勻分布,可以統(tǒng)一處理正常數(shù)據(jù)的分布特性.這里確定10 個類簇的范圍見表3.
Table 3 Binning strategy for data discretization表3 數(shù)據(jù)離散化劃分類簇方案
數(shù)據(jù)離散化后,落入每個區(qū)間的數(shù)據(jù)均由該區(qū)間的代表數(shù)值來表示.代表數(shù)值通過計算每個區(qū)間的平均值得到,對于類簇ci,給定其區(qū)間的左右邊界ai,bi,可以利用下面的式子計算代表數(shù)值vi:
根據(jù)上文中的參數(shù)設定,我們可以將算法編程實現(xiàn),提取正常信道的數(shù)據(jù)特征.這里,我們通過程序實時抓包得到了24 610 個IP 數(shù)據(jù)包時間間隔數(shù)據(jù),共可以劃分成16 個大小為1 500 的檢測窗口.對于每個窗口的數(shù)據(jù)離散化后,計算熵值和差分熵值,得到的結果見表4.
Table 4 Testing result of data from legitimate channel表4 正常信道數(shù)據(jù)的檢測結果
求得各個檢測窗口的熵值和差分熵值數(shù)據(jù)后,可以通過計算這些數(shù)據(jù)的平均值提取正常信道數(shù)據(jù)的特征,確定算法中的參數(shù)EN0和DEN0的值,得到的結果為:EN0=1.407,DEN0=1.762.
最后確定εE和εD的值.這里,根據(jù)3 倍標準差的準則,確定它們的值如下:εE=0.831,εD=1.062.
以上是算法實現(xiàn)過程中的一些參數(shù)設定.
本節(jié)通過實驗檢驗算法的性能和效果.我們通過程序模擬構建包含隱蔽信道的異常數(shù)據(jù),然后用我們提出的算法進行檢測,統(tǒng)計檢測隱蔽信道的準確率.
對于對照實驗參數(shù)的設定,我們將采用4 種檢測算法作為對照組,分別是Cabuk 提出的ε相似度算法和隨機性檢測算法、Gianvecchio 提出的CCE 算法以及熵評估算法.這里需要說明的是,熵評估算法是指直接考察待測數(shù)據(jù)的熵值大小來判定待測數(shù)據(jù)中是否包含隱蔽信道(即:計算待測數(shù)據(jù)的熵值低于指定閾值,則認為待測數(shù)據(jù)包含隱蔽信道).Gianvecchio 在其實驗中將熵評估算法作為CCE 算法實驗的對照實驗,進而說明CCE 算法的先進性.在這里,熵評估算法也是我們提出的差分熵算法的一部分,因此,這里也效仿Gianvecchio 的做法,將熵評估算法作為實驗的對照組,驗證差分信息熵算法的效果.通過對照實驗,評估差分熵在檢測隱蔽信道過程中的作用.利用本文提出的差分熵檢測算法與以上4 種檢測算法對同樣的數(shù)據(jù)進行檢測,通過對比檢測結果,評估本文提出的算法的性能和效果.以上4 種算法的實現(xiàn)原理前文中已有說明,這里主要說明算法中相關參數(shù)的設定.
· 隨機性檢測
隨機性檢測算法通過考察待測數(shù)據(jù)標準差變化情況,來判定待測數(shù)據(jù)中是否包含隱蔽信道.Cabuk 在提出該算法時,在2 000 的檢測窗口下,設定子窗口大小為250 和100 進行了實驗.而Gianvecchio 在文獻[30]中介紹CCE 算法時,也將隨機性檢測算法作為對照組,在其實驗中,作者同樣選擇2 000 大小的檢測窗口,以100 為子窗口進行了隨機性檢測算法的對照實驗.根據(jù)作者給出的實驗結果數(shù)據(jù),在當前參數(shù)設定下,隨機性檢測算法可以對正常數(shù)據(jù)和隱蔽信道數(shù)據(jù)達到很好的區(qū)分.基于以上因素,我們選擇100 為子窗口大小進行隨機性檢測算法的對照實驗.此時,對于正常數(shù)據(jù)的16 個檢測窗口,每個檢測窗口數(shù)據(jù)均可以通過算法得到15 個不同的標準差值,通過計算任意兩個標準差值的相似度值,進而得到105 個數(shù)據(jù),計算這些數(shù)據(jù)的標準差,就是該算法的輸出結果.通過計算16 個檢測窗口結果的平均值,就可以得到我們實驗中用到的對照閾值.我們通過計算,得到該閾值大小為0.07,檢測結果低于該閾值的數(shù)據(jù)均被認為包含隱蔽信道.
·ε相似度
Cabuk 在文獻[21]中對于ε相似度算法的測試中,將參數(shù)ε設定為0.005,0.008,0.01,0.02,0.03 和≥0.1 共6 種不同的值,并將算法檢測的閾值設定為μ+σ,μ+1.5σ,μ+2σ,Max 共4 種不同的值,其中μ,σ,Max 分別表示ε相似度算法檢測合法數(shù)據(jù)所得結果的均值、標準差以及最大值.Cabuk 對于上面每一種ε和閾值的組合進行了測試.根據(jù)作者給出的實驗結果,當檢測閾值設定為μ+σ和μ+1.5σ時,對于每一種ε參數(shù)的設定,檢測效果都比較好.此時,對于隱蔽信道的檢測可以達到10%以下的漏檢率,對于正常信道的檢測則可以達到30%以下的誤檢率.我們的實驗設定參考Cabuk 的實驗過程,將ε參數(shù)設定為0.02,閾值則設定為μ+1.5σ.通過對正常數(shù)據(jù)的測試,我們ε相似度算法的對照實驗中的測試閾值設定為0.973.測試結果高于此閾值時,被認為可能包含隱蔽信道.
· CCE
對于CCE 算法,Gianvecchio 提出了一種基于樹形結構的程序實現(xiàn)方式,使得程序時間復雜度可以保持在O(n·m·log(Q))水平,同時,空間復雜度為O(n·m)[30],其中,n,m,Q分別表示測試的數(shù)據(jù)總量、考察的最長序列長度以及數(shù)據(jù)離散化過程中劃分類簇的個數(shù).我們在前文中已經(jīng)對于數(shù)據(jù)離散化作出說明,這里我們同樣設定Q值為10;同時,為了兼顧檢測效果和檢測效率,我們設定考察的最長序列為10.通過對正常數(shù)據(jù)的測試,我們可以得到測試結果閾值為0.439.檢測結果低于該閾值的數(shù)據(jù),均被認為可能存在隱蔽信道.
· 熵評估算法
熵評估算法直接考察待測數(shù)據(jù)的信息熵值來判定待測數(shù)據(jù)是否包含隱蔽信道.前文中已經(jīng)說明,引入熵評估算法作為當前實驗的對照組的目的,是對差分熵在隱蔽信道檢測中所起到的作用進行更深入地評估,熵評估算法過程是本文提出的差分熵算法過程的子過程.這里的閾值前文中已經(jīng)給出,大小為1.407,低于該閾值的數(shù)據(jù)均認為其中包含隱蔽信道.另外,熵評估算法在檢測過程中同樣需要數(shù)據(jù)離散化的步驟,離散化的過程與差分熵算法使用的離散化過程是相同的,具體步驟前文中已有說明,這里不再贅述.
可見,我們當前實驗的網(wǎng)絡環(huán)境中的數(shù)據(jù)包時間間隔的隨機性非常小.這一點,和Cabuk 以及Gianvecchio提出的“正常數(shù)據(jù)隨機性比隱蔽信道數(shù)據(jù)高”的假設是不一致的.正如前文所述,正常信道數(shù)據(jù)的特征由網(wǎng)絡環(huán)境決定,我們不可以在沒有進行實際測試的情況下,對正常信道數(shù)據(jù)的特征給出任何的假設.
實驗中,我們主要對IPCTC,TRCTC,JitterBug 這3 種類型的時序型隱蔽信道的數(shù)據(jù)進行了檢測,這3 種類型的隱蔽信道的實現(xiàn)原理前文已有說明.測試數(shù)據(jù)通過編程模擬得到.
· IPCTC
Cabuk 在其IPCTC 隱蔽信道的實現(xiàn)中,模擬了IPCTC 隱蔽信道的3 種形式:單一時間間隔、多種時間間隔、含噪聲.單一時間間隔的IPCTC 隱蔽信道僅采用了1 個固定的時間間隔值,如要發(fā)送比特1,則在該時間間隔內發(fā)送一個數(shù)據(jù)包,否則,發(fā)送端保持沉默;多種時間間隔的IPCTC 則采用了多個不同的時間間隔的值,發(fā)送端每隔t個數(shù)據(jù)包就調整一次發(fā)送的時間間隔,這里的時間間隔之間的切換方式可以是輪換也可以是隨機選擇;第3類隱蔽信道則是在信道中引入了噪聲.在我們的實驗中,共實現(xiàn)了4 種不同的IPCTC 隱蔽信道,其中:單一時間間隔的類型實現(xiàn)了兩種,時間間隔分別為20ms 和80ms;多個時間間隔的類型實現(xiàn)了2 種,時間間隔采用{20ms,40ms,60ms}這3 種,時間間隔的切換方式有輪換切換和隨機切換兩種方式,切換的頻率為50,即:每隔50 個數(shù)據(jù)包,就切換一次時間間隔.對于每一種IPCTC 信道,我們通過程序生成了200 000 條數(shù)據(jù).具體情況見表5.
Table 5 Testing data of IPCTC for experiment表5 IPCTC 隱蔽信道實驗數(shù)據(jù)
· TRCTC
TRCTC 隱蔽信道是IPCTC 的改進,其發(fā)送數(shù)據(jù)的時間間隔不再是隨意確定,而是通過對合法數(shù)據(jù)采樣得到.用于發(fā)送比特0 的時間間隔的集合記作S0,用于發(fā)送比特1 的時間間隔的集合記作S1.集合S0和S1互不相交,二者的總和就是合法信道中所有出現(xiàn)過的時間間隔值.這里主要研究了基于不同的比例劃分下指定S0和S1集合構成的TRCTC 隱蔽信道.根據(jù)S0在全集中所占的比例,我們構建了3 條不同的TRCTC 隱蔽信道,同樣對于每一條信道,通過程序生成200 000 條數(shù)據(jù).具體情況見表6.
Table 6 Testing data of TRCTC for experiment表6 TRCTC 隱蔽信道實驗數(shù)據(jù)
表中,S0和S1集合中的時間間隔數(shù)據(jù)通過這樣的方式得到:首先統(tǒng)計正常信道中出現(xiàn)的時間間隔值以及每個值出現(xiàn)的頻率,然后根據(jù)規(guī)定的比例,選擇適當?shù)臄?shù)值構成集合S0,剩余的數(shù)值構成S1.
· JitterBug
JitterBug 隱蔽信道的數(shù)據(jù)通過修改正常信道的數(shù)據(jù)得到.其中,時間參數(shù)ω的選擇直接決定了信道的效果.本文提出差分信息熵檢測算法的一個目的就是彌補CCE 算法在檢測JitterBug 隱蔽信道時的不足.JitterBug 隱蔽信道的檢測是我們實驗研究的主要內容.下文中,我們取ω值為10,20,30,...,1000 共100 個不同的值,構建了100條不同的JitterBug 隱蔽信道.同樣地,對于每一條隱蔽信道,我們會通過程序生成200 000 條數(shù)據(jù).
與差分熵算法的參數(shù)設定相同,實驗中作為對照實驗的4 種算法在檢測時也將檢測窗口確定為1 500,因此,200 000 條數(shù)據(jù)就可以構成133 個檢測窗口.
5.3.1 IPCTC 隱蔽信道檢測實驗結果
表7~表11 分別顯示了ε-相似度算法、CCE 算法、隨機性檢測算法、熵評估算法以及差分熵算法對于IPCTC隱蔽信道的檢測效果.表中給出了算法檢測133 個檢測窗口數(shù)據(jù)所得結果的平均值和標準差以及每個算法判斷規(guī)則下的檢測率.表7 給出了各個窗口中小于ε參數(shù)的相似度值比例的均值和標準差;表8 給出了CCE 算法檢測得到的每個窗口的熵率值的均值和標準差;表9 給出了每個窗口的隨機性檢測結果的均值和標準差;表10 給出了各個窗口熵值的均值和標準差;最后,表11 給出了差分熵檢測算法檢測得到的熵值和差分熵值的均值和標準差.
Table 7 Testing result of ε-similarity algorithm in IPCTC data表7 IPCTC 隱蔽信道檢測實驗ε相似度算法檢測結果
Table 8 Testing result of CCE algorithm in IPCTC data表8 IPCTC 隱蔽信道檢測實驗CCE 算法檢測結果
Table 9 Testing result of randomness testing algorithm in IPCTC data表9 IPCTC 隱蔽信道檢測實驗隨機性檢測算法檢測結果
Table 10 Testing result of entropy testing algorithm in IPCTC data表10 IPCTC 隱蔽信道檢測實驗熵評估算法檢測結果
Table 11 Testing result of difference entropy algorithm in IPCTC data表11 IPCTC 隱蔽信道檢測實驗差分熵算法檢測結果
可以看到,差分熵算法的檢測效果明顯好于ε相似度算法、隨機性檢測算法以及CCE 算法.主要原因在于其他兩種算法都是假設正常數(shù)據(jù)的隨機性比隱蔽信道數(shù)據(jù)高,因此兩種算法的策略都是檢測結果低于閾值時判定待測數(shù)據(jù)中包含隱蔽信道.我們通過實驗證明事實并非如此,在較為流暢的網(wǎng)絡環(huán)境下,信道中的數(shù)據(jù)流動相對穩(wěn)定,此時信道中的數(shù)據(jù)包傳輸速率也比較均勻,數(shù)據(jù)包的時間間隔也基本上為恒定值,隨機性較小.本文提出的算法不再對正常信道的特征做出假設,將算法處理的結果作為信道的一種特征,通過待測數(shù)據(jù)和正常數(shù)據(jù)特征的差異程度來判定待測數(shù)據(jù)是否異常,而并非通過量化的大小關系來確定是否包含隱蔽信道,因此檢測的準確率較高.
另外,從表中數(shù)據(jù)還可以看到:盡管熵評估算法是本文提出的差分熵算法的子過程,但是熵評估算法的檢測效果和差分熵算法有很大的差別.我們通過實驗發(fā)現(xiàn):僅僅通過評估信息熵值,對于正常數(shù)據(jù)和隱蔽信道數(shù)據(jù)已經(jīng)可以達到很好的區(qū)分能力.然而,Gianvecchio 在文獻[30]中描述的熵評估算法依然采用比較閾值的方式來決定檢測結果,基于作者“低于閾值的數(shù)據(jù)包含隱蔽信道”的思路,導致熵評估算法的檢測準確率很低.實驗中,我們還將熵評估算法進行了改進,將判定數(shù)據(jù)是否包含隱蔽信道的標準修改為|ENi-EN0|≤εE,即采用差分熵算法的部分判定標準,此時,熵評估算法對于4 組IPCTC 隱蔽信道的檢測率分貝為5.03%,95.72%,92.30%以及93.43%.該結果同樣低于差分熵算法,主要原因是信息熵對于待檢測數(shù)據(jù)的分布特性的評估比較充分,而對于待測數(shù)據(jù)的數(shù)值特性的評估能力比較欠缺.則也說明了采用差分信息熵在隱蔽信道檢測過程中作為評估標準的必要性.
從實驗數(shù)據(jù)可以看出,當選擇單一的時間間隔,并且時間間隔較小時,產(chǎn)生的隱蔽信道的數(shù)據(jù)特征會和正常信道的數(shù)據(jù)特征很相似,檢測的難度就會加大.對于IPCTC-1 這組數(shù)據(jù),3 種檢測算法的效果都不太理想.當增加IPCTC 信道中的傳輸時間間隔,或者引入多個可選的時間間隔時,數(shù)據(jù)的隨機性會顯著提高.Cabuk 認為,引入多個時間間隔可使IPCTC 隱蔽信道的隱蔽性增強[21],這個結論的依據(jù)是假定正常數(shù)據(jù)隨機性較高.通過上文的實驗結果可以看出:3 個算法對于IPCTC-3 和IPCTC-4 這兩組數(shù)據(jù)的檢測準確率反而比前面兩組數(shù)據(jù)更高一些.
5.3.2 TRCTC 隱蔽信道檢測實驗結果
表12~表16 總結了TRCTC 隱蔽信道檢測實驗的結果.
Table 12 Testing result of ε-similarity algorithm in TRCTC data表12 TRCTC 隱蔽信道檢測實驗ε相似度算法檢測結果
Table 13 Testing result of CCE algorithm in TRCTC data表13 TRCTC 隱蔽信道檢測實驗CCE 算法檢測結果
Table 14 Testing result of randomness testing algorithm in TRCTC data表14 TRCTC 隱蔽信道檢測實驗隨機性檢測算法檢測結果
Table 15 Testing result of entropy testing algorithm in TRCTC data表15 TRCTC 隱蔽信道檢測實驗熵評估算法檢測結果
Table 16 Testing result of difference entropy algorithm in TRCTC data表16 TRCTC 隱蔽信道檢測實驗差分熵算法檢測結果
TRCTC 采用的數(shù)據(jù)包時間間隔來自正常數(shù)據(jù)的采樣結果,因此在數(shù)值特征上,TRCTC 數(shù)據(jù)和正常信道數(shù)據(jù)有類似之處.但是TRCTC 的主要問題在于沒有考慮到每個時間間隔數(shù)值在正常信道中的分布情況.實驗中,我們根據(jù)集合S0和S1中的數(shù)據(jù)在正常信道中的比例構建了3 組TRCTC 隱蔽信道數(shù)據(jù),從實驗結果中可以看出:構建集合S0和S1使得正常信道中的數(shù)據(jù)落入兩個集合的概率相等時,數(shù)據(jù)的特征和正常信道的數(shù)據(jù)最相似,所以相比另外兩組數(shù)據(jù),5 個算法對于TRCTC-3 這組數(shù)據(jù)的檢測結果都更接近于正常信道.但是其結果依然和正常數(shù)據(jù)有較大的差異,原因在于S0和S1的二類劃分僅僅是一種粗粒度的劃分,同在S0集合中的數(shù)據(jù)在正常數(shù)據(jù)中出現(xiàn)的概率也可能是不同的,但TRCTC 沒有在構建信道時沒有考慮到這一點,因此在統(tǒng)計特性上依然會表現(xiàn)出和正常數(shù)據(jù)較大的差異.
同樣可以很明顯地看出,差分熵檢測算法在TRCTC 隱蔽信道的檢測上有非常好的效果.對于ε相似度算法和CCE 算法,TRCTC 隱蔽信道的數(shù)據(jù)也表現(xiàn)出了和正常數(shù)據(jù)不同的特征,檢測結果表明,TRCTC 數(shù)據(jù)的隨機性要比正常數(shù)據(jù)高.這和兩個算法中“隱蔽信道數(shù)據(jù)的隨機性低于正常信道數(shù)據(jù)”的思想是相悖的,因此檢測的效果不理想.
觀察表14 還可以發(fā)現(xiàn),隨機性檢測算法對于3 種TRCTC 隱蔽信道的檢測結果和正常信道非常接近.這說明隨機性檢測算法對正常信道和TRCTC 隱蔽信道的區(qū)分能力很低,而檢測結果卻好于該算法在IPCTC 隱蔽信道的實驗效果,我們通過實驗發(fā)現(xiàn):就區(qū)分能力而言,隨機性檢測算法對于IPCTC 隱蔽信道的識別能力更高,然而,基于正常信道隨機性高的假設使得該算法在IPCTC 數(shù)據(jù)中表現(xiàn)較差.這也再一次說明了在沒有進行實驗驗證的情況下,對于正常信道數(shù)據(jù)情況進行假設的做法是不可取的.
對于熵評估算法,這里可以得到和IPCTC 實驗類似的結論.由于我們的實驗環(huán)境中正常信道的隨機性很低,我們的實驗結果中,正常信道的熵值低于隱蔽信道數(shù)據(jù),因此熵評估算法的檢測率很低.通過我們改進后的熵評估算法得到的檢測率為92.43%,95.25%,97.32,同樣低于差分信息熵算法.
5.3.3 JitterBug 隱蔽信道檢測實驗結果
IPCTC 將要傳輸?shù)碾[秘信息轉換為指定的時間區(qū)間內是否發(fā)送數(shù)據(jù)包的事件,IPCTC 產(chǎn)生的數(shù)據(jù)包間隔完全沒有參照正常數(shù)據(jù),因此得到數(shù)據(jù)的可能會呈現(xiàn)出和正常數(shù)據(jù)完全不同的特征;TRCTC 數(shù)據(jù)中的數(shù)值通過正常數(shù)據(jù)采樣得到,因此TRCTC 的數(shù)據(jù)和正常數(shù)據(jù)具有相似的數(shù)值特性,但是TRCTC 在構建信道過程中忽視了通過采樣得到的每個數(shù)值的出現(xiàn)概率,這將導致TRCTC 的數(shù)據(jù)呈現(xiàn)出不同于正常數(shù)據(jù)的統(tǒng)計特性.所以,IPCTC 和TRCTC 的抗檢測能力都比較差.
JitterBug 隱蔽信道通過對正常數(shù)據(jù)包的時間間隔做出細微的修改來編碼隱秘信息.選擇合適的參數(shù)ω的值,就可以盡可能小地減少構建隱蔽信道過程中對于正常數(shù)據(jù)統(tǒng)計特性的影響.因此,JitterBug 隱蔽信道具有比IPCTC 和TRCTC 更強的抗檢測性.但是由于JitterBug 的數(shù)據(jù)包間隔均為ω/2 的倍數(shù),因此JitterBug 產(chǎn)生的包間隔數(shù)據(jù)具有較為明顯數(shù)值特性,因此就可以利用這樣的特征來檢測JitterBug 隱蔽信道.
對JitterBug 隱蔽信道的檢測是我們重點要研究的內容.實驗中,我們?yōu)閰?shù)ω賦予不同的值,得到了100 組不同的JitterBug 隱蔽信道數(shù)據(jù),然后比較3 個算法對這100 組數(shù)據(jù)的檢測效果.
ε相似度算法的檢測結果如圖14 所示.
從圖中可以看出,隨著參數(shù)ω值的增大,小于ε參數(shù)值的相似度值比例也在逐漸增加;并且在ω處于[10,340]范圍內時,ω的變化會顯著影響ε相似度算法的檢測結果.產(chǎn)生該現(xiàn)象的主要原因是:當ω的取值較小時,得到的JitterBug 數(shù)據(jù)的特征主要依賴于構建該隱蔽信道的原數(shù)據(jù)的特征;隨著ω值的增大,JitterBug 的數(shù)據(jù)特征將同時受到ω值和原數(shù)據(jù)特征的影響;而當ω值繼續(xù)增大時,原數(shù)據(jù)特征對于產(chǎn)生的JitterBug 數(shù)據(jù)的影響在逐漸減弱,因為更大的ω值意味著原始數(shù)據(jù)中更多的不同的值在構建JitterBug 過程中映射到了同一個值,因此,數(shù)據(jù)的隨機性在下降,數(shù)據(jù)之間的相似度也就逐漸在下降,于是就有更多的相似度值小于參數(shù)ε.
Fig.14 Results of ε-similarity algorithm in JitterBug圖14 JitterBug 隱蔽信道檢測實驗ε相似度算法檢測結果
基于正常信道檢測得到的閾值為0.973、高于該閾值的檢測結果被認為包含隱蔽信道的思路,我們可以看到:當ω值大于50 時,ε相似度算法可有效地檢測出JitterBug 隱蔽信道;ε值小于50 時,算法對于JitterBug 隱蔽信道的識別能力很低.然而基于常理推斷,ω值很大時,隱蔽信道數(shù)據(jù)的異常特征更加明顯.因此,過大的ω構建的隱蔽信道實用性并不強,我們更關注算法對于ω值較小時生成的JitterBug 隱信道的檢測效果.
隨機性檢測算法對于JitterBug 隱蔽信道的檢測結果如圖15 所示.
Fig.15 Results of randomness testing algorithm in JitterBug圖15 JitterBug 隱蔽信道檢測實驗隨機性檢測結果
從實驗結果中可以看出:隨著ω值的增大,隨機性檢測算法的檢測結果在逐漸減小.然而通過觀察實驗結果,當ω取值為1 000 時,實驗結果取到最小值,然而其值仍然大于檢測閾值0.07.這充分說明隨機性檢測算法對于JitterBug 隱蔽信道的檢測能力不足.事實上,當ω值很大時,隨機性檢測算法對于正常數(shù)據(jù)和JitterBug 隱蔽信道數(shù)據(jù)的識別率很高.而在實際應用中,過大的ω值會減慢JitterBug 隱蔽信道的傳輸速率,同時也更有可能暴露其異常數(shù)據(jù)的特征,因此,過大的ω參數(shù)設定下生成的JitterBug 隱蔽信道并不實用;較小的ω參數(shù)值生成的JitterBug隱蔽信道同時具備高傳輸速率和高隱蔽性的特征,隨機性檢測算法對于這樣的JitterBug 數(shù)據(jù)的識別能力是可觀的.然而,由于算法定義小于閾值的數(shù)據(jù)為隱蔽信道數(shù)據(jù),這就為算法識別隱蔽信道數(shù)據(jù)造成了誤導,這里再一次證明了正常數(shù)據(jù)隨機性高的假設是不合理的.
圖16、圖17 分別描述了CCE 算法和差分熵算法對于JitterBug 隱蔽信道的檢測結果.
Fig.16 Results of CCE algorithm in JitterBug圖16 JitterBug 隱蔽信道檢測實驗CCE 算法檢測結果
Fig.17 Results of difference entropy algorithm in JitterBug圖17 JitterBug 隱蔽信道檢測實驗差分熵算法檢測結果
可以看到:對于CCE 算法得到的熵率值以及差分熵算法得到的熵值和差分熵值,三者圖像的形狀很相似.產(chǎn)生此結果的原因可能是JitterBug 的數(shù)據(jù)是通過修改正常數(shù)據(jù)得到的,因此其分布特征會依賴于正常數(shù)據(jù)的分布特征.而實驗中我們發(fā)現(xiàn),正常數(shù)據(jù)的隨機性較低,根據(jù)前文的分析,數(shù)據(jù)的隨機性增大時,差分熵和熵值的差別也在逐漸增大,因此數(shù)據(jù)的隨機性較小時,差分熵值和熵值就會有較為相似的結果.
我們還可以從圖像中看出,當參數(shù)ω大于100 時,CCE 算法和差分熵算法得到的結果都在隨著ω的增加而逐漸下降;但相比差分熵值,當ω參數(shù)的值增大時,CCE 算法得到的熵率并未出現(xiàn)很明顯的下降趨勢.這說明差分熵值對于數(shù)據(jù)特征的變化更為敏感,這也意味著差分熵算法的靈敏度更高一些.
關于熵評估算法檢測JitterBug 隱蔽信道的實驗情況,其結果在圖16 中已經(jīng)有所呈現(xiàn),圖中的曲線II 即為不同ω參數(shù)設定下的熵值.通過圖像可以看到:類似于前面隨機性檢測算法的實驗結果,雖然隨著ω參數(shù)的增大,檢測結果在逐漸減小,當ω參數(shù)大于300 后,熵值結果將低于我們的閾值1.40,此時熵評估算法對于JitterBug 隱蔽信道的檢測效果比較好.然而,前文中已經(jīng)說明,過大的ω值構建的JitterBug 隱蔽信道的實用性并不強.因此,對于這些數(shù)據(jù)檢測效果好并沒有太大的意義.因此,Gianvecchio 提出的熵評估算法對于JitterBug 隱蔽信道的檢測能力比較弱.而改變熵評估算法的評定標準為|ENi-EN0|≤εE后,所有的實驗結果均會落在EN0±εE的范圍內.根據(jù)算法的定義,這意味著所有的數(shù)據(jù)均會被判定為正常數(shù)據(jù),這說明改進判定規(guī)則后的熵評估算法依然無法有效地檢測JitterBug 隱蔽信道.
最后,根據(jù)每個算法判定是否包含隱蔽信道的準則,統(tǒng)計每個算法的檢測準確率,如圖18 所示.
Fig.18 Detecting rate of JitterBug covert channel圖18 JitterBug 隱蔽信道檢測率
從圖中可以看到:ω值大于50 時,ε相似度算法檢測效果較好;ω值在60~190 的范圍內,差分熵檢測算法表現(xiàn)出了較好的檢測效果;ω值在0~60 范圍內,CCE 算法的檢測效果較好;而當ω大于300 后,熵評估算法效果很好.
當ω值大于200 時,CCE 算法和差分熵算法的檢測率為0.產(chǎn)生該現(xiàn)象的主要原因是:當ω值遠遠大于正常數(shù)據(jù)中的數(shù)值時,得到的JitterBug 數(shù)據(jù)中的數(shù)值有很大的概率會落在原始數(shù)據(jù)的范圍之外,此時再進行數(shù)據(jù)離散化時,就有很大的概率將所有的數(shù)據(jù)劃分到同一個類簇中,于是得到的數(shù)據(jù)將會是常數(shù)序列.就這一點而言,數(shù)據(jù)離散化的過程會使得原始數(shù)據(jù)的主要特征丟失,因而導致檢測算法失效.這也說明算法的的實現(xiàn)過程中還有一些問題,有待改進.
以上實驗證明,差分熵檢測算法在檢測IPCTC,TRCTC 以及JitterBug 隱蔽信道方面表現(xiàn)出了比ε相似度算法、隨機性檢測算法以及CCE 算法更好的效果.差分熵檢測技術同時考察了待測數(shù)據(jù)的數(shù)值特性和分布特性,檢測指標更加嚴格,能更深入地挖掘數(shù)據(jù)中存在的特征.對于JitterBug 隱蔽信道,差分熵檢測技術可以找到其數(shù)據(jù)中不同于正常數(shù)據(jù)的數(shù)值特性,從而達到較好的檢測效果.相比之下,ε相似度算法和隨機性檢測算法考察了數(shù)據(jù)的數(shù)值特性,而數(shù)據(jù)的分布特性在算法對數(shù)據(jù)進行排序時和計算標準查過程中已經(jīng)造成了部分丟失;CCE算法和熵評估算法則主要考察了數(shù)據(jù)的分布特性,忽視了數(shù)據(jù)的數(shù)值特性.因此,這4 種算法在檢測JitterBug 中效果不太理想.而熵評估算法那和ε相似度算法雖然在ω取較大值是表現(xiàn)出很好的效果,但是對于JitterBug 隱蔽信道的檢測,我們更關注ω取較小值是的情況.
本文基于前人的研究成果,提出了一種基于差分信息熵的網(wǎng)絡時序型隱蔽信道檢測技術.文中首先給出了差分信息熵的概念;然后,通過理論分析總結了一些差分信息熵所具備的性質;然后,提出基于差分信息熵的網(wǎng)絡時序型隱蔽信道檢測算法,并通過實驗證明算法在IPCTC,TRCTC 和JitterBug 隱蔽信道的檢測上具有較好的效果.本文所涉及的研究工作還存在一些問題,這也是今后研究工作的主要方向.
(1)對于差分信息熵的研究,目前主要基于離散型隨機變量.網(wǎng)絡數(shù)據(jù)包的時間間隔數(shù)據(jù)從某種程度上可以看作是連續(xù)型的隨機變量,文中涉及到的數(shù)據(jù)離散化處理將連續(xù)型隨機變量轉化為離散型,但從實驗結果也可以看到,該處理步驟會使得原始數(shù)據(jù)中的部分數(shù)值特性和分布特性丟失,使得檢測結果產(chǎn)生誤差;
(2)文中對于差分信息熵的部分理論僅僅給出了不完全的分析,更嚴密、更準確的分析結果還有待研究;
(3)實驗測試了新算法對于IPCTC,TRCTC 和JitterBug 這3 種隱蔽信道的檢測效果,而對于其他類型的隱蔽信道的效果還需要更多的研究工作.