Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Inside Job: Understanding and Mitigating the Threat of External Device Mis-Bonding on Android

论文下载

Introduction

  1. 背景介绍
  2. 针对该问题的背景介绍,描述Android平台上的external devie 安全
  3. 对本文工作的详细介绍,发现了android平台上的external device安全没有保证,选取了几款设备,发现恶意程序只需要申请蓝牙权限就能偷取数据、破坏数据传输信道,将app和恶意的设备绑定在一起。目前的Android安全机制无法解决这个问题,于是提出一个OS级的解决方案,通过在后台运行一个服务来确保external device和正确的app绑定在一起。
  4. 本文的贡献,率先对一个全新的问题展开研究,针对这个问题提出第一个解决方案,实施并评估解决方案

External Device Mis-Bonding

问题的根源来自于所有申请了蓝牙权限的应用程序属于同一个linux group

  1. 详细的背景介绍
  2. 对Mis-bonging Threat的详细描述,蓝牙配对仅仅是设备之间的配对,并不是app和设备间的配对,当一个手机和蓝牙设备配对成功后,手机上的每一个拥有蓝牙权限的应用都是属于同一个linux group的,所以可以共享各种资源。同时也拥有对配对连接的处置权限。之后做了一些小的case study,分析了几款软件,有一款软件之前的版本存在这个问题,但是后来修正了。但是大部分的软件都存在这个问题。
  3. 限定研究范围和敌手的能力

Attacks and Measurement

  1. 为了更好的理解评估这个threat,建立了一个攻击模型
  2. 选了4个流行的healthcare device,分别进行Data-Stealing Attacks和Data Injection Attacks

Data-Stealing Attacks

伪装成official app,和device进行连接。需要考虑的问题是如何把握传输数据的时间。通过检测目前运行的进程,来发现official app的运行,在official app和device建立连接之前、之后的时间段内和device进行通信,或者主动去终端official app和device之间的连接。

Data-Injection Attacks

首先收集app和device之间的绑定信息,然后伪造的蓝牙硬件克隆这些绑定信息(device name ,MAC,UUID)。当伪造的硬件进入手机的检测范围后,恶意应用断开app和official device之间的连接,然后伪造的蓝牙硬件假装成official device和app进行连接,之后向app传送恶意信息。需要解决的是link key的问题,首先并不是所有的app和device之间都使用了secureBluetooth进行连接,其次可以通过重置link key来解决这个问题,首先断开手机和official硬件的连接,然后通过调用隐藏的api,可以代替用户属于一个key用于绑定伪造的蓝牙硬件。 3.选了20个应用进行人工分析,证明mis-bingding的问题的确普遍存在。

Android Device Binding Control

提出一个解决方法,名为Dabinder。在Frameworks层进行了修改,利用MAC、UUID和UID的对应,在蓝牙设备进行绑定通讯的时候进行验证。

Evaluation

评估了运行时间,只有socket连接的时候出现了较为大的延迟,原本63ms变成了86ms

Discussion

mis-bonding的问题在iOS设备上也可能出现,iOS并没有提供app和设备的绑定机制。还有在其他的硬件通讯渠道比如NFC上也有可能出现。