国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Web瀏覽器跨協(xié)議通信安全性研究

2017-02-24 10:07
關(guān)鍵詞:腳本瀏覽器數(shù)據(jù)包

袁 梁

(無錫城市職業(yè)技術(shù)學(xué)院 師范學(xué)院,江蘇 無錫 214063)

Web瀏覽器跨協(xié)議通信安全性研究

袁 梁

(無錫城市職業(yè)技術(shù)學(xué)院 師范學(xué)院,江蘇 無錫 214063)

闡述了瀏覽器跨協(xié)議通信的安全性問題,這類通信是通過將一個(gè)目標(biāo)協(xié)議封裝進(jìn)一個(gè)載體協(xié)議中來完成的.研究表明, 在滿足協(xié)議有足夠的容錯(cuò)度和有方法將目標(biāo)協(xié)議封裝進(jìn)載體協(xié)議兩個(gè)前提下,完全獨(dú)立的兩個(gè)協(xié)議是可以互操作的,潛在的兩個(gè)不同的協(xié)議能夠進(jìn)行命令和數(shù)據(jù)的通信.因此跨協(xié)議通信為攻擊者利用載體協(xié)議實(shí)現(xiàn)對(duì)目標(biāo)協(xié)議的攻擊提供了新的可能性,主要安全問題諸如跨協(xié)議跨站腳本、跨協(xié)議特征探測(cè)、暴力攻擊.

瀏覽器;跨協(xié)議通信;HTTP;IMAP;跨協(xié)議跨站腳本

在Web瀏覽器安全性研究方面,隨著跨站腳本和瀏覽器漏洞的深入研究,瀏覽器的安全性得到了很大的提高.近幾年主流瀏覽器廠商Mircosoft、Google、Mozilla不斷推出瀏覽器新版本,這大大提高了終端用戶的安全性.但是瀏覽器仍然是用戶面臨的巨大威脅,在針對(duì)瀏覽器的安全測(cè)試中,沒有一個(gè)瀏覽器是可以經(jīng)受摧毀性攻擊[1].跨協(xié)議通信 為進(jìn)一步探索Web瀏覽器安全提供了更廣闊的空間.

Web瀏覽器為跨協(xié)議通信提供了一個(gè)理想的平臺(tái).對(duì)于大多數(shù)網(wǎng)絡(luò),尤其是內(nèi)網(wǎng),Web瀏覽器是與外網(wǎng)進(jìn)行通信的重要媒介.Web瀏覽器對(duì)外網(wǎng)上的Web服務(wù)器發(fā)出請(qǐng)求,Web服務(wù)器響應(yīng)瀏覽器的請(qǐng)求并向?yàn)g覽器返回信息,瀏覽器對(duì)返回信息做出相應(yīng)的動(dòng)作.但是在響應(yīng)過程中,Web服務(wù)器放棄了對(duì)瀏覽器的控制權(quán),Web服務(wù)器不能保證到達(dá)瀏覽器的響應(yīng)是否含有惡意腳本,不能保證響應(yīng)是否來自一個(gè)不信任的站點(diǎn)或者來自一個(gè)受干擾的路由.而特定的惡意腳本有能力讓W(xué)eb瀏覽器執(zhí)行跨協(xié)議通信.

本文將重點(diǎn)討論基于Web瀏覽器的跨協(xié)議通信以及這種通信中存在的安全問題.

1 跨協(xié)議通信

1.1前提條件

跨協(xié)議通信是指兩個(gè)相互獨(dú)立的協(xié)議間的通信,它采用封裝的方式指將一個(gè)目標(biāo)協(xié)議封裝進(jìn)一個(gè)載體協(xié)議中,以方便兩個(gè)采取不同通訊格式協(xié)議間的命令和數(shù)據(jù)的通信.實(shí)現(xiàn)跨協(xié)議通信,需要滿足兩個(gè)前提條件:第一,協(xié)議需要有足夠的容錯(cuò)度;第二,有方法將目標(biāo)協(xié)議封裝進(jìn)載體協(xié)議中.

跨協(xié)議通信中的兩個(gè)協(xié)議分別被稱為載體協(xié)議和目標(biāo)協(xié)議.目標(biāo)協(xié)議是接受方能夠解釋的協(xié)議;載體協(xié)議是用來封裝和發(fā)送目標(biāo)協(xié)議的協(xié)議.

協(xié)議間通信主要要考慮的是目標(biāo)協(xié)議的分割.不同的協(xié)議采用不同的方法來分割數(shù)據(jù)段,有些情況下分號(hào)(;)被用來分割數(shù)據(jù),有些情況下包被用來分割數(shù)據(jù)[2].例如:imap使用包來分割數(shù)據(jù),在通信中,需要載體協(xié)議能夠精確封裝每個(gè)包.

