Android静态安全检测 -> Service组件暴露
来源:互联网 发布:2016知乎年度吐槽精选3 编辑:程序博客网 时间:2024/05/16 08:13
Service组件暴露 - exported属性
一、android:exported
该属性用来标示,其他应用的组件是否可以唤醒Service或者和这个Service进行交互
1. true
表示可以
2. false
【1】表示不可以,只有同一个应用的组件或者有着同样user ID的应用可以启动这个Service或者绑定这个Service
【2】关于user ID的参考链接
http://yelinsen.iteye.com/blog/977683
3. 默认值
【1】 根据当前Service是否有intent filter标签来定
- 没有intent filter - 默认值为false
没有任何的filter意味着这个Service只有在详细的描述了它的class name后才会被唤起,这表示当前Service只能在应用内部使用,因为其它应用程序并不知道这个class的存在,所以在这种情况下,它的默认值是false
- 有intent filter - 默认值为true
如果Service里面至少有一个filter的话,意味着该Service可以被外部应用使用,这个时候它的默认值是true
4. 权限控制
【1】不只有exported这个属性可以指定Service是否暴露给其它应用,也可以使用permission来限制外部实体唤醒当前Service
【2】android:permission
指定唤醒Service或与Service交互所需要的权限名称
5. 参考链接
http://blog.csdn.net/watermusicyes/article/details/46460347
二、触发条件
1. 定位AndroidManifest.xml文件中的Service组件
【1】对应的特征:<service
2. exported属性的判断
【1】android:permission 如果设置权限控制,就认为不存在安全风险
【2】exported属性设置为true
显示设置 android:exported="true"
默认值为true,也就是具有intent filter标签,对应的特征:<intent-filter
三、漏洞原理
【1】导出的Service组件可以被第三方APP任意调用,导致敏感信息泄露,并可能受到权限提升、拒绝服务等攻击风险
【2】详细的原理&POC
http://www.droidsec.cn/android-service-security/
http://drops.wooyun.org/tips/4907
四、修复建议
【1】如果应用的Service组件不必要导出,或者组件配置了intent filter标签,建议显示设置组件的“android:exported”属性为false
【2】如果组件必须要提供给外部应用使用,建议对组件进行权限控制
0 0
- Android静态安全检测 -> Service组件暴露
- Android静态安全检测 -> Activity组件暴露
- Android静态安全检测 -> Content Provider组件暴露
- Android静态安全检测 -> Broadcast Receiver组件暴露
- Android静态安全检测 -> 系统组件本地拒绝服务检测
- android静态安全检测_四大组件activity
- Android静态安全检测 -> WebView组件远程代码执行漏洞检测
- Android静态安全检测 -> 代码混淆检测
- Android静态安全检测 -> 系统Root检测
- Android静态安全检测 -> Content Provider组件本地SQL注入漏洞
- Android静态安全检测 -> 代码动态加载安全检测
- Android静态安全检测 -> 随机数使用不安全
- Android静态安全检测 -> allowBackup标志位
- Android静态安全检测 -> 文件任意读写
- Android静态安全检测 -> SharedPreferences任意读写
- Android静态安全检测 -> debuggable标志位
- Android静态安全检测 -> 数据库文件任意读写
- Android静态安全检测 -> PendingIntent误用风险
- cf 55A(暴力 )
- weblogic报java.lang.ClassCastException:com.octetstring.vde.backend.BackendRoot之解决
- 取代INT 80 的sysenter/sy***it
- 关于C/C++发送到打印机的一些问题处理
- WebSphere Application Server V6.1版本、介质及安装总结
- Android静态安全检测 -> Service组件暴露
- Java中线程的实现
- 全面解析802.1x认证原理
- JDBC
- 集成电路的设计 —— 半导体
- app 自动更新代码段,发福利了
- 给 Android 开发者的 RxJava 详解
- Android TouchEvent事件
- 程序员面试宝典--8.2递归(1)