很多开发者没有意识到APP的安全隐患可能会严重损害他们的利益,加固可以帮助他们规避很多风险;
很多加固厂商没有意识到APP的低稳定性可能会严重影响开发者的业务开展,强度与稳定并重的加固方案才是开发者所需要的。
这篇文章主要讲解了目前移动应用领域黑产的情况,以及应用加固的发展阶段。
对应用加固感兴趣的同学,可以
点击此处
,直接使用腾讯云应用加固,感受加固给APP带来的安全防护。
黑产猖獗 严重损害开发者利益
恶意推送信息的SDK——“寄生推”SDK,用户下载安装后,该SDK开发商可以通过云端控制的方式对目标用户下发包含恶意功能的代码包,进行Root提权,静默应用安装等隐秘操作。
多款百万级别用户量的应用都被恶意集成了“寄生推”SDK,共涉及300多款应用潜在影响用户近2千万。受到影响的设备会不断弹出广告和地下推广应用,给用户和应用开发者带来重大损失。
——《腾讯安全移动实验室2018年上半年手机安全报告》
智能手机的普及促使了大量优秀APP的诞生,但同时也催生了大批黑产。
每一个APP都是开发者心血的结晶,当开发者终于将自己的创意落地时,殊不知有一群黑产正利用APP存在的漏洞,对APP进行逆向分析、反编译、二次打包,嵌入各类病毒、木马等恶意代码及低俗广告,严重损害开发者的利益。
——《FreeBuf:2017年度移动App安全漏洞与数据泄露现状报告》
“加固”是APP安全的重要防护手段。开发者利用应用加固可在一定程度上保护APP的核心代码算法,提高黑产逆向、二次打包的难度,有效缓解恶意攻击。
应用加固经历了四个阶段,加固强度也是不断增强。
第一阶段 本地加载:
原理: 对原APP整体加密,壳APP把原APP解密后释放到本地,壳APP利用Android系统API,加载和启动原APP,启动完成后把原APP删除;
优点:稳定性好、实现简单;
缺点:安全性差,存在本地释放明文的过程,可以直接把原APP拿到;
第二阶段 内存加载:
原理: 对原APP中dex、so、资源等不同数据做加密,壳APP hook Android系统加载dex、so、资源文件的API,在加载前对其在内存中进行解密,或者自己实现对dex、so、资源文件等的加载,且让Android系统能正常使用加载后的数据;
优点:安全性较高、稳定性较好 ;
缺点:内存中还是存在完整的明文数据,可以一次性dump出来;
第三阶段 类抽取:
原理:对原APP dex中部分函数相关的指令数据进行抽离出来,按照一定格式加密保存到文件中,dex里面的类被初始化时内存填充该类被抽离的函数,或者hook Android执行函数的API;
优点:安全性高 ;
缺点:稳定性差,需要对不同系统适配;
第四阶段 VMP:
原理:把原APP的dex中的部分函数虚拟化,把原函数设置为native函数,当函数被调用时直接走到自定义的虚拟机中解释执行。还有一种方法有的时候也被叫做java2C、java2Cpp,其原理是静态解析dex的指令,把它们转化成c/cpp函数,再用ndk编译成动态库,函数被调用是直接调用动态库中的函数。我们把这两种方案都统称为VMP。
优点:强度非常高,很难把虚拟化后的函数进行还原,尤其是java2C。
缺点:效率较低、稳定性可控性差
腾讯乐固 稳定+强力 高效保护APP安全
目前市场上常用的加固方案除了dex保护,还包涵内存保护、so加固、混淆等功能,强度较高的加固策略就是VMP。实际使用中,大多采用的是内存加载,或者内存加载+少量VMP。不直接采用最强的方案:把大部分函数都VMP化,主要是为了平衡安全性和兼容性。
APP的稳定性直接影响到开发者的业务开展,而APP的安全性又与开发者的利益相关。因此腾讯云乐固为了同时保证应用的安全性和稳定性,始终致力于对APP安全保护方案的优化,打造稳定性和保护强度领先行业水平的加固方案。
腾讯乐固目前已保护QQ、应用宝等亿量用户级别的APP,稳定性和防护能力不言而喻。
点击此处,可直接使用腾讯云应用加固,感受加固给APP带来的安全防护。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。