隱蔽通道:給定一個強制安全策略模型M和它在一個操作系統(tǒng)中的解釋I(M),I(M)中兩個主體I(Si)和I(Sj)之間的任何潛在通信都是隱蔽的,當且僅當模型M中的相應主體Si和Sj之間的任何通信在M中都是非法的。(系統(tǒng)中不受安全策略控制的,違反安全策略的信息泄露路徑) 隱蔽通道主要有兩種類型:存儲通道和定時通道。如果一個進程直接或間接地寫一個存儲單元,另一個進程直接或間接地讀該存儲單元,則稱這種通道為隱蔽存儲通道。如果一個進程通過調(diào)節(jié)它對系統(tǒng)資源的使用,影響另外一個進程觀察到的真實響應時間,實現(xiàn)一個進程向另一個進程傳遞信息,則稱這種通道為隱蔽定時通道。
RwwwShell 由THCs van Hauser 用Perl 開發(fā),其特點是數(shù)據(jù)包具有HTTP的特點,且數(shù)據(jù)傳送采用HTTP GET命令,防火墻會將這種數(shù)據(jù)看作是合法信息。其缺點是響應時間較長,隱蔽通道帶寬小。Firepass可以穿透防火墻,原理是將信息隱藏到合法的HTTP POST 請求中,然而其缺點也是明顯的:由于正常用戶在瀏覽網(wǎng)頁時,通常不會頻繁地使用HTTP POST 請求,當越來越多的公司將其核心業(yè)務向互聯(lián)網(wǎng)轉(zhuǎn)移的時候,網(wǎng)絡安全作為一個無法回避的問題擺在人們面前。公司一般采用防火墻作為安全的第一道防線。而隨著攻擊者技能的日趨成熟,攻擊工具與手法的日趨復雜多樣,單純的防火墻策略已經(jīng)無法滿足對安全高度敏感的部門的需要,網(wǎng)絡的防衛(wèi)必須采用一種縱深的、多樣的手段。與此同時,目前的網(wǎng)絡環(huán)境也變得越來越復雜,各式各樣的復雜的設備,需要不斷升級、補漏的系統(tǒng)使得網(wǎng)絡管理員的工作不斷加重,不經(jīng)意的疏忽便有可能造成重大的安全隱患。在這種情況下,入侵檢測系統(tǒng)IDS(Intrusion Detection System)就成了構建網(wǎng)絡安全體系中不可或缺的組成部分。IDS是英文"Intrusion Detection Systems"的縮寫,中文意思是"入侵檢測系統(tǒng)".專業(yè)上講就是依照一定的安全策略,通過軟、硬件,對網(wǎng)絡、系統(tǒng)的運行狀況進行監(jiān)視,盡可能發(fā)現(xiàn)各種攻擊企圖、攻擊行為或者攻擊結(jié)果,以保證網(wǎng)絡系統(tǒng)資源的機密性、完整性和可用性。
1 HTTP協(xié)議隱蔽通道構建方法
1.1 HTTP請求信息隱藏方法
(1)GET 請求URI信息隱藏方法
當用戶在瀏覽網(wǎng)頁時,HTTP GET請求是最常用到的命令,GET方法從服務器指定位置請求一個文件。它是文件檢索的主要方式,服務器通過一定方式得到GET請求的應答結(jié)果,并且返回給客戶端。在客戶端使用GET命令發(fā)出請求后,服務器返回一個包括狀態(tài)行、頭和客戶端請求的數(shù)據(jù)的應答。
HTTP是一個客戶端和服務器端請求和應答的標準(TCP)。客戶端是終端用戶,服務器端是網(wǎng)站。通過使用Web瀏覽器、網(wǎng)絡爬蟲或者其它的工具,客戶端發(fā)起一個到服務器上指定端口(默認端口為80)的HTTP請求。(我們稱這個客戶端)叫用戶代理(user agent)。應答的服務器上存儲著(一些)資源,比如HTML文件和圖像。(我們稱)這個應答服務器為源服務器(origin server)。在用戶代理和源服務器中間可能存在 http和其他幾種網(wǎng)絡協(xié)議多個中間層,比如代理,網(wǎng)關,或者隧道(tunnels)。盡管TCP/IP協(xié)議是互聯(lián)網(wǎng)上最流行的應用,HTTP協(xié)議并沒有規(guī)定必須使用它和(基于)它支持的層。 事實上,HTTP可以在任何其他互聯(lián)網(wǎng)協(xié)議上,或者在其他網(wǎng)絡上實現(xiàn)。HTTP只假定(其下層協(xié)議提供)可靠的傳輸,任何能夠提供這種保證的協(xié)議都可以被其使用。
對于GET方法來說,適合用來攜帶隱蔽通道數(shù)據(jù)的域有:URI域和script-URI域。可將信息隱藏在HTTP GET請求的URI域,URI的絕對路徑必須能夠被作為請求URI來傳遞,同時URI的網(wǎng)絡地址必須在頭域Host中進行傳遞。
(2)GET 請求CGI信息隱藏方法
Common Gateway Interface,簡稱CGI.在物理上是一段程序,運行在服務器上,提供同客戶端 HTML頁面的接口。這樣說大概還不好理解。那么我們看一個實際例子: 現(xiàn)在的個人主頁上大部分都有一個留言本。留言本的工作是這樣的:先由用戶在客戶端輸入一些信息,如名字之類的東西。接著用戶按一下"留言"(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到服務器的CGI目錄下特定的cgi程序中,于是cgi程序在服務器上按照預定的方法進行處理。在本例中就是把用戶提交的信息存入指定的文件中。然后cgi程序給客戶端發(fā)送一個信息,表示請求的任務已經(jīng)結(jié)束。此時用戶在瀏覽器里將看到"留言結(jié)束"的字樣。整個過程結(jié)束。
混合使用HTTP GET 請求URI與HTTP GET 請求CGI兩種信息隱藏方法,可以使利用GET方法所請求的URI更貼近真正使用者瀏覽網(wǎng)頁時的行為,就算IDS針對特定字段作檢測,也不容易發(fā)生異常。
(3)GET Referer URI信息隱藏方法
在HTTP 協(xié)議中,Referer 字段指定用戶端最后一個頁面的URI地址。例如,如果用戶訪問頁面A,然后點擊從頁面A到B的鏈接,頁面B的HTTP請求會包括一個Referer字段,該字段會包含這樣的信息"這個請求來自頁面A".
(4)HTTP請求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方法
從客戶端向服務器端傳送數(shù)據(jù),在要求服務器和CGI作進一步處理時就會用到POST方法。該方法主要用于發(fā)送HTML文本中FORM的內(nèi)容,讓CGI處理。在POST方法中,可以用來攜帶隱蔽通道數(shù)據(jù)的域有:URI、消息頭和請求消息體。HTTP POST請求信息隱藏方法的好處是當存放信息到消息體,基本上是沒有長度限制的。
1.2 HTTP響應信息隱藏方法
(1)HTTP響應消息體信息隱藏方法
HTTP響應消息體信息隱藏方法將信息隱藏在HTTP協(xié)議的響應消息體中。例如,若要傳遞"our covert channel start",可以直接在響應消息體中加入"our covert channel start"的信息。
(2)HTTP Set Cookie方法
HTTP Set Cookie 信息隱藏方法將信息隱藏在服務器到客戶端的響應表頭中的Set Cookie 域。而且HTTP Set Cookie信息隱藏方法可以被允許頻繁傳送不同的Set Cookie值。如在瀏覽購物網(wǎng)站時,若頻繁地更換購物車里的內(nèi)容,將會使服務器一直傳送不同的Set Cookie 值給客戶端。
(3)響應文件信息隱藏方法
當用戶瀏覽網(wǎng)頁時,通常會請求服務器回傳某些文件,因此可以將信息隱藏在響應文件中進行傳輸。可以利用Lee 等人所提出的方法,將要傳送的信息隱藏在JPEG文件中,再將文件回傳給客戶端。
2 FHCC_HTTP設計與實現(xiàn)
FHCC技術采用了跳頻通信的思想,所謂跳頻,是指用偽隨機碼序列構成跳頻指令來控制頻率合成器,并在多個頻率中進行選擇的移頻鍵控。跳頻通信要求提供幾百個,甚至上萬個頻率供隨機選擇,這使得跳頻技術成為戰(zhàn)術通信的首選抗干擾技術。FHCC技術將不同信息隱藏方法視為不同的頻率,依據(jù)事先定義好的"跳頻序列"交替切換五種請求隱藏方法和三種響應隱藏方法,使網(wǎng)絡通信看起來像是正常用戶瀏覽網(wǎng)頁,從而避開IDS的監(jiān)測。
2.1 FHCC_HTTP 的設計
如圖1所示,請求方法1為HTTP GET請求CGI信息隱藏方法,請求方法2 為HTTP GET請求URI信息隱藏方法,請求方法3 為HTTP GET Referer URI信息隱藏方法,請求方法4為請求Cookie信息隱藏方法,請求方法5為HTTP POST請求信息隱藏方法;響應方法1 為HTTP響應消息體信息隱藏方法,響應方法2為響應文件信息隱藏方法,響應方法3為HTTP Set Cookie 信息隱藏方法。
雙方首先通過安全通道得到完全一致的跳頻序列,當?shù)谝淮芜M行信息傳遞時,根據(jù)請求序列,第一個數(shù)字4為請求Cookie信息隱藏方法,表示FHCC_HTTP Client將采用HTTP POST請求信息隱藏方法傳送信息給FHCC_HTTP Server;而根據(jù)響應序列,數(shù)字3為HTTP Set Cookie信息隱藏方法。
2.2 FHCC_HTTP 實現(xiàn)
FHCC_HTTP基于C/S模式,用Perl語言編程實現(xiàn),Perl 語言有很好的網(wǎng)絡與字串處理能力,在實現(xiàn)時加入多種信息隱藏方法,并加入跳頻序列實現(xiàn)。
(1) 連接控制的實現(xiàn)
在Client每次提出連接請求時,會讓Client先送出一組Client與Server事先定義好的GET請求,如"GET/covert_channel_server.cgi?start",當Server收到這組GET請求,才允許Client此次的連接。
在FHCC_HTTP中,定義X-session字段和X-counter字段,包含在每次請求中,用于控制Client 與Server的連接。X-session 表示不同的會話,每次會話中不同的請求用遞增的X-counter加以區(qū)分[4].另外僅利用X-session 字段的存在與否來判斷此次請求是否為Covert Channel請求并不能防范replay attack 之類的攻擊,因此在實現(xiàn)時,將利用X-counter 值,來確認每次的請求。
數(shù)據(jù)的同步和差錯控制主要是通過數(shù)據(jù)包的編號sequence、數(shù)據(jù)包的個數(shù)sendcount和receivecount來實現(xiàn)的。Client通過發(fā)送CHECK-NUM-AND- ABSTRACT sendcount messageabstract,Server收到后與本地的receivecount和messageabstract進行比較,如果一致則返回CHECK-WRIGHT;如果丟包就返回CHECK-ERROR-COUNT N…,則要求重發(fā)相應的數(shù)據(jù)包;如果摘要不一致,就返回CHECK-ERROR- ABSTRACT要求全部重發(fā)。
(2)跳頻序列的實現(xiàn)
依據(jù)網(wǎng)絡特性的不同,可調(diào)整FHCC_HTTP的五種信息隱藏方法的比率,從而使信息隱藏方法比率最適合當下的網(wǎng)絡環(huán)境。HTTP CC Client 與HTTP CC Server 里定義了多組跳頻序列,如在HTTP CC Client 事先定義了五十組跳頻序列,在HTTP CC Server 也定義了相同的五十組跳頻序列,假設HTTP CC Client 選定了第七組跳頻序列,則HTTP CC Client 會先傳送一組事先定義好的GET請求:"GET/covert_channel_server.cgi?start7",請求HTTP CC Server 開始建立此次隱蔽通道并且告知HTTP CC Server 這次隱蔽通道使用第七組跳頻序列。
3 仿真實驗及結(jié)果分析
3.1 隱秘性
隱秘性是隱蔽通道的一個重要參數(shù),目前檢測隱蔽通道的最有效的方法是基于行為模式的檢測方式。首先利用統(tǒng)計、概率或神經(jīng)網(wǎng)絡等方法建立正常用戶的行為模型,將目前的網(wǎng)絡流量與正常行為模型進行對比,從而發(fā)現(xiàn)可能的異常行為。
以某互聯(lián)網(wǎng)網(wǎng)頁服務器為例,統(tǒng)計出正常用戶使用網(wǎng)頁的行為模式。如圖2所示,通過統(tǒng)計2008年底到2009年初大約一千萬條記錄發(fā)現(xiàn),大約90%以上的請求屬于文件請求(也就是GET URI),且文件類型以jpg與gif類型為最多,因此需調(diào)高"跳頻序列"中的HTTP GET請求URI信息隱藏方法和響應文件信息隱藏方法的使用頻率。
3.2 文件傳輸時間
測試三種傳送模式 (不使用隱蔽通道、使用FHCC_TTP隱蔽通道和使用RwwwShell隱蔽通道)的文件傳輸時間。測試在100 MB的局域網(wǎng)環(huán)境下進行,分別傳送10 KB、100 KB 以及1 MB 的文件,測試結(jié)果如圖3所示。
由圖3可知,在100 MB的網(wǎng)絡中,不使用隱蔽通道傳送上述三類文件所需時間都小于1 s.接著利用FHCC_HTTP傳送文件,跳頻序列A指將每種信息隱藏方法比率都調(diào)整為25%,跳頻序列B將跳頻序列調(diào)整為HTTP GET 請求URI 信息隱藏方法比率的90%,HTTP GET請求CGI 信息隱藏方法與HTTP POST 請求信息隱藏方法各為5%.可發(fā)現(xiàn)采用跳頻序列B數(shù)據(jù)傳輸時間增長,這是因為HTTP POST 請求信息隱藏方法的使用量減少,而利用HTTP POST 請求信息隱藏效率最高,因此每減少一次HTTP POST 請求信息隱藏方法,就必須以多次HTTP GET 請求URI 信息隱藏方法或HTTP GET 請求CGI信息隱藏方法來彌補,因此總請求次數(shù)大幅增加,造成傳輸時間增長。
本文以HTTP下的隱蔽通道為研究對象,設計并實現(xiàn)了一種基于跳頻的新的HTTP隱蔽通道技術。該技術以HTTP協(xié)議為載體,通過切換多種隱蔽通道構建方法,使網(wǎng)絡通信看起來像是正常用戶瀏覽網(wǎng)頁,以達到穿透防火墻和躲避入侵檢測的目的。
HTTP隱蔽通道已經(jīng)對防火墻和IDS系統(tǒng)提出了嚴峻的挑戰(zhàn);因此怎樣檢測HTTP隱蔽通道成為以后工作的重點目前已經(jīng)發(fā)現(xiàn)了一些方法可以檢測HTTP隱蔽通道,但是怎樣將新的方法做成軟件并且融合到現(xiàn)有的防火墻技術中去,將是今后工作的重點。
-
存儲
+關注
關注
13文章
4265瀏覽量
85676 -
協(xié)議
+關注
關注
2文章
598瀏覽量
39182 -
服務器
+關注
關注
12文章
9024瀏覽量
85187
發(fā)布評論請先 登錄
相關推薦
評論