论文部分内容阅读
伴随着移动互联网市场的不断发展,智能手机的出货量不断增加,Android手机上的应用也越来越广泛,从简单的收发短信到音乐、电影的播放、GPS定位,手机上网,各种应用层出不穷。恶意软件的开发者们也不断的开发着新的恶意代码,新的技术不断涌现,新的木马病毒样本不断被发现,从恶意扣费的电话、窃取通话记录、窃取短信息到远程控制手机终端,盗取网银密码,智能手机在给人们带来方便的同时也带来了巨大的隐患。Android手机上恶意代码的检测越来越成为人们关注的焦点问题。本文从对Android恶意软件样本的逆向分析出发,深入研究了Android系统上的恶意代码的检测问题。本文的研究重点主要有三个:(1)研究Android系统的安全机制和软件保护的方式。主要有Linux系统本身的三种安全机制和Google公司改进的三种安全策略,比如基于进程的沙箱隔离,数字签名和权限控制。对目前的Android恶意软件样本进行逆向分析,研究使用恶意代码攻击软件的方式,比如进程注入、LKM等。研究恶意代码实现的主要功能及实现方法,比如按键模拟、键盘监控、短信拦截、网络监听等的Android平台上的实现方式。(2)研究目前的Android系统平台上检测恶意代码的方法,深入分析Android平台上恶意代码检测机制。比如特征码检测、启发式行为分析、虚拟机杀毒、沙盒检测等。还有学术界提出的基于语义分析、机器学习等检测恶意代码。(3)在目前学术界提出的将机器学习算法应用于Android平台上恶意代码检测的基础上,本文改进了检测框架,在机器学习算法的特征选择上加入基于逆向工程的Android应用的启发式信息。本文主要使用了朴素贝叶斯算法、人工神经网络算法、决策树算法、K-近邻算法对恶意代码的样本进行机器学习。Android软件进行字节码级别的静态分析后,提取出软件的启发式信息,作为样本特征。本文基于这种原理实现了对Android应用进行恶意代码检测的框架,对Android软件进行特征码扫描后,通过基于机器学习的分类器的判别,从而有效提高了恶意代码检测的精确度,降低了误报率。