androidandroid收藏系列--Sorry的Android收藏

Android APK加固技术方案调研

2015-07-23  本文已影响20365人  asce1885

@author ASCE1885的 Github 简书 微博 CSDN
本文由于潜在的商业目的,不开放全文转载许可,谢谢!
最近项目中需要实现自己的APK加固方案,因此就有了这一篇调研报告。

软件安全领域的攻防向来是道高一尺魔高一丈,攻防双方都处于不断的演变和进化过程中,因此软件加固技术需要长期持续的研究与投入。

目前成熟的第三方解决方案

1. 娜迦

针对Android平台下的APP被逆向分析,破解,植入木马病毒后,用户敏感信息泄露或者被钓鱼网站劫持,NAGA Android保护采用防止静态分析与防止动态调试全面防护的思路,在未保护程序运行的不同周期采取不同程度的加固措施,可以针对银行、基金、券商,电商等需在线支付领域及游戏领域,提供定制型APP安全解决方案。

主要实现:

扩展阅读:娜迦社区

2. 爱加密

爱加密主要功能:

1. 漏洞分析:

2. 加密服务:

3. 渠道监测:

扩展阅读:加密资讯

3. 梆梆加固

提供的移动应用保护服务:

扩展阅读:安全SDK下载

4. 360加固保

加固保为移动应用提供专业安全的保护,可防止应用被逆向分析、反编译、二次打包,防止嵌入各类病毒、广告等恶意代码,从源头保护数据安全和开发者利益,主要提供:

[总结]常见app漏洞及风险

静态破解:

通过工具apktool、dex2jar、jd-gui、DDMS、签名工具,可以对任何一个未加密应用进行静态破解,窃取源码。

二次打包

通过静态破解获取源码,嵌入恶意病毒、广告等行为再利用工具打包、签名,形成二次打包应用。

本地储存数据窃取

通过获取root权限,对手机中应用储存的数据进行窃取、编辑、转存等恶意行为,直接威胁用户隐私。

界面截取

通过adb shell命令或第三方软件获取root权限,在手机界面截取用户填写的隐私信息,随后进行恶意行为。

输入法攻击

通过对系统输入法攻击,从而对用户填写的隐私信息进行截获、转存等恶意操作,窃取敏感信息。

协议抓取

通过设置代理或使用第三方抓包工具,对应用发送与接收的数据包进行截获、重发、编辑、转存等恶意操作。

[总结]Android app加密保护核心概念

防内存窃取

防止通过gdb、gcore,从内存中截取dex文件,获取代码片段,从而反编译还原APK进行不法操作。

防动态跟踪

防止通过ptrace调试进程,跟踪、拦截、修改正在运行的应用,进行动态注入,保护程序运行安全。

防逆向分析

防止通过APKTool、IDA Pro等反编译工具破解DEX文件,从而获取APK源代码,保护代码层安全。

防恶意篡改

校验APK完整性,自动终止运行被篡改的APK,二次打包后应用都无法使用,杜绝盗版应用的出现。

存储数据加密保护

更底层,跨文件格式的数据加密,防止应用数据被窃取。

[我们的措施]Android程序反破解技术

对抗反编译

对抗反编译是指apk文件无法通过反编译工具(例如ApkTool,BakSmali,dex2jar等)对其进行反编译,或者反编译后无法得到软件正确的反汇编代码。

基本思路是寻找反编译工具在处理apk或者dex文件时的缺陷,然后在自己的代码中加以利用,让反编译工具在处理我们apk文件的时候抛出异常或者反编译失败,有两种方法可以找到反编译工具的缺陷:

对抗静态分析

反编译工具一直在改进,因此即使你在版本2.1发现它的缺陷并加以利用,使反编译你的apk失败,但很可能在版本2.2就把这个缺陷解决了,因此,不要指望反编译工具永远无法反编译你的apk,我们还需要使用其他方法来防止apk被破解:

对抗动态调试

防止重编译

参考资料

欢迎关注我的微信公众号

上一篇 下一篇

猜你喜欢

热点阅读