《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于HTTP協(xié)議的跳頻隱蔽通道技術(shù)研究
基于HTTP協(xié)議的跳頻隱蔽通道技術(shù)研究
來(lái)源:電子技術(shù)應(yīng)用2010年第10期
謝 慧1,嚴(yán)承華1,陳澤茂1,聶 峰2
1.海軍工程大學(xué) 電子工程學(xué)院, 湖北 武漢430033;2.武警山東總隊(duì)通信處, 山東 濟(jì)南260030
摘要: 針對(duì)目前HTTP隱蔽通道帶寬小和容易被檢測(cè)的弱點(diǎn),提出一種基于HTTP協(xié)議的跳頻隱蔽通道(FHCC_HTTP)技術(shù)。介紹了多種基于HTTP協(xié)議的隱蔽通道構(gòu)建方法,在此基礎(chǔ)上提出了基于跳頻原理的HTTP隱蔽通道技術(shù)的設(shè)計(jì)和實(shí)現(xiàn)。最后對(duì)文件隱秘性、文件傳輸時(shí)間進(jìn)行了分析和仿真測(cè)試,結(jié)果表明采用FHCC_HTTP隱蔽通道的網(wǎng)絡(luò)流量更貼近正常用戶瀏覽網(wǎng)頁(yè)時(shí)的網(wǎng)絡(luò)流量,可有效地避開(kāi)IDS的檢測(cè),隱秘性好。同時(shí)由于FHCC_HTTP切換多種隱蔽通道構(gòu)建方法,文件傳輸時(shí)間和隱蔽通道帶寬較RwwwShell有明顯改善。
中圖分類號(hào): TP393.08
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2010)10-0102-04
Research on the frequency hopping convert channel based on HTTP
XIE Hui1, YAN Cheng Hua1, CHEN Ze Mao1, NIE Feng2
1.College of Electronic Engineering, Naval Univ. of Engineering, Wuhan 430033, China;2.Department of Communication Squadron of Shandong Armed Police, Jinan 260030, China
Abstract: In view of the present HTTP hiding channel with the weakness of small band width and easy to be detected, this paper presents the technology of a new frequency hopping convert channel based on HTTP (FHCC_HTTP). The first section introduces a variety methods of covert channel based on HTTP protocol , on the basis of which the design and implementation of frequency hopping covert channel based on the HTTP is presented. Finally the file privacy analysis and the file transfer time simulation test is carried on. The results show that using the FHCC_HTTP technology, the network current capacity draws close to the normal user browsing homepage network current capacity, and the network can effectively avoids IDS examination. The privacy is good.Simultaneously, because FHCC_HTTP shifts many kinds of hiding channel construction method, compares to RwwwShell, the file transfer time and the hiding channel band width have been significantly improved.
Key words : frequency hopping; convert channel; HTTP; privacy

 http://ihrv.cn/tags/隱蔽通道" title="隱蔽通道" target="_blank">隱蔽通道是信息隱藏的一個(gè)重要分支,它最初由Lampson提出,Lampson在“關(guān)于限制問(wèn)題注釋”論文中這樣定義隱蔽通道:“如果一個(gè)通道既不是設(shè)計(jì)用于通信,也不是用于傳遞信息,則稱該通道為隱蔽通道”。因?yàn)殡[蔽通道利用了系統(tǒng)原本不用于數(shù)據(jù)傳送的資源來(lái)傳送數(shù)據(jù),所以它能在系統(tǒng)安全機(jī)制的監(jiān)控之下將秘密信息外泄。目前常見(jiàn)的網(wǎng)絡(luò)隱蔽通道多構(gòu)建在TCP/IP的應(yīng)用層上,在該層可被用來(lái)構(gòu)建隱蔽通道的協(xié)議有超文本傳輸協(xié)議HTTP(Hypertext Transfer Protocol)、簡(jiǎn)單郵件傳輸協(xié)議SMTP(Simple Mail Transfer Protocol)、域名解析系統(tǒng)DNS(Domain Name System)。由于基于HTTP的隱蔽通道不易被屏蔽且具有較高的帶寬,故成為近年來(lái)信息隱藏研究的熱點(diǎn),有Reverse www Shell、Firepass、Cooking channels和Cctt等多種基于HTTP的隱蔽通道技術(shù)被提出。
    RwwwShell 由THCs van Hauser 用Perl 開(kāi)發(fā),其特點(diǎn)是數(shù)據(jù)包具有HTTP的特點(diǎn),且數(shù)據(jù)傳送采用HTTP GET命令,防火墻會(huì)將這種數(shù)據(jù)看作是合法信息。其缺點(diǎn)是響應(yīng)時(shí)間較長(zhǎng),隱蔽通道帶寬小。Firepass可以穿透防火墻,原理是將信息隱藏到合法的HTTP POST 請(qǐng)求中,然而其缺點(diǎn)也是明顯的:由于正常用戶在瀏覽網(wǎng)頁(yè)時(shí),通常不會(huì)頻繁地使用HTTP POST 請(qǐng)求,因此這種方法容易被入侵檢測(cè)系統(tǒng)IDS(Intrusion Detection System)檢測(cè)[1]。鑒于上述技術(shù)存在隱蔽通道帶寬小和容易被檢測(cè)的弱點(diǎn),本文提出一種基于HTTP協(xié)議的跳頻隱蔽通道FHCC_HTTP(Frequency Hopping Convert Channel based on HTTP)技術(shù)。該技術(shù)從多種基于HTTP協(xié)議隱蔽通道構(gòu)建方法入手,進(jìn)而研究了如何通過(guò)切換多種隱蔽通道構(gòu)建方法,使網(wǎng)絡(luò)通信看起來(lái)像是正常用戶瀏覽網(wǎng)頁(yè),從而避開(kāi)IDS的監(jiān)測(cè)。。
