隨著W3C于2013年十月完成HTML5標(biāo)準(zhǔn)制定后,由HTML5編寫的WEB應(yīng)用程序數(shù)量一直呈快速增長趨勢。我們可以預(yù)見越來越多的HTML5應(yīng)用可能被攻擊者利用,由普通Web應(yīng)用重新打包為惡意移動軟件。
小科普
WebView(網(wǎng)絡(luò)視圖):能加載顯示網(wǎng)頁,可以將其視為一個瀏覽器,它使用了WebKit渲染引擎加載顯示網(wǎng)頁。
SDK(Software Development Kit):一般都是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。
HTML5安卓應(yīng)用安全現(xiàn)狀
據(jù)我們的監(jiān)測情況來看,在2013-2014之間安卓平臺的HTML5程序量新增加了200%,而2012-2014更是已經(jīng)增加了600%。
我們注意到,HTML5包裝的惡意軟件或PUAs(潛在威脅軟件)的數(shù)量也在增長,其中2014年近50%的HTML5惡意軟件/PUAs被偽裝為游戲應(yīng)用。
其實(shí)有大量移動惡意軟件及潛在威脅軟件被偽裝成合法游戲應(yīng)用的例子:
一個名為小步槍(Tiny Rifles)的APP就是款典型的需要com.html5.game2包的HTML5游戲。運(yùn)行它以后,瀏覽器除了會加載HTML5游戲,還會通過代碼注入惡意廣告SDK。該款惡意應(yīng)用目前已經(jīng)在Google Play中下架,我們將它定義為潛在威脅軟件(PUA)。
HTML5安卓惡意軟件的兩種攻擊方式
經(jīng)我們分析得出,HTML5打包的惡意軟件主要使用兩種攻擊方式:
方法一.初始化本地網(wǎng)絡(luò)視圖
這是一種非常受黑客歡迎的攻擊方式,使用它并不用改變HTML5應(yīng)用的代碼。黑客只需要初始化一個本地網(wǎng)絡(luò)視圖,加載本地或遠(yuǎn)程的HTML5/JavaScript/CSS代碼即可。這樣主程序仍能運(yùn)行,而產(chǎn)生的卻是新的安卓應(yīng)用。
然而,大多數(shù)黑客并不會在這里止步,因為只把web應(yīng)用轉(zhuǎn)為安卓應(yīng)用是完全沒有意義的。黑客在大多數(shù)時候會在發(fā)布應(yīng)用之前,就將惡意代碼注入其中。
這樣打包應(yīng)用的話,惡意代碼和正常代碼會在源里分離。黑客只需要關(guān)心注入的部分代碼,而不用太在意HTML5的那部分,這樣使得代碼邏輯清晰簡單。
方法二.把HTML5應(yīng)用打包,通過中間件注入惡意JS代碼
隨著安卓越來越受大眾的歡迎,許多中間件由此誕生,方便人們開發(fā)跨平臺的應(yīng)用。中間件是一種第三方軟件/框架,在應(yīng)用和操作系統(tǒng)之間作橋梁之用。
對于HTML5與相關(guān)web應(yīng)用,現(xiàn)今有幾種開源框架支持跨平臺開發(fā),比如:Phonegap, Apache Cordova, Crosswalk, Cocoonjs等等,而且這些中間件通常都支持HTML5,其中一個典型例子就是Apache Cordova。
除了使用網(wǎng)絡(luò)視圖的HTML5/JavaScript/CSS代碼外,適用于那些中間件的應(yīng)用通常都基于那些框架核心庫運(yùn)行,就如那些定制的瀏覽器一樣。由于那些中間件強(qiáng)大的API給開發(fā)者提供了許多便捷,他們只需要使用JS代碼就能與安卓進(jìn)行交互。換句話說,如果HTML5應(yīng)用利用了中間件的特性,可以輕松進(jìn)行惡意代碼注入和執(zhí)行。
結(jié)語
HTML5使得開發(fā)更強(qiáng)大的web應(yīng)用變得更加簡單,因其開發(fā)的web應(yīng)用的平臺低依賴性,一定程度上在安卓平臺上有著較大優(yōu)勢。對于開發(fā)者來說,跨平臺開發(fā)的難度降低,可以說是一次開發(fā)多方通用(WORA)并不會在跨平臺上耗費(fèi)精力。對于用戶來說,他們可以在不同的移動平臺分享喜愛的應(yīng)用。這些意味著使用HTML5進(jìn)行web應(yīng)用開發(fā),對于諸方都是有利的。
當(dāng)然,跨平臺也會帶來隱患比如跨平臺注入,JS代碼保護(hù)的機(jī)制太少,導(dǎo)致web應(yīng)用可以被輕松復(fù)制和重新打包。理論上來講,通過代碼注入和重新打包,黑客可以剽竊任何他們想要的HTML5的跨平臺web應(yīng)用。
在未來,我們可以預(yù)見到這種由HTML5開發(fā)的惡意軟件可以通殺不同的移動平臺(比如IOS,安卓,WinPhone)。為了避免這種情況,開發(fā)者應(yīng)多花點(diǎn)精力在代碼混淆和使用其他編碼技巧,這樣在一定程度上可以保護(hù)他們的應(yīng)用程序。家庭用戶需要使用新的應(yīng)用程序時,最好去官方應(yīng)用商店下載。