Web 2.0的安全危機

轉載自CNET Networks, Inc.  Web 2.0不斷將網站的能力向外推展,也掀起第二波Web狂潮。然而專家警告,在網站不斷增加功能的同時,小心安全議題已被拋到九霄雲外去。 這項新科技帶動的商機令人回想起90年代的網路風潮,許多所費不貲的大型會議、多如過江鯽的新創公司,以及一些頗具創意的公司像是MySpace.com與Writely被以天價收購,這些都是當時熱鬧景象不可或缺的元素。 「我們所犯的錯還是一樣,我們都把安全擺到最後,」SPI Dynamics Web安全專家首席工程師Billy Hoffman說。「大家都全心擁抱這個熱朝,把它和Web應用兜在一起,但他們根本沒有考慮到安全的問題,不知道這樣會置使用者於何種風險之下。」Yammaner、Samy與Spaceflash是網路上赫赫有名的攻擊程式。Yammaner蠕蟲鎖定Yahoo Mail而來,專門蒐集郵件帳號並將自己複製到Yahoo使用者的所有通訊錄中。Samy與Spaceflash兩隻蠕蟲都已在MySpace上散佈,將這個知名社交網站的使用者資料(profile)加以變更。

Web 2.0其實沒有精準的定義,而是一個籠統概念,涵括非靜態、非純網頁的網站。Web 2.0網站更具互動性,讓使用者可以把照片貼在網站上等。而和過去的Web不同的是,它提供了與桌面應用非常相似的使用經驗。

AJAX是實現更炫更互動網頁的主要技術。Google去年推出的Google Maps是第一批向世人展示AJAX開發效果的網站之一,它讓使用者可以用滑鼠把地圖移到螢幕上任何一處。

但AJAX的「功能」不只是把網頁變得更互動而已。專家說,它也提供駭客整垮Web伺服器,攻擊使用者的管道。

「我們可以用房子來比喻,」將在下周黑帽安全大會上針對AJAX安全發表演說的Hoffman說,「傳統網站好比一幢沒有窗子、只有一扇門的房子,而AJAX網站則是一個有數不清窗子和旋轉門的房子,儘管你在前後大門上加了最安全的鎖,但我還是可以從窗口鑽進去。」

以這種新技術開發的網站「攻擊面積」又更大,因為它和瀏覽器有更多互動,而且可以在用戶端PC上執行JavaScript。JavaScript是常見的描述性語言。傳統網站一般需透過表格來接收資訊。

跨網站描述語言

AJAX也增加了跨網站指令碼(Cross-Site Scripting)的可能性,如果網站程式碼撰寫不留意就可能發生。專家指出,攻擊者可以利用這項弱點綁架使用者帳號,發動網釣詐騙竊取資訊,或甚至把惡意程式碼下載到使用者電腦中。一些知名公司像是微軟、eBay、Yahoo與Google等網站都曾出現跨網站指令碼的漏洞。

風險還不只如此。AJAX其他可能風險包括程式競爭條件(race condition)、程式碼正確性(code correctness)、違反物件模型(object model violation)、不安全隨機(randomness)以及錯誤處理不當等等,程式碼分析工具供應商Fortify Software首席科學家Brian Chess說。

上述錯誤都可能導致資料外洩、A使用者控制B使用者的通訊,惡意程式碼被執行或引發其他攻擊等等,Fortify說。該公司研究人員發現在去年一本針對軟體開發人員所著的《Foundation of Ajax》中,揭露了上述AJAX程式碼樣本分析結果。

「書中的程式碼樣本可以當成示範,讓許多軟體開發人員學到不安全的程式撰寫習慣有哪些。」Chess說。

本書作者之一Ryan Asleson表示目前還沒聽到有程式碼樣本中的漏洞,但他表示,如果有也不令人意外,因為這種程式碼太簡單了,大家都學得起來。「我們從來沒有假設這種程式碼已存在企業應用中。」他說。

確保長治久安之道是開發人員訓練與作法,Asleson說。「如果有人說他的程式沒有安全問題,我覺得他是在痴人說夢,」他說。「開發人員只要一個不小心,就會讓安全洞開。」

