Android系统广播机制存在漏洞,恶意软件可绕过安全机制跟踪用户

国外钻研职员表露了Android破绽(CVE-2018-9489)的信息。Android系统的内部广播机制会裸露敏感的用户和设备信息,手机上安装的利用可在用户不知情或未经许可的环境下造访获取这些信息。

Android系统的内部广播机制泄露的数据包括:Wi-Fi收集名称、Wi-Fi收集BSSID,本地IP地址、DNS办事器信息和设备的MAC地址等具体信息。部分信息(如Mac地址)在Android 6版本以上无法经由过程这个破绽获取,然则剩下的依然可以经由过程监听广播来绕过权限反省和其他警备步伐。

背景

Android是谷歌开拓的用于手机和平板电脑的开源操作系统,守旧预计举世有跨越20亿台设备运行Android。Android上的利用法度榜样平日与系统隔离,然则经由过程几种机制仍旧可以实现利用法度榜样的进程与操作系统间的交互。

比如说此次问题的泉源。Android供给了“ Intent ”作为进程间的通信要领之一,该机制容许利用法度榜样或系统发送可由其他利用法度榜样收听的消息。只管开拓职员可以选择关闭或限定这个机制,然则在实践历程中工程师每每疏于支配限定机制或樊篱敏感数据。这就导致了上文中的Android破绽,手机上的恶意软件可以监听并捕获其他利用法度榜样广播的消息。

安卓系统供给的最常见的安然机制是权限节制,旨在保护用户的隐私信息不受损害。利用法度榜样必须经由过程利用法度榜样清单(“ AndroidManifest.xml ”)中的特殊“ uses-permission ”标记明确哀求造访某些信息或功能。根据许可的类型(如“正常”、“危险”等),系统可以在利用安装时代向用户显示授权信息,或者在运行时代再次提示。某些权限只能由系统利用法度榜样应用,并且不向第三方开拓职员开放。

Google Play和运行时的利用法度榜样权限截图:

破绽详情

Android系统经由过程“ Intent ”机制广播有关Wi-Fi连接和Wi-Fi收集接口的信息:

WifiManager的NETWORK_STATE_CHANGED_ACTION

WifiP2pManager的WIFI_P2P_THIS_DEVICE_CHANGED_ACTION

这些信息包括设备的MAC地址、Wi-Fi接入点的BSSID、收集名称以及本地IP、网关IP和DNS办事器地址等信息。此信息可供用户设备上运行的所有利用法度榜样应用。

虽然利用法度榜样也可以经由过程WifiManager造访此信息,但这样的话必要利用法度榜样清单中的“ ACCESS_WIFI_STATE ”权限。经由过程Wi-Fi进行地舆定位平日必要“ ACCESS_FINE_LOCATION ”或“ ACCESS_COARSE_LOCATION ”权限。此外,在Android版本6.0及更高版本中,设备的实际MAC地址不再经由过程API供给,并始终返回地址“02:00:00:00:00:00”。然而,监听系统广播的利用法度榜样不必要这些权限,是以容许在不知道用户的环境下捕获该信息,并且以致在Android 6或更高版本上捕获真实MAC地址。

考试测验在Android 7.0中获取MAC地址的利用截图:

钻研职员应用多款硬件和不合Android版本进行了测试,结果显示所有测试设备和Android版本都可以复现这个问题,只管某些设备未在“ NETWORK_STATE_CHANGED_ACTION ”Intent中显示实际MAC地址,但它们仍在“ WIFI_P2P_THIS_DEVICE_CHANGED_ACTION ”Intent内。同时因为MAC地址是固定且与硬件绑定,以是哪怕设备的MAC地址是随机化的,也可以用它来识别和跟踪任何Android设备。而针对收集名称和BSSID信息,可经由过程查询BSSID数据库(如WiGLE或SkyHook)来定位用户。恶意软件可以应用这些收集信息来进一步试探和进击本地Wi-Fi收集。钻研职员表示所有版本的Android系统均会受到影响,包括各类分支,如亚马逊的Kindle FireOS。谷歌在Android P/9中修复了这个问题,但不会为旧版本的系统供给更新,建议用户进级到Android最新版本。

问题复现

经由过程利用法度榜样

对付Android设备用户,可以按如下要领复制这些问题:

1. 安装Vilius Kraujutis开拓的“Internal Broadcasts Monitor”利用。

2.打开利用,然后点击“Start”开始监控广播信息。

3.察看系统广播信息,分外是“android.net.wifi.STATE_CHANGE”和“android.net.wifi.p2p.THIS_DEVICE_CHANGED”这两条。

示例:

经由过程代码

应用代码复现,必要创建一个广播接管器并注册以接管这些信息:

android.net.wifi.WifiManager.NETWORK_STATE_CHANGED_ACTION

android.net.wifi.WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION

示例代码如下所示:

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle state) {

IntentFilter filter = new IntentFilter();

filter.addAction(

[1] [2]下一页

android.net.wifi.WifiManager.NETWORK_STATE_CHANGED_ACTION);

filter.addAction(

android.net.wifi.WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);

registerReceiver(receiver, filter);

}

BroadcastReceiver receiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

Log.d(intent.toString());

….

}

};

后续

由于这是一个重大年夜的API变化,谷歌仅在Android P/9中修复了这个问题,旧版的Android系统不会获得更新,建议用户进级到Android P/9或更高版本。

上一页[1] [2]

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包