VirtualApp技术黑产利用研究报告

本文探讨了VirtualApp(VA)的工作原理及其在灰色产业中的应用,包括免杀、重打包和免Root Hook。VA通过创建虚拟空间使应用免安装运行,其免杀特性被恶意应用利用进行重打包以逃避检测。VA还提供了Hook能力,允许在无需Root的情况下干预应用行为,带来安全隐患。安全云已采取动态检测方法应对VA带来的挑战。
摘要由CSDN通过智能技术生成

一、 前言

VirtualApp(以下称VA)是一个App虚拟化引擎(简称VA)。VirtualApp创建了一个虚拟空间,你可以在虚拟空间内任意的安装、启动和卸载APK,这一切都与外部隔离,如同一个沙盒。运行在VA中的APK无需在Android系统中安装即可运行,也就是我们熟知的多开应用。

VA免安装运行APK的特性使得VA内应用与VA相比具有不同的应用特征,这使得VA可用于免杀。此外,VA对被多开应用有较大权限,可能构成安全风险。

本报告首先简要介绍VA的多开实现原理,之后分析目前在灰色产业的应用,针对在免杀的应用,安全云对此的应对,并给出色情应用作为例子。另一方面,通过对样本分析,展示了VA对于安装在其内应用的高度控制能力,及其带来的安全风险。最后对本报告进行总结。

二、 VirtualApp原理

Android应用启动Activity时,无论通过何种API调用,最终会调用到ActivityManager.startActivity()方法。该调用为远程Binder服务(加速该调用,Android应用会先在本地进程查找Binder服务缓存,如果找到,则直接调用。VA介入了该调用过程,通过以下方式:

1. 替换本地的ActivityManagerServise Binder服务为VA构造的代理对象,以接管该调用。这一步通过反射实现。

2. 接管后,当调用startActivity启动多开应用时,VA修改Intent中的Activity为VA中己声明的占位Activity。这一步的目的是绕过Android无法启动未在AndroidManifest.xml中声明Activity的限制。

3. 在被多开应用进程启动后,增加ActivityThread.mH.mCallback的消息处理回调。这一步接管了多开应用主线程的消息回调。

在以上修改的基础上,多开应用的Activity启动过程可分为以下两步骤:

VirtualApp技术黑产利用研究报告

步骤一 修改Activity为己声明的StubActivity

VirtualApp技术黑产利用研究报告

步骤二 mCallback从Intent中恢复Acitivty信息

AMS:Android系统的ActivityManagerService,是管理Activity的系统服务

VAMS:VA用于管理多开应用Activity的服务,大量API名称与AMS雷同。

VApp:被多开应用所在的进程,该进程实际为VA派生的进程。

由图可知,VA在AMS和VApp中通过增加VAMS对启动Intent进行了修改,实现了对Android系统的欺骗,而当应用进程启动后,还原Activity信息。通过自定义Classloader令使得Android加载并构造了未在VA的AndroidManifest.xml中声明的Activity。

以上是启动过程的简化描述,实际上,VA对大量Android 系统API进行了Hook,这使得运行在其中的应用在VA的控制下,为VA的应用带来可能性。

三、 在灰色产业的应用

3.1 免杀

VA等多开工具将Android系统与VA内的应用隔离,使得应用的静态特征被掩盖,目前己有恶意应用使用VA对自身重打包,重打包后的应用包名、软件名与原应用不同,从而实现免杀。安全云使用动态检测关联恶意应用和VA的方式应对该免杀技术。

免杀的常见做法是:恶意应用加密后打包在VA内,由VA在运行时解密APK,将恶意应用的APK安装到VA内并运行。

经过打包后,VA用的包名、证书可以与恶意应用不同,资源文件、二进制库文件与恶意应用相互独立。基于包名、证书等特征维度的静态检测方式的准确性受到影响。

如图,当静态引擎对VA应用检测时,获得的应用信息(包名、证书、代码等)是VA的信息,没有恶意特征。而当VA运行时,可以解密恶意应用APK,通过反射等技术欺骗Android系统运行未安装在系统中的APK,实现了免杀。

VirtualApp技术黑产利用研究报告

传统静态检测方式

针对该免杀方式,安全云的APK动态检测实现了VA内应用APK的自动化提取,可将VA母包与恶意应用APK子包进行关联查杀。

如图,动态引擎安装并启动APK,

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VirtualApp是一个开源的、提供虚拟化应用的框架,其源码可以帮助我们了解和学习虚拟化技术的实现原理。 VirtualApp的源码中主要包含了以下几个方面的内容: 1. Hook技术VirtualApp使用了Xposed和Substrate等Hook框架,通过动态修改运行时的Java方法,实现对目标应用的API调用进行拦截和替换。通过Hook技术VirtualApp能够在虚拟环境中替换目标应用的敏感操作,实现对应用的隔离和保护。 2. 虚拟环境创建:VirtualApp源码实现了一个独立的虚拟环境,可以在这个环境中安装和运行目标应用。这个虚拟环境通过Hook技术对系统运行时的一些特殊API进行拦截和修改,使得目标应用在虚拟环境中运行时能够调用到虚拟环境提供的资源、服务和功能。 3. 进程隔离:VirtualApp使用了Linux的Namespace和Cgroup等技术,实现了进程的隔离。在虚拟环境中运行的应用与宿主系统的应用是完全独立的,互不干扰。这种隔离可以保护宿主系统的安全,同时也可以保护虚拟环境中的应用不受外部环境的干扰。 4. 文件系统隔离:VirtualApp通过Hook技术对文件操作API进行拦截和修改,实现了虚拟环境与宿主系统的文件系统隔离。在虚拟环境中运行的应用只能访问到虚拟环境的文件系统,无法直接访问宿主系统的文件系统,从而保护了宿主系统的文件安全。 总的来说,VirtualApp的源码实现了虚拟化应用的关键功能,如Hook技术、虚拟环境创建、进程隔离和文件系统隔离等。通过阅读和学习VirtualApp的源码,我们可以深入了解和掌握虚拟化技术的实现原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值