基于权限的FlowDroid静态检测方法研究
作者单位:西安电子科技大学
学位级别:硕士
导师姓名:刘刚;赵东平
授予年度:2019年
学科分类:0839[工学-网络空间安全] 08[工学] 0835[工学-软件工程] 081201[工学-计算机系统结构] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:静态检测 恶意软件 FlowDroid 权限 污染路径
摘 要:随着移动互联网的发展,用户可以通过手机、平板电脑、智能终端等智能设备获取互联网丰富的资源和完善的服务。Android操作系统开源且面向用户免费,如今在移动设备操作系统搭载市场所占比例最高,带来了众多的应用和功能,与此同时,恶意应用也大肆开发和传播,对用户存储在智能设备中的短信、通话记录、账户、财产等隐私数据以及系统安全带来巨大的威胁。由于Android系统本身的安全机制不够完善,第三方应用市场安全监管不力,导致恶意应用层出不穷,Android应用程序安全检测成为热门的研究课题。Android应用安全性静态检测从源码层面对应用的静态特征信息进行提取,分析判断其可能存在的恶意行为并识别恶意应用,检测范围广,成本低。本文的研究基于FlowDroid静态检测工具,是Android静态分析研究中首次完成了最为精准的、上下文、流、字段和对象均敏感的静态检测,检测全面,分析精度高。然而,当前FlowDroid静态检测中也存在一些问题和不足,具体表现为检测消耗时间、内存等资源过大;缺乏针对性的分析带来大量冗余的路径检测,假阳性的路径检测影响准确性;且对污染数据流缺少进一步的安全性判定。针对以上问题,本文从Android权限机制出发,提出一种基于权限的FlowDroid静态检测方法改进,消除了静态检测中存在的冗余分析,提高了检测效率,并引入风险评级与污染数据流传播检测结合的方法以去除假阳性路径,提高了静态检测的准确性。基于上述方法,本文设计并实现了BPFlowDroid工具,并设计测试实验评估本工具的效率和准确性。本文核心工作包括下几点:第一,研究FlowDroid工作原理与运行机制,从框架、运行流程、污点追踪等方面进行详细分析,对来自第三方应用商店的常用应用进行实际应用测试实验,从理论和实验两部分指出原生FlowDroid工具存在的缺陷和不足,作为本文改进的基础。第二,基于特征提取与风险评级的静态检测冗余消解方法研究。本文提出了基于卡方校验和聚类算法的特征提取方法,使用卡方校验的方式提取与恶意应用相关度强的权限信息组成特征权限集,使用基于互信息值的聚类算法得到去除簇内相关性的特征权限簇。针对不同权限对用户隐私信息及系统安全的威胁不同,且单个权限申请与权限组合申请带来的威胁也不同的问题,本文提出风险值赋予与计算算法,对应用申请的单个权限及多个权限组合进行风险评级,提取风险值大于阈值的检测路径,过滤并消除了静态检测中的大量冗余。第三,基于数据流传播规则的污染路径检测方法研究。对数据流传播规则进行建模分析,引入控制流和数据流结合的分析方法,生成完整的污染数据传播路径,并将风险值作为污染数据流传播路径安全性判定的附属信息,以去除假阳性检测路径带来的安全性误判,提高静态检测的准确性。最后,基于上述研究方案设计并实现了BPFlowDroid工具,并设计测试实验以评估本工具的功能、效率和准确性。对自主开发的恶意应用执行完整的检测流程,验证了本工具的基本功能和可用性,对正常应用和恶意应用进行检测实验,作为性能测试,记录和分析检测结果并与原生FlowDroid工具对比,实验证明本工具有较高的检测准确性,且大幅减少了静态检测过程中时间和内存的消耗。