摘要:本文在分析Trace請求、響應(yīng)的基礎(chǔ)上,提出了一種從Cookie和HTTP認(rèn)證信息當(dāng)中獲取信息的跨站漏洞攻擊方法及防范對策。
關(guān)鍵詞:TRACE;跨站點;攻擊;防范
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2008)16-21204-01
Attack and Countermeasure of the Cross-site Vulnerabilities Based on Trace
WANG Xue-song
(Hunan Technical College of Communications and Engineering,Hengyang 421001,China)
Abstract:proposedone Attacking-method and Countermeasures of cross-site throughauthentication information of the cookie and the HTTP Based on the analysis Trace request and response.
Key words:Trace; Cross-site; Attack; Countermeasure
1 引言
隨著計算機(jī)網(wǎng)絡(luò)和通信技術(shù)的發(fā)展,Internet正快速、廣泛滲透到社會的各個應(yīng)用領(lǐng)域。無論是在信息、商業(yè),還是教育科研機(jī)構(gòu)或政府組織等領(lǐng)域,人們?nèi)找娓惺艿剿鼛淼臐撛邝攘εc巨大益處,我們的生活和工作都因Internet而增添了新的內(nèi)容和形式。網(wǎng)絡(luò)技術(shù)的應(yīng)用在為人們的生活工作帶來便利的同時也存在不容忽視的安全隱患。這些安全隱患同時也滋生了網(wǎng)絡(luò)上的各種攻擊技術(shù)[1],使用簡單而功能強(qiáng)大的新型攻擊工具不斷地被開發(fā)出來。同時,在Internet上,這些攻擊工具隨處可得,從而使一個沒有專業(yè)知識的入侵者竊取或破壞一個技術(shù)先進(jìn)的信息系統(tǒng)成為可能。在眾多的入侵和攻擊中,跨站漏洞攻擊而越來越多的關(guān)注,因此研究它的網(wǎng)絡(luò)攻擊方法和安全防御策略,對于提高網(wǎng)絡(luò)安全,促進(jìn)網(wǎng)絡(luò)健康發(fā)展有重要的意義。
2 Trace請求與響應(yīng)
Trace用作調(diào)試Web服務(wù)器連接的HTTP方式的一種機(jī)制,收到Trace請求的服務(wù)器會把收到的報文信息原封不動地返回給客戶機(jī)。但在某些情況下,服務(wù)器還需要在返回的報文當(dāng)中添加一些信息。對于瀏覽器而言,由于Cookie是根據(jù)其所設(shè)置的域而被自動包含在HTTP請求當(dāng)中的,因此對Trace請求的響應(yīng)會返回所有Cookie的值。如果攻擊者能夠有效利用這一點,就可以順利越過客戶端的HTTP保護(hù)措施,因為這些措施只能禁止客戶端的腳本通過文檔對象模型(DOM)來訪問Cookie,而如果其中使用了HTTP認(rèn)證機(jī)制,還可以由此得到用戶名和密碼。
3 攻擊原理及方法
跨站攻擊是指入侵者在遠(yuǎn)程Web頁面的HTML代碼中插入具有惡意目的的數(shù)據(jù),用戶認(rèn)為該頁面是可信賴的,但是當(dāng)瀏覽器下載該頁面,嵌入其中的腳本將被解釋執(zhí)行。基于Trace跨站漏洞攻擊的一個重要區(qū)別是它所攻擊的應(yīng)用程序不需要有任何CSS(Cross Site Script,跨站腳本攻擊或是任何其它的客戶端腳本)方面的漏洞[2],只要目標(biāo)服務(wù)器支持HTTP Trace,就可以成功登錄具有跨站漏洞網(wǎng)站,然后攻擊者將惡意代碼嵌入一臺已經(jīng)被控制的主機(jī)上的Web文件,當(dāng)訪問者瀏覽時惡意代碼在瀏覽器中執(zhí)行,然后訪問者的Cookie、HTTP基本驗證以及Ntlm驗證信息將被發(fā)送到已經(jīng)被控制的主機(jī),同時傳送Trace請求給目標(biāo)主機(jī),導(dǎo)致Cookie欺騙[3]或者是中間人攻擊。但是,瀏覽器和腳本語言并不能像支持Get和Post那樣支持HTTP的方法,因此攻擊者必須用其它方法發(fā)出請求。包括ActiveX、Flash、Java等在內(nèi)的各種客戶端腳本擴(kuò)展技術(shù)都具有允許代碼創(chuàng)建和發(fā)送原始的HTTP請求的功能。要做到這一點,攻擊者必須找到一個可以實施跨站點跟蹤攻擊的位置,比如能夠插入惡意的代碼,確保具有客戶端的腳本擴(kuò)展技術(shù)(XML HTTP ActiveX控制),并誘使用戶訪問惡意的站點。如圖1是跨站跟蹤攻擊的一個示意圖,攻擊者可以利用它獲取會話標(biāo)識符,并利用它偽裝成用戶。只要服務(wù)器能夠接受HTTP Trace方法,或是某人的計算機(jī)存在CSS漏洞,就可以采用這種方式實施攻擊。(下轉(zhuǎn)第1226頁)
(上接第1204頁)
4 防范策略
用戶是否遭到跨站點漏洞攻擊的入侵,通常采用啟動TCAT或是其它命令行工具檢驗。如果支持的方法中包含了Trace,應(yīng)當(dāng)在Web服務(wù)器的配置文件中將其關(guān)閉。這樣不但可以保護(hù)服務(wù)器免受來自本地應(yīng)用程序或遠(yuǎn)程客戶端的CSS攻擊,還阻止了攻擊者利用跨站點跟蹤攻擊來獲取信息。而如果支持的方法中不包含Trace,或是OPTIONS請求收到了HTTP400或405的錯誤信息,則重新連接Web服務(wù)器,嘗試用命令TRACE/HTTP/1.0請求,將確保TRACE關(guān)閉。
現(xiàn)在很多瀏覽器都具有強(qiáng)大的域間保護(hù)功能,可以阻止一個頁面產(chǎn)生屬于另一個頁面的訪問請求。這意味著存在CSS漏洞的頁面會引起跨站點跟蹤攻擊的問題會隨著用戶逐漸升級為新版本的瀏覽器而逐步消除。但這并沒有完全解決所有問題,本地頁面中的跨站點跟蹤漏洞仍然會造成認(rèn)證信息被竊取,因為它們在同一個域當(dāng)中。正確的方法是及時處理錯誤信息,并關(guān)閉Trace請求。
對于Apache而言,在各虛擬主機(jī)的配置文件中用mod_rewrite進(jìn)行如下修改后可關(guān)閉來自任何Web服務(wù)器的HTTP Trace請求。
RewriteEngine on
RewriteCond %{REQUEST_METHD}^TRACE
RewriteRule .* -[F]
如果使用的是IIS,則可以通過采用URLScan來關(guān)閉Trace方法,并確保URLScan.ini文件的Allowverbs部分中不包含它。
5 結(jié)束語
隨著Web網(wǎng)絡(luò)技術(shù)的發(fā)展,跨站漏洞攻擊已逐漸成為人們?nèi)肭趾推茐膭e人信息的重要技術(shù)和方法,防范策略也在隨攻擊方式的改變
參考文獻(xiàn):
[1] 袁鑫攀,張祖平.IP欺騙技術(shù)和防范方法[J].計算技術(shù)與自動化,2007(9).
[2] Mark O’Neill,Web服務(wù)安全技術(shù)與原理[M].清華大學(xué)出版社,2003.
[3] 鐘子云,Cookie機(jī)制分析及其安全問題對策[J].桂林航天工業(yè)高等專科學(xué)校學(xué)報,2001(1).
[4] 沈海波, 洪帆.基于Cookie的Web服務(wù)安全認(rèn)證系統(tǒng)[J].計算機(jī)工程與設(shè)計,2006.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。