通付盾——金融科技安全行业领军品牌 风险决策平台 · 信用认证 · 多因子身份认证 · APP检测加固 技术专业 服务安全 体验快捷
QQ咨询 在线咨询 400-8318-116 免费申请试用
企业新闻
技术前沿 | 虚拟机保护技术(VMP)的实践与体会
来源:本站原创 时间:2016-08-19 作者:本站编辑

随着近年来移动互联网的飞速发展,移动安全产业也进入了快速增长的阶段。通付盾秉着技术为先,脚踏实地的原则围绕科研机构和学科带头人于2012年底成立了移动安全实验室(BeiDouLab),并陆续孵化了如移动应用加固、移动应用检测、移动应用监测等多项移动安全产品。


今天,移动安全实验室就带你一起体会在通付盾安全加固系列产品中已成功服务多个企业级客户的新一代虚拟机保护(VMP)技术的独到之处,并进行一次针对移动应用加固VMP技术的去伪存真之旅。


何谓虚拟机保护

虚拟机软件保护技术是被动型软件保护技术的分支,具体来说是添加有意义的混淆代码的一种变型使用。根据应用层级不同,基本可分为硬件抽象层虚拟机、操作系统层虚拟机和软件应用层虚拟机。


用于保护软件安全的虚拟机属于软件应用层虚拟机,同层的虚拟机还包括高级语言虚拟机,如java程序语言运行环境jvm和.net程序语言运行环境CLR,后者采用虚拟机的原因是便于移植,因此编译器没有直接生成可直接在机器上执行的nativecode,而改为生成中间代码byte-code,再通过在不同机器环境下安装对应版本的虚拟机对byte-code进行解释执行,从而实现跨平台运行。

 

用于保护软件安全的虚拟机采用类似的流程。虚拟机保护软件首先会对被保护的目标程序的核心代码进行“编译”——需要注意的是,这里被编译的不是源文件,而是二进制文件——并生成效果等价的byte-code,然后为软件添加虚拟机解释引擎。用户最终使用软件时,虚拟机解释引擎会读取byte-code,并进行解释执行,从而实现用户体验完全一致的执行效果。


要设计一套虚拟机保护软件,首先要设计一套虚拟机指令,也即是byte-code的指令集表,生成byte-code的过程,实际是将原始机器指令流等价转译成虚拟机指令流的过程。虚拟机指令集表与原始机器指令集表越正交越好,安全系数越高。


另外,指令的设计应尽可能地具备图灵完备性,能够完整地表达出原始机器指令的所有可能表达。图灵完备性越好,则虚拟机保护引擎的保护的覆盖范围越广,健壮性越高。在软件运行时,编译产生的Byte-code由内嵌入软件可执行文件中的虚拟机解释引擎,采用读取-分派的方式解释执行。

通付盾安全虚拟机PayegisVM3.0


在移动安全实验室开发和实践安全加固产品的早期,实验室成员就已早早的注意到了虚拟机保护技术对于应用加固产品的安全增强作用。但虚拟机保护技术在移动应用加固产品上实践会随之带来较大的兼容性和性能的影响,所以在实践中我们秉持着小心求证、步步推进的原则,一直在研究和落实着针对移动平台,虚拟机保护技术与应用加固产品的最佳结合点。


结果是喜人的,目前通付盾安全虚拟机已经更新到第三代PayegisVM3.0,而对于保护效果也是令人满意的。


对于一段基本逻辑代码,保护前如下所示,指令标准,易被分析。


 image/png


而经过虚拟机保护后,效果如下:


 image/png

 

我们可以看出,符合x86或arm体系架构的标准汇编指令(mov、add、pop等),已变成了自定义加密汇编指令(xchg、db、dq等)。

去伪存真


通付盾移动安全实验室研究和实践移动应用虚拟机保护技术的过程是艰辛的,因为涉及到众多体系架构(x86、arm等)的研究以及复杂的二进制语言开发,使得相比dex加壳、so加壳技术难度更高,服务也更难稳定。


近期,也有不少技术论坛和博客声称发布了针对移动应用的VMP技术。经研究,大多数技术方案并不成熟,有的方案甚至和VMP的核心思想有本质上的区别,主要有以下几种:


代码抽取和隐藏


将功能函数的实现提取并加密存放在应用的其他文件目录下,运行时恢复。这是一种代码隐藏技术,与真正的VMP有很大的区别。


image/png


代码混淆


对程序功能代码进行控制流平坦化、插入虚假控制流、花指令等方式进行处理,使代码可读性降低,增大逆向工程的难度。这是一种代码混淆技术,与真正的VMP有很大的区别。


image/png


真正的虚拟机保护技术应是基于一套高质量的自定义指令集和自定义虚拟机运行环境的动态代码保护方案。通付盾移动安全实验室基于多年技术研究和沉淀,成为国内外首家真正意义上将虚拟机保护技术运用到移动应用加固领域的服务商,并已经过市场与客户的检验。诚邀更多企业一起,践行移动应用安全,保护广大网民的网络资产!


通付盾科技

2016年8月19日



帮助文档
联系我们
  • 商务咨询:info@tongfudun.com
  • 售后服务:service@tongfudun.com
  • 市场合作:info@tongfudun.com
  • 英才招聘:jobs@tongfudun.com
  • 蓝海基金:bp@tongfudun.com
  • 联系电话:400-831-8116
随时随地了解通付盾动态 敬请关注:

通付盾
官方微博

通付盾
官方公众号