Android静态安全检测 -> Broadcast Receiver组件暴露
来源:互联网 发布:java 当前时间小时 编辑:程序博客网 时间:2024/05/29 12:59
Broadcast Receiver组件暴露 - exported属性
一、android:exported
该属性用来标示,当前Broadcast Receiver是否可以从当前应用外部获取Receiver message
1. true
表示可以
2. false
【1】表示不可以,当前Broadcast Receiver只能收到同一个应用或者拥有同一user ID的Application发出的广播
【2】关于user ID的参考链接
http://yelinsen.iteye.com/blog/977683
3. 默认值
【1】根据当前Broadcast Receiver是否有intent filter标签来定
- 没有intent filter - 默认值为false
没有任何的filter意味着这个Receiver只有在详细的描述了它的class name后才会被唤起,这表示当前Receiver只能在应用内部使用,因为其它应用程序并不知道这个class的存在,所以在这种情况下,它的默认值是false
- 有intent filter - 默认值为true
如果Broadcast Receiver里面至少有一个filter的话,意味着该Receiver将会收到来自系统或者其他应用的广播,这个时候它的默认值是true
4. 权限控制
【1】不只有exported这个属性可以指定Broadcast Receiver是否暴露给其它应用,也可以使用permission来限制外部应用给它发送消息
【2】android:permission 指定给该Receiver发送消息所需要的权限名称
5. 参考链接
http://blog.csdn.net/watermusicyes/article/details/46460347
二、触发条件
1. 定位AndroidManifest.xml文件中的Broadcast Receiver组件
【1】对应的特征:<receiver
2. exported属性的判断
【1】android:permission 如果设置权限控制,就认为不存在安全风险
【2】exported属性设置为true
显示设置android:exported="true"
默认值为true,也就是具有intent filter标签,对应的特征:<intent-filter
三、漏洞原理
【1】导出的Broadcast Receiver组件可以被第三方APP任意调用,导致敏感信息泄露,并可能受到权限绕过、拒绝服务等攻击风险
【2】详细的原理&POC
http://www.droidsec.cn/android-broadcast-security/
http://drops.wooyun.org/tips/4393
四、修复建议
【1】如果应用的Broadcast Receiver组件不必要导出,或者组件配置了intent filter标签,建议显示设置组件的“android:exported”属性为false
【2】如果组件必须要接收外部应用发送的消息,建议对组件进行权限控制
0 0
- Android静态安全检测 -> Broadcast Receiver组件暴露
- Android静态安全检测 -> Activity组件暴露
- Android静态安全检测 -> Service组件暴露
- Android静态安全检测 -> Content Provider组件暴露
- Android组件之Broadcast Receiver
- Android组件Broadcast Receiver学习
- Android的Broadcast Receiver组件
- Android中Broadcast Receiver组件
- Android四大组件--Broadcast Receiver
- Android组件(Broadcast Receiver)
- Android组件--触发器组件Broadcast Receiver
- Android中Broadcast Receiver组件详解
- Android四大组件之Broadcast Receiver
- Android中Broadcast Receiver组件详解
- Android的四大组件之Broadcast Receiver
- Android四大组件之Broadcast Receiver
- Android中Broadcast Receiver组件详解
- Android四大组件--Broadcast Receiver详解
- 编程是一种美德,是促使一个人不断向上发展的一种原动力 关于坐标系的用法
- Jquery 一
- 黑白棋游戏程序
- Android学习笔记:使用Intent切换活动
- pta 地下迷宫探索
- Android静态安全检测 -> Broadcast Receiver组件暴露
- android中开启子线程
- linux下sybase数据库的常用操作
- Jquery二
- 在Mac下Shell Script问题集
- PAT乙级练习题B1052. 卖个萌
- LoadRunner11关联(Correlation)实例一则
- ORACLE INDEX
- 鸟哥Linux私房菜_笔记_Chapter5