轻量级加固安全不打折 数字盾甲iOS应用加固技术“守正出奇”

应用加固技术的演变

应用加固技术并不是新兴技术,在移动互联网兴起前就已经存在,主要作用是防止PC端应用被破解或盗取。软件开发商为了保护版权,会选择各种方式,保护自己的软件。密钥常见的应用加固技术,起初仅由软件承载,后续又与硬相件结合,进行校验和认证,旨在增强加固力度。

随着智能手机渗透、安卓系统日益趋近成熟,App开发大军也逐渐庞大起来,主要分为两大流派:iOS系统 和Android系统,分别对应 .ipa 和 .apk文件格式。XcodeGhost事件发生后,人们开始对App的安全倍加重视。从开发角度来说,源代码安全问题是基于代码审计层次而决定的;从软件保护角度来说,解决App的安全问题则是对源代码的代码混淆、资源加密和逻辑加固等;从用户角度说,那就是App本身的安全性,是否会对个人隐私财产造成损失,是否是值得信赖的第三方平台。

安卓端应用批量涌现,对应的加固技术也如雨后春笋随之而生。出现这样的现象主要有两个原因,其一:庞大的用户群体。其二:编程手段过于上层。也就是安卓端兴起之前,软件破解通常使用C2、C++等编译性语言,得到二进制的结果后,造假分子去破解应用的难度相对较大。安卓端最初就选择Java语言做上层应用的开发,Java语言拥有标准化、高透明度的特点,所以安全性自然就会相对下降。造假者很容易便可了解到应用开发者的自检码、虚拟机等规范,破解难度较低。

安卓领域的加固技术经历关键的几次迭代:

  • 改变原始代码,躲避初级分析;
  • 在内存中加载代码;
  • 创建虚拟的CPU或虚拟机,把标准官方指令,变成开发者自己私有化的指令,进而增加造假者分析和造假的难度。

业界常见iOS应用加固技术的不足

用户对App技术的核心诉求是无论采用何种手段,只要保证在不影响产品功能的前提下,提高被分析和调试难度即可。

轻量级加固安全不打折 数字盾甲iOS应用加固技术“守正出奇”

张宇平·数字联盟CTO

数字联盟CTO张宇平表示,安卓端的加固市场经过多年的演变已经趋近成熟,但市面上还缺乏有效的iOS应用加固技术。在推广数字联盟反作弊技术产品“可信ID”的过程中发现,很多客户也有iOS应用加固的需求。

那么,传统的iOS应用加固技术有哪些不足呢?传统的iOS应用加固方式一般是通过编译器混淆程序代码,将有效信息淹没到各种无效信息中,干扰造假分析人员的视线。但加密方式大幅度增加代码体积的同时,还需要将应用的代码提供给第三方加固机构,再借助编译器去做混淆。对于客户而言,需要承担源代码泄露的风险。在加密/隐藏/混淆程序代码的过程中,应用包如果过大,会影响用户体验和下载意愿。

数字盾甲iOS应用加固技术“守正出奇”

目前看来,移动端的加固技术基本和PC端的发展轨迹雷同,从Windows平台加壳脱壳、反调试和反反调试到Andriod平台.apk加固、反调试代码混淆和加强壳。Windows平台下,ring3到ring0层的反调试技术已经非常成熟。相对于.ipa加固,.apk加固做的相对较好,业界已经有很多成型的App加固方案。

轻量级加固安全不打折 数字盾甲iOS应用加固技术“守正出奇”

数字盾甲iOS应用加固技术“守正出奇”,沿用了PC端高难度的二进制加固技术的同时,给iOS应用加壳,既避免应用被盗版的风险,也防止黑客反编译进而保护核心业务逻辑。此项技术还融入了高级反调试和字符串混淆等技术,进一步保护应用不被调试器分析,防止 IDA Pro 等工具通过关键字定位破解核心代码逻辑。

相关推荐