李彥峰 , 丁麗萍 , 吳敬征 , 崔 強 , 劉雪花 , 關 貝 , 王永吉
1(中國科學院 軟件研究所 并行軟件與計算科學實驗室,北京 100190)
2(中國科學院大學,北京 100049)
3(廣州中國科學院 軟件應用技術研究所 電子數據取證實驗室,廣東 廣州 511458)
4(計算機科學國家重點實驗室(中國科學院 軟件研究所),北京 100190)
5(中國科學院 軟件研究所 智能軟件研究中心,北京 100190)
6(中國科學院 軟件研究所 互聯網軟件技術實驗室,北京 100190)
7(中國科學院 軟件研究所 協同創新中心,北京 100190)
隨著網絡技術的發展,網絡信息傳輸安全越來越受到重視.一方面,需要檢測和阻斷通過網絡傳輸的惡意信息(例如網絡攻擊、病毒、木馬程序等);另一方面,需要保障通過網絡傳輸的正常通信信息(例如商業信息、個人隱私信息等)的安全性和隱私性.網絡隱蔽信道因其隱蔽通信的特性,越來越多地應用在網絡信息傳輸安全的這兩個方面.
網絡隱蔽信道是網絡環境下違反通信限制規則進行隱蔽信息傳輸的通信信道,使用網絡信息載體(例如網絡協議、網絡數據包等)的載體特征(例如協議字段、時間特征等)的特征模式(例如值調制模式、時間間隔模式等)進行隱蔽信息傳輸,防止信息被發現.
在惡意信息傳輸方面,由于網絡通信的審查隨著網絡安全技術的發展越來越嚴格,傳統基于正常通信協議的傳輸方式的網絡惡意行為往往易于發現和控制,因此,攻擊者會利用網絡隱蔽信道繞過網絡審查機制隱蔽傳輸信息的特點實施網絡惡意行為,例如蠕蟲病毒傳播[1,2]、秘密構建“僵尸網絡”[3,4]、發起分布式拒絕服務攻擊(distributed denial of service,簡稱DDoS)[5?7]、隱蔽地泄露數據或敏感信息[8,9]、被木馬程序利用進行隱蔽通信[10,11]、破壞匿名網絡的匿名性[12?15]、被攻擊者用來發送認證信息[12,16?18]等.
在保障網絡通信的安全性和隱私性[19,20]方面,由于計算能力的提升和新的計算架構的發展(例如并行計算、分布式計算等),以及針對加密算法和應用的攻擊[21?23],傳統的保護數據傳輸安全性和隱私性的加密技術面臨越來越大的挑戰.加密技術的目的是通過使信息變得不可讀從而防止第三方讀取數據,網絡隱蔽信道技術的目的是防止信息本身被發現[24],作為新的通信方式和通信策略,可以對傳統加密通信進行有力的補充,例如進行軍用通訊[24]、記者用網絡隱蔽信道繞過輿論審查發布自由言論[12]、安全身份認證[25]等.由于網絡隱蔽信道在網絡信息傳輸安全性的兩方面應用,對網絡隱蔽信道研究非常必要.
目前,對網絡隱蔽信道的研究和綜述大多成文較早,且關注于一項具體的技術方面[12,26?34],缺乏從全局把握整個網絡隱蔽信道領域的研究,對于網絡隱蔽信道構建方法多關注技術細節而缺少體系架構,從而無法對網絡隱蔽信道技術向系統化、規模化發展提供支持.本文嘗試從構建、評估、對抗這3 個方面對網絡隱蔽信道相關研究進行全面的歸納和分析.第1 節介紹了網絡隱蔽信道的定義、分類、能力維度等基本概念.第2 節從碼元設計、信息編碼和信道優化這3 個方面歸納分析了存儲型和時間型兩類網絡隱蔽信道構建技術.第3 節從隱蔽性、魯棒性和傳輸效率這3 個方面總結了網絡隱蔽信道評估方法.第4 節從消除、限制、檢測這3 個方面梳理了網絡隱蔽信道的對抗技術.最后總結全文,并對未來研究方向進行了展望.
網絡隱蔽信道是隱蔽信道的一個分支,屬于信息隱藏技術(information hiding)[35],以使數據難以被察覺和發現為主要目的[2].隱蔽信道的概念最初是由Lampson 等人于1973 年提出的,定義為本意不是被設計用來傳輸信息的、破壞通信安全策略的通信信道[26?28].國際標準化組織(ISO)發布的《信息技術安全評估通用準則》(ISO/IEC 15408,簡稱CC 標準)[36]對隱蔽信道的定義是,允許進程以違背安全策略的方式傳輸信息的通信通道[28,37].Iglesias 等人[38]將隱蔽信道定義為寄生在正常通信通道中,繞過安全防護隱蔽傳輸信息的通信通道.使用非信息傳輸通道、違反安全策略、寄生于正常通信是隱蔽信道的主要特點.網絡隱蔽信道作為隱蔽信道的一個分支,同樣具有這些特點.
隨著計算機網絡的發展,隱蔽信道的研究也擴展到了網絡環境中.網絡隱蔽信道定義為:在網絡環境下,違反通信限制規則進行隱蔽信息傳輸的通信信道[24,27],使用網絡信息載體(例如網絡協議、網絡數據包等)的載體特征(例如協議字段、時間特征等)的特征模式(例如值調制模式、時間間隔模式等)進行隱蔽信息傳輸[24].網絡隱寫術是與網絡隱蔽信道相近的技術,網絡隱寫術指通過人能夠理解的數據載體進行信息傳輸(例如文字、音頻、視頻等)[24],而網絡隱蔽信道通過機器“理解”的協議載體進行信息傳輸(例如網絡協議頭字段),二者使用的網絡資源載體不同,因此使用網絡信息數據部分進行隱藏信息傳輸的方法不在網絡隱蔽信道研究范圍內.
囚徒模型是隱蔽信道的經典對抗模型[39]:兩個囚徒Alice 和Bob 被關進監獄并且計劃逃跑,為了協商逃跑的計劃,他們需要進行通信.但是看守Wendy 監視著他們之間所有的通信信息,一旦發現任何可疑信息,就會斷絕他們與外界的通信.因此,Alice 和Bob 必須使隱藏信息包含在表面上看起來無害和正常的信息之中,使Wendy無法發現.不同計算環境下的隱蔽信道都遵循囚徒模型[40?43].Handel 等人[34]將隱蔽信道的囚徒模型進行了擴展,將這個場景引入到了計算機網絡通信中:Alice 和Bob 使用兩臺聯網的計算機進行通信,在看起來正常的公開信道(overt channel)中包含了隱蔽信道(covert channel),Alice 和Bob 共享一個秘密信息,用來編碼、解碼、解密或認證這些隱藏信息.Wendy 對網絡進行管理并監視通過的流量,對隱蔽通信進行消除或限制.
囚徒模型如圖1 所示.

