陶松
摘要:隱蔽信道可以在不違反系統(tǒng)安全策略的情況下進(jìn)行信息泄露,該文解釋了網(wǎng)絡(luò)隱蔽信道的概念,介紹了網(wǎng)絡(luò)隱蔽信道的分類和一般工作原理。然后,針對(duì)計(jì)算機(jī)網(wǎng)絡(luò)各層次分別介紹了常見的隱蔽通道,并對(duì)各種隱蔽通道的工作原理和實(shí)現(xiàn)方法做了詳細(xì)的分析,在此基礎(chǔ)上給出了一些檢測(cè)和阻斷網(wǎng)絡(luò)隱蔽信道的方法和思路。
關(guān)鍵詞:隱蔽信道;計(jì)算機(jī)網(wǎng)絡(luò);隱蔽信道檢測(cè)
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)22-5198-03
1942年,英國(guó)軍方截獲一封“休伯特”寫給“珍妮特阿姨”的信,這封內(nèi)容看似普通的家信引起了英軍的懷疑,但他們一直百思不得其解。直到后來(lái)抓獲了兩名德國(guó)間諜后,據(jù)這兩名間諜介紹,把信的每個(gè)字的首字母組合在一起,就是情報(bào)的內(nèi)容。英軍照間諜所說(shuō)的方法讀出了一條重大軍情:14架“波音堡壘”戰(zhàn)斗機(jī)昨日飛抵倫敦,準(zhǔn)備進(jìn)攻德國(guó)。
這里間諜采用“藏頭信”的方式秘密傳輸信息,實(shí)質(zhì)為隱蔽信道的傳送信息思想。隱蔽信道主要就是完成從受保護(hù)的網(wǎng)絡(luò)傳輸數(shù)據(jù)出來(lái),近年來(lái),“棱鏡門”事件等信息安全事件的發(fā)生,已經(jīng)暴露了網(wǎng)絡(luò)數(shù)據(jù)竊密的冰山一角,網(wǎng)絡(luò)隱蔽信道安全防范不容忽視。
1 隱蔽信道的定義
1973年Lampson最初提出隱蔽信道概念,將其定義為:不是被設(shè)計(jì)或本意不是用來(lái)傳輸信息的通信信道。Lampson最初主要關(guān)注操作系統(tǒng)中程序的限制問(wèn)題,他的這個(gè)定義沒(méi)能完全反映隱蔽信道實(shí)質(zhì),其后來(lái)Tsai、Gligor等人給出一個(gè)較為全面的定義:給定一個(gè)強(qiáng)制安全策略模型M和它在一個(gè)操作系統(tǒng)中的解釋I(M),I(M)中兩個(gè)主體I(Si)和I(Sj)之間的任何潛在通信都是隱蔽的,當(dāng)且僅當(dāng)模型M中的相應(yīng)主體Si和Sj之間的任何通信在M中都是非法的[2]。
隱蔽信道廣泛存在于部署了強(qiáng)制訪問(wèn)控制機(jī)制的安全操作系統(tǒng)、安全數(shù)據(jù)庫(kù)和完全網(wǎng)絡(luò)中。當(dāng)研究計(jì)算機(jī)網(wǎng)絡(luò)中的隱蔽信道,更為公認(rèn)的觀點(diǎn)認(rèn)為:隱蔽通道是一個(gè)將信息隱藏在公開通訊媒介中通訊信道。信道中公開的、有意義的信息僅僅充當(dāng)了秘密信息的載體,秘密信息通過(guò)它進(jìn)行傳輸,這個(gè)定義更為直觀。
2 網(wǎng)絡(luò)隱蔽信道的分類和工作原理
2.1 網(wǎng)絡(luò)隱蔽信道的分類
1987年,Girling發(fā)現(xiàn)了3種局域網(wǎng)上的隱蔽信道,開啟了對(duì)普通網(wǎng)絡(luò)中隱蔽信道的研究[1]。1996年,Handel對(duì)OSI網(wǎng)絡(luò)模型進(jìn)行了深入分析,提出了許多理論上潛在的隱蔽信道。同年,Rowland在TCP/IP協(xié)議部分找到了許多隱蔽信道實(shí)例。此后,網(wǎng)絡(luò)信道的威脅得到了廣泛的認(rèn)識(shí),網(wǎng)絡(luò)隱蔽信道的識(shí)別、度量和處置也成為隱蔽信道研究領(lǐng)域的熱點(diǎn)之一。從不同角度出發(fā),可對(duì)一定范圍內(nèi)的網(wǎng)絡(luò)隱蔽通道進(jìn)行歸類。
從網(wǎng)絡(luò)安全等級(jí)角度出發(fā),一般可分為以下兩類:一是多級(jí)安全網(wǎng)絡(luò)隱蔽信道。安全等級(jí)不同的主機(jī)被隔離在不同安全等級(jí)的安全域中,入侵者往往從高安全級(jí)別主機(jī)獲取信息,并傳遞給低安全級(jí)別主機(jī)。二是普通網(wǎng)絡(luò)隱蔽信道。普通網(wǎng)絡(luò)中主機(jī)沒(méi)有安全級(jí)別的定義,信道的兩端主機(jī)是可以被允許通信的,需要在公開被允許的通信鏈路上建立一層隱蔽信道實(shí)現(xiàn)隱密通信。這種信道更加接近我們的生活網(wǎng)絡(luò),涉及更廣泛的安全環(huán)境和安全策略,如互聯(lián)網(wǎng)、基于TCP/IP的局域網(wǎng)和城域網(wǎng)等網(wǎng)絡(luò)環(huán)境,該文也主要討論此種網(wǎng)絡(luò)信道[4]。
借用傳統(tǒng)操作系統(tǒng)中隱蔽信道的劃分,網(wǎng)絡(luò)隱蔽信道也包括存儲(chǔ)隱蔽信道和時(shí)間隱蔽信道兩種類型。網(wǎng)絡(luò)存儲(chǔ)隱蔽信道主要是在各種協(xié)議的數(shù)據(jù)包中加載信息,為實(shí)現(xiàn)隱蔽傳輸,一般將信息附加在不常用的數(shù)據(jù)字段中,包括未用的IP頭字段(TOS字段、DF和URG位)、IP頭的擴(kuò)展和填充段、IP標(biāo)識(shí)和碎片偏移等。也有的網(wǎng)絡(luò)存儲(chǔ)隱蔽信道將信息隱藏在應(yīng)用層編碼中。網(wǎng)絡(luò)世界隱蔽信道則一般利用網(wǎng)絡(luò)中傳輸數(shù)據(jù)包的時(shí)間特殊性來(lái)表示信息,這些時(shí)間特性包括數(shù)據(jù)包的發(fā)送/到達(dá)時(shí)刻、時(shí)間間隔等。
2.2 網(wǎng)絡(luò)隱蔽通信一般工作原理
如圖1所示,網(wǎng)絡(luò)隱蔽通信中有兩個(gè)角色:發(fā)送者和接受者。發(fā)送者將消息按照事先約定好的某種編碼規(guī)則進(jìn)行變換,將需要隱蔽傳輸?shù)南⑥D(zhuǎn)化成網(wǎng)絡(luò)對(duì)象的某種屬性,從而實(shí)現(xiàn)對(duì)消息的隱藏(即嵌入過(guò)程),然后通過(guò)公開信道將隱蔽消息發(fā)送給位于被保護(hù)網(wǎng)絡(luò)之外的接受者。網(wǎng)絡(luò)對(duì)象可以使TCP/IP封包、應(yīng)用層請(qǐng)求等,而對(duì)象的屬性可以是網(wǎng)絡(luò)數(shù)據(jù)包的某些字段、包間隔時(shí)間、數(shù)據(jù)包序列等。接受者從公開信道里接受信息,根據(jù)事先約定的解碼方式對(duì)數(shù)據(jù)包進(jìn)行分析,抽取所隱藏的信息(即監(jiān)測(cè)過(guò)程),從而實(shí)現(xiàn)隱密通信。
3 計(jì)算機(jī)網(wǎng)絡(luò)常見的隱蔽通道
任何一個(gè)隱蔽信道都依托于一個(gè)公開信道。網(wǎng)絡(luò)模型主要的OSI七層參考模型和TCP/IP參考模型?,F(xiàn)實(shí)中的網(wǎng)絡(luò)基本遵循TCP/IP模型,TCP/IP模型分?jǐn)?shù)據(jù)鏈路層(PPP、SLIP)、網(wǎng)絡(luò)層(IPv4、IPv6) 、傳輸層(TCP、UDP)和應(yīng)用層(HTTP、SMTP、FTP等),這些都可以選擇作為公開通道。由于TCP/IP協(xié)議族自身的復(fù)雜性和靈活性,幾乎所有協(xié)議都有一些字段屬于很少用到或者可選和可擴(kuò)展的。因此,理論上隱蔽信道可以選擇任何網(wǎng)絡(luò)層(IP、ICMP等)、傳輸層(TCP、UDP等)及應(yīng)用層(HTTP、FTP、DNS、TELNET、RTP、P2P、SKYPE等)協(xié)議作為公開信道使用。
網(wǎng)絡(luò)層隱蔽信道。以IPv4協(xié)議為例(IPv6和IPv4具有很多相似性,其實(shí)現(xiàn)隱蔽通信的原理是差不多的),圖2 IP數(shù)據(jù)報(bào)格式中加粗加下劃線的字段(服務(wù)類型(TOS)、標(biāo)識(shí)、片偏移、IP選項(xiàng))都是可以用于編碼隱蔽信息的字段。
服務(wù)類型(TOS)字段8位中的最后兩位即CU部分和標(biāo)志的最后一位始終沒(méi)有被用到,可以用于構(gòu)造攜帶額外的信息。
傳輸層隱蔽信道。傳輸層構(gòu)建隱蔽信道與IP層原理相同,都是利用傳輸層的協(xié)議發(fā)送地址和接受地址的某些特定字段附加特定的信息。TCP Sequence Number字段被替換掉傳輸特定信息;利用checksum的選項(xiàng)域、填充域構(gòu)造隱蔽信道的方法與IP協(xié)議的構(gòu)造類似。
HTTP協(xié)議隱蔽信道。HTTP協(xié)議語(yǔ)法定義寬松,存在很多冗余信息,可以用來(lái)嵌入隱蔽信息,以方便地利用公開信道附加隱蔽信道在服務(wù)器和客戶端進(jìn)行隱蔽通信,并且可以傳輸較大量的數(shù)據(jù)。如可以利用URL攜帶附加信息,利用Cookie機(jī)制偽造一些參數(shù),添加隱蔽信息,利用頭域信息進(jìn)行再編碼以及Date頭域時(shí)間值構(gòu)造隱蔽信道等?;镜脑砣鐖D3所示:
4 隱蔽通道的實(shí)現(xiàn)方法
隱蔽消息因使用的編碼對(duì)象不同而可以采用不同的編碼方法。常見的方法有:
LSB位調(diào)制。IP包頭中的IPID或TOS(服務(wù)類型)字段中最低有效位(LSB),任何其他宿主協(xié)議非關(guān)鍵傳輸位都可以用來(lái)編碼隱蔽信息。這種基本二進(jìn)制類型的字段調(diào)制會(huì)產(chǎn)生隱蔽通道帶寬為1位每包,在實(shí)際環(huán)境中使用太過(guò)低效。
直接構(gòu)造。對(duì)協(xié)議包頭中罕用或可以擴(kuò)展的字段進(jìn)行精心構(gòu)造,甚至直接增加新字段,可以用來(lái)傳輸隱蔽信息。如IPID在很多系統(tǒng)中是隨機(jī)生成的,所以很適合用來(lái)構(gòu)造隱蔽信息的編碼。還有在HTTP包頭中可以增添新字段。
重新排序。如發(fā)送者可以通過(guò)調(diào)換HTTP頭包中Host和Connection兩個(gè)字段的順序,通過(guò)事先約定,Host在Connection前時(shí)表示1,Host在Connection后時(shí)表示0。
大小寫變換。因?yàn)镠TTP協(xié)議對(duì)大小寫不敏感,所以通過(guò)對(duì)屬性名稱的大小寫變換,用大寫代表0,小寫代表1。
對(duì)象映射。這種方法是直接將網(wǎng)絡(luò)包頭中的屬性對(duì)象映射為二進(jìn)制數(shù)位。例如可以將域名作為數(shù)位的標(biāo)識(shí)。發(fā)送者與攻擊者預(yù)先約定好8個(gè)沒(méi)有使用的域名。假設(shè)為:00.cn、11.cn、22.cn、33.cn、44.cn、55.cn、66.cn、77.cn。發(fā)送者按照所要編碼的內(nèi)容去發(fā)送查詢請(qǐng)求。例如,如果要發(fā)送的信息為10011000,則發(fā)送查詢77.cn、33.cn、44.cn這三個(gè)域名的請(qǐng)求。由于這3個(gè)域名并不尋常,內(nèi)網(wǎng)的本地DNS服務(wù)器肯定沒(méi)有緩存,因此會(huì)向公網(wǎng)的DNS服務(wù)器發(fā)送遞歸查詢請(qǐng)求,這樣公網(wǎng)DNS服務(wù)器上也就緩存了這些域名的解析結(jié)果。接受者向公網(wǎng)的DNS服務(wù)器發(fā)送這8個(gè)域名查詢請(qǐng)求,有解析結(jié)果的則該域名對(duì)應(yīng)的位數(shù)為1。這樣就實(shí)現(xiàn)了信息的隱蔽傳輸。
線性空白字符。HTTP將任何數(shù)據(jù)量的線性空白字符(可選換行,空格和制表符)都當(dāng)作一個(gè)空格字符。在SMTP協(xié)議中也有類似的情況。
時(shí)間間隔。產(chǎn)生時(shí)間間隔的方法很多,例如控制CPU負(fù)載變化來(lái)產(chǎn)生時(shí)間間隔,控制數(shù)據(jù)包的發(fā)送來(lái)產(chǎn)生不同到達(dá)目的地址的時(shí)間間隔等。發(fā)送者可以利用時(shí)間間隔對(duì)信息進(jìn)行編碼。
5 隱蔽信道的監(jiān)測(cè)與阻斷
從前面隱蔽信道工作機(jī)制的分析來(lái)看,建立隱蔽信道的方法非常多,而且對(duì)公開信道的改動(dòng)非常小。因此對(duì)其進(jìn)行徹底的檢測(cè)非常困難。在實(shí)際環(huán)境中,考慮到性能、經(jīng)濟(jì)成本、技術(shù)可行性等因素,隱蔽信道的防護(hù)可以采用“廣譜檢測(cè)”和“精準(zhǔn)阻斷”的策略。所謂“廣譜檢測(cè)”就是設(shè)計(jì)的檢測(cè)方法面向一大類隱蔽信道,而不是針對(duì)每一種檢測(cè)通道設(shè)計(jì)一種檢測(cè)規(guī)則,也就是檢測(cè)方法不需要解析數(shù)據(jù)包某個(gè)具體字段的內(nèi)容。“精準(zhǔn)阻斷”就是針對(duì)每一種隱蔽信道都有相應(yīng)的阻斷規(guī)則或措施來(lái)覆蓋。
5.1 隱蔽信道的檢測(cè)
盡管檢測(cè)隱蔽信道的難度很大,但在一定的時(shí)空跨度上進(jìn)行大量數(shù)據(jù)的關(guān)聯(lián)分析,檢測(cè)到隱蔽信道還是有可能的。比較通用的方法是對(duì)網(wǎng)絡(luò)日志和主機(jī)日志的關(guān)聯(lián)分析。常有以下一些思路:
1) 對(duì)異常的DNS查詢的統(tǒng)計(jì)分析,需要在DNS服務(wù)器上開啟記錄查詢?nèi)罩?。如查詢的域名包括多個(gè)層級(jí)且各層級(jí)由16進(jìn)制字符串組成;域名超過(guò)40字節(jié);查詢非常見的域名;DNS響應(yīng)含有私有地址等。
2) 對(duì)ICMP的流量進(jìn)行統(tǒng)計(jì)分析。如出現(xiàn)大量的ICMP流量;數(shù)據(jù)包字節(jié)數(shù)過(guò)大;ICMP流量來(lái)自無(wú)相應(yīng)工作需要的終端;以及其它異常流量的統(tǒng)計(jì)分析。
3) 大量無(wú)相關(guān)工作需要的Skype流量包;單個(gè)終端上超量的HTTP協(xié)議流量;測(cè)量包到達(dá)時(shí)間間隔的規(guī)律性和固定規(guī)律偏差特性;
4) 關(guān)聯(lián)分析主機(jī)的性能日志,因?yàn)殡[蔽信道在傳送信息時(shí),主機(jī)CPU活動(dòng)會(huì)異常頻繁。
5.2 隱蔽通道的阻斷
在網(wǎng)絡(luò)設(shè)備上做一些設(shè)置,直接阻斷可能的隱蔽,可以避免花費(fèi)過(guò)多的精力在檢測(cè)工作上。主要有:
1) 關(guān)閉DNS查詢向可信范圍以外轉(zhuǎn)發(fā)。
2) 對(duì)HTTP訪問(wèn),采用統(tǒng)一的代理服務(wù)器,將HTTP包頭部分內(nèi)容直接重新改寫,避免用于信息編碼。
3) 在安全網(wǎng)關(guān)上啟用ICMP代理,限制包的大小,關(guān)閉部分ICMP流量。
4) 將ICMP、TCP、IP協(xié)議包頭中未使用的部分清零,將可能用于編碼的字段做合理的重寫。
6 結(jié)束語(yǔ)
本文所討論的隱蔽信道,限于利用網(wǎng)絡(luò)層、傳輸層和應(yīng)用層構(gòu)建的隱蔽通信。隨著云計(jì)算應(yīng)用的普及、IPv6全面啟用的臨近,新的隱蔽信道將不斷涌現(xiàn),新環(huán)境下的隱蔽信道檢測(cè)與阻斷將是未來(lái)發(fā)展的方向和重點(diǎn)。
參考文獻(xiàn):
[1] Girling CG.Covert Channels in LANs.IEEE Trans.On Software Engineering, 1987,SE-13(2):292-296.
[2] 夏耐,林志強(qiáng).隱蔽通道發(fā)現(xiàn)技術(shù)綜述[J].計(jì)算機(jī)科學(xué),2006,33(12).
[3] 劉文清,陳喆.隱蔽通道標(biāo)識(shí)與處理[J].計(jì)算機(jī)工程,2006,32(8).
[4] 王永吉,吳敬征.隱蔽信道研究[J].軟件學(xué)報(bào),2010,21(9):2262-2288.
[5] 強(qiáng)亮,李斌征.基于HTTP協(xié)議的網(wǎng)絡(luò)隱蔽通道研究[J].計(jì)算機(jī)工程,2005,31(15).
[6] 張敏,張彤.TCP/IP網(wǎng)絡(luò)中隱蔽信道的實(shí)現(xiàn)和特點(diǎn)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2007(11):25-27.
[7] 盧大航.基于網(wǎng)絡(luò)協(xié)議的隱蔽通道研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2003(2):183-186.