1 HTTP協(xié)議隱蔽通道構(gòu)建方法
1.1 HTTP請(qǐng)求信息隱藏方法

 (1)GET 請(qǐng)求URI信息隱藏方法
 當(dāng)用戶在瀏覽網(wǎng)頁(yè)時(shí),HTTP GET請(qǐng)求是最常用到的命令,GET方法從服務(wù)器指定位置請(qǐng)求一個(gè)文件。它是文件檢索的主要方式,服務(wù)器通過(guò)一定方式得到GET請(qǐng)求的應(yīng)答結(jié)果,并且返回給客戶端。在客戶端使用GET命令發(fā)出請(qǐng)求后,服務(wù)器返回一個(gè)包括狀態(tài)行、頭和客戶端請(qǐng)求的數(shù)據(jù)的應(yīng)答[2]。
 對(duì)于GET方法來(lái)說(shuō),適合用來(lái)攜帶隱蔽通道數(shù)據(jù)的域有:URI域和script-URI域??蓪⑿畔㈦[藏在HTTP GET請(qǐng)求的URI域,URI的絕對(duì)路徑必須能夠被作為請(qǐng)求URI來(lái)傳遞,同時(shí)URI的網(wǎng)絡(luò)地址必須在頭域Host中進(jìn)行傳遞。
 (2)GET 請(qǐng)求CGI信息隱藏方法
 CGI(Common Getaway Interface)協(xié)議中的script-URI 也是一個(gè)適合傳送秘密信息的域。若欲傳送信息“our covert channel start”,可以將信息隱藏在script-URI 中,傳送出如下的“GET /test?our=covert&channel=start”。
 混合使用HTTP GET 請(qǐng)求URI與HTTP GET 請(qǐng)求CGI兩種信息隱藏方法,可以使利用GET方法所請(qǐng)求的URI更貼近真正使用者瀏覽網(wǎng)頁(yè)時(shí)的行為,就算IDS針對(duì)特定字段作檢測(cè),也不容易發(fā)生異常。
 (3)GET Referer URI信息隱藏方法
 在HTTP 協(xié)議中,Referer 字段指定用戶端最后一個(gè)頁(yè)面的URI地址。例如,如果用戶訪問(wèn)頁(yè)面A,然后點(diǎn)擊從頁(yè)面A到B的鏈接,頁(yè)面B的HTTP請(qǐng)求會(huì)包括一個(gè)Referer字段,該字段會(huì)包含這樣的信息“這個(gè)請(qǐng)求來(lái)自頁(yè)面A”。因此可利用前面所述的URI信息隱藏方法,將秘密信息藏入Referer字段。
 (4)HTTP請(qǐng)求Cookie 信息隱藏方法
 根據(jù)RFC 2109所述“the name of the state information(“cookie”)is NAME,and its value is VALUE.(…) The VALUE is opaque to the user agent and may be anything the origin server chooses to send,(…)”,這表示在HTTP協(xié)議中,Cookie是可以由用戶自行定義的,因此可將信息隱藏在Cookie中[3]。
 (5)POST方法
 從客戶端向服務(wù)器端傳送數(shù)據(jù),在要求服務(wù)器和CGI作進(jìn)一步處理時(shí)就會(huì)用到POST方法。該方法主要用于發(fā)送HTML文本中FORM的內(nèi)容,讓CGI處理。在POST方法中,可以用來(lái)攜帶隱蔽通道數(shù)據(jù)的域有:URI、消息頭和請(qǐng)求消息體。HTTP POST請(qǐng)求信息隱藏方法的好處是當(dāng)存放信息到消息體,基本上是沒(méi)有長(zhǎng)度限制的。然而在一般使用者瀏覽網(wǎng)頁(yè)時(shí),使用到HTTP POST 請(qǐng)求的機(jī)會(huì)相對(duì)較小,若是在隱蔽通道傳遞過(guò)程中,HTTP POST請(qǐng)求出現(xiàn)次數(shù)過(guò)于頻繁,將被IDS發(fā)現(xiàn)。
1.2 HTTP響應(yīng)信息隱藏方法
 (1)HTTP響應(yīng)消息體信息隱藏方法
 HTTP響應(yīng)消息體信息隱藏方法將信息隱藏在HTTP協(xié)議的響應(yīng)消息體中。例如,若要傳遞“our covert channel start”,可以直接在響應(yīng)消息體中加入“our covert channel start”的信息。
 (2)HTTP Set Cookie方法
 HTTP Set Cookie 信息隱藏方法將信息隱藏在服務(wù)器到客戶端的響應(yīng)表頭中的Set Cookie 域。而且HTTP Set Cookie信息隱藏方法可以被允許頻繁傳送不同的Set Cookie值。如在瀏覽購(gòu)物網(wǎng)站時(shí),若頻繁地更換購(gòu)物車?yán)锏膬?nèi)容,將會(huì)使服務(wù)器一直傳送不同的Set Cookie 值給客戶端。因此頻繁使用HTTP Set Cookie 信息隱藏方法,不會(huì)被IDS視為異常。
 (3)響應(yīng)文件信息隱藏方法
    當(dāng)用戶瀏覽網(wǎng)頁(yè)時(shí),通常會(huì)請(qǐng)求服務(wù)器回傳某些文件,因此可以將信息隱藏在響應(yīng)文件中進(jìn)行傳輸??梢岳肔ee 等人所提出的方法,將要傳送的信息隱藏在JPEG文件中,再將文件回傳給客戶端。