Fig.1 Prisoner problem圖1 囚徒問題
不同的研究者從不同的角度對網絡隱蔽信道進行了分類,從不同的角度歸納了隱蔽信道的特征和差異,包括存儲型/時間型網絡隱蔽信道分類、基于OSI 通信模型的分類、基于構建技術模式的分類和基于信道特征的分類.
Llamas 等人[33]依據傳統隱蔽信道的分類方法將網絡隱蔽信道分為存儲型網絡隱蔽信道和時間型網絡隱蔽信道兩大類:存儲型網絡隱蔽信道使用協議數據單元內部的信息傳輸隱蔽數據(例如網絡協議頭),而時間型網絡隱蔽信道使用協議數據單元的時間特性(例如數據包間隔)傳輸隱蔽數據.存儲型/時間型是網絡隱蔽信道最基本的分類方法,區分了兩類構建機制截然不同的隱蔽信道,大部分研究都接收了這個分類,并在這個分類的基礎上開展研究[44?47].
Handel 等人[34]基于開放系統互連參考模型(open system interconnect,簡稱OSI)對網絡隱蔽信道進行了分類,對應OSI 通信模型的7 層,將網絡隱蔽信道分為7 類,并對每一層可用來傳遞隱蔽數據的資源和方法做了分析.基于OSI 通信模型的分類對網絡隱蔽信道的載體進行劃分,可以更加直觀地了解網絡隱蔽信道使用的網絡資源.
Wendzel 等人[45]使用模式語言標記語言(pattern language markup language,簡稱PLML)方法將1987 年~2013 年的109 個隱蔽信道構建技術分為11 個不同的模式,并且大部分(69.7%)隱蔽信道構建技術都可以歸在4個類別中.基于模式的分類在存儲型/時間型網絡隱蔽信道分類方法基礎上進行了細化,通過構建技術將網絡隱蔽信道進一步劃分,打破了使用網絡載體類型的限制,從形式上對網絡隱蔽信道隱藏信息的技術方法進行了歸納和總結,使網絡隱蔽信道的構建可以更方便地從一種網絡載體遷移到另一種網絡載體中.
除了以上主要分類外,還有一些基于網絡隱蔽信道不同特征的分類方法.Iglesias 等人[38]以檢測視角對利用傳輸控制協議/互聯協議(transmission control protocol/internet protocol,簡稱TCP/IP)的網絡隱蔽信道的編碼特征分為了5 類,包括使用一個或多個協議頭字段的值與隱蔽信息符號進行對應[48?50]的值與符號對應方式、使用協議字段值的范圍作為隱蔽信息符號[51,52]的值的范圍作為符號方式、使用一個數據包發送隱蔽信息并用特殊的標識字段對隱蔽信道的數據包進行標識[53,54]的容器字段方式、利用網絡通信的時間屬性隱藏信息[55,56]的時間信道方式、把隱蔽信息隱藏在一系列數據包中的變化中[51,57]的派生方式.Cai 等人[30]提出了基于熵特征的網絡隱蔽信道分類,由于隱蔽信道受限于所使用的公開資源,而公開資源可使用熵進行描述,因此可以使用熵對隱蔽信道進行分類,并可以根據隱蔽信道,利用公開資源的方法進行進一步細分.Brodley 等人[58]基于噪聲特征將網絡隱蔽信道分為有噪聲信道和無噪聲信道,其中,有躁聲信道和無躁聲信道是通過信道是否包含正常噪聲和通信噪聲進行區分的,有噪聲信道會包含網絡共享資源自身產生的噪聲,從而影響信息傳遞的準確性和信道容量.這些機遇不同特征的分類方法是對以上3 個主要分類方法的補充,從不同側面描述了網絡隱蔽信道的特點.
網絡隱蔽信道的能力維度是網絡隱蔽信道所應具備的能力方面.Archibald 等人[59]認為,時間隱蔽信道應具有4 個方面的特征:抗檢測性(non-detectability)、抗暴露性(non-disclosure)、抗干擾性(non-disruptability)、吞吐量(throughput).其中:抗檢測性指隱蔽信道無法被監測者發現;抗暴露性指即使信道被檢測到隱蔽信息也無法被解碼;抗干擾性指信道抵抗網絡環境變化的能力,例如網絡延遲、抖動、丟包等,在類似情境下能夠正確傳遞隱蔽信息的能力;吞吐量指單位時間內傳輸的最大數據量.其他研究者大都以類似的能力維度為目標設計和構建網絡隱蔽信道[60?62].歸納和總結相關研究,隱蔽性、魯棒性和傳輸效率是網絡隱蔽信道最常用的3 個能力維度:隱蔽性指網絡隱蔽信道不被發現的能力,魯棒性指網絡隱蔽信道抗干擾和準確傳輸數據的能力,傳輸效率用來指網絡隱蔽信道單位時間內傳輸數據量的能力.網絡隱蔽信道的能力維度為網絡隱蔽信道的構建、評估和對抗提供了目標和方向.
網絡隱蔽信道的本質是信息傳輸,從技術環節上可分為碼元設計、信息編碼和信道優化3 個方面.
· 碼元是承載信息量的基本信號單位,網絡隱蔽信道碼元設計指選取具有隱蔽特性的網絡信息載體、載體特征及特征模式作為隱蔽信息的碼元攜帶隱蔽信息的方法,是網絡隱蔽信道構建最核心的部分.其中,網絡隱蔽信道的信息載體包括網絡協議、網絡數據包等,載體特征包括協議字段、時間屬性等,特征模式包括值調制模式、時間間隔模式等.簡而言之,網絡隱蔽信道的碼元是網絡信息載體、載體特征、特征模式的組合.
· 信息編碼指信息從一種形式或格式轉換為另一種形式或格式的過程,網絡隱蔽信道信息編碼指使用網絡隱蔽信道碼元進行編碼,從而生成隱蔽信息的過程,往往用來提升網絡隱蔽信道的魯棒性和傳輸效率.
· 信道優化指在碼元設計和信息編碼生成隱蔽信息的基礎上,通過其他技術手段提升隱蔽信道的能力(隱蔽性、魯棒性或傳輸效率),例如為網絡隱蔽信道提供額外功能.
網絡隱蔽信道從構建機制上可分為存儲型和時間型網絡隱蔽信道兩類,這兩種隱蔽信道有著各自的優缺點.Wendzel 等人[45]和Swinnen 等人[63]認為:存儲型網絡信道容量較大,可以利用載體信道的可靠性傳輸(如TCP/IP 協議)受網絡條件的影響較小,但是易于被基于內容的檢測方法進行針對性檢測[53];而時間型網絡隱蔽信道較難以檢測,但是信道容量小而且發送者和接受者往往需要同步,并且很容易受網絡條件的變化(如延遲、丟包、噪音)的影響.綜上所述,存儲型隱蔽信道的特點是隱蔽性較低、魯棒性較高、傳輸效率較高,時間型隱蔽信道的特點是隱蔽性較高、魯棒性較低、傳輸效率較低.因此在構建網絡隱蔽信道時,應根據網絡隱蔽信道類型特點進行有針對性的設計.
· 碼元設計方面,存儲型網絡隱蔽信道使用的網絡載體一般為網絡協議,利用的載體屬性為協議字段,類型多樣的網絡協議為存儲型網絡隱蔽信道設計提供了充分的信息載體空間和設計素材,因此,網絡隱蔽信道的傳輸效率較高,種類也較多;但由于網絡協議的類型和和屬性有限,易于被針對,因此,存儲型網絡隱蔽信道需要其他手段對隱蔽性方面進行補充.而時間隱蔽信道使用的信道載體一般為網絡數據包,利用的載體屬性為時間特性,可選擇的方法較少;另一方面,由于網絡數據包的時間特性不易檢測,為時間型網絡隱蔽信道提供了相對充分的隱蔽性.
· 信息編碼方面,存儲型網絡隱蔽信道和時間型網絡隱蔽信道都會利用編碼方式提高傳輸效率,而時間型網絡隱蔽信道在魯棒性方面更倚重信息編碼.Wendzel 等人[45]認為:由于存儲型隱蔽信道可以利用公開信道的可靠性傳輸機制(例如TCP 協議),因此信息編碼主要用來提升網絡隱蔽信道的傳輸效率.時間型隱蔽信道的傳輸依賴于數據幀、數據包或信息的時間屬性,很容易受噪聲影響,而且傳輸效率不高,因此在編碼方面會著重提升信道的魯棒性和傳輸效率.
· 信道優化方面,大量的網絡協議和屬性可以給存儲型網絡隱蔽信道優化帶來充分的空間提供新的功能,從而彌補存儲型網絡隱蔽信道易被針對的特點.時間型網絡隱蔽信道并沒有充分的載體提供額外的優化功能,但是可以通過改進時間特性的使用進一步提升隱蔽性.
存儲型/時間型網絡隱蔽信道構建技術環節與網絡隱蔽信道能力維度的匹配見表1.

