移动APP面临的威胁:木马、病毒、钓鱼、破解、篡改、二次打包、账号窃取、广告植入、信息劫持等
一、Android APP安全测试思路分析:
1.安全测试工具
2.基础环境
3.数据安全
4.程序安全
5.数据传输
6.业务安全
二、APP面临的风险
1.不安全的服务器访问控制
2.不安全的数据存储
3.传输层保护不足
4.非预期的数据泄露
5.脆弱的认证和授权
6.已知的不安全加密方式
7.客户端注入
8.通过不被信任的输入改变安全设定
9.会话处理不当
10.缺乏二进制保护
三、业务数据流
数据输入 | 基础环境安全 |
数据存储 | 数据安全 |
内部传输 | 程序安全 |
通讯 | 通讯安全 |
服务器 | 业务安全 |
四、所需知识
Linux | Android系统 | 编程 | 逆向 | 其它知识 |
常用操作命令 | adb命令 | Java语法 | Smali语法 | http/ https |
安全框架 | NDK编程 | Dex文件格式 | html | |
程序运行机制 | SDK编程 | ARM汇编 | XSS | |
常见漏洞 | JS |
五、使用工具
大部分工具获取地址:http://www.androiddevtools.cn/
基础环境安全 | 数据安全 | 程序安全 | 通讯安全 | 安卓原生工具 |
APKTool | logcat | Drozer | Keytool | Busybox |
Dex2jar、JD-Gui | Sublime Text | SmaliView | Burpsuite | setpropex |
Jeb IDA | SQLite | Intent Fuzzer | Tcpdump | strace |
Droid_injectso | Fiddler |
六、基础环境安全
1.基础环境安全测试内容:反编译、逆向、Intent注入、键盘记录、屏幕截取等
2.反编译:工具获取地址:http://www.androiddevtools.cn/
反编译步骤请参考:https://blog.csdn.net/s13383754499/article/details/78914592
3.反编译后能干啥?修改资源文件,比如替换应用图标、名称、版本,甚至植入广告等
七、数据安全
1.数据存储、日志,硬编码中的用户信息泄露,应用数据一般都存放在/data/data/<appname>目录下,检查sharedpreference 、files、databases存储的用户信息,比如用户的密码、电话、银行卡等信息是否明文显示,或不安全的加密方式
2.查看数据库文件:chmod修改文件夹或文件权限,使用adb pull命令导出到本地,然后用数据库软件查看,比如SQLite
3.日志的检测,检查内容和上面相似
adb shell
ps | grep mw 查找到客户端的进程号
logcat | grep pid 查看进程输出的日志
4.硬编码检测:反编译出来的Smali源码中搜索关键字符串,password,admin,AES_KEY等,是否有账号密码等信息
八、程序安全
1.防止二次打包,篡改
2.Smali : https://blog.csdn.net/lixpjita39/article/details/75193833
九、安全扫描工具
在google市场下个AVL pro用里面的应用分析器
十、其它测试推荐
1.IOS
https://bbs.pediy.com/thread-163216.htm
2.Android
https://bbs.pediy.com/thread-163215.htm
(以上内容纯属学习摘取,大家共同学习进步)