论文部分内容阅读
近年来,随着智能移动终端的普及,使得移动应用的市场份额不断增大。在众多系统中Android系统凭借着开源性的优势占据了巨大的市场。基于Android系统的应用每年都以指数倍的速度增长着。但由于系统的开放性,也使得Android平台应用很难得到统一监管,大量的恶意应用流入市场,恶意应用软件呈现出种类多、数量增长块和隐蔽性强的趋势,同时由于当前手机应用功能的强大使得用户的许多隐私数据都存储在移动终端,包括用户的短信记录、通讯录信息等。 本文通过现有恶意应用的分析,发现恶意应用存在窃取用户隐私信息、自主发送短信、自主拨打电话、自主上网等恶意行为,并通过向热门应用中注入恶意代码达到传播的目的。基于对诸多恶意应用的分析,本文研究了基于Android应用安全的检测方法,在动态检测的基础上提出了基于组合式隐私标签隐私泄露检测方法与基于二次代码重构的检测方法,解决了恶意应用对用户隐私窃取造成的财产与精神损失,同时本文对上述研究方法进行了实现,形成了动态检测系统 dynDetect。论文通过对现有应用泄露的隐私数据的分析,将这些泄露的隐私数据划分为16种。提出了基于组合式隐私标签规则的污点分析方法,实现了多种隐私数据的同时的跟踪,改变了以往动态检测只能对单一隐私信息泄露进行检测,并通过对数据在 Dalvik虚拟机中传播有可能会造成隐私数据交换的指令分析,提出了 Dalvik中的隐私标签传播逻辑,并基于此传播逻辑完成了对 Dalvik虚拟机指令的修改,实现了隐私标签在系统中传播,隐私检测模块采用了基于黑盒追踪的设计模型避免了系统资源开销过大。基于二次代码重构的分析方法通过对Android应用反编译后的Dalvik指令集的分析,提出了基于Dalvik指令的重构模型,并通过此模型完成了对字节码中的敏感API的重构并添加了相应的预警标签,应用运行时通过对预警标签的过滤就可以获取敏感API详细调用信息并追踪敏感数据的走向。 为了实现大规模应用检测,研究中还实现了自动化测试系统 dynDetect。自动化检测平台采用基于B/S的设计模型,完成了应用从安装、触发、卸载的自动化检测。通过dynDetect自动化检测系统的帮助,可以让审核人员对上线应用进行动态检测,剔除掉恶意应用,为净化Android应用市场做出贡献。