深入解析 Web 2.0 應用安全

這 幾年Web 2.0的應用讓開發人員、最終用戶和企業都取得了很多了不起的成果,從Google、Salesforce、MySpace、Flickr、 YouTube、Linkedin到今天十分火爆的Facebook,這些具有Web 2.0特徵的公司,創造了很多奇蹟。

然而,Web 2.0應用程序、移動設備所帶來的富媒體功能,將會使隱蔽強迫下載及混合攻擊增加。例如,社交網站上的嵌入視頻及其鏈接成爲了黑客頻繁植入惡意軟件的目標。隨着更多的員工使用富媒體和Web 2.0應用程序,企業便會不知不覺暴露在更大的攻擊威脅之下。

Ajax帶來的典型風險

在Web 1.0時代中,客戶端瀏覽器和服務器之間的通信是同步的,也就是說,當用戶在Web頁面上填寫表單(例如使用搜索功能),請求就會發送到服務器上,經過處 理後,服務器將完整的結果頁面發送回來。這種做法的反覆執行,極大浪費了網絡帶寬,也浪費了使用者很多等待多餘信息的寶貴時間。

Ajax可以和服務器只傳輸更新過的內容,它藉助於客戶端的JavaScript處理來自服務器的響應。同時,還有很多任務是由客戶端本身來完成。因此,在網絡上的數據交換更少、Web服務器的處理時間更短,用戶感覺到的是更快的請求響應速度。

說到Ajax的好處,我們 不得不提到瀏覽器的“同源安全模型”。同源模型是客戶端腳本運行的重要安全度量標準,它指的是來自於同一個源的腳本可 以互相訪問其方法和屬性,而拒絕非同源的訪問。該模型的精髓是:它認爲從任何站點裝載的內容是不安全的,當被瀏覽器不太信任的腳本運行時,它們應該只被允 許訪問來自同一站點的資源,而不是那些來自其它站點可能懷有惡意的資源。

爲什麼要有同源的限制呢?這是瀏覽器提供的最爲基礎的安全保障之一。如果放開同源限制,黑客就可以通過引誘用戶訪問嵌入在惡意站點上的正常應用,當用戶訪問該應用時,攻擊腳本就可以在不同源之間互訪,竊取用戶登錄信息,或者跟蹤用戶的各種操作。

雖然Ajax技術極大地推動了Web 2.0的發展,但是由於Ajax的諸多特徵(動態、異步、突破同源限制),也給應用安全帶來了隱患。

Ajax和XSS(跨站腳本攻擊)

XSS是目前發生頻率最高 的網絡攻擊手段之一,它通過引誘用戶執行惡意的JavaScript腳本(如引誘用戶點擊包含惡意腳本的鏈接),來達 到竊取用戶信息或者實現其它惡意行爲的目的。在Web 1.0時代,XSS作爲服務器端Web應用安全的隱患被廣泛用戶注意。正是由於Web 2.0鼓勵信息分享、信息交互和協作,用戶就有了更多的機會去看和修改他人的信息,比如通過Wiki、Blog或SNS社區網絡,也是這種應用爲黑客創造 了更多的XSS攻擊機會。現在的瀏覽器允許在Web頁面運行時主動插入HTML代碼(比如使用innerHTML屬性),如果這些代碼中包含惡意的 JavaScript,則會被瀏覽器立刻執行,造成安全隱患。

Ajax和CSRF(跨站請求僞造)

在CSRF中,攻擊者在用 戶完全未察覺的情況下,代表用戶發送請求。這可以通過引誘用戶點擊鏈接,或是將請求嵌入到Image Tag等HTML標記中,強迫用戶發送。這裏例舉一個攻擊場景:攻擊者向用戶發送一封電子郵件,郵件中包含一個銀行鏈接請求,請求的內容是從用戶的銀行賬 戶向攻擊者賬戶進行轉賬,用戶使用該鏈接進入銀行網站並進行了登錄操作,該請求就會攜同用戶Cookie信息自動發送給銀行。如果銀行網站僅把 Cookie值當做驗明用戶身份的唯一手段,那麼Web應用就認爲該請求是合法的,轉賬操作立刻被執行。

在Ajax應用中,客戶端和服務器的交互是通過HTTP協議實現的,如果站點安全保護措施不夠強健,一旦CSRF成功,將會帶來一系列災難,如利用Web Mail服務發送郵件、代表用戶在Blog上寫註釋、在SNS中修改用戶信息等。

Ajax和DoS(拒絕服務攻擊)

DoS是通過某種手段讓服 務器資源耗盡,阻斷正常用戶訪問的攻擊方法。比如向服務器提交大量請求,使服務器負荷過重。用戶瀏覽器如果可以執行第 三方JavaScript,就會帶來DoS的可能性,因爲第三方JavaScript邏輯中,很可能包含大量導致服務器資源耗盡的循環程序,所以在允許使 用大量JavaScript的Ajax應用中,被DoS攻擊概率大大提高。

其它安全隱患

Mushup應用通常是將 任意第三方的Mushup組件組合在一起,如果攻擊者向Mushup應用提供了惡意的Mushup組件,同時該應用沒 有提供足夠的安全保護的話,用戶和整個Mushup應用就面臨着巨大的安全隱患。因爲一個惡意的Mashup組件可以向整個Mushup應用中注入惡意代 碼,從而觸發多種攻擊行爲,包括XSS、CSRF、DoS。如果該Mushup應用還提供服務器端的Ajax代理服務,惡意的客戶端Mushup組件就可 以將用戶的隱私發送到外部站點,因爲Ajax代理突破了同源限制。

不容忽視的Flash

互聯網從1996年引入了Flash技術後,通過動畫和交互,改變了Web頁面的用戶體驗。

2004年3 月,Macromedia公司基於其專有的Macromedia Flash平臺,發佈了Flex。它涵蓋了支持RIA(Rich Internet Applications)開發和部署的一系列技術。在Web 2.0時代,越來越多的開發者使用Flex技術開發Flash應用,由此帶來的安全隱患也不容忽視。

由於Flash支持全局變量,因此帶來了很多安全隱患。只要攻擊者控制了全局變量,那麼他就可以實施多種攻擊行爲。

Cross-Site Flashing(跨站Flash攻擊)

這種攻擊原理和XSS相似,不過CSF是通過向網站注入惡意的Flash程序來實施攻擊。由於Web 2.0時代的應用複雜性(如Mushup應用),注入的惡意Flash不但可以攻擊同源內的應用,還可能在非同源的各個組件中傳播。

Cross-Site Scripting through Flash(通過Flash進行跨站腳本攻擊)

該方法使用易受感染的Flash文件進行典型的XSS攻擊,和XSF很相似,攻擊的發生同樣來源於對全局變量的引用,如將全局變量作爲裝入函數的參數。

攻擊者使用惡意腳本,可能執行如下操作:1.將用戶的Cookie值發送給攻擊者;2.將用戶的共享Flash對象發送給攻擊者;3.將可通過DOM(如URL、表單字段等)訪問的信息發送給攻擊者。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章