前言
本文描述Internet上的一種安全攻擊,它可能侵害到WWW用戶的隱私和數(shù)據(jù)完整性。這種攻擊可以在現(xiàn)有的系統(tǒng)上實(shí)現(xiàn),危害最普通的Web瀏覽器用戶,包括Netscape Navigator和Microsoft Internet Explorer用戶。
允許攻擊者創(chuàng)造整個WWW世界的影像拷貝。影像Web的入口進(jìn)入到攻擊者的Web服務(wù)器,經(jīng)過攻擊者機(jī)器的過濾作用,允許攻擊者監(jiān)控受攻擊者的任何活動,包括帳戶和口令。攻擊者也能以受攻擊者的名義將錯誤或者易于誤解的數(shù)據(jù)發(fā)送到真正的Web服務(wù)器,以及以任何Web服務(wù)器的名義發(fā)送數(shù)據(jù)給受攻擊者。簡而言之,攻擊者觀察和控制著受攻擊者在Web上做的每一件事。
欺騙攻擊
在一次欺騙攻擊中,攻擊者創(chuàng)造一個易于誤解的上下文環(huán)境,以誘使受攻擊者進(jìn)入并且做出缺乏安全考慮的決策。欺騙攻擊就像是一場虛擬游戲:攻擊者在受攻擊者的周圍建立起一個錯誤但是令人信服的世界。如果該虛擬世界是真實(shí)的話,那么受攻擊者所做的一切都是無可厚非的。但遺憾的是,在錯誤的世界中似乎是合理的活動可能會在現(xiàn)實(shí)的世界中導(dǎo)致災(zāi)難性的后果。
欺騙攻擊在現(xiàn)實(shí)的電子交易中也是常見的現(xiàn)象。例如,我們曾經(jīng)聽說過這樣的事情:一些西方罪犯分子在公共場合建立起虛假的ATM取款機(jī),該種機(jī)器可以接受ATM卡,并且會詢問用戶的PIN密碼。一旦該種機(jī)器獲得受攻擊者的PIN密碼,它會要么“吃卡”,要么反饋“故障”,并返回ATM卡。不論哪一種情況,罪犯都會獲得足夠的信息,以復(fù)制出一個完全一樣的ATM卡。后面的事情大家可想而知了。在這些攻擊中,人們往往被所看到的事物所愚弄:ATM取款機(jī)所處的位置,它們的外形和裝飾,以及電子顯示屏的內(nèi)容等等。
人們利用計(jì)算機(jī)系統(tǒng)完成具有安全要求的決策時往往也是基于其所見。例如,在訪問網(wǎng)上銀行時,你可能根據(jù)你所見的銀行Web頁面,從該行的帳戶中提取或存入一定數(shù)量的存款。因?yàn)槟阆嘈拍闼L問的Web頁面就是你所需要的銀行的Web頁面。無論是頁面的外觀、URL地址,還是其他一些相關(guān)內(nèi)容,都讓你感到非常熟悉,沒有理由不相信。但是,你很可能是在被愚弄。
Web欺騙的兩個組成部分
為了分析可能出現(xiàn)欺騙攻擊的范圍和嚴(yán)重性,我們需要深入研究關(guān)于Web欺騙的兩個部分:安全決策和暗示。
安全決策
安全決策,這里指的是會導(dǎo)致安全問題的一類決策。這類決策往往都含有較為敏感的數(shù)據(jù),也就是意味著一個人在做出決策時,可能會因?yàn)殛P(guān)鍵數(shù)據(jù)的泄露,導(dǎo)致不受歡迎的結(jié)果。很可能發(fā)生這樣的事情:第三方利用各類決策數(shù)據(jù)攻破某種秘密,進(jìn)行破壞活動,或者導(dǎo)致不安全的后果。例如,在某種場合輸入帳戶和密碼,就是我們在此談到的安全決策問題。因?yàn)閹艉兔艽a的泄露會產(chǎn)生我們不希望發(fā)生的問題。此外,從Internet上下載文件也是一類安全決策問題。不能否認(rèn),在下載的文件當(dāng)中可能會包含有惡意破壞的成分,盡管這樣的事情不會經(jīng)常發(fā)生。
安全決策問題無處不在,甚至在我們通過閱讀顯示信息做出決策時,也存在一個關(guān)于信息準(zhǔn)確性的安全決策問題。例如,如果你決定根據(jù)網(wǎng)上證券站點(diǎn)所提供的證券價格購買某類證券時,那么你必須確保所接收信息的準(zhǔn)確性。如果有人故意提供不正確的證券價格,那么不可避免地會有人浪費(fèi)自己的財(cái)富。
暗示
WWW站點(diǎn)提供給用戶的是豐富多彩的各類信息,人們通過瀏覽器任意翻閱網(wǎng)頁,根據(jù)得到的上下文環(huán)境來做出相應(yīng)的決定。Web頁面上的文字、圖畫與聲音可以給人以深刻的印象,也正是在這種背景下,人們往往能夠判斷出該網(wǎng)頁的地址。例如,一個特殊標(biāo)識的存在一般意味著處于某個公司的Web站點(diǎn)。
我們都知道目標(biāo)的出現(xiàn)往往傳遞著某種暗示。在計(jì)算機(jī)世界中,我們往往都習(xí)慣于各類圖標(biāo)、圖形,它們分別代表著各類不同的含義。富有經(jīng)驗(yàn)的瀏覽器用戶對某些信息的反應(yīng)就如同富有經(jīng)驗(yàn)的駕駛員對交通信號和標(biāo)志做出的反應(yīng)一樣。
目標(biāo)的名字能傳達(dá)更為充分的信息。人們經(jīng)常根據(jù)一個文件的名稱來推斷它是關(guān)于什么的。manual.doc是用戶手冊的正文嗎?它完全可以是另外一個文件種類,而不是用戶手冊一類的文檔。一個microsoft.com的鏈接難道就一定指向我們大家都知道的微軟公司的URL地址嗎?顯然可以偷梁換柱,改向其他地址。
人們往往還會在時間的先后順序中得到某種暗示。如果兩個事件同時發(fā)生,你自然地會認(rèn)為它們是有關(guān)聯(lián)的。如果在點(diǎn)擊銀行的網(wǎng)頁時,username對話框同時出現(xiàn)了,你自然地會認(rèn)為你應(yīng)該輸入你在該銀行的帳戶與口令。如果你在點(diǎn)擊了一個文檔鏈接后,立即就開始了下載,那么你很自然地會認(rèn)為該文件正從該站點(diǎn)下載。然而,以上的想法不一定都是正確的。
如果你僅僅看到一個彈出窗口,那么你會和一個可視的事件聯(lián)系起來,而不會認(rèn)識到一個隱藏在窗口背后的不可視的事件。 現(xiàn)代的用戶接口程序設(shè)計(jì)者花費(fèi)很大的精力來設(shè)計(jì)簡單易懂的界面,人們感受到了方便,但潛在的問題是人們可能習(xí)慣于此,不可避免地被該種暗示所欺騙。Web欺騙的欺騙手段
TCP和DNS欺騙
除了我們將要討論的欺騙手段外,還有一些其他手段,在這里我們將不做討論。這種攻擊的例子包括TCP欺騙(在TCP包中使用偽造的IP地址)以及DNS欺騙(攻擊者偽造關(guān)于機(jī)器名稱和網(wǎng)絡(luò)信息)。讀者有興趣可以閱讀有關(guān)資料。
Web欺騙
Web欺騙是一種電子信息欺騙,攻擊者在其中創(chuàng)造了整個Web世界的一個令人信服但是完全錯誤的拷貝。錯誤的Web看起來十分逼真,它擁有相同的網(wǎng)頁和鏈接。然而,攻擊者控制著錯誤的Web站點(diǎn),這樣受攻擊者瀏覽器和Web之間的所有網(wǎng)絡(luò)信息完全被攻擊者所截獲,其工作原理就好像是一個過濾器。
后果
由于攻擊者可以觀察或者修改任何從受攻擊者到Web服務(wù)器的信息;同樣地,也控制著從Web服務(wù)器至受攻擊者的返回?cái)?shù)據(jù),這樣攻擊者就有許多發(fā)起攻擊的可能性,包括監(jiān)視和破壞。
攻擊者能夠監(jiān)視受攻擊者的網(wǎng)絡(luò)信息,記錄他們訪問的網(wǎng)頁和內(nèi)容。當(dāng)受攻擊者填寫完一個表單并發(fā)送后,這些數(shù)據(jù)將被傳送到Web服務(wù)器,Web服務(wù)器將返回必要的信息,但不幸的是,攻擊者完全可以截獲并加以使用。大家都知道絕大部分在線公司都是使用表單來完成業(yè)務(wù)的,這意味著攻擊者可以獲得用戶的帳戶和密碼。下面我們將看到,即使受攻擊者有一個“安全”連接(通常是通過Secure Sockets Layer來實(shí)現(xiàn)的,用戶的瀏覽器會顯示一把鎖或鑰匙來表示處于安全連接),也無法逃脫被監(jiān)視的命運(yùn)。
在得到必要的數(shù)據(jù)后,攻擊者可以通過修改受攻擊者和Web服務(wù)器之間任何一個方向上的數(shù)據(jù),來進(jìn)行某些破壞活動。攻擊者修改受攻擊者的確認(rèn)數(shù)據(jù),例如,如果受攻擊者在線訂購某個產(chǎn)品時,攻擊者可以修改產(chǎn)品代碼,數(shù)量或者郵購地址等等。攻擊者也能修改被Web服務(wù)器所返回的數(shù)據(jù),例如,插入易于誤解或者攻擊性的資料,破壞用戶和在線公司的關(guān)系等等。
欺騙整個Web世界
你可能認(rèn)為攻擊者欺騙整個Web世界是不可能的,但是恰恰相反,攻擊者不必存儲整個Web世界的內(nèi)容,他只需要制造出一條通向整個Web世界的鏈路。當(dāng)他需要提供關(guān)于某個Web站點(diǎn)的錯誤Web頁面時,他只需要在自己的服務(wù)器上建立一個該站點(diǎn)的拷貝,由此等待受害者自投羅網(wǎng)。
Web欺騙的細(xì)節(jié)完善
前面描述的攻擊相當(dāng)有效,但是它還不是十分完美的。黑客往往還要創(chuàng)造一個可信的環(huán)境,包括各類圖標(biāo)、文字、鏈接等,提供給受攻擊者各種各樣的十分可信的暗示?傊褪请[藏一切尾巴。此時,如果錯誤的Web是富有敵意的,那么無辜的用戶將處于十分危險的境地。
另外,黑客還會注意以下方面。
1. 狀態(tài)線路
連接狀態(tài)是位于瀏覽器底部的提示信息,它提示當(dāng)前連接的各類信息。Web欺騙中涉及兩類信息。首先,當(dāng)鼠標(biāo)放置在Web鏈接上時,連接狀態(tài)顯示鏈接所指的URL地址,這樣,受攻擊者可能會注意到重寫的URL地址。第二,當(dāng)Web連接成功時,連接狀態(tài)將顯示所連接的服務(wù)器名稱。這樣,受攻擊者可以注意到顯示 www.org ,而非自己所希望的站點(diǎn)。
攻擊者能夠通過javascript編程來彌補(bǔ)這兩項(xiàng)不足。由于javascript能夠?qū)B接狀態(tài)進(jìn)行寫操作,而且可以將javascript操作與特定事件綁定在一起,所以,攻擊者完全可以將改寫的URL狀態(tài)恢復(fù)為改寫前的狀態(tài)。這樣Web欺騙將更為可信。
2. 位置狀態(tài)行
瀏覽器的位置狀態(tài)行顯示當(dāng)前所處的URL位置,用戶也可以在其中鍵入新的URL地址進(jìn)入到另外的URL,如果不進(jìn)行必要的更改,此時URL會暴露出改寫后的URL。同樣地,利用javascript可以隱藏掉改寫后的URL。javascript能用不真實(shí)的URL掩蓋真實(shí)的URL,也能夠接受用戶的鍵盤輸入,并將之改寫,進(jìn)入不正確的URL。
Web欺騙的弱點(diǎn)
盡管黑客在進(jìn)行Web欺騙時已絞盡腦汁,但是還是留有一些不足。
文檔信息
攻擊者并不是不留絲毫痕跡,HTML源文件就是開啟欺騙迷宮的鑰匙。攻擊者對其無能為力。通過使用瀏覽器中“viewsource”命令,用戶能夠閱讀當(dāng)前的HTML源文件。通過閱讀HTML源文件,可以發(fā)現(xiàn)被改寫的URL,因此可以覺察到攻擊。遺憾的是,對于初學(xué)者而言,HTML源文件實(shí)在是有些難懂。
通過使用瀏覽器中“view document information”命令,用戶能夠閱讀當(dāng)前URL地址的一些信息?上驳氖沁@里提供的是真實(shí)的URL地址,因此用戶能夠很容易判斷出Web欺騙。不過,絕大多數(shù)用戶都很少注意以上一些屬性,可以說潛在的危險還是存在的。
Web欺騙的預(yù)防解決
逃離災(zāi)難
受攻擊者可以自覺與不自覺地離開攻擊者的錯誤Web頁面。這里有若干種方法。訪問Bookmark或使用瀏覽器中提供的“Open location”進(jìn)入其他Web頁面,離開攻擊者所設(shè)下的陷阱。不過,如果用戶使用“Back”按鍵,則會重新進(jìn)入原先的錯誤Web頁面。當(dāng)然,如果用戶將所訪問的錯誤Web存入Bookmark,那么下次可能會直接進(jìn)入攻擊者所設(shè)下的陷阱。
關(guān)于追蹤攻擊者
有人建議應(yīng)當(dāng)通過跟蹤來發(fā)現(xiàn)并處罰攻擊者。確實(shí)如此,攻擊者如果想進(jìn)行Web欺騙的話,那么離不開Web服務(wù)器的幫助。但是,他們利用的Web服務(wù)器很可能是被攻擊后的產(chǎn)物,就象罪犯駕駛著盜竊來的汽車去作案一樣。
預(yù)防辦法
Web欺騙是當(dāng)今Internet上具有相當(dāng)危險性而不易被察覺的欺騙手法。幸運(yùn)的是,我們可以采取的一些保護(hù)辦法。
短期的解決方案
為了取得短期的效果,最好從下面三方面來預(yù)防:
1.禁止瀏覽器中的javascript功能,那么各類改寫信息將原形畢露;
2.確保瀏覽器的連接狀態(tài)是可見的,它將給你提供當(dāng)前位置的各類信息;
3.時刻注意你所點(diǎn)擊的URL鏈接會在位置狀態(tài)行中得到正確的顯示。
現(xiàn)在,javascript、ActiveX以及Java提供越來越豐富和強(qiáng)大的功能,而且越來越為黑客們進(jìn)行攻擊活動提供了強(qiáng)大的手段。為了保證安全,建議用戶考慮禁止這些功能。
這樣做,用戶將損失一些功能,但是與可能帶來的后果比較起來,每個人會得出自己的結(jié)論。
長期的解決方案
1.改變?yōu)g覽器,使之具有反映真實(shí)URL信息的功能,而不會被蒙蔽;
2.對于通過安全連接建立的Web——瀏覽器對話,瀏覽器還應(yīng)該告訴用戶誰在另一端,而不只是表明一種安全連接的狀態(tài)。比如:在建立了安全連接后,給出一個提示信息“NetscapeInc.”等等。
所有的解決方案,可以根據(jù)用戶的安全要求和實(shí)際條件來加以選擇。