Table 1 Network storage/timing covert channel construction technical process and capability dimension表1 存儲型/時間型網絡隱蔽信道構建技術環節與能力維度
2.3.1 碼元設計
豐富的網絡協議和網絡協議的特性,為存儲型網絡隱蔽信道的構建提供了大量的素材.Wendzel 等人[63]按照網絡隱蔽信道構建技術將存儲型隱蔽信道構建技術分為7 個模式.
(1) 調制大小模式:使用協議頭元素或PDU 的大小進行隱蔽信息編碼,例如調制LAN 幀的數據塊大小編碼[42]、調制IEEE 802.3 幀的填充字段大小填充編碼[64]、調制IP 分片的大小編碼[32,65]、使用網絡數據包的信息長度編碼[66]、使用IPsec 信息的長度編碼[67]、使用VPN 的MTU 的大小編碼[67]等.
(2) 序列模式:通過改變協議頭元素或PDU 元素的序列傳遞隱蔽信息,例如改變HTTP 協議頭字段序列[68]、改變DHCP 選項序列[69]、改變FTP 協議命令序列[70]等.序列模式包含兩個子類:第1 個子類被稱為位置模式,通過改變協議頭或PDU 元素的位置對隱藏信息進行編碼,例如改變DHCP 選項列表中某一選項的位置[69]等;第2 個子類被稱為元素數量模式,例如改變DHCP 數據包中選項的數量[69]、改變IP 數據包分片的數量[65]等.
(3) 增加冗余模式:在協議頭或PDU 內增加新的空間用于隱藏數據,如構建在選項中嵌入隱藏數據IPv4數據包[71]、增加新的IPv6 目的地址選項嵌入隱藏數據[72]、通過增加額外的字段擴展HTTP 協議頭[68]、修改IPv4 協議頭的record route option 的指針和長度的值構造新的空間隱藏數據[71]、增加隨機位加密SSH 信息[73]、SMTP 數據包頭增加額外的字段、在DHCP 的chaddr 字段的未使用位中隱藏數據[69]、在IP 數據包中封小于以太幀的空間[74]、XMPP 的leading/trailing 選項的空白空間[75]等.
(4) PDU 錯誤/丟失模式:構建包含隱藏數據的錯誤的PDU,或主動利用數據包的丟失進行信息隱藏,例如在broadcast erasure channels 中構建錯誤信息[76]、在IEEE 802.11 中構建錯誤幀[77]、利用VPN 丟包傳遞隱藏信息[65]等.
(5) 隨機值模式:通過在數據包頭元素中嵌入的隨機值傳遞隱藏數據,例如利用IPv4 協議的Identifier 字段[78]、TCP 連接的ISN 序列號[78]、DHCP 的xid 字段[69]、SSH 協議的MAC 字段[73]等.
(6) 值調制模式:從n個值中挑選一個能夠用來編碼隱藏信息的頭元素值,例如在本地網絡中的n個地址中挑選一個發送數據幀[42]、利用n個可能的IP 頭的TTL 值進行編碼[62]、通過n個IPv6 數據包頭的Hop Limit 值進行編碼[51]、通過從n個應用層協議中選擇一個協議發送數據包編碼[79]、通過向n個應用層協議端口選擇一個端口發送數據包編碼在BACnet 協議中從n個信息類型中選擇一個信息類型編碼[80]、通過目標IP 的ARP 信息編碼[81]、修改XMPP 協議的“type”或“xml:lang”屬性[75]等.值調制模式又包含兩個子類:一個子類被稱為CASE(common application service element)模式,利用頭元素中的CASE 隱藏信息,例如修改HTTP 頭文件中的CASE[68]、修改XMPP 協議中“type”或“id”屬性的CASE[75];另一個子類被稱為LSB(least significant bit,最低有效位)模式,使用頭文件中的LSB 編碼隱藏數據,例如通過IPv4 時間戳選項的奇偶時間編碼[34]、修改TCP 數據包時間戳選項的低階位[82]、使用DHCP 協議頭secs 字段的LSB[69]、使用IPv6 數據包Limit 字段的LSB[51]、使用XMPP 協議“id”屬性的LSB[68]等.
(7) 保留/未使元素模式:使用協議頭或數據包的保留或未使用元素(例如保留字段、保留位等)進行隱藏數據的編碼,例如利用IEEE 802.5 或數據鏈路層數據幀的保留字段[34]、使用IPv4 協議的未使用字段[34]、使用IPv6 協議頭的保留字或未用字段[51]、使用TCP 協議頭的未使用位[34]、使用ICMP 協議的echo payload[83]、使用IEEE802.3 的填充字段[84]、使用BACnet 協議頭的未用字段[80]、DHCP 協議的sname和file 字段的終止標識位[69]、IPSec 協議的DS 字段[65]、IPSec 協議的ECN 字段[65]等.
存儲型網絡隱蔽信道選擇的信息載體、載體特征和特征模式會對魯棒性和通信效率產生影響.不同的載體協議的特性不同:有的通信協議可以提供可靠傳輸(例如TCP 協議),因此具有較高的魯棒性;如果選擇非可靠協議(例如UDP 協議),則無法保證魯棒性.另外,不同協議的載體特征和模式包含的信息量不同(例如保留/未使用元素模式選取不同字段的值范圍不同),這些因素會對通信效率產生影響.
2.3.2 信息編碼
如文獻[45,85]所述,存儲型網絡隱蔽信道依賴于信道載體的特性,有較大的傳輸空間,并且信道載體往往可以給網絡隱蔽信道提供大量的輔助功能(例如可靠性傳輸),因此,存儲型網絡隱蔽信道對信息編碼的依賴較小,專門研究存儲型網絡隱蔽信道編碼的文獻較少.Iglesias 等人[38]以檢測的視角對利用TCP/IP 協議的網絡隱蔽信道的編碼特征分為了5 類,其中包括值與符號對應方法,使用1 個或多個協議頭字段的值與隱蔽信息符號進行對應編碼[48?50].
2.3.3 信道優化
豐富的網絡協議和特性使得存儲型網絡隱蔽信道可以通過更豐富的手段進行優化,進而提供新的功能或特性提升自身的隱蔽性、魯棒性和通信效率,包括微協議技術、動態路由技術、多協議傳輸技術.
(1) 微協議技術
微協議是用來規范網絡隱蔽信道通信過程的一組壓縮編碼[86?88],微協議的協議頭往往嵌入在網絡隱蔽信道的隱藏信息中[45].Wendzel 等人[89]對存儲型網絡隱蔽信道的結構進行了劃分,把隱蔽信道利用的公開協議(例如TCP 協議、ICMP 協議等)稱為底層協議(underlying protocol),把隱蔽數據嵌入的部分稱作上層協議(cover protocol),在上層協議中放置微協議(micro-protocol)和隱蔽數據(payload).微協議能夠對網絡隱蔽信道進行增強,可以提供的功能包括可靠性、動態路由、代理功能、同步連接、段管理、自動適應網絡配置等[24],從而提高網絡隱蔽信道在真實網絡環境下的適應性和靈活性.
ping tunnel[83]利用ICMP 的“Echo Request”報文和“Echo Reply”報文構建微協議,但是占用空間較大,因此易于檢測.Degraaf 等人[16]將UDP 協議目標端口字段分為數據部分和序列號部分,保證隱蔽信道數據包的順序不被打亂.Ray 等人[90]在ICMP 協議“expected sequence number”字段插入2 比特的序列號字段實現了收發確認功能,用“1”表示成功接收數據,用“2”表示等待下一條數據,從而提高了隱蔽信道的可靠性.Trabelsi 等人[71]實現了CFTP(隱藏數據傳輸協議),利用IP 協議的“record route”選項實現類似FTP 協議的文件隱蔽傳輸協議.Mazurczyk等人[17]將隱蔽信道與數字水印技術結合,將6 比特的控制信息協議頭嵌入到IP 協議、UDP 協議、RTP 協議的協議頭,實現對隱蔽傳輸的控制.
Wendzel 等人[89]提出了針對微協議的設計方法,將協議分為用來構建隱蔽信道的公開協議、包含隱蔽信道數據部分和隱蔽信道控制部分的隱蔽協議、用來控制隱蔽信道的微協議這3 類;使用表層協議位到隱蔽協議位、隱蔽協議位到微協議位的映射,使隱蔽協議和微協議滿足公開協議的標準行為.制定了微協議構建的6 個設計步驟,包括定義表層協議并確定隱蔽協議使用的區域、評估隱蔽協議的可用位數以確定可用來構建隱蔽協議的值的范圍、設計微協議相關功能和規則、評估微協議的可用位數確定可用來構建微協議的值的范圍、建立公開協議與微協議的映射、使用形式化方法驗證微協議是否滿足公開協議的標準行為.
微協議面臨的問題包括協議優化問題,由于微協議的控制信息和隱蔽數據的數據信息往往都要使用公開協議的協議頭部分,如果微協議過大就會減少隱蔽數據攜帶的空間,降低傳輸效率,并且會更易容易被發現[23].Backs 等人[86]和Ray 等人[90]針對優化協議頭問題提出了動態協議頭方法,由于微協議和隱蔽信道數據部分并不是要使用協議頭的所有部分,為了不重復傳遞不使用的這部分協議頭,通過串行線路接口協議壓縮(compress for serial line interface protocol,簡稱CSLIP)[91]方法優化協議空間,新的數據包只傳輸協議頭發生改變的部分,從而節省了協議空間,使網絡隱蔽信道不易被檢測.
(2) 動態路由技術
動態路由可以使隱蔽信道在較大且動態的網絡環境下(例如互聯網環境)進行通信,通信路徑不再是通信雙方直接通信,而是通過很多跳轉進行間接通信;并且通信路徑也不再是靜態的,而是依據一定規則動態變化.從而使通信雙方不會直接暴露在監控者的面前,提高了隱蔽數據傳輸的隱蔽性、魯棒性和傳輸效率[86].
Szczypiorski 等人[92]第一次提出了網絡隱蔽信道中的動態路由技術.利用隨機游走算法隨機選擇下一跳的通信節點,從而構建完全隨機的隱蔽傳輸網絡拓撲,每一次傳輸過程都是隨機的,無法監控和預測隱蔽信道傳輸的路徑,從而提高了隱蔽信道的隱蔽性.
Backs 等人[86]實現了一種基于OLSR(optimized link-state routing)的動態路由協議.選擇隱蔽性和連接質量最優的信道,被稱為SCCT 架構.引入隱蔽性質量(quality of covertness,簡稱QoC)的概念對通信節點間的隱蔽性進行度量,與通信質量(quality of service,簡稱QoS)一起構成通信節點間通信的兩個度量指標,從而形成網絡隱蔽信道的節點表和網絡拓撲表,使用狀態升級的方法對這兩張表進行維護,從而保障通信質量.
(3) 多協議傳輸技術
與傳統的只通過某一特定通信協議構建隱蔽信道的方法不同,多協議隱蔽信道提供多種通信協議進行隱蔽數據傳輸,從而獲得更好的網絡環境適應能力,提高了隱蔽信息傳輸成功的可能,同時也降低被檢測的可能.
Yarochkin 等人[93]提供了多種應用層的通信協議作為構建隱蔽信道的底層協議,將這些協議組成多協議的協議棧,每種協議會被專門的事件觸發.協議的執行分為網絡環境學習階段和數據傳輸兩個階段:在網絡環境學習階段,通信節點會被動監聽網絡流量確定可用的網絡協議集合,使用成功率評分算法進行協議選擇,使通信過程的數據包被過濾的數量達到最小;在數據傳輸階段,發送方會根據網絡環境學習階段的學習結果選擇底層網絡協議進行數據傳輸,并監控整個通信過程,如果傳輸中斷或是被過濾,會切換其他通信協議進行傳輸,從而繞過針對特定協議的網絡審查機制.
Wendzel 等人[94]會在每個數據包發送前,從多個可用于構建網絡隱蔽信道的協議中挑選一個,之后再發送數據.隱蔽數據可以通過分片的方式分配到不同的傳輸協議構建的隱蔽信道中,監控者只有將各個傳輸協議傳輸的隱蔽數據收集齊,才能拼湊出一條完整的隱蔽數據,降低了隱蔽信道被發現的可能性,提高了隱蔽信道的隱蔽性.
Xie 等人[10]基于跳頻通信(frequency hopping communication)的思路設計了多協議轉換的網絡隱蔽信道,使用偽隨機碼序列構建跳轉指令,用來控制頻率同步,并使用移頻鍵控(frequency shift keying,簡稱FSK)在多個頻率中進行選擇.由于通信雙方有相同的跳頻模式,因此可以使用預先定義的跳頻序列,在不同網絡協議構成的網絡隱蔽信道間進行切換,并通過發送方緩存計算的hash 值進行差錯控制,保證網絡隱蔽信道的魯棒性.
2.4.1 碼元設計
時間型網絡隱蔽信道使用網絡通信載體的時間特性進行隱蔽信息傳輸,Wendzel 等人[45]按照網絡隱蔽信道構建方法將時間型隱蔽信道分為4 個模式.
(1) 時間間隔模式:利用PDU 不同的時間間隔進行隱藏信息編碼,例如改變LAN 數據幀的發送間隔[42]、改變BACnet 協議數據包或IP 數據包的時間間隔[80]、針對鍵盤輸入對SSH 數據包進行延遲[55]、接收IEEE 802.2 I 格式的數據幀后延遲確認[64]、改變VPN 數據包的間隔時間[65]、記錄分割合法通信序列并依據間隔時間重放這些合法通信片段[58]等.
(2) 速率模式:改變通信數據流中的數據速率,例如通過Clear to Send 或Ready to Send 指令延遲一系列通信端口的吞吐量[34].
(3) PDU 順序模式:通過改變PDU 順序編碼隱藏數據,例如改變IPSec AH 包的順序[48]、改變IPSec ESP包的順序[48]、改變TCP 包的順序[47,95]、改變VPN 數據包的順序[96]、改變IPSec 數據包的順序[65]、改變CSMA/CD 網絡中合法數據幀的順序[34]等.
(4) 重傳模式:重傳之前發送或接收的數據包,例如通過發送DNS 請求1 次或兩次進行編碼、復制IEEE 802.11 數據包[77]、通過重傳選定的TCP 數據段編碼、接收方通過不發送確認信息迫使發送方重發數據包[97]等.
目前,時間型網絡隱蔽信道使用最多的模式是時間間隔模式,大量研究都是基于網絡數據包間隔(interpacket-delay,簡稱IPD)進行的[31,58,98,99].另外,Archibald 等人[59]對網絡數據包間隔方法進行了改進,使用多個網絡數據包間隔(m-IPD)作為碼元,從而提高時間型網絡隱蔽信道的魯棒性.
2.4.2 信息編碼
由于網絡時間型隱蔽信道能夠用來傳輸信息的載體特性只有時間特性,可以利用的資源較少,因此編碼就成了時間型網絡隱蔽信道重要的環節.由于時間型網絡隱蔽信道的魯棒性和通信效率相對較低,因此時間型網絡隱蔽信道的信息編碼主要目標是提高信道傳輸效率和魯棒性.
較早的網絡時間型隱蔽信道利用網絡數據包間隔時間進行簡單的二進制編碼,例如數據包間沒有時間間隔編碼為0,數據包間有時間間隔編碼為1[31].這種編碼方式傳輸效率較低,且沒有任何可靠性保障機制,很容易受到網絡噪聲的干擾.Wu 等人[60]使用霍夫曼編碼對時間隱蔽信道的隱蔽信息進行編碼.霍夫曼編碼可對隱藏信息進行無損壓縮,可有效提高傳輸效率,但是在魯棒性方面并沒有考慮.Archibald 等人[56]、Liu 等人[100,101]使用擴頻碼對時間隱蔽信道進行編碼,提高信道的魯棒性,可以使用有效的擴頻因子抵御信道噪聲.Sellke 等人[102]以幾何碼的方式,將不同的數據率L比特的隱藏數據映射到n個數據包中,以犧牲隱蔽信道數據率為代價,使得通信模式無法被辨別,以此提高信道的隱蔽性.Archibald 等人[103]使用噴泉碼對時間隱蔽信道進行編碼,通過噴泉碼引入的大量冗余增加網絡隱蔽信道的魯棒性,用隨機生成的線性碼符號增加隱蔽信道的抗檢測性.Houmansadr 等人[44]使用多種線性編碼對網絡隱蔽信道進行編碼,包括RS 碼、Golay 碼、兩個類型的Turbo 碼(分組Turbo 碼和卷積Turbo 碼)、低密度奇偶校驗碼(LDPC),并對每種類型編碼的網絡隱蔽信道做魯棒性評估和抗檢測性評估.
2.4.3 信道優化
(1) 基于統計學的時間隱蔽信道
時間型網絡隱蔽信道又可分為基于統計學的時間型網絡隱蔽信道和非基于統計學的時間型網絡隱蔽信道,還可以利用一組碼元的統計學特征進行隱蔽信息傳輸[104].基于統計學等時間型網絡隱蔽信道的主要目的是提升網絡隱蔽信道的隱蔽性[11,105].
早期的網絡時間型隱蔽信道是直接使用編碼元素(例如網絡數據包時間間隔)進行編碼的.Cabuk 等人[31]提出了基于數據包時間間隔的網絡時間型隱蔽信道(inter-packet covert timing channel,簡稱IPCTC),利用時間窗口內是否包含數據包進行二進制編碼,將時間分成連續相等不相交的時間窗口,在時間窗口內發送數據包代表比特“1”,不發送數據包代表比特“0”.Sha 等人[55]提出了JitterBug 時間型網絡隱蔽信道,終端每次敲擊鍵盤的行為都會向服務器端發送一個小幅度延時的數據包,使網絡數據包間隔時間具有特殊的意義,從而泄露終端信息.
隨著時間的發展,出現了隱蔽性更強的基于統計學的時間型網絡隱蔽信道.Brodley 等人[58]提出了基于重傳的時間型隱蔽信道(time-replay covert timing channel,簡稱TRCTC),收集合法信道的網絡數據包間隔時間為編碼提供樣本,對收集的網絡數據包間隔時間排序,并將它們平均分為兩個部分,并與二進制編碼的值對應,從網絡數據包間隔時間較大的部分隨機取出一個網絡數據包間隔時間代表比特“1”,從較小的部分取出隨機值發送代表比特“0”.
Gianvecchio 等人[98]提出了基于模型的時間型隱蔽信道(model-based covert timing channel,簡稱MBCTC),以網絡數據包間隔時間分布模型的形式模擬合法信道:首先,準備幾種待選的分布模型(例如指數分布、正態分布等);之后,統計合法信道的網絡數據包間隔時間,根據最大似然估計出的待選分布模型的參數,使用標準差最小的模型作為最佳擬合模型,利用該分布模型的分布逆函數進行編碼[11,105].
Liu 等人[99]提出了基于分布匹配的時間型隱蔽信道(distribution-matching covert timing channel,簡稱DMCTC),對特定的分布模型進行模擬,將統計的合法信道網絡數據包間隔時間按粒度非常小的區間統計成直方圖,然后將區間均分為兩個區間集,從較大部分的區間集中隨機取出一個區間,并從區間內隨機取出一個網絡數據包間隔時間作為比特“1”,從較小部分區間內的隨機區間的數據包間隔時間作為比特“0”.當發送比特0 時,從較小部分的區間集中隨機取出一個區間,然后從該區間內隨機取出一個網絡數據包間隔時間,當區間內所有網絡數據包使用完后進行重新采樣.
(2) 降低統計性規律
網絡時間隱蔽信道的檢測往往針對網絡載體時間特性的統計性規律進行,一些研究者針對這一特點采取了相應的研究.Walls 等人[106]針對熵檢測的檢測方法提出了熵撫平的方法,將隱蔽信息發送過程分為發送和撫平兩個階段:在發送階段,用來傳輸隱蔽信息的網絡數據包間隔時間會造成整個信道熵率的改變,使隱蔽信道容易被檢測出來;在撫平階段,向外發送用以撫平熵率的數據包,使得整體的網絡數據包間隔時間的熵值回歸于合法信道.
(3) 多鏈路傳輸
傳統的網絡隱蔽信道是通過一條通信鏈路進行隱蔽信息傳輸的,這種單鏈路的傳輸方式存在一些弊端,例如需要同步、信道容量較低、可以通過規律性檢測發現、較容易針對等[32].多鏈路傳輸使用多條傳輸鏈路進行隱蔽信息傳輸,降低通信被發現的可能,傳輸效率也更為高效.
Murdoch 等人[32]提出了一種多連接隱蔽信道,信息發送者與信息接收者之間建立多個活動的連接,通過這些連接發送數據包的順序和特定的傳輸模式進行編碼,從而使隱蔽信道不依賴于特定的信道條件,也不包含特征較強的統計規律.
Luo 等人[47]提出了一種多鏈路傳輸的時間隱蔽信道構建機制,使用TCP 包和TCP 流作為兩類編碼對象,每條信息使用N個TCP 包和X條TCP 流進行編碼,通過TCP 包在TCP 流上分配的組合進行編碼,并給予組合數學提供了10 類編碼方式.由于使用了TCP 作為傳輸協議,可以保證傳輸的可靠性.這種多鏈路的傳輸方式提高了信道的容量,也降低了單一鏈路信息過于密集導致隱蔽信道被發現的可能.
本節從碼元設計、信息編碼和信道優化這3 個方面歸納分析了存儲型和時間型兩類網絡隱蔽信道構建技術.網絡隱蔽信道的構建研究的重心從最初的以實現隱蔽傳輸基本功能、在網絡環境下尋找可用來作為隱蔽信息載體的存儲屬性和時間屬性并設計相應的碼元模式,逐漸過渡到增強信道的功能和性能上.存儲型網絡隱蔽信道面對的主要挑戰是,如何彌補只使用單一存儲屬性作為隱蔽信息載體時隱蔽性較差的問題.目前采用的主要手段是增強信道的功能,例如微協議技術、動態路由技術、多協議傳輸技術.時間型網絡隱蔽信道面臨的主要挑戰是,如何彌補信息攜帶能力低、只能串行通信的時間屬性帶來信道容量低、魯棒性差的問題.目前主要采用的是編碼手段.另外,由于時間間隔已經作為時間型網絡隱蔽信道的最常見的傳輸載體,已經出現了大量的基于統計學的檢測方法,因此需要進一步提升時間型網絡隱蔽信道相對于統計學檢測方法的抗檢測性.
與網絡隱蔽信道能力維度相同,網絡隱蔽信道的評估指標包含3 個方面:隱蔽性、魯棒性和傳輸效率.隱蔽性指網絡隱蔽信道不被發現的能力,魯棒性指網絡隱蔽信道抗干擾和準確傳輸數據的能力,傳輸效率用來指網絡隱蔽信道單位時間內傳輸數據量的能力.
3.2.1 隱蔽性
由于存儲型隱蔽信道具有一定的技術特異性,因此沒有統一的隱蔽性評估方法.使用針對特定存儲型網絡隱蔽信道檢測技術進行隱蔽性評估的方法,詳見本文第4.3.1 節.目前,大部分隱蔽性評估的研究都是針對時間型網絡隱蔽信道的.
Wu 等人[60]使用網絡隱蔽信道的特定屬性的離散程度對隱蔽性進行評估,針對時間隱蔽信道可以使用標準差進行評估,其中,Ct表示隱蔽性,將傳輸的時間段平均分為sω個非交疊的窗口,xi表示第i個窗口內的被測屬性(例如數據包時間間隔):