2 FHCC_HTTP設(shè)計(jì)與實(shí)現(xiàn)
 FHCC技術(shù)采用了跳頻通信的思想,所謂跳頻,是指用偽隨機(jī)碼序列構(gòu)成跳頻指令來(lái)控制頻率合成器,并在多個(gè)頻率中進(jìn)行選擇的移頻鍵控。跳頻通信要求提供幾百個(gè),甚至上萬(wàn)個(gè)頻率供隨機(jī)選擇,這使得跳頻技術(shù)成為戰(zhàn)術(shù)通信的首選抗干擾技術(shù)。FHCC技術(shù)將不同信息隱藏方法視為不同的頻率,依據(jù)事先定義好的“跳頻序列”交替切換五種請(qǐng)求隱藏方法和三種響應(yīng)隱藏方法,使網(wǎng)絡(luò)通信看起來(lái)像是正常用戶瀏覽網(wǎng)頁(yè),從而避開(kāi)IDS的監(jiān)測(cè)。
2.1  FHCC_HTTP 的設(shè)計(jì)
 如圖1所示,請(qǐng)求方法1為HTTP GET請(qǐng)求CGI信息隱藏方法,請(qǐng)求方法2 為HTTP GET請(qǐng)求URI信息隱藏方法,請(qǐng)求方法3 為HTTP GET Referer URI信息隱藏方法,請(qǐng)求方法4為請(qǐng)求Cookie信息隱藏方法,請(qǐng)求方法5為HTTP POST請(qǐng)求信息隱藏方法;響應(yīng)方法1 為HTTP響應(yīng)消息體信息隱藏方法,響應(yīng)方法2為響應(yīng)文件信息隱藏方法,響應(yīng)方法3為HTTP Set Cookie 信息隱藏方法。

 雙方首先通過(guò)安全通道得到完全一致的跳頻序列,當(dāng)?shù)谝淮芜M(jìn)行信息傳遞時(shí),根據(jù)請(qǐng)求序列,第一個(gè)數(shù)字4為請(qǐng)求Cookie信息隱藏方法,表示FHCC_HTTP Client將采用HTTP POST請(qǐng)求信息隱藏方法傳送信息給FHCC_HTTP Server;而根據(jù)響應(yīng)序列,數(shù)字3為HTTP Set Cookie信息隱藏方法,表示FHCC_HTTP Server回傳信息時(shí)將采用HTTP Set Cookie 信息隱藏方法,以此類推。
