论文部分内容阅读
移动智能终端和移动互联网的发展已经使人们的日常生活发生了极大的变革。之前需要在多个设备上才能完成的工作,如即时通信、浏览网页、拍照、购物、支付等,现在全都可以通过以智能手机为代表的智能手持设备完成。功能的集中使得智能手机中产生和存储了大量的用户隐私信息。在多种智能手机操作系统中,安卓系统以其开放的特性迅速地占据了智能手机大部分的市场份额。然而同样由于安卓的开放性,安卓应用带来的用户隐私威胁尤为突出。按照数据来源,安卓应用能够获取的数据可分为三类:受权限机制保护的系统数据,如短信息、地理位置等;不受权限机制保护的系统数据,如内存和CPU的使用率、嵌入式传感器数据等;应用自身产生的数据,如用户与应用的交互行为数据等。安卓应用在访问这些数据时,可能存在某些隐私泄露行为,对用户隐私造成威胁。其中一些行为已经引起了研究者的重视,例如,对于受权限机制保护的系统数据,恶意应用可以通过申请相应的权限窃取用户的敏感信息;对于不受权限机制保护的嵌入式传感器数据,精心设计的应用可以利用机器学习技术通过传感器数据推测用户隐私信息。也有一些行为还没有引起研究者重视,例如,对于应用自身产生的用户交互数据,第三方移动统计库在收集用户应用内行为数据时可能将用户的敏感信息泄露给第三方。对于上述安卓应用带来的隐私威胁,现有研究已经提出了一些分析与缓解方法,但这些研究还存在一定的不足之处。针对安卓平台的恶意应用检测,目前提出的基于权限的恶意应用检测方法缺少对应用使用的权限的考虑。针对安卓平台上的嵌入式传感器带来的隐私威胁,现有研究证明了嵌入式传感器可以被恶意应用利用来推测用户的隐私信息,也有研究者提出了相应的传感器数据访问控制机制,但由于缺少对现有应用的传感器使用模式的分析,这些机制都依赖于用户自身的判断,难以自动地为不同的应用生成合适的访问控制策略。针对安卓应用中的第三方移动统计库带来的隐私威胁,第三方移动统计库收集的用户应用内行为数据泄露了用户的哪些隐私信息以及如何防止这种形式的信息泄露还缺乏研究。因此,本文以安卓应用为研究对象,以保护用户隐私信息为目的,致力于解决以上三个主要问题,研究了以下三方面的内容:首先,本文在考虑应用使用的权限的基础上,提出了一种基于双层权限特征的安卓恶意应用检测方法。其次,本文提出了一种生成安卓应用传感器数据传播图的方法,并基于应用的传感器数据传播图分析了安卓应用的传感器使用模式。在此基础上,设计并实现了一种可自动生成访问控制策略的安卓应用传感器数据访问控制机制。最后,本文使用静态分析和动态分析结合的方法分析了流行的安卓应用中的第三方移动统计库收集了用户的哪些信息及其对用户隐私的影响,在此基础上,设计并实现了一个针对第三方移动统计库的管理机制。具体而言,本文的主要贡献包括:(1)将应用使用的权限用于基于机器学习技术的安卓恶意应用检测中,设计了一种基于双层权限特征的安卓恶意应用检测方法。该方法第一层中使用应用申请的权限和应用申请的权限对分别作为特征,训练分类器并对应用进行分类。根据分别使用这两种权限特征对应用分类的结果,将应用分成正常集合,恶意集合和不确定集合。第二层分类器对不确定集合中的应用分类,该层分类器使用应用申请的权限和应用使用的权限的多种组合分别作为特征,选择分类效果最好的一组特征的分类结果与第一层分类的结果进行合并后作为最终检测结果。上述方法在由19,369个正常应用和8,694个恶意应用构成的数据集上进行了实验。实验结果表明,该检测方法在误报率为2.21%的情况下,检测率达到了 89.07%,准确率达到了 95.09%,检测结果优于仅使用应用申请的权限进行检测的结果。(2)从整个应用市场的角度分析了目前安卓应用使用嵌入式传感器的模式,为此设计并实现了一个名为SDFDroid(Sensor Data Flow Droid)的分析工具。本文在深入研究Dalvik指令格式的基础上,建立了面向应用Smali代码的传感器数据污点传播策略,基于所建立的传感器数据污点传播策略,SDFDroid在安卓应用反编译后的Smali代码上进行前向和后向的传感器数据污点分析,生成应用的传感器数据传播图并获取应用注册的传感器类型。根据应用的传感器数据传播图,本文分析了应用是否泄露了用户设备的传感器数据。本文提出了一个名为NHGK-DBSCAN的传感器数据传播图聚类方法,该方法基于NHGK算法计算传感器数据传播图的相似度,采用DBSCAN算法对传感器数据传播图进行聚类,根据聚类结果,总结应用的传感器使用模式。通过SDFDroid,本文分析了 22,010个来自国内应用市场AppChina的应用、7,601个来自Google Play的应用以及4,644个来自国内应用市场AnZhi的应用。实验结果表明,除了一些广告库将传感器数据发送到了用于展示广告的Web页面外,目前的安卓应用只在本地使用传感器数据;运行游戏和展示广告是应用使用传感器的两个主要目的;应用通常通过第三方开发库来使用传感器;第三方开发库的传感器数据传播图随时间变化较小;不同类别的应用使用的传感器类型也不相同,加速度传感器是使用频率最高的传感器;虽然大部分应用只注册了一种传感器,但由于使用传感器不需要申请权限,有些第三方开发库注册了 11种传感器。为了控制应用对传感器数据的访问,缓解由传感器数据泄露带来的用户隐私威胁,本文设计并实现了一个名为SensorDataGuardian的传感器数据访问控制机制。SensorDataGuardian利用SDFDroid对应用分析的结果自动地配置应用的传感器访问控制策略。SensorDataGuardian将传感器访问控制的主体从应用细化到应用中的第三方库。性能测试结果表明,SensorDataGuardian带来的性能开销在用户可接受的范围内。(3)研究了安卓应用中的第三方移动统计库带来的用户隐私威胁,为此设计并实现了一个名为Alde(Analytics Library Data Explorer)的分析工具。该工具结合静态分析和动态分析方法,从给定的应用中提取开发者通过移动统计库收集的用户应用内行为数据。在分析过程中,本文提出了基于方法调用特征图的混淆API识别方法和基于应用GUI元素优先级的应用动态运行方法,提高了分析的覆盖率。Alde提取的用户应用内行为数据被进一步通过人工分析的方式确定泄露了用户的哪些隐私信息。通过Alde,本文分析了 8个被广泛使用的第三方移动统计库,以及200个来自国内应用市场“豌豆荚”的流行应用和100个来自Google Play的流行应用。实验结果表明,开发者可以利用移动统计库隐蔽地收集用户的隐私信息;移动统计库泄露了用户的隐私信息给统计公司,而且一些移动统计库在用户和开发者不知情的情况下收集用户信息;流行的移动统计库通过联合它从不同应用中收集的信息,能够很大程度上刻画一个用户;由于大部分应用的隐私策略声明中没有详细描述对移动统计库的使用,用户并不知道自己的隐私信息正被第三方移动统计平台收集。为了缓解由第三方移动统计库带来的隐私泄露风险,本文设计并实现了一个名为ALManager(Analytics Library Manager)的第三方移动统计库管理机制。ALManager能够帮助用户控制由第三方移动统计库收集的数据。性能测试结果表明,ALManager带来的性能开销在用户可接受的范围内。