论文部分内容阅读
Android系统由于免费、开源、可移植等优点,在移动市场发展迅猛,成为占有率最高的操作系统。Android流行的同时,伴随着层出不穷的恶意软件。恶意软件可以窃听通话、窃取信息、推送广告或诈骗信息,最严重的是误导用户使用支付业务,给用户带来经济损失。它的存在不仅损害了用户的切身利益,而且影响了 Android市场的良性发展。因此,如何准确且高效地检测出恶意软件成为该领域的研究热点。现有的恶意软件检测方法大多从不同角度收集数据,然后将这些数据作为研究对象,但是这些数据存在冗余和很多不确定性。另外,常用的二分类方法依赖现有样本,检测变异的软件或者未知恶意软件的效果还有待改进。针对上述问题本文提出了两种特征优化算法和改进的SVDD算法。本文采用了三层架构的检测模型,即"数据采集-数据处理-样本检测",并对该模型进行分析、优化和验证。本论文的工作主要包括以下几点:(1)优化特征库。首先搜集了大量的良性软件和恶意软件,调用相关工具批量反编译Android软件,再以自动化的方式获取每个应用程序原始代码中的系统调用、权限等特征,构建静态行为特征库。在数据处理时,通过概率统计和数据分层的方法找到信息量高的特征,降低信息的不确定性,实验结果表明使用优化后的特征对检测率和误判率几乎没有影响,但提高了未知恶意软件的检测率,减少了训练检测模型的时间。(2)改进异常检测算法。安卓恶意软件在不断发展和变化中,利用现有的软件构建的检测模型去检测未知的软件未必适用。由于收集恶意软件困难导致正负样本比例不均衡,因此引入异常检测算法,只利用正常样本建立检测模型,解决恶意软件收集困难的问题。不同的安卓软件有其自身的活动特点,软件行为越多、表现越活跃,提取到的静态行为特征就越多,那么可以用特征频率表现软件的行为特点。本文将特征频率与SVDD相结合进而改进SVDD算法,实验表明该方法具有增强区分恶意软件与良性软件的能力。