论文部分内容阅读
近年来,随着移动互联网时代的到来,移动终端已经成为人们获取信息的主要设备之一,智能手机的普及带来了Android系统的飞速发展。由于Android系统的开源性、非官方的签名机制和非严格的应用发布管理,对于黑客们来说Android可能是目前最脆弱的操作系统,越来越多的不法分子通过恶意软件来谋取暴利。现在的Android平台恶意软件具有数量大、传播快、变种多、危害性大的特点,使得Android平台存在着严峻的安全性问题,因此需要有效的安全检测系统,实现对未知恶意软件的检测。本课题旨在基于Android操作系统,结合机器学习的相关技术,重点关注恶意软件的功能行为的分析与识别,对传统的检测方式进行创新和改进,通过学习已知的样本软件的行为来构建安全检测模型以判断未知软件的恶意性。本文首先从Android平台结构特点和设计思想的角度出发对平台自身的安全机制进行分析,同时对样本库中恶意软件的恶意行为进行了统计和分析,更加有针对性的提出检测方法。然后分别从静态检测和动态检测的角度设计并实现一个安全检测系统。静态检测是使用代码逆向分析技术反编译应用程序安装文件,通过语法分析抽取静态特征属性,这些特征属性能从某种角度表明软件所实现的功能,然后利用训练阶段计算出的检测模型,来判定待测应用的恶意性。动态检测是通过拦截系统调用所建立的行为状态序列,挖掘蕴含在行为状态转换图背后的应用行为模式。基于隐马尔可夫模型的识别原理构建了检测应用是否存在异常行为的安全检测模型。同时,为了验证系统的正确性,本文设计了相关的测试。对静态检测系统的测试中,进行了系统内部纵向比较测试和同类产品的横向比较。对动态检测系统的测试中,进行了系统负荷测试、最佳参数选择测试以及系统查准率测试。最后的检测结果表明,静态检测与动态检测具有良好的互补性,系统对未知恶意软件的检测具有较好的检测效果。本文实现的安全检测系统的优势在与更加针对Android平台自身的特点和对恶意软件的行为识别,使得系统的检测更加精准,同时实现对未知软件的检测。