这一章我们来学习“动态注册Receiver风险”,此项在安全检测平台上检测出的结果存在一定的报错率,一般需要三方检测平台或者开发者进行复核,这里我们研究如何避免此项风险。

一、漏洞原理

广播的注册分为静态注册动态注册,使用registerReceiver方法进行注册的广播是动态广播(BoradcastReceiver),动态注册的广播由于默认是全局的,可导出的(exported=true),如果没有指定权限访问控制,可以被任意外部应用访问。所以,动态注册的BroadcastReceive可能导致拒绝服务攻击、应用数据泄漏或是越权调用等风险。

(1)那么从上述的描述来看,主要的原因还是在于组件导出(exported=true),大家可以查看组件导出风险这一篇文章来了解导出的危害。

二、检测手段

那么从检测的手段上来看,最高效的手段是机扫(安全检测工具平台进行代码扫描),之后再采取复核手段,对扫描出的风险点进行评测判断是否存在风险。
(1)检测步骤
step1. 通过安全检测工具平台扫描app内动态注册的广播,并把疑似存在风险的广播收集起来(检测方法一般采用静态代码正则匹配的方式,一般匹配registerReceiver方法,优秀的匹配规则可以减少误报)。
step2. 使用反编译工具查看app的代码,对安全检测工具平台返回的结果进行复核,主要检测有以下几点。
a. 检测是否使用LocalBroadcastManager来实现BroadcastReceiver动态注册,(使用LocalBroadcastManager注册的广播默认不导出)。若是则此项可认为安全
b. 检测是否使用registerReceiver(BroadcastReceiver receiver,IntentFilter filter, @Nullable String broadcastPermission,@Nullable Handler scheduler); 注册带权限的广播。若是则此项可认为安全

注:就算使用了以上的手段解决问题,但还是可能被安全检测工具平台认为存在风险,那么这就需要和检测方进行沟通解决了

三、修复方法

(1)使用LocalBroadcastManager来实现BroadcastReceiver动态注册
(2)使用静态的方式注册此广播,并设置exported="false"
(3)使用registerReceiver(BroadcastReceiver receiver,IntentFilter filter, @Nullable String broadcastPermission,@Nullable Handler scheduler);注册带权限的广播。


asjhan for Android reverse

Android安全检测 - 动态注册Receiver风险相关推荐

  1. Android之JNI动态注册native方法和JNI数据简单使用

    1.爆结果照片 2.介绍JNI注册方式 JVM 查找 native 方法有两种方式:     1).按照 JNI 规范的命名规则(静态注册)    2) .调用 JNI 提供的 RegisterNat ...

  2. Android 实现JNI动态注册

    Android 实现JNI的动态注册 前景 什么是静态注册 静态注册的优缺点 优点 缺点 什么是动态注册 实现 创建步骤 用到的方法 结束 前景 JNI可以说是Java 和Native 的桥梁 起承上 ...

  3. android 注册两次广播,android 4.4 动态注册+静态注册电话短信广播后收到两次onReceive回调的问题...

    在android4.4手机里,先静态注册一次广播,以后在代码里动态注册一次该广播,会同时收到两次onReceive回调,我在htc 802d手机上测试(使用官方升级版,升级到4.4)测试android ...

  4. android 动态注册,Android studio实现动态注册Native方法

    说到动态就有静态,但是静态的注册在上一篇文章中已经包含了,这里就不在赘述了,直接说动态实现. 这里我们分步走. 1.创建android工程 选择普通工程 项目命名 不出意外,项目一会就建立完成. 2. ...

  5. android安全风险分析,Android安全检测报告,等保测评过不了,提示风险

    检测依据 <GB∕T 34978-2017 信息安全技术 移动智能终端个人信息保护技术要求> <GB∕T 34975-2017 信息安全技术 移动智能终端应用软件 安全技术要求和测试 ...

  6. 最全Android安全检测漏洞解决方案

    前言:APP安全检测通常在一些小型企业涉及的比较少,并且并不太关注这方面的问题.然而在一些大型互联网企业或者国企等等就非常在意这方面的安全问题,并且会有专门的人去对APK进行检测.本节我们一起学习在A ...

  7. 安卓逆向_15( 三 ) --- Android NDK 开发【 jni 静态注册、JNI_OnLoad 动态注册】

    Android Studio开发JNI示例:https://blog.csdn.net/wzhseu/article/details/79683045 JNI_动态注册_静态注册.zip : http ...

  8. android安全 报告,Android安全检测报告

    1.高危 Intent Scheme URL攻击 详情:恶意页面可以通过Intent scheme URL执行基于Intent的攻击 建议:将Intent的component/selector设置为n ...

  9. DroidPlugin代码分析(三) 占坑、动态注册

    接上篇,这一篇分析一下"占坑"部分.既然是占坑,先看一下DroidPlugin都占了哪些坑? 扫一眼AndroidManifest.xml可以发现,除了主进程意外,还注册了&quo ...

最新文章

  1. [JS]请填充代码,使mySort()能使传入的参数按照从小到大的顺序显示出来。
  2. RGPNET: 复杂环境下实时通用语义分割网络
  3. 7.git提交的前进与后退
  4. promise学习记录
  5. python库整理:os
  6. 翻版“永恒之蓝”入侵手机 信息安全再临大考
  7. 浙企加入中国大数据产业生态联盟 共商数据价值
  8. 计算机应用基础模拟三答案,《计算机应用基础》模拟试卷三答案
  9. 用MySQL Workbench工具分析OSSIM数据库
  10. 机器学习面试问题10
  11. 【转】博客美化(5)为博客或系统添加一个强大的评论系统
  12. 简单排序---冒泡排序
  13. 2018java面试集合
  14. 我来学网络——三种数据通信方式
  15. Ubuntu16.04中修复Pycharm问号图标问题
  16. 线性非齐次微分方程的求解套路
  17. 塞班 s60v5 开发
  18. 优化着色器信息加载,或查看Yer数据!
  19. 对图片进行等比例压缩
  20. Google play中“此应用与您设备不兼容”的问题

热门文章

  1. Labwindows_cvi基于C语言创建Excel文件
  2. Pandas 分析美国选名的喜好
  3. jadeclipse安装
  4. 东南融通无领导小组面试记
  5. Flink-安装部署及部署模式介绍
  6. 逐鹿量子计算,“先导杯”向世界难题发起冲击!
  7. 传奇服务器怎么修改升级武器成功,如何控制传奇服务器中宝石升级装备成功率和点数...
  8. 【科创人独家】科界CTO林镇南:言必真,行必果,没有尽力而为,只有全力以赴
  9. 基于c语言的ug二次开发,(完整)3_UG二次开发实用教程第三章(16页)-原创力文档...
  10. 湖南计算机专业好的二本学校排名2015,2015湖南二本大学排名