Android安全技术揭秘与防范——APK动态分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android安全技术揭秘与防范——APK动态分析相关的知识,希望对你有一定的参考价值。
代码安全分析
1 四大权限组件权限和安全检测,特别是广播容易被恶意发送,可以采用应用内部广播LocalBroadcastManager来规避
2 存储安全检测,内存存储不设置全局可读可写,不将隐私数据明文保存在外部存储。
3 通信安全,采用HTTPS+证书+强加密传输来保证安全
调试安全
关闭debuggable
项目发布前需要在application节点或者release配置中设置debuggable属性为true,否则会显示出Log并且可被外界调试。
发布之前最好进行测试,使用aapt工具:
aapt list -v -a myfile.apk
这个命令将会打印和apk相关的所有详细信息,找到“android:debuggable",它的值分为:
0x0: debuggable false
0xffffffff: debugabble true
例如打印结果:
android ebuggable(0x0101000f)=(type 0x12)0x0
说明Release Build已经关闭了debuggable
注入Log调试
为了动态逆向分析其他APP,可以修改smali,加入invoke语句调试
性能分析工具
TraceView
函数性能分析
代码前后加入语句(可以注入其他应用smail分析)
Debug.startMethodTracing("loveworld");
Debug.stopMethodTracing();
在sd卡根目录可以获得图形化表,展示了方法调用的时间和CPU消耗等信息
而DDMS中的Method Profiling则可以手动控制时间段内的性能变化
Android网络抓包工具——Fiddler
Fiddler 支持浏览器和智能设备抓包
实质是中间使用了一个Web代理服务器,所以可以中途拦截请求和修改请求,甚至可以改变本地返回结果
Android抓包:要求设备与PC同一局域网,设备设置为本地地址,PC修改抓包配置即可。
Request断点:选择Before Requests-disabled,可以拦截住请求并修改,包括修改请求地址和所有参数
AutoResponse:重新设定返回结果,例如将百度网页的图标替换为本地图标。
注意:非正常退出可能会影响网页正常浏览,重启Fiddler可修复
无源码应用调试工具——AndBug
环境:android开发环境、bottle库、python
AndBug可以在不拥有项目源码的情况下hookDalvik方法,进行断点。
运用范例:破解一个未知源码的应用内部参数加密方式
1 通过dumpsys命令可以获得包名、类名、方法名
2 猜测加密方法,设置方法断点,跳到断点将打印出线程参数信息
3 可以推测出简单加密算法规则,例如 字符串+ID+密码的总和来MD5
IDA pro 动态调试
可以调试原生so库,获取设备root权限后远程运行android_server,通过端口转发数据到PC进行调试
需要深入理解硬件、虚拟机、C、C++、linux
WebView安全问题
远程代码执行漏洞
android 4.2以前网页可以通过addjavascriptInterface方法执行本地命令
后加入@JavaScriptInterface已修复
UXSS漏洞
android 4.4之前的Webkit出现的浏览器同源策略漏洞,危害极大,可窃取用户隐私,之后转chromium内核解决
二位
二维码钓鱼
通过生成虚假二维码替换应用二维码窃取资料,人们一般无法分辨二维码的区别,应用会跳转到相应钓鱼网址
SQL注入***
把SQL命令插入Web表单或者请求字符串,欺骗服务器执行恶意SQL
例如巧妙替换登录查询语句达到强行登陆账号
以上是关于Android安全技术揭秘与防范——APK动态分析的主要内容,如果未能解决你的问题,请参考以下文章