看我七十二变:HTML5游戏重打包变身安卓恶意软件

jopen 9年前

英文原文:Repackaging HTML5 Apps into Android Malware

随着 W3C 于 2013 年十月完成 HTML5 标准制定后,由 HTML5 编写的 WEB 应用程序数量一直呈快速增长趋势。我们可以预见越来越多的 HTML5 应用可能被攻击者利用,由普通 Web 应用重新打包为恶意移动软件。

HTML5 Android 应用安全现状

据我们的监测情况来看,在 2013-2014 之间安卓平台的 HTML5 程序量新增加了 200%,而 2012-2014 更是已经增加了 600%。

看我七十二变:HTML5游戏重打包变身安卓恶意软件

我们注意到,HTML5 包装的恶意软件或 PUAs(潜在威胁软件)的数量也在增长,其中 2014 年近 50% 的 HTML5 恶意软件/PUAs 被伪装为游戏应用。

看我七十二变:HTML5游戏重打包变身安卓恶意软件

其实有大量移动恶意软件及潜在威胁软件被伪装成合法游戏应用的例子:

一个名为小步枪(Tiny Rifles)的 APP 就是款典型的需要 com.html5.game2 包的 HTML5 游戏。运行它以后,浏览器除了会加载 HTML5 游戏,还会通过代码注入恶意广告 SDK。该款恶意应用目前已经在 Google Play 中下架,我们将它定义为潜在威胁软件(PUA)。

看我七十二变:HTML5游戏重打包变身安卓恶意软件

HTML5 安卓恶意软件的两种攻击方式:

方法一、初始化本地网络视图

这是一种非常受黑客欢迎的攻击方式,使用它并不用改变 HTML5 应用的代码。黑客只需要初始化一个本地网络视图,加载本地或远程的 HTML5/JavaScript/CSS 代码即可。这样主程序仍能运行,而产生的却是新的安卓应用。

然而,大多数黑客并不会在这里止步,因为只把 web 应用转为安卓应用是完全没有意义的。黑客在大多数时候会在发布应用之前,就将恶意代码注入其中。

看我七十二变:HTML5游戏重打包变身安卓恶意软件

这样打包应用的话,恶意代码和正常代码会在源里分离。黑客只需要关心注入的部分代码,而不用太在意 HTML5 的那部分,这样使得代码逻辑清晰简单。

方法二、把 HTML5 应用打包,通过中间件注入恶意 JS 代码

随着安卓越来越受大众的欢迎,许多中间件由此诞生,方便人们开发跨平台的应用。中间件是一种第三方软件/框架,在应用和操作系统之间作桥梁之用。

对于 HTML5 与相关 web 应用,现今有几种开源框架支持跨平台开发,比如:Phonegap, Apache Cordova, Crosswalk, Cocoonjs 等等,而且这些中间件通常都支持 HTML5,其中一个典型例子就是 Apache Cordova。

除了使用网络视图的 HTML5/JavaScript/CSS 代码外,适用于那些中间件的应用通常都基于那些框架核心库运行,就如那些定制的浏览器一样。由于那些中间件强大的 API 给开发者提供了许多便捷,他们只需要使用 JS 代码就能与安卓进行交互。换句话说,如果 HTML5 应用利用了中间件的特性,可以轻松进行恶意代码注入和执行。

看我七十二变:HTML5游戏重打包变身安卓恶意软件

结语

HTML5 使得开发更强大的 web 应用变得更加简单,因其开发的 web 应用的平台低依赖性,一定程度上在安卓平台上有着较大优势。对于开发者来说,跨平台开发的难度降低,可以说是一次开发多方通用(WORA)并不会在跨平台 上耗费精力。对于用户来说,他们可以在不同的移动平台分享喜爱的应用。这些意味着使用 HTML5 进行 web 应用开发,对于诸方都是有利的。

当然,跨平台也会带来隐患比如跨平台注入,JS 代码保护的机制太少,导致 web 应用可以被轻松复制和重新打包。理论上来讲,通过代码注入和重新打包,黑客可以剽窃任何他们想要的 HTML5 的跨平台 web 应用。

在未来,我们可以预见到这种由 HTML5 开发的恶意软件可以通杀不同的移动平台(比如 IOS,安卓,WinPhone)。为了避免这种情况,开发者应多花点精力在代码混淆和使用其他编码技巧,这样在一定程度上可以保护他们的应用程序。家庭 用户需要使用新的应用程序时,最好去官方应用商店下载。

来自: www.freebuf.com