App安全威胁分析
app面临的威胁主要来自这三方面
客户端:
- 反编译
- 调试
- 加密/签名破解
- 输入记录
- 导出组件
- 进程注入
数据传输:
- 信息泄露
- 传输数据篡改
- 重放攻击
服务端
- 心血
- ST2
- 注入
- 跨站
- 越权执行
- 上传下载
- 弱口令
App常见漏洞
1. 权限滥用
权限为normal权限,可能导致敏感信息泄露;
如果程序具有root权限,且没有对调用做限制的话,可能被恶意利用;
同源绕过漏洞,activity接收使用file://路径的协议,却没有禁用Javascript的执行,通过此漏洞可以读取应用的任意内部私有文件,造成信息泄露。
2.https验证
- 漏洞可导致中间人攻击,应用没有校验服务器证书,可导致中间人攻击,泄露通信内容.
3. Log敏感信息泄漏
android应用程序在程序运行期间打印了用户的敏感信息,然后这些记录被存储在操作系统中,一般的存储路径为/data/data/应用程序名。
这些信息可以被其他程序非法读取。尤其是这些数据是敏感的信息如用户名/密码,传输的数据等。这些Log造成敏感信息泄露。
4. 不安全的配置
- 全局可读文件,应用内存在其它任何应用都可以读取的私有文件,可能造成信息泄漏,app调试风险,允许程序被调试;
- 私有文件存在敏感文件泄露风险;
- app备份风险,允许程序备份,可能导致用户信息泄露。
5. 组件安全漏洞
ContentResolver暴露漏洞,通过暴露的ContentResolver可以绕过provider的权限限制;
Activity安全漏洞,Activity存在崩溃或者异常,任意其它应用可导致存在此漏洞的应用崩溃或者功能调用;
Service安全漏洞,Service存在崩溃或者异常,任意其它应用可导致存在此漏洞的应用崩溃或者功能调用;
Receiver安全漏洞,BroadcastReceiver存在崩溃或者异常,任意其它应用可导致存在此漏洞的应用崩溃或者功能调用;
Activity组件暴露风险,Activity接口可被其它应用调用,用于执行特定的敏感操作或钓鱼欺骗;
广播信息泄露风险,广播可以被其他恶意程序进行接收,导致用户信息泄露或者终止广播。
App安全评估大概分类
1、从数据的本地存储到数据的传输、处理以及远程访问等各个环节,基于相应的安全标准/行业标准评估APP的安全特性
2、借鉴在Web App和网络安全测试的一些成功经验在智能终端APP测试中进行测试或适配
3、检测APP的用户授权级别,数据泄露,非法授权访问等;
4、对APP的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测,以发现潜在的安全问题
5、基于各种通信协议或相应的行业安全标准检查app是否满足相应的要求。
使用Burp抓取手机app的包(手机无需root)
使用VirtualXposed抓包:https://testerhome.com/articles/18609 然后将burp证书倒入进手机,设置代理抓包即可:
1、手机安装VirtualXposed
下载地址:https://github.com/android-hacker/VirtualXposed/releases
2、VirtualXposed中安装 JustTrustMe 或 SSLUnpinning 用于绕过 SSL 证书检查
- JustTrustMe:https://github.com/Fuzion24/JustTrustMe/releases
- SSLUnpinning:https://github.com/ac-pm/SSLUnpinning_Xposed/blob/master/mobi.acpm.sslunpinning_latest.apk 在VirtualXposed中安装apk并启用模块 并在设置中,点击重启以使模块生效
- 配置Burp代理
- 然后在真机中的WLAN中配置好对应的代理,Burp即可抓到VirtualXposed中的包
app在什么情况下无法抓包(无法进行安全测试)
- 一是APP截取的数据报文处于加密状态,在无法解密的情况下无法对数据包进行安全测试
- 二是基于各类SSL的安全配置导致数据包无法抓取