随着W3C于2013年十月完成HTML5标准制定后,由HTML5编写的WEB应用程序数量一直呈快速增长趋势。我们可以预见越来越多的HTML5应用可能被攻击者利用,由普通Web应用重新打包为恶意移动软件。
小科普
WebView(网络视图):能加载显示网页,可以将其视为一个浏览器,它使用了WebKit渲染引擎加载显示网页。
SDK(Software Development Kit):一般都是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
HTML5安卓应用安全现状
据我们的监测情况来看,在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应用转为安卓应用是完全没有意义的。黑客在大多数时候会在发布应用之前,就将恶意代码注入其中。
这样打包应用的话,恶意代码和正常代码会在源里分离。黑客只需要关心注入的部分代码,而不用太在意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)。为了避免这种情况,开发者应多花点精力在代码混淆和使用其他编码技巧,这样在一定程度上可以保护他们的应用程序。家庭用户需要使用新的应用程序时,最好去官方应用商店下载。