成功實(shí)現(xiàn)協(xié)議間通信需要兩個(gè)基本的條件:

容錯(cuò)度:目標(biāo)協(xié)議需要有充分的容錯(cuò)度,在跨協(xié)議連接的時(shí)候,有可能存在一定比例的無效通信,并且可能出現(xiàn)錯(cuò)誤.一些協(xié)議在中止連接前允許一定數(shù)量的錯(cuò)誤,例如4.5版本的Exim在中止客戶端連接之前最多允許4個(gè)錯(cuò)誤[3].在與目標(biāo)協(xié)議通訊前,如果載體協(xié)議造成的錯(cuò)誤超過允許的最大值,那么跨協(xié)議通訊將失敗.

封裝:需要有一個(gè)方法或者是一種機(jī)制可以將目標(biāo)協(xié)議封裝進(jìn)載體協(xié)議中.就二進(jìn)制協(xié)議和基于文本的協(xié)議而言,基于文本的協(xié)議更容易實(shí)現(xiàn)跨協(xié)議通信,因?yàn)槎M(jìn)制協(xié)議相互混合交織,篩選的難度更大,也更容易出錯(cuò)[4].

1.2 HTTP和IMAP協(xié)議應(yīng)用舉列

本文我們以基于文本的協(xié)議為例,將http協(xié)議作為載體協(xié)議,imap郵件協(xié)議作為目標(biāo)協(xié)議,來舉例說明實(shí)現(xiàn)跨協(xié)議通信的可能性.將imap協(xié)議封裝進(jìn)一個(gè)Web請(qǐng)求中,這樣一個(gè)有效的imap命令就可以被傳送到imap郵件服務(wù)器上.

1.2.1 TCP連接

在開始跨協(xié)議通信時(shí)(從Web瀏覽器初始化開始),http協(xié)議請(qǐng)求一個(gè)imap服務(wù)器的時(shí)候?qū)?zhí)行一個(gè)正常的4層握手協(xié)議.整個(gè)過程是這樣:首先瀏覽器向網(wǎng)絡(luò)上的目標(biāo)主機(jī)發(fā)送一個(gè)SYN請(qǐng)求,目標(biāo)主機(jī)響應(yīng)客戶端的請(qǐng)求,并返回一個(gè)SYN ACK應(yīng)答.這個(gè)過程將完成連接的建立.在這個(gè)過程中,不允許錯(cuò)誤的發(fā)生,否則連接將終端,并且客戶端也沒有開始發(fā)送數(shù)據(jù).

1.2.2 容錯(cuò)度

在tcp連接建立完成后,客戶端瀏覽器將開始發(fā)送HTTP協(xié)議數(shù)據(jù)包,這時(shí),兩個(gè)協(xié)議間很有可能出現(xiàn)錯(cuò)誤,并斷開連接.為了使跨協(xié)議通信能夠成功, imap執(zhí)行需要有一定的容錯(cuò)度:imap服務(wù)器要能夠忽略那些http協(xié)議(載體協(xié)議)發(fā)送過來的不符合imap協(xié)議規(guī)格的數(shù)據(jù)包,而且一個(gè)完全沒有錯(cuò)誤的協(xié)議傳輸是不可能的.

在通信期間,大量的http頭將出錯(cuò),而imap目標(biāo)協(xié)議卻不能將他們解釋成一個(gè)有效的輸入.如果http頭的錯(cuò)誤數(shù)量超過imap允許的最大容錯(cuò)度,那么跨協(xié)議通信將不能成功.

POST /localhost HTTP/1.0

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,

http請(qǐng)求數(shù)據(jù)包片段

POST /localhost HTTP/1.0

POST BAD Command unrecognized/login please: /LOCALHOST

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,

Accept: BAD Command unrecognized/login please: IMAGE/GIF,

imap應(yīng)答數(shù)據(jù)包

1.2.3 封裝

為了使跨協(xié)議通信成功,http協(xié)議必須能夠封裝imap協(xié)議.這樣,imap可執(zhí)行命令或者數(shù)據(jù)才能到達(dá)imap服務(wù)器.imap協(xié)議使用單線程命令行,當(dāng)載體協(xié)議返回時(shí),線程就會(huì)中止[5].任何成功的封裝必須能夠?qū)⒍鄠€(gè)命令發(fā)送到imap服務(wù)器.因此為了實(shí)現(xiàn)這個(gè)功能,Web瀏覽器要能夠同時(shí)執(zhí)行http多重請(qǐng)求(multipart post)[6]和javascript腳本.

因此本文采取這種方式實(shí)現(xiàn)基于Web瀏覽器的封裝:通過一個(gè)多重表單將多個(gè)命令封裝在一起,并利用http多重post請(qǐng)求將這個(gè)封裝提交到imap服務(wù)器.