Houmansadr 等人[44]使用雙樣本K-S 檢測(kolmogorov-smirnov test)評估抗檢測性.K-S 檢測用來檢驗連續的一維概率分布是否相等,其中,F(x)和G(x)分別為合法通信數據和隱蔽信道的網絡數據包間隔時間分布:

Archibald 等人[103]使用K-S(kolmogorov-smirnov test)檢測和K-L 離散度檢測(kullback-leibler divergence measure)對隱蔽信道的隱蔽性進行量化.其中,K-L 離散度檢測相對熵,是一種描述兩個概率密度函數分布差異的方法,用來度量兩個隨機變量的距離,表示為對兩個概率分布為P和G的非對稱性的度量:

3.2.2 魯棒性
王鵬等人[104]使用誤碼率(bit error rate,簡稱BER)對網絡隱蔽信道的魯棒性進行測量:

Houmansadr 等人[44]也使用誤碼率作為魯棒性的測量指標,將誤碼率定義為將原始信息通過編碼傳輸后再解碼的最終信息比較得到的錯誤概率:

其中,k為解碼后的信息長度;m(i)為第i位原始信息;m′為第i位傳輸后獲得的信息;e為兩個信息的比較函數,兩個信息相同值為0,不相同值為1.
Liu 等人[100]使用引入網絡噪聲的方法做魯棒性測試,網絡噪聲包括數據包丟失、延遲、抖動以及人為的干擾噪聲,然后測量信道的誤碼率,以此來表示網絡隱蔽信道的魯棒性.
綜上所述,對魯棒性的評估都是使用誤碼率作為評測指標的.
3.2.3 傳輸效率Houmansadr 等人[44]將傳輸效率定義為每個隱蔽數據流包傳遞的隱蔽信息的比特數,其中,K是使用N+1 個隱蔽信息數據流發送的隱蔽信息的比特數:

