安卓安全实践
目录
一、关键配置检测
1.1、组件暴露
1.2、程序可被任意调试
1.3、程序数据任意备份
二、安全漏洞检测
2.1、WebView组件远程代码执行漏洞
2.2、Intent攻击
2.3、ContentProvider
三、安全策略检测
3.1、activity界面劫持
3.2、应用反编译
3.3、APP自身完整性检测
3.4、自定义键盘
3.5、So文件加密
3.6、数据库加密
四、敏感信息泄露
4.1、录屏攻击
4.2、日志输出
4.3、内存信息泄漏
4.4、本地数据存储安全
五、通信安全检测
5.1、通信加密
5.2、关键数据加密和校验
5.3、证书有效性验证
5.4、协议安全
关键配置检测
组件暴露
漏洞: 1、组件在被调用时未做验证。
2、在调用其他组件时未做验证。
利用: 1、调用暴露的组件,达到某种效果,获取某些信息,构造某些数据。(比如:调用暴露的组件发短信、微博等)。
2、监听暴露组件,读取数据。
建议:验证输入信息、验证组件调用等。 android:exported 设置为 false。使用 android:protectionLevel=”signature” 验证调用来源。程序可被任意调试
风险描述:
AndroidManifest.xml配置文件中没有设置debugger标志(默认为true)或将debugger标志设置为true。当这个标志被设置为true时应用程序可被调试,adb调试。
修复建议:
AndroidManifest.xml 配置文件中中设置为android: debugger =”false”。程序数据任意备份
风险描述:
AndroidManifest.xml配置文件中没有设置allowBackup标志(默认为true)或将allowBackup标志设置为true。当这个标志被设置为true时应用程序数据可以备份和恢复,adb调试备份允许恶意攻击者复制应用程序数据。
修复建议:
AndroidManifest.xml 配置文件中中设置为android:allowBackup=”false”。