【原創文章,版權所有,賽迪獨家發佈,合作網站如欲轉載,請註明出處「賽迪網」和文章作者「freedom」!謝絕非合作網站轉載,違者,賽迪網將保留追究其法律責任的權利!】
由於受到Web 2.0利益的推動,AJAX(同步JavaScript技術和XML)正吸引著全球企業的眼球。
AJAX是逐漸普及的一個主要原因是其所使用的腳本語言,即JavaScript,它可帶來許多利益:動態表單可包含內置的錯誤檢查,頁面計算區域,動態更改背景、文本顏色或按鈕、讀取URL歷史並針對其採取行動,並可根據用戶的請求提供不同的文檔或部分等等。
不過,AJAX並不是一項技術,它是多種技術的集合,每一個技術在設計和開發和設計Web應用程序時都提供了強健的基礎。
AJAX意在增強交互性、速度和可用性。這些技術為用戶提供了更加豐富和友好的體驗,因為Web應用程序的設計目的是為了模仿傳統的桌面應用程序,包括Google Docs、Google Maps、Yahoo! Mail等。
在一個Web會話的開始,並非裝載所請求的Web頁面,而是加載一個用JavaScript編寫的AJAX引擎。這個引擎充當了一個「中間人」的作用,它駐於用戶和Web伺服器之間,既作為一個翻譯界面,又作為客戶端瀏覽器和伺服器之間的一種通信方式。
這種功能帶來的不同之處是顯而易見的。在向一個Web伺服器發送一個請求時,我們會注意到網頁的各個獨立部件是分別更新的(異步),這樣就不需要等待整個網頁加載(同步)成為活動狀態。
當然,AJAX編碼的應用程序包括的好處還有很多,如插入和刪除記錄,編輯範疇樹等,通過這些益處,就可以更有效地執行而不需要每次都請求全部的HTML頁面。但我們還要看到:
AJAX的漏洞和弱點
雖然包含著極強大的技術集合,開發人員必須清楚潛在的安全漏洞和由此對AJAX應用程序所造成的損害。
Web應用程序是當今一個組織的IT架構中最薄弱的因素之一。越來越多的組織(贏利性的或非贏利性的)依靠基於互聯網的AJAX應用程序。隨著這種技術集合越來越複雜,如果一個組織並沒有採取措施保護其Web應用程序的安全,那麼其安全風險就會大大增加。
一個Web應用程序內部增加交互性意味著XML、文本和一般的HTML網絡通信的增加。這會導致暴露後端的應用程序的可能,這些應用程序以前可能並不易受到攻擊;或者如果沒有足夠的伺服器端的保護,這就會給未授權的用戶操縱其特權配置的可能性。
有一種常見的誤解認為, AJAX應用程序更安全,因為有人認為一個用戶在沒有基於AJAX web網頁的情況下是不能訪問伺服器端的腳本的。基於XML HTTP 請求的Web應用程序使伺服器端的腳本模糊不清,這種模糊性給Web站點的開發人員和所有者一種安全感的假象。模糊性並非安全性。因為XML HTTP請求通過將同樣的協議用作Web上的所有其它對像而發揮作用,從技術上講,基於AJAX的Web應用程序與「正常」的應用程序一樣也易於受到同樣的黑客技術的攻擊。
另外,在會話管理方面的漏洞也有所增加,並且可以獲取對許多隱藏性URL訪問權的黑客所造成的風險更大,而這些URL對於AJAX請求來說是必須要處理的。
AJAX的另外一個弱點是表達伺服器請求的過程。AJAX引擎用JavaScript來獲取用戶命令並將其轉化為功能調用。這種功能調用是以純文本形式發送到伺服器端的,有可能輕易地洩漏資料庫表的字段,如合法產品和用戶ID等,甚至是重要的變量名、合法的資料類型或範圍,以及任何其它有可能被黑客所操縱的一些參數。
通過這種信息,一個黑客就可以輕易地通過欺騙手段將特定的HTTP請求直接發送到伺服器從而使用AJAX函數。在跨站腳本攻擊中,惡意注入的腳本實際上可以利用AJAX所提供的功能來按照其利益工作,從而用其最終目的(重新定向瀏覽器即所謂的網絡釣魚,或監視其通信)來欺詐用戶。
JavaScript漏洞
雖然許多網站將其交互特性歸結為JavaScript,這種技術的廣泛使用卻帶來了幾個嚴重的安全問題。
在過去,這些安全問題源於針對郵件系統的蠕蟲或利用易受攻擊網站的跨站腳本漏洞。這種自我傳播的蠕蟲可以使代碼被注入到Web站點中,其目的在於由Web瀏覽器或電子郵件客戶端執行或解析,用以操縱或簡單地重新檢索用戶資料。
隨著Web瀏覽器及其技術特性繼續演進發展,那些利用老的安全問題並創建了新的安全問題(與JS和AJAX有關)的惡意利用也水漲船高。這種技術的發展發生在這樣一個時間:黑客們的最終目標從故意破壞轉而進行公司資料的竊取(如客戶信用卡細節),由此會在「黑市」上產生巨大的經濟回報。
XSS蠕蟲將會日益智能化並能夠執行毀壞性攻擊,例如,非常普遍的網絡拒絕服務攻擊,垃圾郵件和電子郵件攻擊,以及更多的瀏覽器漏洞利用。近來還發現有可能利用JavaScript映射內部的和公司的網絡,這就會使得網絡中的任何設備(打印伺服器、路由器、儲存設備等)易於受到攻擊。
最終,這種複雜的攻擊將會促使我們查明特定的插入惡意JavaScript的網絡資源,或者任何可被公共使用和返回資料的AJAX應用程序。
到目前為止,我們發現多數可用的Web掃瞄工具都存在著嚴重的安全問題,這些問題是在審核擁有著嵌入JavaScript的Web頁面發生的。
結論
Web技術的進步允許Web應用程序更有效率,擁有更強的響應性能和交互性,不過,這種進步也增加了企業和Web開發人員每天所面臨的威脅。
由於80號端口(HTTP)和443號端口(HTTPS)總是打開著,允許動態的內容傳遞和交換,那麼Web站點就處於資料被竊取和毀損的持續風險中,除非這些站點通過一種可靠的Web應用程序掃瞄工具進行定期的審核。隨著技術的複雜性日益增加,Web站點的弱點將會越來越明顯,而其漏洞將會越來越嚴重。
AJAXye應用程序的出現引起嚴重的安全問題,這是由同樣的技術及其複雜性所造成的。我們應當清醒地看到,由於在腳本執行上增強和在伺服器/客戶端的信息交換請求的變化,黑客們擁有了更多的機會來竊取資料,從而會花費企業大量的金錢,並喪失客戶信任,對組織的聲譽和可信度造成負面影響。
對有效安全審核的唯一方案在於一個可靠的漏洞掃瞄工具,它應當可以自動地掃瞄站點以確認弱點。不過,如果沒有一個可以解析和執行JavaScript的引擎,這種掃瞄將是不準確的並會給Web站點的所有者一個錯誤的安全感覺。
(