隨著人們瀏覽網際網路的頻率增加,各大網站均企圖藉由高互動與生動活潑的動畫吸引瀏覽者的目光,尤其是眾多電子商務網站。但在絢麗奪目的互動式內容之下,網站卻漸漸成為犯罪者的溫床。
近年來,網路駭客的攻擊目標,已經從網頁伺服器、網頁與連結,逐漸轉向網頁上所嵌入的各種元件,無論是ActiveX或是Java Script,都曾經是駭客的最愛。而今,最新也最嚴重的攻擊目標,已經轉移至Adobe Flash之上,如何避免駭客透過可編程的Flex入侵遠端瀏覽者電腦,就成為企業首要應注意的目標。
網頁的發展大致可用兩句話說明:死板變為生動,單向邁入互動。在網際網路剛開始時,所有的網頁都是以文字為主,輔以簡單的圖像或照片,而瀏覽者也多半是具有特定的目的才會前往該網站。
但隨著各項呈現技術的發展成熟,現在的網頁已經跳脫過去傳統的「文件式」網頁,而搖身一變成為多采多姿且生動活潑的互動式網頁。當瀏覽者到達一個新網站時,率先入眼的幾乎都是一段歡迎動畫,藉著該動畫呈現網站的特性與主題,以最快且互動的方式增加瀏覽者的黏度與新奇感,而該動畫幾乎都是以Adobe Flash所編寫而成。
以目前的網際網路使用量來看,全球約有接近98%的個人電腦都已經安裝了Adobe Flash Player,甚至可以說沒有安裝Flash Player就沒有辦法正常顯示網頁。這是一項相當龐大的數字,同時也讓有心人蠢蠢欲動,希望藉此高互動的方式,入侵並取得所想要的資料。
新版Flash帶來新危機
Adobe Flash帶給瀏覽者新的體驗,也讓網頁設計師有更大的發揮空間。而它也在數年來不斷地依據使用者與開發者的不同需求,提供了各式各樣的功能,而特別是在發表Flex與ActionScirpt 3之後,將Flash的使用熱度推向了高峰。
早期的Flash只能簡單的提供動畫與基本的點選功能,但是在Flex之後便可支援眾多主從式應用服務、跨網域溝通,及提升了與JavaScript互動能力。並且藉由龐大的內建元件與函式庫,讓開發者能夠更輕鬆地寫出各式各樣生動活潑的內容,同時也與應用程式更緊密的結合在一起。
這當然也是多虧了Flex所提供的可編程化設計,讓Flash之內可以內建各種腳本,不但可以與各個應用程式溝通,甚至也能存取資料庫以利畫面的呈現。但這也產生了新的安全漏洞,而且更難以察覺。
根據HP所做的安全調查,在150個含有管理權限與登入機制的Flash程式中,有23個內嵌相關應用程式的存取資訊,這些資訊包含了系統架構與以明碼記錄的密碼,並且是寫死在相關應用程式中。
Java與JavaScript常出現的程式漏洞與疏失,都很容易會在Flash Flex中出現,但由於埋藏在Flash之中,因此更難發現。2008年9月,SecTheory執行長Robert Hansen便已發現新型態的攻擊手法「點閱綁架(Clickjacking)」,該攻擊手法就是利用JavaScript暗藏惡意程式碼於Flash內,當瀏覽者檢視該網頁時,就會遭受該惡意程式碼的毒害。
而Robert Hansen更表示,雖然Adobe Flash 10已經修補了部分漏洞,但是並沒有辦法完全防護類似的攻擊事件發生,使用者方面雖然可以以各種方式避免執行JavaScript或Flash功能啟動,但面臨目前幾乎都是以Web 2.0方式架構的網站而言,關閉JavaScript或禁止Flash運作,只是讓網站更不易使用而已。
跨網域造成更大風險
在Flash中,另一項危機則是允許跨網域存取的能力。該項能力可以讓Flash跨網域甚至網站存取相關的資料,雖然提供良好的應用服務便利性,但相對的,在沒有做好安全防範的狀況下,也是另一種易於入侵的管道。
根據WhiteHat Security技術長Jeremiah Grossman所做的研究顯示,在財富雜誌前500大企業的網站中,有8%的網站含有crossdomain.xml之類的權限控制檔案,其中,有2%的檔案內含有萬用字元且能夠任意存取到其他網域之中。
HP網頁安全研究部門表示,Flash的安全顧慮與其他網頁應用服務相同,首先要注意的就是不要在任何設定檔案中儲存各類密碼,特別是管理員密碼,其次則是在規劃各種架構,及與其他應用服務連線時,需要特別留意相關規範與限制,避免權限開啟過大,而造成安全漏洞。
大多時候網頁伺服器與所提供之應用服務都會鎖定在單一領域內運作,這是為了確保網頁伺服器與其他應用服務切割,避免彼此干擾而造成安全漏洞。但是在Flash的多樣化應用中,往往會利用Flash存取其他資料庫中的內容,例如產品或是可下載程式的清單。如果在控制跨網域檔案(如crossdomain.xml)中沒有妥善設定,駭客就能夠輕易藉由Flash中的程式指令,潛入其他應用服務之中大肆破壞或竊取重要資料。
事實上,根據Jeremiah Grossman的調查,Alexa前100大網站,其中有36%的網站有設定crossdomain.xml檔案,而有6%的網站並沒有做好政策管理與限制,比例是財富雜誌前500大的3倍。
以SWFScan保障Flash安全性
然而目前資訊安全領域中,能夠檢測網頁程式碼安全性的工具少之又少,更遑論專門檢測Flash Flex的工具。但HP特別開發的SWFScan(唸法如swiff-scan)工具,可以專門用來檢測Flash Flex的安全性,可適用於Flash 9/10環境的檢測工具,能夠協助企業的安全專家確保網頁元件的安全,避免因小失大的遺憾發生。
SWFScan為HP應用程式安全中心(Application Security Center,ASC)系列產品中的一員,該系列產品主要是提供開發、品管單位及資安專家,審核及修正相關網頁應用服務安全性的各項工具。其中包含能夠種管網頁應用服務安全測試的Assessment Management Platform(評價管理平台),可提供多種網頁測試模式的WebInspect,開發安全網頁應用程式與服務的DevInspect開發工具,及可在品管過程中提供各種標準化測試的QAInspect。
SWFScan不但能夠強化ASC其他軟體的管理與檢核機制,同時更重要的是,SWFScan是以免費方式提供,避免個人或企業因為惡意或有瑕疵的Flash元件,而造成不可預知的損害。
與其他多種防護程式不同,SWFScan以最精簡方式供需要的人免費下載使用,其安裝執行檔僅有不到6MB的大小,不但下載快速,同時安裝也相當簡便,簡單幾個步驟就安裝至電腦內,同時不限任何規則與配備,不耗用大量系統資源,無論是系統上線前的品質管制檢查,或是事後的定期檢視,甚至使用者個人的安全控管,都十分方便。
使用SWFScan時,僅需要指定該Flash檔案所在的磁碟位置或是完整網址位置,程式便會自動抓取並解開匯出該Flash的程式碼資料。透過此項反組譯功能,SWFScan不但能夠檢查FLASH中各項嵌入式程式元件的瑕疵,更可藉由比對各項預設或自建的安全組態,找出可能的惡意漏洞,並提出相關的解決辦法。
利用SWFScan檢查Flash的速度相當快,就算是以早期Intel Pentium M 1.86G處理器執行,無論內含多長的程式,都能夠在15秒鐘之內完成反組譯及檢查的工作,整體介面就如同網頁編輯軟體一樣簡明易懂,如果有程式設計或邏輯上的漏洞出現,SWFScan會以紅字標明並敘述相關漏洞類型,提醒開發者注意。
SWFScan不像其他品質管理稽核軟體那般龐大,操作也相當容易,特別是可補強Flash Flex環境中所缺乏的程式漏洞與安全政策檢核項目,同時也是目前唯一可有效檢測Flash 9/10的檢核工具,更凸顯其獨特性。
簡單的操作強化安全
SWFScan是一項相當易於使用的小工具,無論是程式開發師或是一般使用者都可以下載使用,其操作也相當容易,在安裝之後就可以點擊開啟使用。
|
▲在還沒有餵入資料之前,主畫面會呈現空白。 |
開啟之後會先看到程式的主畫面,因為尚未餵入任何資料,因此呈現的是空白一片。這時大多數的功能都呈現灰色不可點選的狀態,IT人員可選擇上方的資料夾圖示,以選擇欲分析的Flash檔案。選擇完成後,旁邊的〔Get〕按鈕會亮起,按下之後SWFScan便會開始反組譯並分析該檔案內的程式碼是否正常。
|
▲選擇欲分析的Flash檔案。 |
反組譯之後,SWFScan會顯示該Flash檔案中內含的程式碼,但目前僅只是顯示相關內容而已,如果要分析,還需要按下指令列中最右方的〔Analyze〕,才能開始執行。
|
▲按下指令列中最右方的〔Analyze〕開始執行。 |
此時,原先看似正常的程式碼就會被挑出很多問題,而這些漏洞將會以紅色字體標示出來,同時在右方的說明欄框中,也會以驚嘆號註記該分頁標籤,除了說明該漏洞可能造成的危害之外,也會說明哪些片段是引起漏洞產生的主要原因。除此之外,也會提供建議的修補方式及相關參考文獻。
|
▲在右方的說明欄框中,會以驚嘆號註記該分頁標籤。 |
簡單四個步驟,SWFScan就可以讓所有Flash中的程式碼瑕疵無所遁形,程式開發師便能利用所提供的資訊與解決辦法,修改相關參數與安全漏洞,讓企業的Flash元件更為安全。
<本文作者為HP惠普科技股份有限公司軟體事業處資深顧問>