看我七十二變:HTML5游戲重打包變身安卓惡意軟件
英文原文:Repackaging HTML5 Apps into Android Malware
隨著 W3C 于 2013 年十月完成 HTML5 標準制定后,由 HTML5 編寫的 WEB 應用程序數量一直呈快速增長趨勢。我們可以預見越來越多的 HTML5 應用可能被攻擊者利用,由普通 Web 應用重新打包為惡意移動軟件。
HTML5 Android 應用安全現狀
據我們的監測情況來看,在 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/JavaScript/CSS 代碼即可。這樣主程序仍能運行,而產生的卻是新的安卓應用。
然而,大多數黑客并不會在這里止步,因為只把 web 應用轉為安卓應用是完全沒有意義的。黑客在大多數時候會在發布應用之前,就將惡意代碼注入其中。
這樣打包應用的話,惡意代碼和正常代碼會在源里分離。黑客只需要關心注入的部分代碼,而不用太在意 HTML5 的那部分,這樣使得代碼邏輯清晰簡單。
方法二、把 HTML5 應用打包,通過中間件注入惡意 JS 代碼
隨著安卓越來越受大眾的歡迎,許多中間件由此誕生,方便人們開發跨平臺的應用。中間件是一種第三方軟件/框架,在應用和操作系統之間作橋梁之用。
對于 HTML5 與相關 web 應用,現今有幾種開源框架支持跨平臺開發,比如:Phonegap, Apache Cordova, Crosswalk, Cocoonjs 等等,而且這些中間件通常都支持 HTML5,其中一個典型例子就是 Apache Cordova。
除了使用網絡視圖的 HTML5/JavaScript/CSS 代碼外,適用于那些中間件的應用通常都基于那些框架核心庫運行,就如那些定制的瀏覽器一樣。由于那些中間件強大的 API 給開發者提供了許多便捷,他們只需要使用 JS 代碼就能與安卓進行交互。換句話說,如果 HTML5 應用利用了中間件的特性,可以輕松進行惡意代碼注入和執行。
結語
HTML5 使得開發更強大的 web 應用變得更加簡單,因其開發的 web 應用的平臺低依賴性,一定程度上在安卓平臺上有著較大優勢。對于開發者來說,跨平臺開發的難度降低,可以說是一次開發多方通用(WORA)并不會在跨平臺 上耗費精力。對于用戶來說,他們可以在不同的移動平臺分享喜愛的應用。這些意味著使用 HTML5 進行 web 應用開發,對于諸方都是有利的。
當然,跨平臺也會帶來隱患比如跨平臺注入,JS 代碼保護的機制太少,導致 web 應用可以被輕松復制和重新打包。理論上來講,通過代碼注入和重新打包,黑客可以剽竊任何他們想要的 HTML5 的跨平臺 web 應用。
在未來,我們可以預見到這種由 HTML5 開發的惡意軟件可以通殺不同的移動平臺(比如 IOS,安卓,WinPhone)。為了避免這種情況,開發者應多花點精力在代碼混淆和使用其他編碼技巧,這樣在一定程度上可以保護他們的應用程序。家庭 用戶需要使用新的應用程序時,最好去官方應用商店下載。