2.2  FHCC_HTTP 實(shí)現(xiàn)
 FHCC_HTTP基于C/S模式,用Perl語(yǔ)言編程實(shí)現(xiàn),Perl 語(yǔ)言有很好的網(wǎng)絡(luò)與字串處理能力,在實(shí)現(xiàn)時(shí)加入多種信息隱藏方法,并加入跳頻序列實(shí)現(xiàn)。
 (1) 連接控制的實(shí)現(xiàn)
 在Client每次提出連接請(qǐng)求時(shí),會(huì)讓Client先送出一組Client與Server事先定義好的GET請(qǐng)求,如“GET/covert_channel_server.cgi?start”,當(dāng)Server收到這組GET請(qǐng)求,才允許Client此次的連接。
 在FHCC_HTTP中,定義X-session字段和X-counter字段,包含在每次請(qǐng)求中,用于控制Client 與Server的連接。X-session 表示不同的會(huì)話,每次會(huì)話中不同的請(qǐng)求用遞增的X-counter加以區(qū)分[4]。另外僅利用X-session 字段的存在與否來(lái)判斷此次請(qǐng)求是否為Covert Channel請(qǐng)求并不能防范replay attack 之類的攻擊,因此在實(shí)現(xiàn)時(shí),將利用X-counter 值,來(lái)確認(rèn)每次的請(qǐng)求,若是這次的X-counter值沒(méi)有比上一個(gè)請(qǐng)求的X-counter 值加1,FHCC_HTTP將不會(huì)把這次請(qǐng)求視為Covert Channel連接請(qǐng)求。
 數(shù)據(jù)的同步和差錯(cuò)控制主要是通過(guò)數(shù)據(jù)包的編號(hào)sequence、數(shù)據(jù)包的個(gè)數(shù)sendcount和receivecount來(lái)實(shí)現(xiàn)的。Client通過(guò)發(fā)送CHECK-NUM-AND- ABSTRACT sendcount messageabstract,Server收到后與本地的receivecount和messageabstract進(jìn)行比較,如果一致則返回CHECK-WRIGHT;如果丟包就返回CHECK-ERROR-COUNT N…,則要求重發(fā)相應(yīng)的數(shù)據(jù)包;如果摘要不一致,就返回CHECK-ERROR- ABSTRACT要求全部重發(fā)。
 (2)跳頻序列的實(shí)現(xiàn)
 依據(jù)網(wǎng)絡(luò)特性的不同,可調(diào)整FHCC_HTTP的五種信息隱藏方法的比率,從而使信息隱藏方法比率最適合當(dāng)下的網(wǎng)絡(luò)環(huán)境。HTTP CC Client 與HTTP CC Server 里定義了多組跳頻序列,如在HTTP CC Client 事先定義了五十組跳頻序列,在HTTP CC Server 也定義了相同的五十組跳頻序列,假設(shè)HTTP CC Client 選定了第七組跳頻序列,則HTTP CC Client 會(huì)先傳送一組事先定義好的GET請(qǐng)求:“GET/covert_channel_server.cgi?start7”,請(qǐng)求HTTP CC Server 開(kāi)始建立此次隱蔽通道并且告知HTTP CC Server 這次隱蔽通道使用第七組跳頻序列。
3 仿真實(shí)驗(yàn)及結(jié)果分析
3.1 隱秘性

 隱秘性是隱蔽通道的一個(gè)重要參數(shù),目前檢測(cè)隱蔽通道的最有效的方法是基于行為模式的檢測(cè)方式。首先利用統(tǒng)計(jì)、概率或神經(jīng)網(wǎng)絡(luò)等方法建立正常用戶的行為模型,將目前的網(wǎng)絡(luò)流量與正常行為模型進(jìn)行對(duì)比,從而發(fā)現(xiàn)可能的異常行為。因此只要使所建立的隱蔽通道的網(wǎng)絡(luò)流量貼近正常用戶的行為模式,將會(huì)有效地避開(kāi)IDS的檢測(cè)。
 以某互聯(lián)網(wǎng)網(wǎng)頁(yè)服務(wù)器為例,統(tǒng)計(jì)出正常用戶使用網(wǎng)頁(yè)的行為模式。如圖2所示,通過(guò)統(tǒng)計(jì)2008年底到2009年初大約一千萬(wàn)條記錄發(fā)現(xiàn),大約90%以上的請(qǐng)求屬于文件請(qǐng)求(也就是GET URI),且文件類型以jpg與gif類型為最多,因此需調(diào)高“跳頻序列”中的HTTP GET請(qǐng)求URI信息隱藏方法和響應(yīng)文件信息隱藏方法(將信息藏入jpg和gif類型的文件中)的使用頻率,這樣可使隱蔽通道的網(wǎng)絡(luò)流量更貼近正常用戶瀏覽網(wǎng)頁(yè)時(shí)的網(wǎng)絡(luò)流量。

