查看: 2098|回复: 0

[Android教程] 2018年移动应用安全,有几维安全就够了!

发表于 2018-1-4 17:22:10

网络病毒是指人为编写的特制程序,具有自我复制能力、很强的感染性,一定的潜伏性,特定的触发性和很大的破坏性。

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。

看似对立的两种行为却又是相互依存相互提高的。正因为黑客们不断的改写代码入侵网络,所以网络安全家们才能开发出效率更高安全性更强的安全防护工具。

几维安全作为一家移动应用安全服务商,一直以来致力于为用户及企业打造更安全的移动互联网。针对IOS和Android两大平台,实现国内首个免费的移动应用攻击防御平台,并且在新年伊始推出了全新的安全加密产品KiwiVM虚拟机。

传统的加密方式

SO加壳—黑盒方式

功能:对SO进行二进制加壳,破坏ELF文件信息,导致静态反编译工具解析失败,静态加密的方式,是通过干预系统对SO的加载过程进行动态解密。

缺陷:1.恢复简单,通过内存dump或者二进制修复即可

2.平台依赖严重,由于Android版本众多,各家厂商对系统进行了不同程度的定制,所以针对不同的系统库加载器均需要进行适配;

3.容易被脱壳,由于Android环境为开源环境,导致修改系统非常容易,脱壳手段层出不穷。

SO源代码混淆—白盒方式

功能:基于OLLVM开源项目改造的代码混淆加密,包括指令平展化,逻辑混淆和字符串加密。

缺陷:基于代码基本块混淆粒度太大,只增加了假基本块来迷惑分析者,仔细分析的情况下,真实块很明显。

KiwiVM代码虚拟化技术

KiwiVM虚拟化防护

LLVM体系架构下编译器具有独特的中间语言IR指令模式,IR可以说是集中体现了这款编译器的特征,想要完全掌握某种编译器的工作和运行原理,分析这款编译器的中间语言无疑是重要手段。因此在如今常用编译器所汇编的文件已被各种工具反汇编的情况下,设计满足跨平台通用的虚拟化方案,必须脱离汇编指令上升到非架构依赖层,恰好LLVM体系独具优势,通过从IR指令集进行虚拟化操作,既能完全实现和X86平台同样强度的虚拟化的加密,并且解决了虚拟化技术无法跨平台的问题。

实现原理

几维安全KiwiVM虚拟化编译器基于LLVM编译器中间层实现,通过设计独有保密的虚拟CPU解释器以及完备虚拟IR指令,将原始CPU指令进行加密转换处理为只能由KiwiVM虚拟解释器解释执行的虚拟指令,能够完全隐藏函数代码逻辑,以及函数及变量之间的依赖关系。

图1-5:实现原理

KiwiVM虚拟化优势

KiwiVM虚拟机虚拟化基于LLVM编译器中间层实现,加密代码与业务代码紧密结合,有效阻挡逆向分析;由于是从编译器内部生成平台依赖代码前实现无平台依赖代码虚拟化过程,不依赖于特定系统环境,无兼容性问题,天然兼容所有CPU架构,包括IOS,Android、armv7,arm64),Windows,Liunx(x86,X64),Other(Mips)等。

核心安全防护:自定义虚拟CPU,代码一旦加密,很难解密,其不可逆的特性能有效避免攻击者通过DUMP内存,还原原始代码。

函数级虚拟化:以C、C++源文件函数为单位进行虚拟化,具有粒度细、可控性高、隐蔽性强的特性,虚拟化之后函数完全隐藏。

全平台全架构:支持iOS与安卓双平台的Native代码虚拟化,包括armv7、arm64、armv7a、x86、x86_64等架构。

完美兼容:在C、C++代码编译时直接虚拟化,其兼容性与原始应用一样。

虚拟机安全核心

虚拟化的安全性核心意义是隐藏,主要是隐藏代码的真实逻辑和其中处理的相关数据,是目前计算机软件层防护的核心方案,在移动端被用于游戏反外挂核心模块保护,商业授权,机密软件系统保护等竞争激烈领域;由于是指令级的虚拟化,所以不会像软件加壳方案一样在内存中存在真实的软件代码(而只要存在真实代码就有被动态分析的可能),再加上源码混淆,无论从静态分析还是动态分析都能保证核心文件的安全性,并且源码混淆和KiwiVM虚拟保护方式都不会产生兼容性问题。

虚拟化效果展示

图1-6:虚拟化前

图1-6:虚拟化后

更高效的APP加密方式,更深层的加密手段,更广泛的加密安全性。使得几维安全KiwiVM虚拟机成为2018年安全行业最耀眼的一颗新星。

在未来的日子里,几维安全将以更专业的安全加密态度,更完善的安全APP加密方式,更优越的安全加密体验,更贴心的安全加密服务,为大家带来更多更好的安全加密产品。网络安全不容忽视,几维安全愿与你携手在这条安全之路上披荆斩棘,一往无前。




回复

使用道具 举报