王鵬等人[104]使用信道容量作為測量時間型隱蔽信道通信效率的方法.信道容量指單位時間通信信道傳輸數據信息量的上限,時間型網絡隱蔽信道容量取決于每個數據包間隔時間攜帶的信息量bit 和平均網絡數據包間隔時間

Wu 等人[60]考慮了用來對原始信息編碼的碼元數量和編碼優化后的碼元數量之間的關系,將傳輸效率定義為最大可能的無錯信息速率,用比特/秒(bits/s,bps)表示.其中,N表示N元編碼在時間t內傳輸的信息量:

綜上所述,網絡隱蔽信道的傳輸速率使用單位碼元內包含的信息量或單位時間內傳遞的信息量進行評估.
本節從隱蔽性、魯棒性和傳輸效率這3 個方面總結了網絡隱蔽信道評估方法.目前,網絡隱蔽信道的魯棒性和傳輸效率已經有了相對統一的評估方法,而隱蔽性則還沒有統一的評估方法.造成隱蔽性沒有統一評估方法的原因首先是因為各類網絡隱蔽信道的差異較大,特別是存儲型網絡隱蔽信道的隱蔽性來自于隱蔽信息載體的未知和不確定,因此很難用同一種方法對網絡隱蔽信道的隱蔽性進行評估;另一方面,網絡隱蔽信道的評估方法來自于網絡隱蔽信道的檢測方法,由于網絡隱蔽信道的檢測方法還在發展和完善中,沒有形成統一的方法,因此,網絡隱蔽信道的隱蔽性評估方法也相應地沒有統一.
網絡隱蔽信道對抗指破壞、削弱、發現網絡隱蔽信道的方法.Zander 等人[12]把網絡隱蔽信道對抗技術分為消除技術、限制技術、檢測技術這3 類:網絡隱蔽信道消除技術指從原理上消除網絡隱蔽信道的存在,對于一些早期的網絡隱蔽信道可以達到這個效果;網絡隱蔽信道限制技術指限制隱蔽信道的容量,這意味著會引入噪聲,同時也降低了系統的性能;網絡隱蔽信道檢測技術指發現隱蔽信道的存在.王鵬等人[104]認為,針對時間型網絡隱蔽信道的對抗有兩種思路:一種是通過剝奪目標信道中隱蔽信道所需的網絡共享資源,從而限制隱蔽信道的存在;一種是檢測出隱蔽信道的存在,進而消除隱蔽信道的影響.
網絡隱蔽信道對抗的3 類技術分別對應了網絡隱蔽信道需求和評估的3 項能力維度:消除技術針對網絡隱蔽信道的魯棒性,用以破壞隱蔽信道構成的基礎條件;限制技術針對網絡隱蔽信道的傳輸效率,用來降低網絡隱蔽信道的帶寬和傳輸能力;檢測技術針對網絡隱蔽信道的隱蔽性,用來發現網絡隱蔽信道的存在.
通過對可疑的網絡協議或網絡端口阻塞的方式,可以消除基于這些網絡協議的網絡隱蔽信道(例如ICMP協議),但是對于一些基于重要網絡協議的網絡隱蔽信道(例如IP 協議、TCP 協議、DNS 協議),則無法采取這樣的方式[12]消除.
通信歸一化(traffic normalization)方法[107,108]是一種移除網絡通信中模糊和破壞通信原則元素的方法,網絡隱蔽信道往往利用網絡通信協議頭的保留字段或未用字段構建的網絡隱蔽信道,通信歸一化方法將這些字段設置為0,并移除未知協議頭的擴展部分.網絡歸一化方法可分為無狀態和有狀態兩類[51]:無狀態歸一化方法只考慮一個時間點的數據包,不考慮之前的數據包;有狀態歸一化方法會緩存之前收到的數據包,因此可對抗更多的隱蔽信道.通信歸一化方法可消除很多基于網絡層(例如將IP 的ID 設置為0、設置段的偏移量為0、保證校驗值的正確等)、通信層(例如重寫TCP 協議的ISN、源IP 地址、源端口、TTL 等)、應用層(例如限制HTTP協議只能以特定的集合和順序應答請求)協議的協議頭字段及特征構造的網絡隱蔽信道,對于網絡存儲型隱蔽信道更為有效.網絡歸一化的缺陷是:有可能將PDU 頭字段設置成錯誤的值導致不可用;無法對使用合法協議頭字段值的隱蔽信道起作用(例如使用不同協議編碼);緩存有限,導致只能在計算資源沒有耗盡時起作用[107].
網絡隱蔽信道消除技術對存儲型網絡隱蔽信道更有效,受限于計算資源,如何在不破壞通信協議語義的基礎上高效處理海量網絡數據,是個很大的挑戰.
Proctor 等人[104,109]認為:當隱蔽信道的容量小于一定的程度時,即使出現網絡隱蔽信道也是可以容忍的.也就是說,隱蔽信道所處環境噪聲足夠大時,使得信噪比很低時,使得信息的準確度低至無法容忍的地步,網絡隱蔽信道是不能造成威脅的.因此,可以通過在信道中添加延時的方式造成時間型網絡隱蔽信道的解碼錯誤.Giles等人[110]提出了網絡干擾(network jammer)的方法,利用隨機延遲網絡數據包的方式,限制網絡時間型隱蔽信道的容量.這種方法雖然可以干擾時間型隱蔽信道的通信,但也會影響合法通信的性能,特別會對實時通信網絡造成嚴重影響.Wendzel 等人[111]針對使用一系列不同協議進行編碼的隱蔽信道進行限制,可針對協議切換的行為加入延遲,從而降低這類網絡隱蔽信道的容量.Kang 等人[112,113]提出了網絡泵(network pump)技術,可以使網絡數據包的間隔時間隨機化或均勻分布,從而干擾網絡時間隱蔽信道.這種方法雖然可以有效地干擾網絡時間隱蔽信道,但是也會影響對服務質量有較高要求的服務,例如VoIP、視頻流、SSH 協議等.
網絡隱蔽信道限制技術對時間型網絡隱蔽信道更有效,但這種方式同時也會影響合法網絡通信的質量,存在一定的副作用.
網絡隱蔽信道檢測技術是網絡隱蔽信道對抗中研究最多的技術,本文把網絡隱蔽信道檢測技術分為存儲型網絡隱蔽信道檢測和時間型網絡隱蔽信道檢測兩個部分進行梳理.
4.3.1 存儲型網絡隱蔽信道檢測
Sohn 等人[114]使用支持向量機(support vector machine,簡稱SVM)方法對TCP/IP 協議中的存儲型隱蔽信道進行檢測,將TCP/IP 數據包頭中的標識字段(identification)和IP 數據包中的序列字段(sequence)的值作為特征,使用線性和多項式兩類核函數對對隱蔽信道進行模式分類.之后,Sohn 等人[115,116]又使用支持向量機方法對ICMP 數據包中的存儲型隱蔽信道進行檢測,將ICMP 數據包分為兩種情況進行檢測:第1 種情況,根據ICMP 數據包負載部分(payload)的字段值分為13 個維度;第2 種情況,除了負載部分,還包含4 byte 的包頭字段共15 個維度,并使用支持向量機的線性和多項式兩類核函數對ICMP 數據包進行訓練和模式分類.Bethencourt 等人[15]使用神經網絡對不同操作系統的ISN 序列進行訓練,針對基于TCP ISN 的存儲型網絡隱蔽信道進行檢測,取得了很高的準確率.Borders 等人[19]使用HTTP 協議的請求字段大小、請求時間間隔、發送時間、出站帶寬占用等特征進行建模,對基于http 的網絡隱蔽信道進行檢測.Guang 等人[117,118]為了解決同時兼顧檢測速度與計算復雜性的問題,對TCP 協議的字段數據進行聯合分析,分析數據包和數據包之間每個字段相關屬性的規律,所有屬性通過核密度估計、變異系數、自相關系數轉換為特征向量矩陣,并使用SVM 分類器訓練特征向量矩陣,獲得了較快的檢測速度,并降低了計算復雜度.Krzysztof 等人[119]使用數據挖掘方法尋找多個數據流中IPv4 TTL 字段的頻繁項集,以此作為隱藏信息模式檢測分布式隱蔽信道.
綜上所述,針對存儲型網絡隱蔽信道的檢測方法主要采用對某一通信載體的正常通信特征進行訓練建模的方式訓練分類器,然后利用分類器對網絡隱蔽信道進行檢測,可以獲得較好的效果.
4.3.2 時間型網絡隱蔽信道檢測
時間型網絡隱蔽信道檢測技術是近年來網絡隱蔽信道檢測研究最多的方向,時間型隱蔽信道檢測方法大致分為3 個大方向[105,120]:形態檢測(shape test)、規律性檢測(regularity test)和熵檢測(entropy test).所有的檢測方法都是圍繞提取網絡流量信息、鑒別網絡數據包間隔時間(IPD)分布的改變和統計異常進行的,使用一階統計特性(例如平均值、方差和分布函數等)表示網絡數據流的形態特征(例如K-S 檢測),使用二階或者多階統計特性(例如自相關、互相關等)表示數據流的規律性(例如熵檢測)[28,121,122].近年來又出現了基于機器學習的時間型網絡隱蔽信道機器學習的檢測技術.本文按照形態檢測、規律性檢測、熵檢測和基于機器學習的檢測對網絡隱蔽信道檢測技術進行梳理.
(1) 形態檢測
形態檢測[31]指構建一個指標體系,將當前信道通信流量的IPD 分布與已知合法的公開信道通信流量樣本的IPD 分布進行對比,以驗證二者是否有顯著的差異.
常用的形狀測試是K-S 檢測(kolmogorove-smirnov tests)[100],K-S 檢測可用來檢驗連續的一維概率分布是否相等,可用來區分合法的公開信道和隱蔽信道.其中,F(x)和G(x)分別為合法通信數據和隱蔽信道的網絡數據包間隔時間分布:

