CVE-2018-9581分析:安卓RSSI广播敏感信息泄露漏洞

概要安卓操作系统的系统广播会暴露WiFi信号强度信息(RSSI)。设别上的所有应用都可以在没有额外权限的情况下获取WiFi信号强度信息。恶意应用可以用这些信息进行室内定位以定位和追踪用户。同样地,底层…

摘要 Android操作系统的系统广播暴露WiFi信号强度信息(RSSI)。设备上的所有应用程序都可以获得WiFi信号强度信息而无需其他权限。恶意应用可以使用此信息进行室内定位以定位和跟踪用户。同样,底层的Android API也可以获取此信息。 漏洞CVE编号为CVE-2018-9489,影响所有Android版本。谷歌尚未完全修复此漏洞,但尚未透露Android 9/P中的用户隐私信息。 背景 Android应用程序由操作系统隔离,进程之间以及操作系统和进程之间的交互是通过其他机制完成的。意图是一种这样的机制。使用Intent进行广播允许应用程序或操作系统发送系统范围的消息,这是其他应用程序正在侦听的内容。此功能用于限制读取消息的用户,但应用程序开发人员通常会忽略这些限制并导致敏感数据泄漏。因此,在同一设备上运行的恶意Android应用程序可以监听并获取其他应用程序广播的消息。 Android中的另一种安全机制是权限权限,该权限也设置为保护用户隐私。应用程序必须通过AndroidManifest.xml中的uses-permission 标记显式请求特定信息或功能的权限。根据权限类型,操作系统将在安装过程中呈现给用户,或者在运行时呈现弹出窗口。某些权限只能由系统应用程序使用,并且不能由普通开发人员使用。 Google Play中的应用权限请求和运行时弹出窗口的屏幕截图:

漏洞详细信息 Android操作系统广播WiFi强度值(RSSI),不需要访问此信息的权限。 RSSI值表示设备接收的信号的相对亮度,但与实际物理信号强度无关。这是通过两个独立的意图实现的,Android 9是android.net.wifi.STATE_CHANGE,而其他Android设备是android.net.wifi.RSSI_CHANGED。 当应用程序通过WifiManager访问信息时,通常在应用程序清单中请求ACCESS_WIFI_STATE权限。由于WiFi RTT功能是在Android 9中新引入的,并且还用于位置定位,因此需要ACCESS_FINE_LOCATION权限。然而,当监视系统广播时,可以在不通知用户且不需要其他权限的情况下获得信息。 这里有两个独立的安全问题: RSSI值是通过广播获得的,绕过正常的权限检查(ACCESS_WIFI_STATE); 通过广播或WiFi管理器获得的RSSI值可以在室内定制,而无需其他位置许可。 常见的用户重复步骤 对于Android设备用户,您可以按照以下步骤重现问题: 安装由Vilius Kraujutis开发的内部广播监控程序; 打开应用程序,然后单击开始监视广播; 观察系统广播,特别是android.net.wifi.STATE_CHANGE(Android 9及更早版本)和android.net.wifi.RSSI_CHANGED(所有版本)。 截图如下:

开发人员通过代码重现 要重现代码,首先创建一个广播接收器并注册接收动作  android.net.wifi.STATE_CHANGE(Android v8.1及更低版本)和android.net.wifi.RSSI_CHANGED。 示例代码如下: 公共 类  MainActivity 扩展 活动  {@Overridepublic  void  onCreate(Bundle  state)  {     IntentFilter  filter =  new  IntentFilter();              filter.addAction(android.net.wifi.STATE_CHANGE);              filter.addAction(android.net.wifi.RSSI_CHANGED);                  registerReceiver(接收器, 过滤器);} BroadcastReceiver 接收器 = 新  BroadcastReceiver()  {@Overridepublic  void  onReceive(Context  context,  Intent  intent)  {     Log.d(intent.toString());    }}; 测试 研究人员在以下设备上进行了测试: 像素  2,运行系统Android  8.1.0,补丁版本2018 六月Nexus  6P,运行系统Android  8.1.0,补丁版本2018 六月 Moto  G4,运行系统Android  7.1.0,补丁版本2018 四月 Kindle  Fire  HD (8  gen) 运行系统Fire  OS  5.6.10(基于Android  5.1.1),补丁版本2018 4 华硕  RT-N56U 路由器运行最新固件 测试步骤如下: 安装Broadcast Monitor应用程序; 将手机设置为飞行模式; 进入房间; 关闭飞行模式以触发RSSI广播; 从以下广播中获取RSSI值: android.net.wifi.RSSI_CHANGE - newRssi值 android.net.wifi.STATE_CHANGE - networkInfo/RSSI 重复步骤3-4。 测试结果如下:

查看更多:https://wwws.nightwatchcybersecurity.com/2018/11/11/cve-2018-9581/