论文部分内容阅读
2007年,随着第一台安卓手机的问世,安卓手机系统就以其良好的用户体验、较低的成本开销和较高的开源性赢得了众多手机生产商、软件开发者和手机使用者的广泛认可,安卓系统所占的市场份额也越来越大。但是由于其相对简单的安全检查机制,引来无数恶意攻击者对安卓市场进行攻击。他们通过开发恶意软件,盗取用户信息、恶意扣除用户电话费、恶意消耗用户手机流量、电量等。2011年,谷歌官方应用市场累计有11000款恶意软件,而截至到2013年,恶意程序已经超过了42000款。越来越快的恶意软件发展速度使安卓应用安全问题的解决显得十分迫切。准确快速的识别恶意软件对用户的信息安全特别重要。目前安卓平台的反病毒措施主要是基于签名的检测,但随着加壳技术等的发展,这种方法已经远远不能保证手机安全,所以当今科学家开始从应用程序的权限和调用图上分析,试图找到更准确的检测方法。应用程序的权限分析,可以确定该应用是否能够访问用户的敏感信息,从而对可以访问敏感信息的应用做进一步检测。而恶意应用的调用图分析法,主要针对寄生在一个安全应用上的恶意应用,这种恶意应用通过篡改原安全应用的代码,加入一些恶意代码段,从而实现恶意攻击者的不法行为。调用图分析法是目前最流行的检测方法。通过对大量安卓手机恶意应用程序的分析,发现其与被感染的安全应用程序在程序语义方面有很大相似性。通过分析同一家族(由同一个开发者开发的同一个软件的不同版本共同构成一个家族)中不同版本间的程序,发现同一家族的不同版本在程序语义方面也存在很大的相似性。以此为假设,本文提出了一种基于程序家族关系的附加恶意应用程序(向安全软件注入恶意代码的实现其恶意行为的程序)检测方法。该检测方法主要运用对安卓应用程序反汇编后的代码静态分析的方法,获取每个安卓应用程序的特征向量,进而通过聚类来发现异常数据。该方法的研究工作主要包括以下几个方面:从几大安卓市场爬取大量安卓应用程序作为实验数据;将爬取下来的安卓应用程序进行反汇编,得到其反汇编代码;通过对反汇编后的代码分析得到安卓应用程序的函数调用图;从函数调用图中提取特征向量;借助分层聚类技术,将所有安卓应用聚类到不同的家族;通过比较家族成员间的相似性来判断恶意应用是否存在。通过对实验结果分析,该系统取得了92.86%的恶意软件检测率。随着智能手机越来越快地更新换代,恶意软件的攻击形式也日趋多样化。因此,更加全面完善的恶意程序检测方法将是未来研究的重要方向。