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