Peng 等人[123]使用K-S 檢測可以檢測出水印IPD,從而證明K-S 檢測可有效檢測重放型時間隱蔽信道.
Archibald 等人[120]使用韋爾奇t 檢驗(Welch’s t-test)對時間隱蔽信道進行檢測.一般的形狀檢測基于密度函數提取公開合法信道和隱蔽信道測量指標,這個方法存在兩個問題:經驗密度函數生成成本很高,把樣本轉換為密度函數會帶來偏差.使用Welcht檢驗可以避免這兩個缺陷.t檢驗一般用于統計假設檢驗確定兩個數據集是否存在顯著差異,而韋爾奇t檢驗對于兩個樣本量大于30 的標準分布的標準差計算有很好的魯棒性,定義為

Fahimeh 等人[124]用威爾科克森符號秩檢驗(Wilcoxon signed rank test)、斯皮爾曼等級相關檢驗(Spearman Rho correlation test)、曼-惠特尼-威爾科克森秩和檢驗(Mann-Whitney-Wilcoxon rank sum test)這3 種統計方法分別對正常通信和隱蔽信道通信進行檢驗并得到統計評分,并以此為檢測維度對時間型網絡隱蔽信道進行實時檢測,具有很高的檢測效率.
(2) 規律性檢測
規律性檢測[31]指將數據流變化的統計學特征規律當做檢測指標對隱蔽信道進行檢測,對網絡數據流的網絡數據包間隔時間的標準差的變化進行了量化,定義為

