VirtualApp(简称:VA)是一款运行于Android系统的沙盒引擎框架产品,可以理解为轻量级的“Android虚拟机”。VA具有免安装、多开、内外隔离及对于目标App完全控制的能力。VA从表现形式上属于动态加载,但是从技术本质上来说是通过增加VAMS对启动Intent进行修改,拦截和代理Android系统消息,并且通过自定义的ClassLoader加载和构造未在VA的AndroidManifest.xml中声明的组件,以达到对目标App的控制效果。
在应用运行时通过动态加载消息代理技术,作为一项在Android系统上已经可以成熟使用的手段,除了在VA虚拟引擎框架中,目前也广泛应用在热更新、应用加壳和应用动态保护等功能中。正常使用VA虚拟引擎技术一般是为了实现轻量级版本快速迭代、功能更新、bug修复和特定安全防护,但是恶意和流氓应用使用该技术一般是为了逃避安全检测,延长生命周期,获取更大的利益。
无论是动态加载的插件化技术,还是基于VA的虚拟化引擎技术,从安全属性上而言,都在一定程度上挑战了Android系统的安全要求,谷歌和苹果对上架应用都有对应的规定——禁止使用动态加载功能。虽然如此,仍然有大量开发者对VA技术有需求,例如Android平台上的双开应用,以及Windows平台上的Hook机制和多款成熟虚拟机软件,都被用来满足开发者的应用开发需求。可见这种技术本身也是具有两面性的,我们需要客观看待。
安天移动安全从2016年开始持续加强了对VA相关技术和应用的关注,并在VA类样本分析、检测等方面也有了不错的成果及独特的见解,并对基于VA恶意及非恶意样本传播情况进行了统计,如图1所示:
图1 VA恶意及非恶意样本传播情况
从图1的数据上看,VA技术从诞生开始,整体上非恶意的应用数量就偏少,一直在一个较小范围,而黑产对于该技术的采用则激进很多,在前期就大幅增多,后期则随着恶意代码规模的减少而减少。
VA技术目前也有用于正常用途的,比如部分游戏爱好者拥有多个账号,部分白领由于工作原因需要对于个人社交软件和工作用户社交软件进行隔离,这一类的需求一直很旺盛。
但是VA实际上也会给运行在VA中的App带来不可忽视的安全风险,即App的运行环境完全被VA控制,安卓的沙盒隔离机制被突破,并导致不必要的攻击入口和风险面暴露。
VA技术动态加载可以在运行时动态加载,并解释和执行包含在JAR或APK文件内的DEX文件。外部动态加载DEX文件的安全风险源于:Anroid4.1之前的系统版本容许Android应用动态加载存储在外部目录中的DEX文件,同时这些文件也可以被其他应用任意读写,所以不能够保护应用免遭恶意代码的注入;所加载的DEX文件易被恶意应用替换或者注入代码,如果没有对外部所加载的DEX文件做完整性校验,应用将会被恶意代码注入,那么攻击者编写的任意恶意代码将会被自动执行,从而进一步实施欺诈、获取账号密码或其他恶意行为。
VA技术是在虚拟空间中安装、启动和卸载APK,是应用级的虚拟化技术,VA中运行的恶意应用软件可以逃避杀毒软件的静态检测,VA框架也被黑灰产用于开发多开工具、改机工具、抢红包工具等方式实施恶意行为。VA框架上运行的插件应用程序也被引入了代码修改风险,重打包的应用程序存在隐私泄露、被植入广告等危害。下面我们将详细分析VA技术带来的现实威胁。
VA创建了一个虚拟空间,使用者可以在虚拟空间内任意的安装、启动和卸载APK,因此产生了大量的多开工具。
多开工具一直倍受微商、刷量工作室、羊毛党的青睐。通过明码标价,服务于意向商家,以低成本甚至零成本换取了高额利润。表1即是部分用于电商、微信的多开工具。
表1:电商、微信的多开工具
Hash |
包名 |
程序名 |
63BD3248BB978A69B76E076F0746D0EC |
com.wangniu.locklock |
应用多开大师 |
DF*FBF675D1B0532C34ED6FB9DA0B92 |
com.zhushou.weichat |
微信多开助手 |
D01DC1B2E080E4B394EE60CBA378165C |
com.hanyuejian.multrun |
超速多开助手 |
A08B0875E875B95999E34BA94003C3DE |
club.vxv.virtual.wechat10 |
V多开10 |
30673CEAF050073A78E4FEB6AE4B1970 |
com.boly.opentreasure |
多开宝 |
48A6C69924DC346ED0BB6754A42444B2 |
com.jtjsb.weishangdkxh |
微商多开小号 |
275EA224E40727E93B97A2E2883D3B3D |
com.xzj.multiapps |
多开分身虚拟定位 |
3BC13D2F0D980748DA204B549A089B77 |
com.ssapk.smartapp |
qq多开-陌陌多开 |
4AE9E6B63E762F541BE0028610034477 |
com.leaves.mulopen |
多开虚拟精灵 |
开发者利用VA自带的J*A层Hook,开发了改机工具,包括修改设备参数,虚拟定位等工具。
以虚拟定位工具为例,该应用通过遥感设置虚拟位置,能够实现虚拟定位的功能,应用运行截图如图2、图3、图4所示:
详细的流程如下:
(1)安装需要定位应用
(2)设置虚拟位置
输入位置信息,通过百度地图获取对应经纬度信息。
接收定位信息,设置目的位置。
(3)实现定位功能
获取虚拟数据,通过加载包com.lody.virtual.client.hook.proxies.location实现虚拟定位功能。
目前流行的抢红包功能实现有两种方案,一种是通过Android AccessiblityServices监测用户窗口,模拟点击,一种是利用Xposed框架对红包相关的函数进行Hook,第二种方案需要Root权限,但是不必打开微信界面即可抢红包。VA提供了免Root Hook能力,通过使用开源热更新框架替换函数,实现自动抢红包功能,下图5为利用VA的抢红包工具。
图5 利用VA的抢红包工具
该红包工具通过框架AndFix替换系统函数,模拟点击红包消息、拆红包。
模拟点击红包消息代码:
拆红包代码:
由于VA的特性,大量恶意应用通过将功能包加密存储在VA内,实现动态调用。传统的静态检测皆是对应用的包名、证书、代码等进行识别,在检测VA应用时,识别的则是VA的信息,没有恶意特征,因此躲避了查杀。
对于库内VA样本进行筛选,发现大量色情应用使用VA特性绕过检测,部分应用如下表所示。
表2:部分色情应用的信息
Hash |
包名 |
程序名 |
39A7DFBF54AEE118676B76631EEA87C7 |
PiJtpy.FSo.JCUYSz.EsX |
极A品M快eN播 |
163AFD77B90FED5EA329DD9382415882 |
Ba.NA.Nj.EnZR.gtraVx |
极Tr品qq快x播 |
3A7FF222EFD71B4D9EFCC38D62FBBA22 |
ryowpq.ZWJ.BlpA.Qd.MA |
极nWk品d快iU播 |
2CD06A50F81D040A4332DC78707B952C |
vss.AfjN.hEfi.zzEO |
9t1atTbmoV |
7C*DB8C701571C*6D089366260CB78 |
CXs.UbxEPk.aAnE.rXS.Ue |
极G品W快Ldv播 |
F5487B8119524D56B80C62A57D33821F |
mk.EjNb.wrGgb.hM |
极BH品Jgs快Gd播 |
1B75C8A259BE16F87A44E64B0133E648 |
FeLkj.RgHuMG.HM.rKtf.XaAIs |
极l品tH快Zm播 |
FA70E42DCDED167392D0A689FA40A795 |
LfCrW.ytu.DU.py.LdL |
极Mh品Tge快vYB播 |
F17F38CB8E6E3A12D0944654AF743F14 |
STy.je.iDB.lASpKL.XEVJ |
极zh品F快Gx播 |
7CC669371A5BC665333F1E4BF0AC87E7 |
kbl.dia.ku8 |
Space Cleaner |
2485160BCEA22DA143DEC3ED85A10B61 |
ax.GP.tLX |
9jBg1sCTCNJV |
大量不规范应用伪装成游戏应用,利用下载恶意吸费。该类应用都经过了VA处理,部分不规范应用的信息如下表所示。
表3:经过VA处理的部分不规范应用的信息
Hash |
包名 |
程序名 |
B73ED49A0EB81E57CE4BDD7F72B2F54B |
com.F2V8X14M92D |
速度与激情8:微端 |
A1C29740AADF18BC7B009B0A*0F6938 |
com.B28MRZ1NWMZH |
同一个世界:微端 |
BEB72E838E49D6C6A0E64F240716906A |
com.UG11QW5Y3K4 |
梦想三国:微端 |
713672C6C7E645325B52077FF883887A |
com.NCI3PUW263 |
街头篮球:微端 |
EB9ECBCE0A039FA5B11000F2899204F5 |
com.U0Z7JU1DX349952 |
滚蛋吧肿瘤君:微端 |
56B7CFC8C3FE136DB7CA949B091E6A46 |
com.N875MO9H1982P |
宠物王国:微端 |
7E134A076FF8DE2263ADADE7C228A9F1 |
com.CJB959608DP17I8 |
汤姆猫跑酷:微端 |
675232305C3C75B250E839D9BA1E16D0 |
com.JV6R6XY26S2 |
割绳子2:微端 |
17768126040DC3533CCCE0440F36C1C8 |
com.PV411PNTI8 |
登山赛车2:微端 |
B*49074CB832BC2FF805FDA3003CA77 |
com.C3N0221Q0HH314 |
暴击僵尸:微端 |
968C6498E6D162856C7BB11361276CD2 |
com.RAY6NMD0S2Y60T |
消灭星星:微端 |
VA代码可以不通过修改代码即重打包应用,且自带免Root Hook能力,绕过重打包检测的同时,实施恶意行为。以Trojan/Android.twittre家族为例。
通过VA启动Twitter,Twitter启动后,修改后的VirtualCore模块Hook了EditText类的getText函数,从而在Twitter登录窗口劫持用户的输入,窃取用户的登录凭证。
由于应用运行在VA环境下,因此很多重打包应用会植入广告部分。
以某类重打包应用内嵌广告为例。
(1)内嵌广告结构:
(2)监听应用安装,启动广告服务:
(3)上传设备固件信息,请求广告:
(4)下载应用,判断“adType”,通过VA安装该应用:
通过分析,可知VA技术在实现双开或其他模板时破坏了安卓的沙盒隔离机制,并且让用户产生因为和系统隔离而带来的安全感,需要知道的是这种技术性隔离也是从事实上拒绝了系统原生安全机制,并引入了新的风险以及运营成本,同时VA技术也给系统带来了不小的安全隐患,无法检测恶意实体、母体权限过大、安装绕过、绕过市场监管等是目前无法进行有效防护的主要因素。在VA安全防范方面,应确保所加载的DEX/APK文件的传输通道和存储位置安全,或者对加载源进行完整性校验和白名单处理。
在VA检测技术方面,自2016年下半年以来,安天移动安全持续对手机双开应用进行标定。无论是VA类的恶意样本,还是常规恶意样本,安天移动安全都进行了有效的对抗,基于自动化预处理平台,可以对未知样本进行细粒度的解析,生成对应的结构化中间件结果,并利用前置引擎进行有效降维,为后期样本分析和科学研究产生高价值数据。安天移动安全检测框架则从不同维度对未知样本进行检测,从证书、符号、操作码等常规检出维度上升到文件结构以及自定义向量等高维层次进行计算,有效保持在移动恶意代码处置上的竞争力。安天移动安全也正在持续加强同国内一线终端厂商深入合作,通过融入系统底层安全机制,为上层应用生态提供原生级的安全防护能力。
安天移动安全引擎技术体系助力打通产学合作
安天移动安全长期与高校展开产学合作,本着“以理论突破技术发展,以技术反哺理论创新”的思路,致力在移动终端恶意代码检测技术领域研究出新的成果。武汉大学史鹿曼、傅建明等人发表的《“Jekyll and Hyde” is Risky: Shared-Everything Threat Mitigation inDual-Instance Apps》论文,成功被第17届ACM移动系统、应用和服务国际的会议(简称MobiSys 2019)收录,该论文针对双开应用程序创造性地提出了新的恶意VA检测方法,安天移动安全为该论文研究提供了丰富的恶意样本分析训练数据和分析检测模型支持。
图6 MobiSys2019会议
➣除了VA类的恶意样本,安天移动安全对各种隐私危害、不良不规范和恶意类型的移动恶意样本有着深刻的认知和技术积累,并形成了完整的自动化预处理平台和不同的安全检测框架。欢迎高校、研究机构或企业单位与我们一起探讨移动恶意代码检测分析难题。
➣联系邮箱:[email protected]