朱越凡,馬 迪,王 偉1,,毛 偉1,
1(中國(guó)科學(xué)院大學(xué),北京 100049)
2(中國(guó)科學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190)
3(北龍中網(wǎng)(北京)科技有限責(zé)任公司,北京 100190)
一種NTP協(xié)議隱蔽通道①
朱越凡1,2,馬 迪3,王 偉1,3,毛 偉1,3
1(中國(guó)科學(xué)院大學(xué),北京 100049)
2(中國(guó)科學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190)
3(北龍中網(wǎng)(北京)科技有限責(zé)任公司,北京 100190)
網(wǎng)絡(luò)隱蔽通道技術(shù)是一種被廣泛應(yīng)用的網(wǎng)絡(luò)攻擊技術(shù).掌握隱蔽通道的構(gòu)建機(jī)制,對(duì)制定相應(yīng)網(wǎng)絡(luò)防御策略具有指導(dǎo)意義.利用互聯(lián)網(wǎng)不可或缺的NTP時(shí)間同步協(xié)議,提出了基于NTP協(xié)議的隱蔽通道構(gòu)建機(jī)制.通過(guò)分析NTP協(xié)議查詢/應(yīng)答機(jī)制的特點(diǎn),并研究可被用作載荷的NTP協(xié)議數(shù)據(jù)單元,設(shè)計(jì)了下行通道和上行通道分離的NTP隱蔽通道,它將隱藏信息偽裝成普通NTP報(bào)文,進(jìn)行隱秘消息的傳遞.NTP報(bào)文的普及性和不可替代性,使得基于NTP的隱蔽通道具有穿透能力強(qiáng)、隱蔽性好的優(yōu)點(diǎn).試驗(yàn)表明,提出的NTP隱蔽通道可以攜帶較多的秘密信息,穿透網(wǎng)絡(luò)監(jiān)測(cè)設(shè)備.下一步的工作將圍繞NTP隱蔽通道的認(rèn)證、加密等安全機(jī)制進(jìn)行研究.
隱蔽通道;網(wǎng)絡(luò)安全;NTP協(xié)議;協(xié)議特點(diǎn);傳輸帶寬
在信息傳遞過(guò)程中,我們通常使用加密技術(shù)來(lái)對(duì)需要保密的數(shù)據(jù)進(jìn)行處理.加密技術(shù)使得信息對(duì)于第三方變得不可讀.但這并不能掩蓋通信存在的事實(shí),并且很容易引起第三方的嗅探、竊聽等被動(dòng)攻擊行為.隱藏信道試圖隱藏通信的存在.隱蔽通道(Covert Channel,CC)是指允許進(jìn)程以危害系統(tǒng)安全策略的方式傳輸信息的通信信道[1].最初它被提出是為了解決囚犯問(wèn)題.兩個(gè)囚犯進(jìn)行通信,但他們之間的通信可以被獄警監(jiān)聽并決定是否允許.因此囚犯必須設(shè)計(jì)一種方法來(lái)使它們的對(duì)話看起來(lái)無(wú)害卻隱藏著秘密消息.
網(wǎng)絡(luò)隱蔽通道技術(shù)是一種十分常見的網(wǎng)絡(luò)攻擊技術(shù).該技術(shù)將隱蔽消息偽裝成普通消息在網(wǎng)絡(luò)中進(jìn)行通信.防范隱蔽通道的最好辦法就是掌握隱蔽通道建立的機(jī)制,以便制定相應(yīng)的網(wǎng)絡(luò)安全防護(hù)策略,來(lái)消除隱蔽通道給網(wǎng)絡(luò)安全帶來(lái)的隱患.構(gòu)造隱蔽通道的方法通常是通過(guò)修改數(shù)據(jù)包、利用協(xié)議機(jī)制的弱點(diǎn)或者利用協(xié)議的空閑字段來(lái)實(shí)現(xiàn)[2].例如,張令通等利用TCP協(xié)議首部中的序列號(hào)和確認(rèn)號(hào)字段建立了隱蔽通道[2];楊智丹等對(duì)IP報(bào)頭指針字段選項(xiàng)的網(wǎng)絡(luò)隱蔽通道技術(shù)進(jìn)行了研究[3];羅成等利用Windows消息機(jī)制來(lái)控制擁有網(wǎng)絡(luò)訪問(wèn)權(quán)限的應(yīng)用程序,進(jìn)而構(gòu)建網(wǎng)絡(luò)隱蔽通道[4];Iodine利用DNS中NULL記錄類型構(gòu)造Raw UDP模式,使得整個(gè)UDP載荷均為隱蔽通道[5].在NTP隱蔽信道的研究方面,Action Dan利用NTP報(bào)文 Transmit Timestamp字段作為隱蔽通道傳遞forkbomb指令[6],實(shí)施隱蔽通道攻擊;但這個(gè)方法帶寬有限,不適用于傳遞消息.
NTP是網(wǎng)絡(luò)時(shí)間協(xié)議(Network Time Protocol),是為實(shí)現(xiàn)高精確度的時(shí)間同步,而設(shè)計(jì)的網(wǎng)絡(luò)時(shí)鐘同步協(xié)議.NTP使用層次式時(shí)間分布模型,具有相當(dāng)高的靈活性,可以適應(yīng)各種互聯(lián)網(wǎng)環(huán)境,是互聯(lián)網(wǎng)上公認(rèn)的時(shí)間同步工具[7].目前,基于NTP的隱蔽通道并沒有引起應(yīng)有的重視.然而,網(wǎng)絡(luò)中大量存在的開放式分布的NTP服務(wù)器,高度開放的NTP協(xié)議123端口,以及NTP報(bào)文基于不可靠的UDP進(jìn)行傳輸?shù)膮f(xié)議特性,使得NTP協(xié)議非常容易被黑客利用,實(shí)施隱蔽通道攻擊.因此,研究基于NTP協(xié)議的隱秘通信方法對(duì)網(wǎng)絡(luò)安全防護(hù)具有重要的指導(dǎo)作用.本文利用NTP查詢/應(yīng)答機(jī)制的協(xié)議特性,使用NTP協(xié)議報(bào)文中易被忽略的數(shù)據(jù)單元字段,提出一種高效的上下行分離的隱蔽通道方法,以達(dá)到穿透防火墻和躲避入侵檢測(cè)系統(tǒng)的目的.
隱蔽通道早期的定義只限于操作系統(tǒng)內(nèi)部,重點(diǎn)研究操作系統(tǒng)內(nèi)的安全.隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,隱蔽通道逐漸被應(yīng)用到網(wǎng)絡(luò)技術(shù)中.隱蔽通道由此有了更加廣泛的定義:任何利用非正常的通信手段在網(wǎng)絡(luò)中傳遞信息,突破網(wǎng)絡(luò)安全機(jī)制的通道都可以稱為隱蔽通道[8].
1.1 隱蔽通道類型
根據(jù)隱藏隱蔽通道又分為存儲(chǔ)型和時(shí)序型[8].存儲(chǔ)型隱蔽通道通常利用協(xié)議字段的冗余嵌入隱蔽信息.時(shí)序型隱蔽通道常利用一系列協(xié)議數(shù)據(jù)包的某種排序或相鄰數(shù)據(jù)包到達(dá)的時(shí)間差傳遞秘密信息.
根據(jù)嵌入的位置,協(xié)議隱藏可分為結(jié)構(gòu)型和非結(jié)構(gòu)型[9].結(jié)構(gòu)型隱蔽通道指在協(xié)議的固定格式部分(協(xié)議首部)嵌入信息.非結(jié)構(gòu)型隱蔽通道在協(xié)議攜帶的數(shù)據(jù)部分嵌入信息.
因?yàn)闀r(shí)序型隱蔽通道易受網(wǎng)絡(luò)中不穩(wěn)定因素干擾,導(dǎo)致數(shù)據(jù)包延遲或丟失,不利于隱藏信息的傳遞,因此本文NTP隱蔽通道將使用存儲(chǔ)型隱蔽信道.在嵌入位置方面,本文對(duì)結(jié)構(gòu)型和非結(jié)構(gòu)型NTP隱蔽通道的效率和帶寬等也做了相關(guān)研究和分析.
1.2 隱蔽通道構(gòu)建方法
構(gòu)造隱蔽通道的關(guān)鍵有三點(diǎn)[8]:
1)尋找合適的協(xié)議.通常網(wǎng)絡(luò)應(yīng)用層中隱蔽通道都是以HTTP、SMTP、DNS為載體;這主要是因?yàn)檫@些協(xié)議對(duì)現(xiàn)在的企業(yè)網(wǎng)絡(luò)來(lái)說(shuō)是必須的.
2)尋找協(xié)議中的漏洞.即選擇協(xié)議頭部中的合適字段作為隱蔽通道的數(shù)據(jù)域.雖然這些數(shù)據(jù)域的有效載荷有限,但是Lampson[7]指出即使一個(gè)只能一天傳輸一位的隱蔽通道在特定的環(huán)境下也能夠帶來(lái)危害.
3)偽造要發(fā)送的數(shù)據(jù).通常對(duì)要發(fā)送的數(shù)據(jù)進(jìn)行加密.這樣可以躲避IDS檢測(cè),讓隱蔽通道發(fā)揮更大的作用.
2.1 NTP協(xié)議的工作原理
NTP以客戶機(jī)/服務(wù)器模式進(jìn)行通信:客戶機(jī)發(fā)送一個(gè)請(qǐng)求數(shù)據(jù)包,服務(wù)器接收后回送一個(gè)應(yīng)答數(shù)據(jù)包[9].兩個(gè)數(shù)據(jù)包都帶有發(fā)送和接收的時(shí)間戳,根據(jù)這四個(gè)時(shí)間戳來(lái)確定客戶機(jī)和服務(wù)器之間的時(shí)間偏差和網(wǎng)絡(luò)時(shí)延.
圖1 時(shí)間同步算法時(shí)序
如圖1所示,t1為客戶機(jī)發(fā)送查詢請(qǐng)求包的時(shí)刻, t2為服務(wù)器收到查詢請(qǐng)求包的時(shí)刻,t3為服務(wù)器回復(fù)時(shí)間信息包的時(shí)刻,t4為客戶機(jī)收到時(shí)間信息包的時(shí)刻(t1、t4以客戶機(jī)的時(shí)間系統(tǒng)為參照,t2、t3以服務(wù)器的時(shí)間系統(tǒng)為參照).由此可得信息包在網(wǎng)絡(luò)上的傳輸時(shí)間為:
當(dāng)請(qǐng)求信息包和回復(fù)信息包在網(wǎng)上的傳輸時(shí)間相等時(shí),單程網(wǎng)絡(luò)時(shí)延為:
時(shí)間偏差為:
可以看到,θ、δ只與t2和t1的差值、t3和t4的差值相關(guān),而與t3和t2的差值無(wú)關(guān),即最終的結(jié)果與服務(wù)器處理請(qǐng)求所需的時(shí)間無(wú)關(guān).據(jù)此,客戶機(jī)即可通過(guò)這4個(gè)時(shí)間戳計(jì)算出時(shí)間偏差θ和網(wǎng)絡(luò)時(shí)延δ去調(diào)整本地時(shí)鐘.
2.2 NTP的報(bào)文格式
NTP數(shù)據(jù)包的傳輸采用UDP協(xié)議.在UDP消息頭之后,緊接著的數(shù)據(jù)格式如圖2所示[10].
圖2 NTP報(bào)文格式
主要字段的解釋如下:
LI(Leap Indicator):長(zhǎng)度為2比特,值為“11”時(shí)表示告警狀態(tài),時(shí)鐘未被同步.為其他值時(shí)NTP本身不做處理.
VN(Version Number):長(zhǎng)度為3比特,表示NTP的版本號(hào),目前的最新版本為4.
Mode:長(zhǎng)度為3比特,表示NTP的工作模式.不同的值所表示的含義分別是:0未定義、1表示主動(dòng)對(duì)等體模式、2表示被動(dòng)對(duì)等體模式、3表示客戶模式、4表示服務(wù)器模式、5表示廣播模式或組播模式、6表示此報(bào)文為NTP控制報(bào)文、7預(yù)留給內(nèi)部使用.
Stratum:系統(tǒng)時(shí)鐘的層數(shù),取值范圍為1~16,它定義了時(shí)鐘的準(zhǔn)確度.層數(shù)為1的時(shí)鐘準(zhǔn)確度最高,準(zhǔn)確度從1到16依次遞減,層數(shù)為16的時(shí)鐘處于未同步狀態(tài),不能作為參考時(shí)鐘.
Poll:輪詢時(shí)間,即兩個(gè)連續(xù)NTP報(bào)文之間的時(shí)間間隔.
Precision:系統(tǒng)時(shí)鐘的精度.
Root Delay:本地到主參考時(shí)鐘源的往返時(shí)間.
Root Dispersion:系統(tǒng)時(shí)鐘相對(duì)于主參考時(shí)鐘的最大誤差.
Reference Identifier:參考時(shí)鐘源的標(biāo)識(shí).
Reference Timestamp:系統(tǒng)時(shí)鐘最后一次被設(shè)定或更新的時(shí)間.
Originate Timestamp:NTP請(qǐng)求報(bào)文離開發(fā)送端時(shí)發(fā)送端的本地時(shí)間.
Receive Timestamp:NTP請(qǐng)求報(bào)文到達(dá)接收端時(shí)接收端的本地時(shí)間.
Transmit Timestamp:應(yīng)答報(bào)文離開應(yīng)答者時(shí)應(yīng)答者的本地時(shí)間.
Extension Field:可選擴(kuò)展字段.最小填充長(zhǎng)度為16個(gè)字節(jié),最大填充長(zhǎng)度尚未被定義.
Key Identifier:客戶機(jī)和服務(wù)器雙方協(xié)商的密鑰(可選字段).
dgst:用密鑰計(jì)算得出的NTP頭部和擴(kuò)展字段的哈希值(可選字段).
3.1 NTP隱蔽通道的基本原理
NTP隱蔽通道技術(shù)的基本思想是利用NTP請(qǐng)求和應(yīng)答建立隱蔽通道,實(shí)現(xiàn)數(shù)據(jù)傳輸.通信前雙方商量好隱藏信息的字段和編碼方式等規(guī)則,發(fā)送方按照這個(gè)規(guī)則將隱秘信息偽裝、編碼、發(fā)送,接收方按照約定接收、解碼、提取隱秘信息.簡(jiǎn)單的NTP隱蔽通道的工作模式如圖3所示.
圖3 上行通道和下行通道分離的NTP隱蔽通道
普通的NTP隱蔽通道在通信過(guò)程中會(huì)產(chǎn)生大量來(lái)自同一主機(jī)的NTP請(qǐng)求包和返回該主機(jī)的NTP應(yīng)答包,流量分布特征十分顯著,很容易被入侵檢測(cè)系統(tǒng)識(shí)別出異常[1].為了降低NTP隱蔽通道被檢測(cè)的風(fēng)險(xiǎn),我們利用NTP報(bào)文基于面向無(wú)連接的UDP協(xié)議工作的特點(diǎn),如圖4所示,在客戶端節(jié)點(diǎn)處偽造其他主機(jī)IP地址發(fā)送NTP時(shí)間同步請(qǐng)求,最終服務(wù)器返回響應(yīng)包到偽造IP主機(jī)處,從而平衡流量分布.
圖4 偽造源IP發(fā)送NTP同步請(qǐng)求報(bào)文
3.2 使用NTP協(xié)議構(gòu)建隱蔽通道的詳細(xì)方法
我們可以使用一種非常暴力的方法來(lái)構(gòu)建NTP隱蔽通道:將基于UDP的服務(wù)運(yùn)行在123端口,從客戶端直接向服務(wù)器發(fā)起通信,讓整個(gè)NTP報(bào)文處于Raw UDP模式.此時(shí),整個(gè)UDP載荷均為隱蔽通道,通信效率顯著提升.然而,這些報(bào)文不是有效的NTP消息,流量分析工具解析這些報(bào)文時(shí)會(huì)出現(xiàn)格式錯(cuò)誤,從而引起懷疑.因此,我們采用了更加具有欺騙性的手段,既能保證一定的通信帶寬,又使得攜帶隱蔽消息的報(bào)文符合基本的NTP協(xié)議包特征,避免被網(wǎng)絡(luò)上流量分析檢測(cè)工具識(shí)別出來(lái).
1)基于報(bào)文數(shù)據(jù)單元構(gòu)建上行通道
NTP時(shí)間同步機(jī)制是由客戶機(jī)直接發(fā)起時(shí)間同步請(qǐng)求,因此在上行信道只需要考慮哪些字段可以隱藏?cái)?shù)據(jù),而不用考慮信道的發(fā)起時(shí)間和通信頻率.根據(jù)網(wǎng)絡(luò)防護(hù)設(shè)備的一般規(guī)則設(shè)置,對(duì)于NTP協(xié)議包的校驗(yàn)主要是報(bào)文頭部和MAC校驗(yàn).因此,除去報(bào)文頭部4個(gè)字節(jié)的屬性特征分布(狀態(tài)、版本、模式等)和末尾MAC字段常被提取和檢查,其余字段都易被檢測(cè)設(shè)備忽略,很適合作為隱藏消息字段.結(jié)合NTP協(xié)議中的設(shè)計(jì)不嚴(yán)密的部分,我們?cè)谏闲型ǖ朗褂孟旅鎺讉€(gè)字段來(lái)隱藏?cái)?shù)據(jù).
① 利用時(shí)間戳(Timestamp)最低有效位(LSB)
NTP報(bào)文中有四個(gè)時(shí)間戳字段:參考時(shí)間戳、原始時(shí)間戳、接受時(shí)間戳、傳送時(shí)間戳.時(shí)間戳字段用的是二進(jìn)制補(bǔ)碼編碼方式.此時(shí)我們將時(shí)間戳信息進(jìn)行輕微的變換而使其仍符合時(shí)間信號(hào)特征.我們可以利用時(shí)間戳的最低有效位來(lái)隱藏信息.最低有效位指的是一個(gè)二進(jìn)制數(shù)字中的第0位(即最低位).但是使用這種方式無(wú)法攜帶較多的數(shù)據(jù),難以滿足文件傳送、遠(yuǎn)程桌面控制等大數(shù)據(jù)量密集通信應(yīng)用的需求.
② 利用參考標(biāo)識(shí)符(Reference Identifier)字段
KOD(Kiss of Death)包是一種當(dāng)連接狀態(tài)未定義或者無(wú)效時(shí),客戶機(jī)和服務(wù)器之間傳遞狀態(tài)報(bào)告和訪問(wèn)控制的數(shù)據(jù)包.這種數(shù)據(jù)包的參考標(biāo)識(shí)符字段沒有格式要求且不認(rèn)為具有有效數(shù)據(jù).NTPV4協(xié)議指定時(shí)規(guī)定[10]:如果客戶端或者服務(wù)器的一端使用IPV6地址,另一端使用IPV4地址,兩方進(jìn)行通訊時(shí),將無(wú)法完成時(shí)間循環(huán)(time looping)校驗(yàn).此時(shí)參考標(biāo)識(shí)符字段也沒有格式限制且不認(rèn)為具有有效數(shù)據(jù).因此,幾乎所有的網(wǎng)絡(luò)分析工具都不把參考標(biāo)識(shí)符字段當(dāng)成訪問(wèn)控制的判斷依據(jù).這為基于該字段的信息隱藏提供了非常有利的條件.
③ 利用擴(kuò)展域(Extension Field)填充字段
在NTP協(xié)議的最新版本NTPV4中,可以在頭部之后,MAC校驗(yàn)字段之前添加一個(gè)或多個(gè)擴(kuò)展域. RFC5905中,擴(kuò)展域的內(nèi)容沒有被明確定義,但被強(qiáng)制要求最少填充至16字節(jié),最大填充長(zhǎng)度未作要求.這樣,根據(jù)UDP協(xié)議包的最大長(zhǎng)度512字節(jié),除去UDP報(bào)文首部8字節(jié)和NTP報(bào)文首部48字節(jié),我們可以讓填充字段擴(kuò)充到一個(gè)十分可觀的長(zhǎng)度(456字節(jié)).
因此,上行通道即把客戶端的隱蔽信息傳送給服務(wù)器端.可攜帶數(shù)據(jù)的域:Timestamp、Reference ID、Extension Field.
客戶端請(qǐng)求:
2)基于協(xié)議構(gòu)建下行通道
上文闡述的基于報(bào)文的隱蔽信道的方法同樣也適用于下行通道.但如同Action Dan利用NTP隱蔽信道傳輸數(shù)據(jù)時(shí),遇到的服務(wù)器對(duì)客戶端單向被動(dòng)下行信道帶寬不足的問(wèn)題,我們可以利用NTP協(xié)議中不嚴(yán)密的地方,構(gòu)建“合法”的通信信道.
①利用KOD包
一個(gè)可控的隱蔽通道應(yīng)該具備指令信號(hào),對(duì)上行和下行通道的流量開關(guān)和傳輸速率作出適當(dāng)?shù)目刂?此時(shí),我們可以使用KOD包中的參考標(biāo)識(shí)符字段作為這種信號(hào).這個(gè)字段特定的ASCII字符串(DENY and RSTR、RATE等)原本就是設(shè)計(jì)來(lái)實(shí)現(xiàn)客戶端和服務(wù)器之間的訪問(wèn)控制.這種信號(hào)可以被沿用作為隱蔽通道信息傳遞的控制信號(hào),作為下行信道中服務(wù)器端通知客戶機(jī)開啟和關(guān)閉隱蔽通道的指令信號(hào).
② monlist指令
NTP服務(wù)包含一個(gè) monlist功能[11],它被設(shè)計(jì)用于監(jiān)控 NTP服務(wù)器.NTP服務(wù)器響應(yīng)monlist指令后會(huì)返回與自己進(jìn)行過(guò)時(shí)間同步的最后600個(gè)客戶端的IP.這意味著,一個(gè)很小的請(qǐng)求包,就能獲取到大量的活動(dòng) IP地址組成的連續(xù)UDP包.響應(yīng)包按照每 6個(gè)IP進(jìn)行分割,最多有100個(gè)響應(yīng)包,通常每個(gè)包為480字節(jié).利用monlist指令,可以得到一個(gè)非常不錯(cuò)的下行帶寬.
因此利用NTP服務(wù)的monlist功能,可以將隱蔽數(shù)據(jù)偽裝成合理的響應(yīng)包在網(wǎng)絡(luò)中進(jìn)行傳輸.在monlist觸發(fā)指令下,NTP服務(wù)器可以使隱藏信道具有不錯(cuò)的帶寬,實(shí)現(xiàn)“接受簡(jiǎn)短命令,返回大量結(jié)果”的下行通道模式.
③ 利用listpeers指令
Listpeers指令的使用和monlist指令類似.NTP服務(wù)器響應(yīng) listpeers指令后就會(huì)返回與 NTP服務(wù)器進(jìn)行過(guò)時(shí)間同步的所有對(duì)等機(jī)的IP地址.因此listpeers指令也可以作為下行信道的觸發(fā)指令來(lái)傳遞隱蔽信息.
因此,下行通道即把服務(wù)器端的隱蔽信息傳送給客戶端.可攜帶數(shù)據(jù)的域: Receive timestamp、Transmit timestamp、Reference ID、Extension Field.
服務(wù)器端請(qǐng)求:
由于NTP協(xié)議具有普遍性和不可替代性,網(wǎng)絡(luò)監(jiān)控設(shè)備通常不對(duì)NTP數(shù)據(jù)包做檢查.但在網(wǎng)絡(luò)安全措施較為嚴(yán)格的網(wǎng)絡(luò)中,網(wǎng)絡(luò)管理員強(qiáng)制關(guān)閉123端口,此時(shí)只允許從內(nèi)部網(wǎng)絡(luò)向外部網(wǎng)絡(luò)發(fā)送NTP請(qǐng)求,而不允許外部網(wǎng)絡(luò)主動(dòng)向內(nèi)部網(wǎng)絡(luò)發(fā)送NTP數(shù)據(jù)包.這種情況有兩種解決辦法:第一,如果外部主機(jī)需要主動(dòng)對(duì)內(nèi)部主機(jī)發(fā)起隱蔽通道建立請(qǐng)求,那么就需要把NTP報(bào)文Mode字段設(shè)置成應(yīng)答模式,偽裝成服務(wù)器或?qū)Φ戎鳈C(jī)的應(yīng)答報(bào)文,使其穿過(guò)防火墻;第二,內(nèi)部主機(jī)首先發(fā)起NTP請(qǐng)求,內(nèi)部主機(jī)和外部主機(jī)的連接即可建立[12].
3.3 基于NTP協(xié)議隱蔽通道的實(shí)現(xiàn)
在發(fā)送端,需要先構(gòu)造NTP數(shù)據(jù)包:需要加強(qiáng)隱秘性的情況下,首先可以對(duì)隱秘信息進(jìn)行加密,把加密后的信息映射到合法的NTP地址段單元,這樣的NTP數(shù)據(jù)包是“合法”的.在接收端通過(guò)提取相應(yīng)字段的數(shù)據(jù),進(jìn)行解密操作,恢復(fù)隱秘信息.整個(gè)過(guò)程如圖5所示.
圖5 基于NTP協(xié)議的隱蔽通道的實(shí)現(xiàn)
通常情況網(wǎng)絡(luò)設(shè)備并不檢測(cè)NTP協(xié)議包的時(shí)間戳和擴(kuò)展字段,甚至在一些入侵檢測(cè)系統(tǒng)(例如Snort)的用戶手冊(cè)里還強(qiáng)調(diào):“如果用戶的服務(wù)器(比如NTP、NPS和DNS服務(wù)器)會(huì)妨礙端口掃描的探測(cè),可以通知相應(yīng)模塊忽略源自這些主機(jī)的TCP SYN和UDP端口掃描”.由此看出,這些網(wǎng)絡(luò)安全設(shè)備一般都在過(guò)濾包時(shí)主動(dòng)忽略NTP包.因此從理論上說(shuō)這種隱蔽通信是可行的;本文通過(guò)XCAP方式進(jìn)行NTP隱蔽通道通信試驗(yàn),穿過(guò)防火墻和局域網(wǎng)網(wǎng)關(guān),在接收端正確接收到含有隱秘消息的數(shù)據(jù)包,從實(shí)踐中證明了本文的方法.
圖6 客戶端向服務(wù)器傳輸隱蔽信息
在圖6的實(shí)例中,客戶端發(fā)起NTP時(shí)間同步請(qǐng)求,將隱蔽信息Bob is a spy keep him under surveillance嵌入到NTP報(bào)文中.NTP報(bào)文最終送至NTP服務(wù)器,服務(wù)器端解析NTP報(bào)文可以獲得隱蔽信息.
隱蔽通道建立時(shí),還必須考慮安全方面的因素,以保護(hù)隱蔽通道資源.本研究下一步工作將從以下幾個(gè)方面展開[13]:
1)認(rèn)證:客戶端和服務(wù)器必須相互認(rèn)證,以免第三方的數(shù)據(jù)干擾,防止隱蔽通道資源被惡意占用.
2)數(shù)據(jù)流加密:由于NTP協(xié)議報(bào)文的傳送一般情況下采用明文形式傳送,所以許多網(wǎng)絡(luò)嗅探器可以捕捉到網(wǎng)絡(luò)中傳輸?shù)腘TP數(shù)據(jù)包,并分析出NTP報(bào)文中的內(nèi)容,這樣NTP隱蔽通道易被發(fā)現(xiàn),從而降低NTP隱蔽通道的安全性.對(duì)于這種情況,通常我們可以對(duì)NTP隱蔽通道中數(shù)據(jù)流進(jìn)行加密.
3)數(shù)據(jù)完整性:為了檢查隱蔽通道在傳輸數(shù)據(jù)的過(guò)程中數(shù)據(jù)是否被篡改,可以沿用NTP報(bào)文中的可選字段dgst字段存放校驗(yàn)哈希值來(lái)保證數(shù)據(jù)完整性.
4)重放保護(hù):為避免攻擊者利用以前的通信記錄來(lái)訪問(wèn)客戶機(jī)或者服務(wù)器,客戶機(jī)和服務(wù)器應(yīng)該制定相應(yīng)機(jī)制應(yīng)對(duì)重放攻擊.
目前,許多黑客正在利用基于NTP的隱蔽信道來(lái)進(jìn)行攻擊,這主要是因?yàn)榛贜TP協(xié)議的隱蔽通道有著它特有的優(yōu)勢(shì):
1)目前絕大多數(shù)網(wǎng)絡(luò)都開放 NTP服務(wù).在Fyodor組織2014年互聯(lián)網(wǎng)主機(jī)端口開放狀況報(bào)告中, NTP所在的123端口排名第四位,僅次于NetBIOS協(xié)議137端口、SNMP協(xié)議161端口和SQLServer查詢的1434端口,而居然比DNS查詢53端口開放程度還要高.NTP協(xié)議數(shù)據(jù)包能順利通過(guò)防火墻、NAT設(shè)備而不被過(guò)濾或攔截.這些為基于NTP協(xié)議構(gòu)建隱蔽通道創(chuàng)造了有利條件.
2)蒙騙式通信.UDP協(xié)議是面向無(wú)連接的.NTP隱蔽通道利用NTP報(bào)文基于UDP協(xié)議進(jìn)行傳輸?shù)奶攸c(diǎn),在NTP隱蔽通道的內(nèi)部網(wǎng)絡(luò)源主機(jī)節(jié)點(diǎn)處隨機(jī)偽造內(nèi)部網(wǎng)絡(luò)其他主機(jī)IP發(fā)送偽裝的NTP查詢請(qǐng)求,最終服務(wù)器響應(yīng)包會(huì)返回到其他主機(jī)IP,從而平衡流量分布特征.
3)較高的帶寬.NTP協(xié)議報(bào)文有較多可以攜帶隱蔽信息的字段.僅在NTP報(bào)文頭部(48字節(jié)),就有若干個(gè)常被忽略而不被檢測(cè)的協(xié)議數(shù)據(jù)單元.此外,我們還可以利用NTP報(bào)文的擴(kuò)展字段作為隱藏信息的載體.
本文利用互聯(lián)網(wǎng)公認(rèn)的時(shí)間同步工具NTP協(xié)議的通用性和透明性,提出了基于NTP協(xié)議的隱蔽通道構(gòu)建機(jī)制,是非常具有發(fā)展前景的信息隱藏技術(shù).本文通過(guò)分析NTP協(xié)議數(shù)據(jù)單元,最大限度地利用NTP報(bào)文載荷,構(gòu)建了上行隱蔽通道;充分利用查詢/應(yīng)答機(jī)制特點(diǎn),設(shè)計(jì)了“接受簡(jiǎn)短命令,返回大量結(jié)果”的下行隱蔽通道:將隱藏信息偽裝成普通的NTP報(bào)文,進(jìn)行隱秘消息的傳遞.本文提出的基于NTP協(xié)議的隱蔽通道技術(shù)具有穿透力強(qiáng),隱蔽性好,流量分布特征不明顯等優(yōu)點(diǎn).
1王永杰,劉京菊.基于DNS協(xié)議的隱蔽通道原理及性能分析.計(jì)算機(jī)工程,2014,40(7):102–105.
2張令通,羅森林.基于TCP協(xié)議首部的網(wǎng)絡(luò)隱蔽通道技術(shù)研究.計(jì)算機(jī)工程與科學(xué),2014,36(6):1072–1076.
3楊智丹,劉克勝,王康,汪松鶴.基于IP報(bào)頭選項(xiàng)的網(wǎng)絡(luò)隱蔽通道技術(shù).計(jì)算機(jī)工程,2009,35(13):125–127.
4羅成.基于Windows消息機(jī)制的HTTP隱蔽通道的設(shè)計(jì)與實(shí)現(xiàn)[碩士學(xué)位論文].上海:上海交通大學(xué),2008.
5廖曉鋒,邱桂華.一種基于Web訪問(wèn)模型的網(wǎng)絡(luò)隱蔽通道.計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(2):10–14.
6曹自剛,熊剛,趙詠,郭莉.隱蔽式網(wǎng)絡(luò)攻擊綜述.集成技術(shù), 2014,(2):1–16.
7曹自剛.隱蔽式網(wǎng)絡(luò)攻擊檢測(cè)關(guān)鍵問(wèn)題研究[碩士學(xué)位論文].北京:北京郵電大學(xué),2015.
8王相林,趙顏昌,李黎.一種基于源IP地址的信息隱藏技術(shù).計(jì)算機(jī)應(yīng)用與軟件,2010,27(10):222–224.
9王永吉,吳敬征,曾海濤,丁麗萍,廖曉鋒.隱蔽信道研究.軟件學(xué)報(bào),2010,21(9):2262–2288.
10沈燕芬.用于網(wǎng)絡(luò)時(shí)間同步的NTP協(xié)議.現(xiàn)代計(jì)算機(jī)(專業(yè)版),2004,(4):54–56.
11楊先杰.NTP協(xié)議的研究與應(yīng)用.電力信息化,2011,9(6): 28–32.
12師海燕,梁洪波.基于ICMP協(xié)議的網(wǎng)絡(luò)隱蔽通道技術(shù)的分析.電腦知識(shí)與技術(shù)(學(xué)術(shù)交流),2007,2(10):963,989.
13強(qiáng)亮,李斌,胡銘曾.基于HTTP協(xié)議的網(wǎng)絡(luò)隱蔽通道研究.計(jì)算機(jī)工程,2005,31(15):224–225.
Covert Channel Based on NTPProtocol
ZHU Yue-Fan1,2,MADi3,WANG Wei1,3,MAO Wei1,3
1(University of ChineseAcademy of Sciences,Beijing 100049,China)
2(Computer Network Information Center,ChineseAcademy of Sciences,Beijing 100190,China)
3(Internet Domain Name System Beijing Engineering Research Center Ltd.,Beijing 100190,China)
The covert channel based on network protocol has been widely used for network attack.Mastering the mechanism of covert channel is important to the formulating of corresponding network defense strategy.Due to the widely use of network time protocol,a kind of covert channel technology based on NTP protocol is proposed in this paper.This paper analyzes features of query/response mechanisms in the NTP protocol,utilizes the message field as hidden payload and then designs separated downstream and upstream NTP covert channels,in which secret information is disguised and transmitted as normal NTP messages.The popularity and irreplaceability of NTP message make NTP covert channel endowed with the advantages of great ability of penetration and high quality of concealment.Test results show that the technology could carry relatively considerable information and easily penetrate the network monitoring device.The future work will focus on authentication,encryption and other security mechanisms in NTP covert channel.
covert channel;network security;NTP protocol;protocol features;transmission bandwidth
2016-08-03;收到修改稿時(shí)間:2016-09-08
10.15888/j.cnki.csa.005715