【.com原创文章】依托智能手机的大规模应用,移动互联网得到了长足的发展,各种APP与开发了丰富的功能。在为我们的生活带来便利的同时,App加固也成为了刚需。有效的加固可以规避破解、盗版、二次打包、注入、反编译等风险,提高App的安全性和稳定性。目前仍有人认为iOS代码不需要加固,因为苹果系统的封闭性导致iOS系统下的应用安全性相对较高。但实际上,破解iOS应用本身的难度并不高。无论是个人开发者还是大型厂商都有保护代码安全的需求。近日,数联iOS加固技术产品团队接受了专访。整个过程围绕着应用加固技术的演进、业界常用的iOS应用加固方式的不足,以及二进制开发的iOS应用加固产品“数字盾牌”展开。应用加固技术的演进应用加固技术并不是什么新技术,它在移动互联网兴起之前就已经存在,其主要作用是防止PC端应用被破解或窃取。为了保护版权,软件开发者会选择各种方法来保护他们的软件。密钥常用的应用加固技术最初只是由软件承载,然后结合硬件进行验证认证,旨在增强加固强度。随着智能手机的普及和Android系统的成熟,App开发者大军逐渐壮大,主要分为iOS系统和Android系统两大流派,分别对应.ipa和.apk文件格式。XcodeGhost事件后,人们开始更加关注App的安全性。从开发的角度来看,源代码安全问题是根据代码审计级别来确定的;从软件保护的角度来看,解决App安全问题的方法是对源代码进行代码混淆、资源加密、逻辑加固;从用户的角度来说,就是App本身的安全性,是否会对个人隐私和财产造成损害,是否是值得信赖的第三方平台。Android端应用程序如雨后春笋般涌现,相应的加固技术也如雨后春笋般涌现。造成这种现象的主要原因有两个,一:庞大的用户群。第二:编程方式太高级。即在Android终端兴起之前,软件破解通常使用C2、C++等编译型语言。获得二进制结果后,造假者破解该应用程序相对困难。Android端最初选择了Java语言来开发上层应用。Java语言具有标准化、透明性高的特点,安全性自然会相对降低。造假者可以轻松获知应用开发者的自测代码、虚拟机等规范,破解难度较低。Android领域的加固技术经历了几次关键的迭代:改变原始代码,避免初级分析;在内存中加载代码;创建虚拟CPU或虚拟机,将标准的官方指令变成开发者自己的私有化指令,进而增加仿冒者分析仿冒的难度。缺乏业界通用的iOS应用加固技术用户对App技术的核心诉求是无论采用何种方式,只要在不影响产品功能的前提下提高分析调试难度即可。张玉平·数联CTO张玉平表示,经过多年的演变,Android加固市场已经趋于成熟,但市场上仍然缺乏行之有效的iOS应用加固技术。在推广数字联盟反欺诈技术产品“TrustedID”的过程中,发现不少客户也有iOS应用加固的需求。那么,传统的iOS应用加固技术有哪些缺点呢?传统的iOS应用加固方式一般是通过编译器对程序代码进行混淆处理,将有效信息淹没在各种无效信息中,干扰作弊分析师的视线。但是,这种加密方式在大大增加代码量的同时,还需要将应用代码提供给第三方加固机构,再通过编译器进行混淆处理。对于客户来说,需要承担源代码泄露的风险。在对程序代码进行加密/隐藏/混淆的过程中,如果应用包过大,会影响用户体验和下载意愿。数盾的iOS应用加固技术“出奇的正经”目前,移动端的加固技术与PC端的发展轨迹基本一致,从Windows平台打包解包、反调试反调试到Andriodplatform.apk加固和反调试代码混淆和加固shell。Windows平台下,从ring3到ring0的反调试技术已经非常成熟。相对于.ipa加固,.apk加固相对要好一些,业界已经有很多良构的App加固方案。DigitalShield的iOS应用加固技术“出人意料的挺拔”。在PC端使用高难度的二进制加固技术的同时,对iOS应用进行打包,既避免了应用盗版的风险,又能防止黑客反编译,保护核心业务逻辑。该技术还结合了高级反调试和字符串混淆等技术,进一步保护应用程序不被调试器分析,防止IDAPro等工具通过关键字定位破解核心代码逻辑。据悉,使用数盾iOS应用加固技术后,原App体积增加不超过1M,加固强度不受影响,可谓“不打折安全的轻量化加固”。对这项技术的需求主要体现在付费应用、企业应用、具有交易功能的应用、知识产权以及各类重视自身辛勤劳动的中小开发者开发的应用。当被问及数联iOS加固技术未来的突破方向时,数盾iOS应用加固技术团队表示,将在代码虚拟化等资源(图片/声音)保护方面做进一步的研发。目前数联的App加固技术还没有应用到安卓平台,主要是安卓平台过于复杂,系统版本多,设备种类繁多。当核心技术完成后,兼容性也需要大量的时间去适应,稍后会推出安卓平台。【原创稿件,合作网站转载请注明原作者和出处为.com】