在tcp連接建立完成后,并且http頭錯(cuò)誤已經(jīng)被過濾,imap服務(wù)器將開始處理多重post請(qǐng)求的數(shù)據(jù)包.如果這些數(shù)據(jù)包都由imap命令組成,那么他們將在服務(wù)器上執(zhí)行.目標(biāo)協(xié)議將被imap服務(wù)器解釋成有效的imap命令,跨協(xié)議通信成功.整個(gè)過程向我們展示了從Web服務(wù)器到imap服務(wù)器的跨協(xié)議通信是可以實(shí)現(xiàn)的.

7d6195410340

Content-Disposition: form-data; name="ta"

a002 logout

http請(qǐng)求數(shù)據(jù)包片段—發(fā)送注銷命令

7d6195410340

7d6195410340 BAD Missing command

Content-Disposition: form-data; name="ta"

Content-Disposition: BAD Command unrecognized/login please: FORM-DATA;

* BAD Null command

a002 logout

* BYE debian IMAP4rev1 server terminating connection

a002 OK LOGOUT completed

imap應(yīng)答數(shù)據(jù)包片段—解析注銷命令

2 跨協(xié)議通信安全性研究

跨協(xié)議通信可以是單向通信也可以是雙向通信的.而雙向跨協(xié)議通信中,通信發(fā)起者能夠通過載體協(xié)議應(yīng)答數(shù)據(jù)包,實(shí)現(xiàn)與目標(biāo)協(xié)議的交互目的.因此在某些情況下,跨協(xié)議通信為攻擊者利用載體協(xié)議實(shí)現(xiàn)對(duì)目標(biāo)協(xié)議的攻擊提供了新的可能性,以上述的http協(xié)議和imap協(xié)議為例,主要安全問題有以下幾個(gè)方面.

2.1跨協(xié)議跨站腳本

跨站腳本是一種在Web應(yīng)用程序中發(fā)現(xiàn)的脆弱性,攻擊者利用http協(xié)議通過一些方法將惡意腳本注入到受害者的客戶端中[7].而跨協(xié)議跨站腳本是指使用一個(gè)非http協(xié)議服務(wù)器將惡意腳本注入到Web瀏覽器中,而不是Web應(yīng)用程序.

Web瀏覽器將解釋從服務(wù)器返回的任意協(xié)議,這些協(xié)議滿足各種先決條件,這些條件隨瀏覽器的不同而不同,這里我們不做具體討論.當(dāng)Web請(qǐng)求到達(dá)服務(wù)器時(shí),這個(gè)請(qǐng)求由于出錯(cuò)可能返回給瀏覽器一個(gè)錯(cuò)誤的響應(yīng)信息.這個(gè)響應(yīng)可能包含詳細(xì)的錯(cuò)誤信息,這些錯(cuò)誤信息提供了協(xié)議通信中發(fā)生的錯(cuò)誤細(xì)節(jié).正是這些翔實(shí)的錯(cuò)誤信息,有可能被注入腳本,并能夠被瀏覽器執(zhí)行.

正如上述所述,一個(gè)多重post請(qǐng)求提供了對(duì)請(qǐng)求的有效控制:它能夠封裝任意的imap命令,這些與imap服務(wù)器提供的詳細(xì)錯(cuò)誤信息結(jié)合,為腳本注入提供了一種辦法:當(dāng)imap服務(wù)器收到一個(gè)未知的命令時(shí),它的響應(yīng)是輸出這個(gè)命令并顯示錯(cuò)誤信息“指出這是一個(gè)未知的命令”,如果一個(gè)http請(qǐng)求imap服務(wù)器,并且這個(gè)請(qǐng)求包含跨站腳本,而imap服務(wù)器又不能執(zhí)行這些跨站腳本,那么這些腳本將被客戶端瀏覽器解釋并執(zhí)行,跨站腳本發(fā)生了.例如通過嘗試去執(zhí)行惡意錯(cuò)誤命令“

万盛区| 古浪县| 高唐县| 麻栗坡县| 贺州市| 青州市| 色达县| 土默特左旗| 巴林右旗| 南郑县| 阿拉善盟| 青州市| 新安县| 金昌市| 姜堰市| 伊金霍洛旗| 蕲春县| 临高县| 潮州市| 麻城市| 瑞昌市| 聊城市| 乳山市| 田东县| 安泽县| 华池县| 永新县| 且末县| 仪陇县| 灵丘县| 岚皋县| 齐齐哈尔市| 玛曲县| 鄱阳县| 科尔| 兴和县| 剑川县| 武强县| 舒兰市| 龙游县| 义马市|