黃林偉
(廣東工業(yè)大學(xué)華立學(xué)院 廣東 廣州 511325)
互聯(lián)網(wǎng)技術(shù)在不斷發(fā)展,從傳統(tǒng)的、以獲取信息為主的Web 應(yīng)用(如各大企業(yè)門戶網(wǎng)站),到目前被廣大網(wǎng)民喜愛的Blog、Wiki、博客、社區(qū)、等,一種變革正在悄然形成。 這種變革,不但改變了我們對Web 應(yīng)用的體驗,也正在漸漸改變我們的生活方式。這就是Web2.0。Web2.0 中涉及了很多名詞和術(shù)語, 比如Tags、Blogs、Ajax、Flex、MalWare、Wiki、RSS、Social Networking、Podcast、Mushup 等等。
通常在web2.0 網(wǎng)站開發(fā)中,對Flas 的訪問,可以通過嵌入到HTML 頁面中, 如圖1 所示。 也可以使用URL 直接訪問,如圖2 所示。
圖1 嵌入到HTML 的Flas 訪問
圖2 在URL 中直接訪問
Flash 使用Action Script 腳本語言, 該語言支持全局變量。 通常我們使用如下三種方式在Flash 中指定全局變量:
1)直接引用。
圖3 直接引用
2)嵌入URL 中。
圖4 嵌入URL 中
3)通過Flash 屬性。
圖5 通過Flash 屬性
由于Flash 支持全局變量,因此帶來了很多安全隱患。 只要攻擊者控制了全局變量, 那么他就可以實施多種攻擊行為。
XSF 是目前發(fā)生頻率最高的網(wǎng)絡(luò)攻擊手段之一,它是通過引誘用戶執(zhí)行惡意的Flash 程序腳本 (如引誘用戶點擊包含惡意腳本的鏈接), 來達(dá)到竊取用戶信息或者實現(xiàn)其它惡意行為的目的。 正是由于Web2.0 鼓勵信息分享、信息交互和協(xié)作,用戶就有了更多的機會去看、去修改他人的信息,比如通過Streaming (流媒體) 中flash 播放器、Blog 或SNS(Social Networking Service),從而創(chuàng)造了更多的XSf 攻擊機會。 現(xiàn)在的瀏覽器允許在Web 頁面運行時主動插入HTML 代碼 (比如使用innerHTML 屬性),如果這些代碼中包含惡意的Flash程序腳本,則會被瀏覽器立刻執(zhí)行,帶來安全隱患。
和XSS 原理相似, 不過XSF 是通過向網(wǎng)站注入惡意的Flash 程序來實施攻擊。 由于Web2.0 時代的應(yīng)用復(fù)雜性 (如Mushup 應(yīng)用), 注入的惡意Flash 不但可以攻擊同源內(nèi)的應(yīng)用,還可能在非同源的各個組件中傳播。
請看XSF 的一個例子:
首先, 某網(wǎng)站Flash 中可能有事先定義好的全局變量_root.movieURI,并且給該變量賦予正常Flash 文件調(diào)用,然后通過loadMovieNum()方法加載Flash 文件movie.swf,如圖6。
圖6 事先定義好全局變量
對于攻擊者,當(dāng)他了解到此全局變量后,將惡意Flash 文件maliciousFile.swf 付給該變量, 瀏覽器就通過loadMovie()方法裝載了文件。 如圖7。
圖7 通過變量接收Flash 文件
該方法使用易受感染的Flash 文件進(jìn)行典型的XSS 攻擊。和XSF 很相似,攻擊的發(fā)生同樣來源于對全局變量的引用,如將全局變量作為裝入函數(shù)(如getURL())的參數(shù),見圖8。
圖8 定義全局變量
這樣, 攻擊者可以通過調(diào)用Flash 文件中的參數(shù)來裝入惡意腳本,如圖9。
圖9 調(diào)用參數(shù)執(zhí)行腳本
攻擊者使用惡意腳本,可能執(zhí)行如下操作:
1)將用戶的Cookie 值發(fā)送給攻擊者;
2)將用戶的共享Flash 對象發(fā)送給攻擊者;
3)將可通過DOM(如URL、表單字段等)訪問的信息發(fā)送給攻擊者。
考慮到Web2.0 時代的應(yīng)用安全特點,Rational Web 應(yīng)用安全解決方案不僅加強了對原有Web 安全隱患的診斷能力,還提供了針對新安全隱患的診斷和防御功能。
現(xiàn)在,惡意軟件受到了前所未有的關(guān)注。 在基礎(chǔ)防范層面上,可以通過從客戶端和服務(wù)器端著手。
客戶端保護包括:
明智的判斷, 不要接受不明來源的軟件下載和安裝,不要忽視瀏覽器警告和安全報警;
采用反病毒或反惡意軟件工具;
保持操作系統(tǒng)、瀏覽器和其它軟件的定期更新;
使用Web 網(wǎng)關(guān)保護;
服務(wù)器端保護包括:
通過入侵防御系統(tǒng)(IPS)進(jìn)行運行時過濾;
使用服務(wù)器端的反病毒軟件。
Rational AppScan SE 7.8 (AppScan 標(biāo)準(zhǔn)版) 提供了對Flash 安全隱患的完整分析和測試。 這包括:
1)將Web 應(yīng)用中的Flash 代碼解析為文本數(shù)據(jù),從中收集鏈接,進(jìn)行安全隱患分析;
2)播放應(yīng)用中的Flash 文件,動態(tài)發(fā)現(xiàn)僅通過解析發(fā)現(xiàn)不了的鏈接;
3)測試由Adobe?Flex 應(yīng)用程序發(fā)送的后臺AMF 協(xié)議消息。
圖10 是在配置AppScan 掃描某Web 應(yīng)用時的Flash 選項,用戶可以根據(jù)需要選擇如何處理應(yīng)用中的Flash。
圖10 AppScan 中Flash 配置選項
圖11 AppScan 的Flash 測試用例
提供對Flash 應(yīng)用錯誤配置的測試, 如服務(wù)器是否對crossdomain.xml 文件進(jìn)行過多授權(quán)、 是否對Flash 安全沙箱機制進(jìn)行過多授權(quán)、Flash 程序調(diào)試信息是否保留在最終版本中等等。 根據(jù)這些最佳實踐,可以在早期預(yù)防部分跨站攻擊、信息泄漏等隱患。
提供十余種專門針對Flash 的測試用例,如跨站點Flash腳本攻擊、通過Flash 釣魚、通過Flash 進(jìn)行的跨站點腳本攻擊、主機允許從任何域進(jìn)行Flash 訪問等等。 如圖11。
我們僅在此分析Flex 技術(shù)開發(fā)Flash 應(yīng)用。 互聯(lián)網(wǎng)從1996 年引入了Flash 技術(shù)后,通過動畫和交互,極大的改變了Web 頁面的用戶體驗。 2004 年3 月,Macromedia 公司基于其專有的Macromedia Flash 平臺, 發(fā)布了Flex。 它涵蓋了支持RIA(Rich Internet Applications)開發(fā)和部署的一系列技術(shù)。在Web2.0 時代,越來越多的開發(fā)者使用Flex 技術(shù)開發(fā)Flash 應(yīng)用。 由于Flash 支持全局變量,因此帶來了很多安全隱患。 只要攻擊者控制了全局變量,那么就可以實施多種攻擊行為由此引入的安全隱患也不容忽視。
[1]劉斌仿,王南山.Flash cs3 動畫制作案例教程[M].湖北:湖北人民出版社,2009.
[2]李瓊.Flash8.0 閃客動畫輕松現(xiàn)場實戰(zhàn)[M].北京:航空工業(yè)出版社,2007.
[3][美]瑞哈特,曹銘.Flash MX 寶典[M].北京:電子工業(yè)出版社,2003.
[4]林玲.Flash 與Flex 的比較分析[J].長江大學(xué)學(xué)報:自然科學(xué)版,2010(3).
[5]陳磊.令人心動的FLEX[J].軟件世界,2007(22).
[6]康文.Adobe Flex 2.0:創(chuàng)建下一代Web 應(yīng)用的助手[J].通信世界,2006(27B).
[7]邱彥林.Flex,越走越寬的RIA 之路[J].程序員,2009(4).