3.2 文件傳輸時(shí)間
 測(cè)試三種傳送模式 (不使用隱蔽通道、使用FHCC_TTP隱蔽通道和使用RwwwShell隱蔽通道)的文件傳輸時(shí)間。測(cè)試在100 MB的局域網(wǎng)環(huán)境下進(jìn)行,分別傳送10 KB、100 KB 以及1 MB 的文件,測(cè)試結(jié)果如圖3所示。
 由圖3可知,在100 MB的網(wǎng)絡(luò)中,不使用隱蔽通道傳送上述三類文件所需時(shí)間都小于1 s。接著利用FHCC_HTTP傳送文件,跳頻序列A指將每種信息隱藏方法比率都調(diào)整為25%,跳頻序列B將跳頻序列調(diào)整為HTTP GET 請(qǐng)求URI 信息隱藏方法比率的90%,HTTP GET請(qǐng)求CGI 信息隱藏方法與HTTP POST 請(qǐng)求信息隱藏方法各為5%??砂l(fā)現(xiàn)采用跳頻序列B數(shù)據(jù)傳輸時(shí)間增長(zhǎng),這是因?yàn)镠TTP POST 請(qǐng)求信息隱藏方法的使用量減少,而利用HTTP POST 請(qǐng)求信息隱藏效率最高,因此每減少一次HTTP POST 請(qǐng)求信息隱藏方法,就必須以多次HTTP GET 請(qǐng)求URI 信息隱藏方法或HTTP GET 請(qǐng)求CGI信息隱藏方法來(lái)彌補(bǔ),因此總請(qǐng)求次數(shù)大幅增加,造成傳輸時(shí)間增長(zhǎng)。最后采用RwwwShell傳送文件,因?yàn)镽wwwShell的數(shù)據(jù)傳送完全采用HTTP GET命令,因此其響應(yīng)時(shí)間最長(zhǎng),隱蔽通道帶寬最小。

 本文以HTTP下的隱蔽通道為研究對(duì)象,設(shè)計(jì)并實(shí)現(xiàn)了一種基于跳頻的新的HTTP隱蔽通道技術(shù)。該技術(shù)以HTTP協(xié)議為載體,通過(guò)切換多種隱蔽通道構(gòu)建方法,使網(wǎng)絡(luò)通信看起來(lái)像是正常用戶瀏覽網(wǎng)頁(yè),以達(dá)到穿透防火墻和躲避入侵檢測(cè)的目的。
    HTTP隱蔽通道已經(jīng)對(duì)防火墻和IDS系統(tǒng)提出了嚴(yán)峻的挑戰(zhàn);因此怎樣檢測(cè)HTTP隱蔽通道成為以后工作的重點(diǎn)[5]。目前已經(jīng)發(fā)現(xiàn)了一些方法可以檢測(cè)HTTP隱蔽通道,但是怎樣將新的方法做成軟件并且融合到現(xiàn)有的防火墻技術(shù)中去,將是今后工作的重點(diǎn)。
參考文獻(xiàn)
[1]  TRABELSI Z. Traceroute based IP channel for sending hidden short messages. Porc.Advaces in information and  Computer Security    (IWSEC),Oct 2006:421-36.
[2]  Wikipedia, Hypertext Transfer Protocol,http://en.wikipedia.org/wiki/HTTP.
[3]  CASTRO S. Cooking channels. 2006,http://grayworld.net/pr_cook_cc.shtml.

[4]  Exploitation of data streams authorized by a network access  control system for arbitrary data transfers:tunneling and covert channels over the HTTP protocol-v1.0-Alex Dyatlov &Simon Castro. June 2003.URL:http://gray-world.net/projects/papers/Covert_paper.txt
[5]  CASTRO S. Covert channel and tunneling over the HTTP protocol detection: GW implementation theoretical design. 2003,http://gray-world.net/projects/papers/html/cctde.html

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。