本文描述Internet上的一種安全攻擊,它可能侵害到WWW用戶的隱私和數據完整性。這種攻擊可以在現有的系統上實 現,危害最普通的Web瀏覽器用戶,包括Netscape Navigator和Microsoft Internet Explorer用戶。
Web欺騙允許攻擊者創造整個WWW世界的影像拷貝。影像Web的入口進入到攻擊者的Web服務器,經過攻擊者機器的過濾作用,允許攻擊者監控受攻擊者的任何活動,包括帳戶和口令。攻擊者也能以受攻擊者的名義將錯誤或者易于誤解的數據發送到真正的Web服務器,以及以任何Web服務器的名義發送數據給受攻擊者。簡而言之,攻擊者觀察和控制著受攻擊者在Web上做的每一件事。
欺騙攻擊
在一次欺騙攻擊中,攻擊者創造一個易于誤解的上下文環境,以誘使受攻擊者進入并且做出缺乏安全考慮的決策。欺騙攻擊就像是一場虛擬游戲:攻擊者在受攻擊者的周圍建立起一個錯誤但是令人信服的世界。如果該虛擬世界是真實的話,那么受攻擊者所做的一切都是無可厚非的。但遺憾的是,在錯誤的世界中似乎是合理的活動可能會在現實的世界中導致災難性的后果。
欺騙攻擊在現實的電子交易中也是常見的現象。例如,我們曾經聽說過這樣的事情:一些西方罪犯分子在公共場合建立起虛假的ATM取款機,該種機器可以接受ATM卡,并且會詢問用戶的PIN密碼。一旦該種機器獲得受攻擊者的PIN密碼,它會要么“吃卡”,要么反饋“故障”,并返回ATM卡。不論哪一種情況,罪犯都會獲得足夠的信息,以復制出一個完全一樣的ATM卡。后面的事情大家可想而知了。在這些攻擊中,人們往往被所看到的事物所愚弄:ATM取款機所處的位置,它們的外形和裝飾,以及電子顯示屏的內容等等。
人們利用計算機系統完成具有安全要求的決策時往往也是基于其所見。例如,在訪問網上銀行時,你可能根據你所見的銀行Web頁面,從該行的帳戶中提取或存入一定數量的存款。因為你相信你所訪問的Web頁面就是你所需要的銀行的Web頁面。無論是頁面的外觀、URL地址,還是其他一些相關內容,都讓你感到非常熟悉,沒有理由不相信。但是,你很可能是在被愚弄。
為了分析可能出現欺騙攻擊的范圍和嚴重性,我們需要深入研究關于Web欺騙的兩個部分:安全決策和暗示。
安全決策
安全決策,這里指的是會導致安全問題的一類決策。這類決策往往都含有較為敏感的數據,也就是意味著一個人在做出決策時,可能會因為關鍵數據的泄露,導致不受歡迎的結果。很可能發生這樣的事情:第三方利用各類決策數據攻破某種秘密,進行破壞活動,或者導致不安全的后果。例如,在某種場合輸入帳戶和密碼,就是我們在此談到的安全決策問題。因為帳戶和密碼的泄露會產生我們不希望發生的問題。此外,從Internet上下載文件也是一類安全決策問題。不能否認,在下載的文件當中可能會包含有惡意破壞的成分,盡管這樣的事情不會經常發生。
安全決策問題無處不在,甚至在我們通過閱讀顯示信息做出決策時,也存在一個關于信息準確性的安全決策問題。例如,如果你決定根據網上證券站點所提供的證券價格購買某類證券時,那么你必須確保所接收信息的準確性。如果有人故意提供不正確的證券價格,那么不可避免地會有人浪費自己的財富。
暗示
WWW站點提供給用戶的是豐富多彩的各類信息,人們通過瀏覽器任意翻閱網頁,根據得到的上下文環境來做出相應的決定。Web頁面上的文字、圖畫與聲音可以給人以深刻的印象,也正是在這種背景下,人們往往能夠判斷出該網頁的地址。例如,一個特殊標識的存在一般意味著處于某個公司的Web站點。
我們都知道目標的出現往往傳遞著某種暗示。在計算機世界中,我們往往都習慣于各類圖標、圖形,它們分別代表著各類不同的含義。富有經驗的瀏覽器用戶對某些信息的反應就如同富有經驗的駕駛員對交通信號和標志做出的反應一樣。
目標的名字能傳達更為充分的信息。人們經常根據一個文件的名稱來推斷它是關于什么的。manual.doc是用戶手冊的正文嗎?它完全可以是另外一個文件種類,而不是用戶手冊一類的文檔。一個microsoft.com的鏈接難道就一定指向我們大家都知道的微軟公司的URL地址嗎?顯然可以偷梁換柱,改向其他地址。
人們往往還會在時間的先后順序中得到某種暗示。如果兩個事件同時發生,你自然地會認為它們是有關聯的。如果在點擊銀行的網頁時,username對話框同時出現了,你自然地會認為你應該輸入你在該銀行的帳戶與口令。如果你在點擊了一個文檔鏈接后,立即就開始了下載,那么你很自然地會認為該文件正從該站點下載。然而,以上的想法不一定都是正確的。
如果你僅僅看到一個彈出窗口,那么你會和一個可視的事件聯系起來,而不會認識到一個隱藏在窗口背后的不可視的事件。 現代的用戶接口程序設計者花費很大的精力來設計簡單易懂的界面,人們感受到了方便,但潛在的問題是人們可能習慣于此,不可避免地被該種暗示所欺騙。
TCP和DNS欺騙
除了我們將要討論的欺騙手段外,還有一些其他手段,在這里我們將不做討論。這種攻擊的例子包括TCP欺騙(在TCP包中使用偽造的IP地址)以及DNS欺騙(攻擊者偽造關于機器名稱和網絡信息)。讀者有興趣可以閱讀有關資料。
Web欺騙
Web欺騙是一種電子信息欺騙,攻擊者在其中創造了整個Web世界的一個令人信服但是完全錯誤的拷貝。錯誤的Web看起來十分逼真,它擁有相同的網頁和鏈接。然而,攻擊者控制著錯誤的Web站點,這樣受攻擊者瀏覽器和Web之間的所有網絡信息完全被攻擊者所截獲,其工作原理就好像是一個過濾器。
后果
由于攻擊者可以觀察或者修改任何從受攻擊者到Web服務器的信息;同樣地,也控制著從Web服務器至受攻擊者的返回數據,這樣攻擊者就有許多發起攻擊的可能性,包括監視和破壞。
攻擊者能夠監視受攻擊者的網絡信息,記錄他們訪問的網頁和內容。當受攻擊者填寫完一個表單并發送后,這些數據將被傳送到Web服務器,Web服務器將返回必要的信息,但不幸的是,攻擊者完全可以截獲并加以使用。大家都知道絕大部分在線公司都是使用表單來完成業務的,這意味著攻擊者可以獲得用戶的帳戶和密碼。下面我們將看到,即使受攻擊者有一個“安全”連接(通常是通過Secure Sockets Layer來實現的,用戶的瀏覽器會顯示一把鎖或鑰匙來表示處于安全連接),也無法逃脫被監視的命運。
在得到必要的數據后,攻擊者可以通過修改受攻擊者和Web服務器之間任何一個方向上的數據,來進行某些破壞活動。攻擊者修改受攻擊者的確認數據,例如,如果受攻擊者在線訂購某個產品時,攻擊者可以修改產品代碼,數量或者郵購地址等等。攻擊者也能修改被Web服務器所返回的數據,例如,插入易于誤解或者攻擊性的資料,破壞用戶和在線公司的關系等等。
欺騙整個Web世界
你可能認為攻擊者欺騙整個Web世界是不可能的,但是恰恰相反,攻擊者不必存儲整個Web世界的內容,他只需要制造出一條通向整個Web世界的鏈路。當他需要提供關于某個Web站點的錯誤Web頁面時,他只需要在自己的服務器上建立一個該站點的拷貝,由此等待受害者自投羅網。