架構(gòu)師需把HTML5安全排首位之新功能帶來新攻擊
前文我們介紹的企業(yè)架構(gòu)師在進(jìn)行HTML5開始時(shí)可能遇到的一些問題,本文將繼續(xù)介紹隨著HTML5功能的增增加,新安全性攻擊也會(huì)隨之增多。
新功能=新攻擊
安全專家們所關(guān)心的一個(gè)問題就是HTML5堆棧在移動(dòng)和Web瀏覽器中都可以運(yùn)行。Shreeraj Shah是一家名為 Blueinfy Solutions的網(wǎng)絡(luò)安全攻擊供應(yīng)公司的創(chuàng)始人兼總監(jiān),他說:“因此,HTML5攻擊載體的類型就非常之多,會(huì)隨著不同的情況而變化不同的攻擊載體。”
有了HTML5就增多了許多不同的攻擊載體,在某些情況下,是由于新的特性而導(dǎo)致攻擊范圍的擴(kuò)大,亦或者因?yàn)樾碌膶?shí)施方案使得已經(jīng)為人熟知的風(fēng)險(xiǎn)緩釋技術(shù)變得毫無用處。特別值得關(guān)注的是,在安全專家發(fā)現(xiàn)之前,黑客們是有可能發(fā)起一次攻擊的。
這些特征如下:
◆可編程的繪圖界面
◆繪制3-D圖形的WebGL
◆本地存儲(chǔ)
◆存儲(chǔ)于客戶端的數(shù)據(jù)
◆地理位置
◆操作歷史
◆跨域起源
◆媒介標(biāo)志
◆環(huán)境安全政策
◆本地文件系統(tǒng)訪問權(quán)限
◆Web消息傳輸
◆Web工作人員
Shah解釋說:“大范圍攻擊面越來越明顯,并且隨著功能和組件的應(yīng)用,安全問題也變得非常復(fù)雜。”
這個(gè)大型攻擊系統(tǒng)的安全問題可以讓黑客們利用HTML5組件達(dá)到啟動(dòng)客戶端攻擊的目的,例如XSS和CSRF,這些是Web應(yīng)用漏洞中OWASP排名前十的攻擊。Shah指出,由于在創(chuàng)立瀏覽器時(shí),HTML5數(shù)據(jù)存儲(chǔ)以及系統(tǒng)文件中會(huì)存有一些用戶的重要信息,因此HTML5可以讓黑客們利用XSS漏洞來盜取用戶信息。畫布、操作歷史以及一些其他功能特性都屬于個(gè)人隱私范疇。例如,指紋識(shí)別界面就被用于識(shí)別特定的瀏覽者。
Shah提出,HTML5應(yīng)用還擴(kuò)大了應(yīng)用程序后端服務(wù)器受攻擊的范圍。HTML5主要是利用 JSON、SOAP 或者 REST這些SOA后端來獲取JavaScript的。屏幕顯示、業(yè)務(wù)邏輯以及數(shù)據(jù)訪問層之間的界限變小了,許多組件也都是Java腳本、HTML5的一部分。Shah說:“因此,可以對業(yè)務(wù)邏輯進(jìn)行反工程剖析。攻擊者們能夠執(zhí)行和利用真正的業(yè)務(wù)功能層”
緩存及本地存儲(chǔ)
HTML5新功能使得客戶端上的數(shù)據(jù)存儲(chǔ)變得更容易。這些本地存儲(chǔ)技術(shù)兌現(xiàn)了應(yīng)用程序性能提速以及允許應(yīng)用程序離線操作的諾言。如果沒有正確的管理、安全及加密處理,那么惡意黑客就會(huì)獲取到一份相同的數(shù)據(jù)。
Eads認(rèn)為,盡管客戶端上的數(shù)據(jù)有了安全和加密工具的保護(hù),但是,這些工具卻無法起到故障防護(hù)的作用。“我們已經(jīng)證明,該數(shù)據(jù)并非牢不可破。在大多數(shù)案例中都證實(shí),將數(shù)據(jù)存儲(chǔ)與客戶端上太冒險(xiǎn)了。同樣的,從管理的角度來考慮,我們還沒有發(fā)現(xiàn)將數(shù)據(jù)存儲(chǔ)在客戶端上的優(yōu)勢。”
Eads指出,在一些案例中,尤其是iOS操作平臺(tái)上,本地應(yīng)用可以為本地存儲(chǔ)帶來更好的安全性。但是另一個(gè)方面,Android平臺(tái)更常見的是root操作,這樣可以避免一些平臺(tái)內(nèi)部的安全措施。
當(dāng)企業(yè)對用戶使用移動(dòng)設(shè)備管理(MDM)工具和移動(dòng)應(yīng)用程序管理 (MAM)工具有更大的控制權(quán)時(shí),Eads確實(shí)也認(rèn)為其打破了慣例。他說:“有了MDM 和 MAM可以降低控制。一種設(shè)計(jì)較佳的系統(tǒng)架構(gòu)是能夠在適當(dāng)時(shí)候進(jìn)行控制。但是,有些企業(yè)將數(shù)據(jù)存儲(chǔ)在客戶端上,卻未能進(jìn)行有效的控制,因此他們就會(huì)面臨非常嚴(yán)重的風(fēng)險(xiǎn)。”
第三方代碼(了解代碼庫)
許多企業(yè)都開始轉(zhuǎn)向開發(fā)HTML5函數(shù)庫,他們想要縮短時(shí)間和提高新應(yīng)用的質(zhì)量。而如果函數(shù)庫中存在風(fēng)險(xiǎn),或者如果代碼源被黑客攻擊,那么這種做法就會(huì)帶來許多問題。對于大多數(shù)HTML5應(yīng)用來說,包括第三方代碼在內(nèi)的所有JavaScript代碼都是具有同等級別的安全性。這就意味著,來自第三方函數(shù)庫的潛在安全漏洞或者故障都可以擾亂企業(yè)瀏覽器的運(yùn)行時(shí)間。
Brad Carleton是TechPines應(yīng)用程序開發(fā)公司的創(chuàng)始人兼CTO,他認(rèn)為:“使用越多的函數(shù)庫,安全問題就會(huì)變得越復(fù)雜。我要說的是,最好的安全防御措施是在使用之前對所有的第三方代碼進(jìn)行徹底的審查。在一些特殊的情況下,許多潛在‘不被信任’的第三方代碼或許會(huì)運(yùn)行于瀏覽器中,我們可以使用HTML5 Web Worker和iFrame沙箱來進(jìn)行較為安全的設(shè)置。”