首页 > 其他分享 >Android安全检测 - 发送隐式广播风险

Android安全检测 - 发送隐式广播风险

时间:2023-04-20 19:02:56浏览次数:46  
标签:发送 广播 Intent 应用 Android 隐式

这章来学习“发送隐式广播风险”,这个风险和动态注册Receiver风险有呼应之处,可以结合起来一起看。

一、漏洞原理

隐式广播是指未指定接收方(接收的范围),在发送广播的过程中所有的APP均能够接收到这个广播,那么就会存在广播被拦截的风险,若发送的广播携带数据那么就存在数据泄漏的风险,若发送的广播存在敏感操作那么就存在恶意劫持风险。从Android8.0开始就要显示的指定广播接收方,但是也可以绕过这个限制比如添加FLAG:FLAG_RECEIVER_INCLUDE_BACKGROUND,但不建议这样做,Google既然有这个限制说明确实很影响安全

二、检测手段

step1:扫描全局代码,是否存在发送隐式广播(未指定接收范围的广播、未使用带权限的广播),具体看修复方法
step2:汇总结果

三、修复方法

1、使用Intent.setPackage 、Intent.setComponent、Intent.setClassName、Intent.setClass、new Intent(context,receiver.class)中任一种方法明确指定目标接收方
2、进程内发送消息建议使用LocalBroadcastManager,或者使用其它手段发送消息
3、使用sendBoardcast(Intent, receiverPermission)代替sendBoardcast(Intent)保证其他应用不能接收到该广播信息

四、相关资料

来自谷歌文档

广播限制

如果应用注册为接收广播,则在每次发送广播时,应用的接收器都会消耗资源。 如果多个应用注册为接收基于系统事件的广播,则会引发问题:触发广播的系统事件会导致所有应用快速地连续消耗资源,从而降低用户体验。 为了缓解这一问题,Android 7.0(API 级别 24)对广播施加了一些限制,如后台优化中所述。 Android 8.0(API 级别 26)让这些限制更为严格。

  • 适配 Android 8.0 或更高版本的应用无法继续在其清单中为隐式广播注册广播接收器。 隐式广播是一种不专门针对该应用的广播。 例如,ACTION_PACKAGE_REPLACED 就是一种隐式广播,因为该广播将被发送给所有已注册侦听器,让后者知道设备上的某些软件包已被替换。 不过,ACTION_MY_PACKAGE_REPLACED 不是隐式广播,因为不管已为该广播注册侦听器的其他应用有多少,它都会只被发送给软件包已被替换的应用。
  • 应用可以继续在它们的清单中注册显式广播。
  • 应用可以在运行时使用 Context.registerReceiver() 为任意广播(不管是隐式还是显式)注册接收器。
  • 需要签名权限的广播不受此限制所限,因为这些广播只会发送到使用相同证书签名的应用,而不是发送到设备上的所有应用。

在许多情况下,之前注册隐式广播的应用使用 JobScheduler 作业可以获得类似的功能。 例如,一款社交照片应用可能需要不时地执行数据清理,并且倾向于在设备连接到充电器时执行此操作。 之前,应用已经在清单中为 ACTION_POWER_CONNECTED 注册了一个接收器;当应用接收到该广播时,它会检查清理是否必要。 为了迁移到 Android 8.0 或更高版本,应用将该接收器从其清单中移除。 应用将清理作业安排在设备处于空闲状态和充电时运行。


asjhan for Android reverse

标签:发送,广播,Intent,应用,Android,隐式
From: https://www.cnblogs.com/jhanzhou/p/17337960.html

相关文章

  • Android升级WebView浏览器内核版本
    使用AOSP项目编译的Android系统,会发现在部分APP使用系统自带的浏览器内核来加载网页时会出现报错,加载不出网页的情况,其实这是由于WebView自带的浏览器内核版本太旧所导致的,只要更新成比较新的浏览器内核版本就行了。一、环境准备(1)Android系统源码编译环境(Android9.0)二、下载新......
  • Android 导入添加图片
    1.找到要添加的图片   按住Ctrl+c先复制2.打开res的drawable文件夹 然后一定要使用右键paste进行粘贴 之后选好位置点ok即可。 3.使用:@drawabel,只要左边出现图标,说明添加没问题 设置背景图片效果:    ......
  • 视频直播源码,Android TextView设置跑马灯效果
    视频直播源码,AndroidTextView设置跑马灯效果1、先在xml中给Textview设置好对应的属性  <TextView    android:id="@+id/tv"    android:layout_width="200dp"    android:layout_height="wrap_content"    app:layout_constraintLeft_toLef......
  • Android之调用service的方法
    MainActivity.java:privateBackgroundMusicServicecaller;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){Intentsvc=newIntent(getApplicationContext(),BackgroundMusicService.class);if(Build.VERSION.SDK_INT>=Build.VERSIO......
  • Android UI组件
    1.TextView知识点:autoLink:文本自动识别为web超链接、email地址等——第五章AcitonBar用法:自定义ActionBar——第四章创建Acticity选项菜单:让返回键在ActionBar中显示后,重写onOptionsItemSelected——第四章创建,注册监听器,实现按钮功能——第四章布局:<?xmlversion="1.0......
  • fcitx5-android 安卓开源输入法
    fcitx5-android/fcitx5-android:Anattempttorunfcitx5onAndroid(github.com) Fcitx5forAndroid|F-Droid-FreeandOpenSourceAndroidAppRepository......
  • ShareSDK Android SDK API
    获取用户信息接口(showUser)//cn.sharesdk.framework/***获取用户信息*@paramaccount获取指定账号的用户信息,直接设置成null*/publicvoidshowUser(Stringaccount)示例代码//设置授权登录的平台Platformplat=ShareSDK.getPlatform(QQ.NAME);//授权回调监听,监......
  • 2012 年最佳 Android 应用
    2012年最佳Android应用  •Evernote:云笔记应用•Zappos:美国鞋类电商Zappos官方应用•Pinterest:图片社交网络•Grimm’sSnowWhite:游戏《格林童话:白雪公主》•Expedia:在线旅游网站•Pocket:“稍后再读”应用•Ancestry:家谱网站Ancestry官方应用•Fancy:创意收集应用•......
  • JavaScript 隐式类型转换有哪些副作用
    JavaScript隐式类型转换有哪些副作用在JavaScript中,隐式类型转换指的是在运行时自动将一个数据类型转换为另一个数据类型。虽然JavaScript中的隐式类型转换有时可以使代码更简洁,但也会带来一些副作用,包括:难以预测的结果:由于JavaScript在隐式类型转换时会自动进行一些操......
  • Android版本:如何更改复选框的大小
    Android版本:如何更改复选框的大小?  安卓android 复选框checkbox我想提出的CheckBox有点小/大了,我该怎么办呢?可以通过scaleX="" 和scaleY=""属性来设置 <CheckBoxandroid:scaleX="0.6"android:scaleY="0.6"android:id="@+id/iv_checkbox"......