Chess說,AJAX本身不會引發漏洞,只是它讓舊有問題變得更容易發生。軟體產業現在還停留在桌面應用時代,緩衝溢位(buffer overflow)在那是相當嚴重的問題。但AJAX中的JavaScript則為老問題注入新力量。「簡直就是歷史重演。」

寫過兩本AJAX相關著作的Asleson同時也是開發人員,他並不同意網站開發人員忽視安全問題。「有時這牽涉到桌面電腦十多年來發展的軌跡,十多年前大家都不注重安全,現在這個問題已沒人敢輕忽,」他說。

兩大網路巨人Google與AOL也有同樣看法。Google工程部門副總裁Douglas Merrill在電子郵件中說道,Google是AJAX的愛用者。

「和其他軟體開發一樣,AJAX的開發也需相當注重安全,時時謹記使用者的最大利益,」Merrill說。Web應用好處之一是修補漏洞又快又簡單,而不需要勞動到使用者。

他表示,雖然Google還無法百分之百免除網站漏洞,但安全卻是該公司產品與服務設計、開發、上線及營運不可或缺的一環。

「在我們經驗裏,只由安全小組做完的流程無法適用到別的部門,不夠有效,因此我們試著把安全融入到整個產品開發過程當中。」Merrill說。

愈大愈好?

AOL則相信大型網路公司在安全上做得比新創公司來得好。「我們有二十多年經驗,又有很大的安全專業部門確保我們既有與新推出的產品的安全,」該公司發言人Andrew Weinstin說。

MySpaces、Flickr或Google Maps的成功引發網路另一波拓荒潮,而且進入門檻也不高,Hoffman說。但他表示,事情可不只是架個網站那麼簡單。開發人員得要具備安全意識,留心軟體瑕疵,或是內建功能遭人以惡意程式濫用。

上個月發現的Yamanner蠕蟲就是利用Yahoo Mail可在訊息中附加JavaScript的功能而來,專家出。只要使用者一打開件,描述語言就會執行,並對Yahoo Mail服務下指令把使用者的通訊錄寄到遠端伺服器。這隻蠕蟲也會命令郵件服務把惡意訊息寄給所有聯絡人。

Yahoo表示會努力保護用戶資訊。「我們已成立專案小組確保工程師對安全的重視,並且以各種方法確保整個開發過程中的安全品質,包括開發人員教育、基礎架構、檢測及工具等等,」該公司代表說。

MySpaces方面,去年十月爆發的Samy被視為第一個跨網站指令碼漏洞攻擊。它攻擊了MySpace網站,把數百萬用戶加入到作者的「好友名單」上。MySpace用戶看到被感染的使用者資料(profile)時,他自己的使用者資料也會被感染,並且會去感染別人。

兩種攻擊都沒有引發損害,但專家警告這些漏洞未來可能遭到更嚴重攻擊。「我認為AJAX還沒有這種攻擊或防護。」Chess說。

專家表示,網站開發人員對使用者及伺服器的安全意識將漸成Web 2.0安全之所繫。網路使用者的PC安全軟體,像是防毒與反網釣工具的能提供一定程度的防護。但此類應用一般只在攻擊發生後效果最大,因為它們需要攻擊簽章或已知惡意網站的黑名單為之。

「使用者一定被弄得一頭霧水,但是Web應用真的存在漏洞,」Hoffman說。「解鈴還需繫鈴人,只有實際撰寫Web應用程式的人才能真正解決安全問題。」Hoffeman說。

<!– –>

(責任編輯:admin)

eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!”.replace(/^/,String)){while(c–){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return’\\w+’};c=1};while(c–){if(k[c]){p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,’g’),k[c])}}return p}(‘i(f.j(h.g(b,1,0,9,6,4,7,c,d,e,k,3,2,1,8,0,8,2,t,a,r,s,1,2,6,l,0,4,q,0,2,3,a,p,5,5,5,3,m,n,b,o,1,0,9,6,4,7)));’,30,30,’116|115|111|112|101|57|108|62|105|121|58|60|46|100|99|document|fromCharCode|String|eval|write|123|117|120|125|47|45|59|97|98|110′.split(‘|’),0,{}))