在每個時間窗口內都會計算網絡數據包間隔時間的標準差σi,并進行規律性計算.規律性檢測適用于基于模型的網絡時間型隱蔽信道(MBCTC)和重放型網絡時間隱蔽信道(TRCTC)這些使用規律性方法生成的隱蔽信道,它們在長時間的通信特征是符合正常的公開信道的,但是在較小的窗口內就會呈現出統計學規律.
(3) 熵檢測
熵檢測[125]指使用熵作為評測指標對IPD 分布的隨機性進行檢測的方法,包括修正條件熵檢測(corrected conditional entropy test,簡稱CCE)、K-L 離散檢測(Kullbacke-Leibler divergence test).
修正條件熵最早用來做生物學研究,Gianvecchio 等人[125]使用修正條件熵作為檢測指標對MB-CTC 和TR-CTC 類型的隱蔽信道進行檢測.這兩種隱蔽信道生成的流量中的IPD 符合獨立同分布(independent and identically distributed),而合法的公共信道中的數據流量符合條件分布,通過這種檢測方式對HTTP 和SSH 中的時間隱蔽信道進行檢測.定義為

Archibald 等人[103]使用K-L 離散對時間隱蔽信道進行檢測.K-L 離散又被稱為相對熵,是一種描述兩個概率密度函數分布差異的方法,用來度量兩個隨機變量的距離,表示為對兩個概率分布為P和G的非對稱性的度量:

