Web欺騙的工作原理
欺騙能夠成功的關鍵是在受攻擊者和其他Web服務器之間設立起攻擊者的Web服務器,這種攻擊種類在安全問題中稱為“來自中間的攻擊”。為了建立起這樣的中間Web服務器,黑客往往進行以下工作。
改寫URL
首先,攻擊者改寫Web頁中的所有URL地址,這樣它們指向了攻擊者的Web服務器而不是真正的Web服務器。假設攻擊者所處的Web服務器是www.www.org,攻擊者通過在所有鏈接前增加http://www.www.org來改寫URL。例如,http://home.xxx1.com將變為http://www.www.org/http://home.xxx1.com.當用戶點擊改寫過的http://home.xxx1.com(可能它仍然顯示的是http://home.xxx1),將進入的是http://www.www.org,然后由http://www.www.org向http://home.xxx1.com發出請求并獲得真正的文檔,然后改寫文檔中的所有鏈接,最后經過http://www.www.org返回給用戶的瀏覽器。工作流程如下所示:
1.用戶點擊經過改寫后的http://www.www.org/http://home.xxx1.com;
2.http://www.www.org向http://home.xxx1.com請求文檔;
3.http://home.xxx1.com向http://www.www.org返回文檔;
4.http://www.www.org改寫文檔中的所有URL;
5.http://www.www.org向用戶返回改寫后的文檔。
很顯然,修改過的文檔中的所有URL都指向了www.www.org,當用戶點擊任何一個鏈接都會直接進入www.www.org,而不會直接進入真正的URL。如果用戶由此依次進入其他網頁,那么他們是永遠不會擺脫掉受攻擊的可能。
很顯然,修改過的文檔中的所有URL都指向了www.www.org,當用戶點擊任何一個鏈接都會直接進入www.www.org,而不會直接進入真正的URL。如果用戶由此依次進入其他網頁,那么他們是永遠不會擺脫掉受攻擊的可能。
關于表單
如果受攻擊者填寫了一個錯誤Web上的表單,那么結果看來似乎會很正常,因為只要遵循標準的Web協議,表單欺騙很自然地不會被察覺:表單的確定信息被編碼到URL中,內容會以HTML形式來返回。既然前面的URL都已經得到了改寫,那么表單欺騙將是很自然的事情。
當受攻擊者提交表單后,所提交的數據進入了攻擊者的服務器。攻擊者的服務器能夠觀察,甚至是修改所提交的數據。同樣地,在得到真正的服務器返回信息后,攻擊者在將其向受攻擊者返回以前也可以為所欲為。
關于“安全連接”
我們都知道為了提高Web應用的安全性,有人提出了一種叫做安全連接的概念。它是在用戶瀏覽器和Web服務器之間建立一種基于SSL的安全連接。可是讓人感到遺憾的是,它在Web欺騙中基本上無所作為。受攻擊者可以和Web欺騙中所提供的錯誤網頁建立起一個看似正常的“安全連接”:網頁的文檔可以正常地傳輸而且作為安全連接標志的圖形(通常是關閉的一把鑰匙或者鎖)依然工作正常。換句話說,也就是瀏覽器提供給用戶的感覺是一種安全可靠的連接。但正像我們前面所提到的那樣,此時的安全連接是建立在www.www.org而非用戶所希望的站點。
攻擊的導火索
為了開始攻擊,攻擊者必須以某種方式引誘受攻擊者進入攻擊者所創造的錯誤的Web。黑客往往使用下面若干種方法。
1把錯誤的Web鏈接放到一個熱門Web站點上;
2如果受攻擊者使用基于Web的郵件,那么可以將它指向錯誤的Web;
3創建錯誤的Web索引,指示給搜索引擎。
完善攻擊
前面描述的攻擊相當有效,但是它還不是十分完美的。黑客往往還要創造一個可信的環境,包括各類圖標、文字、鏈接等,提供給受攻擊者各種各樣的十分可信的暗示。總之就是隱藏一切尾巴。此時,如果錯誤的Web是富有敵意的,那么無辜的用戶將處于十分危險的境地。
另外,黑客還會注意以下方面。
1. 狀態線路
連接狀態是位于瀏覽器底部的提示信息,它提示當前連接的各類信息。Web欺騙中涉及兩類信息。首先,當鼠標放置在Web鏈接上時,連接狀態顯示鏈接所指的URL地址,這樣,受攻擊者可能會注意到重寫的URL地址。第二,當Web連接成功時,連接狀態將顯示所連接的服務器名稱。這樣,受攻擊者可以注意到顯示www.www.org,而非自己所希望的站點。
攻擊者能夠通過JavaScript編程來彌補這兩項不足。由于JavaScript能夠對連接狀態進行寫操作,而且可以將JavaScript操作與特定事件綁定在一起,所以,攻擊者完全可以將改寫的URL狀態恢復為改寫前的狀態。這樣Web欺騙將更為可信。
2. 位置狀態行
瀏覽器的位置狀態行顯示當前所處的URL位置,用戶也可以在其中鍵入新的URL地址進入到另外的URL,如果不進行必要的更改,此時URL會暴露出改寫后的URL。同樣地,利用JavaScript可以隱藏掉改寫后的URL。JavaScript能用不真實的URL掩蓋真實的URL,也能夠接受用戶的鍵盤輸入,并將之改寫,進入不正確的URL。
Web欺騙的弱點
盡管黑客在進行Web欺騙時已絞盡腦汁,但是還是留有一些不足。
文檔信息
攻擊者并不是不留絲毫痕跡,HTML源文件就是開啟欺騙迷宮的鑰匙。攻擊者對其無能為力。通過使用瀏覽器中“viewsource”命令,用戶能夠閱讀當前的HTML源文件。通過閱讀HTML源文件,可以發現被改寫的URL,因此可以覺察到攻擊。遺憾的是,對于初學者而言,HTML源文件實在是有些難懂。
通過使用瀏覽器中“view document information”命令,用戶能夠閱讀當前URL地址的一些信息。可喜的是這里提供的是真實的URL地址,因此用戶能夠很容易判斷出Web欺騙。不過,絕大多數用戶都很少注意以上一些屬性,可以說潛在的危險還是存在的。
逃離災難
受攻擊者可以自覺與不自覺地離開攻擊者的錯誤Web頁面。這里有若干種方法。訪問Bookmark或使用瀏覽器中提供的“Open location”進入其他Web頁面,離開攻擊者所設下的陷阱。不過,如果用戶使用“Back”按鍵,則會重新進入原先的錯誤Web頁面。當然,如果用戶將所訪問的錯誤Web存入Bookmark,那么下次可能會直接進入攻擊者所設下的陷阱。
關于追蹤攻擊者
有人建議應當通過跟蹤來發現并處罰攻擊者。確實如此,攻擊者如果想進行Web欺騙的話,那么離不開Web服務器的幫助。但是,他們利用的Web服務器很可能是被攻擊后的產物,就象罪犯駕駛著盜竊來的汽車去作案一樣。
預防辦法
Web欺騙是當今Internet上具有相當危險性而不易被察覺的欺騙手法。幸運的是,我們可以采取的一些保護辦法。
短期的解決方案
為了取得短期的效果,最好從下面三方面來預防:
1.禁止瀏覽器中的JavaScript功能,那么各類改寫信息將原形畢露;
2.確保瀏覽器的連接狀態是可見的,它將給你提供當前位置的各類信息;
3.時刻注意你所點擊的URL鏈接會在位置狀態行中得到正確的顯示。
現在,JavaScript、ActiveX以及Java提供越來越豐富和強大的功能,而且越來越為黑客們進行攻擊活動提供了強大的手段。為了保證安全,建議用戶考慮禁止這些功能。
這樣做,用戶將損失一些功能,但是與可能帶來的后果比較起來,每個人會得出自己的結論。
長期的解決方案
1.改變瀏覽器,使之具有反映真實URL信息的功能,而不會被蒙蔽;
2.對于通過安全連接建立的Web——瀏覽器對話,瀏覽器還應該告訴用戶誰在另一端,而不只是表明一種安全連接的狀態。比如:在建立了安全連接后,給出一個提示信息“NetscapeInc.”等等。
所有的解決方案,可以根據用戶的安全要求和實際條件來加以選擇。