论文部分内容阅读
得益于苹果公司的IOS和Google公司的Android等操作系统的出现,移动互联网近些年来发展势头极其迅猛。智能手机在其中扮演了越来越重要的角色,智能手机的用户群体不断壮大,相应的手机应用也在海量增多,人们在生活中也越来越依赖他们的手机,比如使用智能手机来存储和处理联系人等信息。而Android手机用户更是占据了智能手机市场中很大的比例。与此同时,由于以下的一些原因,使得Android很容易成为恶意软件的攻击对象:1.一些Android应用市场对用户上传的应用,缺乏有效的检测手段,使得恶意软件通过应用市场很容易感染相当数量的智能手机设备。2.Android用户比较缺乏相应的安全意识和知识。3.Android系统本身的安全模型和权限机制具有很高的开放性。特别是进入2011年以来,在Android平台已经发生了多起重大的安全事故。这使得寻找一种切实可靠的Android恶意代码检测技术显得尤为重要。由于Android的系统的开源特性,在Android系统出现之初,研究人员就对Android的源码进行过分析,提高了人们对Android系统中的沙盒技术,权限模型,组件封装和程序签名等机制的认识,同时也促进了对Android安全模型进行改进的研究。但目前,在Android恶意代码检测方面,由于手机平台本身的特点限制,一些检测手段无法进行,而较简易的检测手段对于现在的一些病毒来说,收效甚微。近些年来的研究显示,Android平台的检测,大部分是比较简单的二进制比对,在误报率,漏报率和检测效率等方面都不理想。本文针对现阶段的Android检测技术和一些解决方案,进行了研究,主要取得以下成果:1.给出一种较为完整的解决方案,一种动态检测和静态的检测相结合的检测模型。考虑到手机平台的的局限性以及对检测的可靠性,我们在手机端经过预处理后,使用高效的比对算法进行二进制比对,同时通过网络将APK中的class字节码文件上传到云端,通过在云端的虚拟机中运行执行代码,来进一步检测,从而提高检测的可靠性。2.给出了一种基于一种改进统计学复杂度和NCD(Normalized Compressiondistance)序列比对算法。这种算法通过Hash去重和简单的聚类算法,将目标代码和样本代码分别进行聚类,得到中间序列,再使用高效的压缩算法对中间序列计算两者之间的NCD距离,通过距离的大小可以比对目标代码和样本代码的相似程度。3.设计和实现了静态检测和动态检测的子系统原型,本文将对系统中的每一个模块设计进行详细说明,并给出部分实现代码。