论文部分内容阅读
随着3G网络的飞速发展,越来越多的用户开始使用移动智能终端,而其中Android智能手机由于其开源性和高性价比正在迅速抢占智能手机市场。在智能手机出现新特性的同时,各种新型的安全问题也随之而来。针对Android的安全性问题,现在已经提出了一些解决方法,但它们大多采用的仍是传统的静态分析方法,并不能分析程序运行期间执行的恶意操作,而与此同时,有些方法采用基于沙箱的动态检测技术,但是,手机本身就存在资源限制的问题,如果还要在手机上运行一个沙箱,有点不太实际。根据上述现状,本文提出了应用源代码静态分析技术与动态主动防御技术来提高Android应用程序的安全性。我们开发了自己的一个跨平台编译环境,在应用程序打包之前,需要验证源代码中是否包含恶意模式,只有检测通过的源代码才可以被打包;同时我们开发了一个安全客户端,通过修改系统底层源码,利用进程间的通信技术socket通信,每当应用程序调用系统敏感API时,都会向用户发出警告,由用户来选择是否允许调用,做到了真正的主动防御。同时为了验证该系统的正确性,本文设计了相关的测试。测试用的Android应用程序包括两部分,一是根据常见恶意代码的行为特征编写的样本,其行为特征包括文件访问、获取敏感信息以及自动连接网络等;二是从网络上获取的恶意代码样本。本文所设计的测试样本的优势在于调用了大多数嵌入点提供的接口方法,相比真实恶意代码零散的行为特征,更能集中体现恶意代码常见的发作情况,反映测试样本使用各种数据的方式。本课题实现系统的优势体现在通过“平台端”与“客户端”的结合来提高应用程序的安全性。“平台端”能够从“源头”遏制应用程序的肆意传播;“客户端”能够在用户安装完应用程序后实现权限的定制,弥补了现存Android权限模型“一旦安装时赋予权限,则不能撤销,除非卸载应用程序”的缺陷,同时,能够实现对应用程序运行时所调用的权限序列的动态检查。