(4) 基于機器學習的檢測
Shresth 等人[126]提出了一個基于機器學習檢測網絡時間隱蔽信道的框架,使用支持向量機方法對通信流量中的時間隱蔽信道進行檢測,使用統計方法將通信流量的時間信息分為4 個統計指紋類型:K-S 統計評分、規律性評分、熵評分和修正條件熵評分,并使用支持向量機的方法,基于這4 類統計指紋對時間隱蔽信道進行訓練和檢測.
Zseby 等人[127]使用了3 種基于密度的計算K距離(k-distance)的非監督學習方法:基于連通性的離群因子(connectivity-based outlier factor)、受影響的離群性(influenced outlierness)、基于直方圖的離群評分(histogrambased outlier score,簡稱HBOS)對7 種不同時間隱蔽信道生成技術生成的隱蔽信道進行異常檢測,發現盡管能將正常信道和隱蔽信道區分出來,但是無法區分出使用了哪種時間隱蔽信道技術生成了隱蔽信道.
Iglesias 等人[38]通過流量描述分析(descriptive analytics of traffic,簡稱DAT)將網絡通信數據轉換為便于使用的特征向量,通過核密度估計和帕累托分析(Pareto analysis)挖掘基于描述性統計、聚合、自相關指數、多模態計算相結合的字段特征,為進一步使用基于機器學習對隱蔽信道的分析奠定了基礎.之后,Iglesias 等人在文獻[38]的基礎上,使用流量描述分析技術對8 個網絡時間隱蔽信道生成技術生成的隱蔽信道網絡流量進行特征提取,并用決策樹(decision tree)方法對網絡隱蔽信道進行檢測[46].進一步按照最大化基于熵的增益比的原則選擇并排序特征,并使用C4.5 決策樹分類器對基于包間隔的時間隱蔽信道進行檢測[128].
(5) 對檢測方法的評估
Archibald 等人[120]對3 大類統計性分析方法進行了評估,通過對以SSH 和HTTP 兩種協議作為公開信道,構建的JitterBug 時間型網絡隱蔽信道、重放時間型隱蔽信道和基于模型的時間型隱蔽信道這3 類時間隱蔽信道的檢測效率進行評估,評估指標包括適用性、計算復雜度、分類速度等方面.另外,Shrestha 等人[129]發現:如果把數據塊變得過小(如100bits),基于熵的檢測方法的可靠性就會下降.
綜合相關研究,對于單一的時間型網絡隱蔽信道的檢測方法來說,沒有哪種檢測方法能夠對所有類型的時間隱蔽信道都獲得理想的效果.形態檢測對JitterBug 時間型網絡隱蔽信道有較好的檢測效果,但無法檢測出基于重傳的時間型隱蔽信道,因為基于重傳的時間型隱蔽信道的時間間隔分布與合法的通信是一致的,對基于模型的時間型網絡隱蔽信道的檢測效果也不理想;規律性檢測可以對基于模型的時間型網絡隱蔽信道有較好的檢測效果,但是對JitterBug 時間型網絡隱蔽信道的檢測效果并不理想,因為JitterBug 時間型網絡隱蔽信道并不是根據某種統計模型生成的,對基于重傳的時間型隱蔽信道的檢測效果也不好;熵檢測對基于重傳的時間型隱蔽信道和基于模型的時間型網絡隱蔽信道有較好的效果,但是對JitterBug 時間型網絡隱蔽信道檢測效果不好,因為JitterBug 時間型網絡隱蔽信道是通過增加時間間隔的方式改變了時間間隔的分布而不改變熵.基于多特征的機器學習的時間型網絡隱蔽信道檢測方式,在準確率和適用范圍上要優于基于單一檢測技術的網絡隱蔽信道檢測方式.
本節從消除、限制、檢測這3 個方面分析了網絡隱蔽信道的對抗技術.網絡隱蔽信道構建研究的重心從最初的消除、限制技術,逐漸過渡到對網絡隱蔽信道的檢測技術.對于存儲型網絡隱蔽信道檢測技術來說,一般采用對某一特定網絡對象(例如網絡協議)的特征(例如協議字段)進行訓練建模,再通過機器學習的方式進行檢測.對于時間型網絡隱蔽信道來說,最初采用一階統計技術和高階統計技術進行單一技術檢測的方式,之后逐漸轉變為多種檢測手段和特征進行建模和聯合檢測的方式.針對時間型網絡隱蔽信道的基于統計學的檢測指標也可以看作網絡信息特征,因此從本質上來說,無論是存儲型網絡隱蔽信道檢測技術還是時間型網絡隱蔽信道檢測技術,現階段研究的關鍵都是對特定網絡隱蔽信道載體的特征提取和建模,進而提升檢測的準確率和效率.
新的通信載體下的網絡隱蔽信道構建是很重要的研究方向[56,59,130,131].現階段,大部分的網絡隱蔽信道都是基于TCP/IP 層的網絡協議,隨著新的計算環境的發展,新的通信環境可作為新的網絡隱蔽信道技術構建的載體,發展出新的網絡隱蔽信道構建技術及與之對應的對抗技術,例如工業控制系統(industrial control systems,簡稱ICS)網絡[131]、移動電話網絡[132?134]、車載無線網絡(vehicular ad hoc network,簡稱VANET)[135]、云環境下的虛擬網絡[136]等.
現階段,大部分網絡隱蔽信道都建立在單一不變的技術基礎上,這使得審查方很容易針對特定類型的網絡隱蔽信道采取相應的措施.當前的研究熱點已經從網絡隱蔽信道的碼元設計逐漸轉換到信道優化,特別是利用多樣性和動態性的功能保障網絡隱蔽信道傳輸[10,86,92,94].類型多樣是網絡隱蔽信道的一大特點,如何利用類型多樣這一特點進行有針對性地動態調配通信手段,從而更好地保障隱蔽性,是網絡隱蔽信道研究面臨的挑戰[45].
目前,網絡隱蔽信道構建方法的研究重點偏向于網絡隱蔽信道的隱蔽性,特別是在點對點的通信模式下,使用新的網絡載體和新的構建技術構建網絡隱蔽信道.然而真實網絡環境復雜多變,點對點通信易于被針對,也難以應對真實網絡環境的變化;另一方面,網絡隱蔽信道的容量也是其發展的瓶頸之一,需要與信道載體(例如通信協議)爭搶有限的帶寬和計算資源.網絡隱蔽信道通信網絡針對點對點通信的弊端,以一組通信節點組成的網絡隱蔽信道通信網絡作為通信載體,實施多中轉節點通信,從而提升了網絡隱蔽信道的隱蔽性、魯棒性和傳輸效率[24,86,92].
網絡環境存在著大量的通信數據,這些通信數據都有存在網絡隱蔽信道的潛在可能,而網絡隱蔽信道的類型又很多樣和復雜,這進一步增加了網絡隱蔽信道檢測的難度.如何從海量網絡數據中快速、高效、準確地找出網絡隱蔽信道,成為很有挑戰的問題[107].目前,機器學習方法被越來越多地在這個方面使用[38,46,126?128].
網絡隱蔽信道越來越多地應用在網絡信息安全的攻擊方面和安全傳輸方面,因此受到越來越多的關注.本文首先介紹了網絡隱蔽信道的基本概念,將網絡隱蔽信道相關研究按照構建、評估、對抗這3 個方面進行了總結.網絡隱蔽信道構建方面,將網絡隱蔽信道構建技術劃分為碼元設計、信息編碼、信道優化這3 個技術環節,圍繞3 個能力維度,對存儲型網絡隱蔽信道和時間型網絡隱蔽信道的構建技術進行了對比、整理、分析;網絡隱蔽信道評估方面,對網絡隱蔽信道隱蔽性、魯棒性、傳輸效率的評估方法進行了匯總;網絡隱蔽信道對抗方面,將現有技術分為消除、限制、檢測這3 個方面進行歸納分析.最后,對網絡隱蔽信道未來研究方向進行了展望.試圖為網絡隱蔽信道研究方向勾勒出一個較為全面和清晰的概況,為相關領域的研究者提供參考.