首页> 中国专利> 一种基于混合特征组合分类的Android系统恶意软件检测方法

一种基于混合特征组合分类的Android系统恶意软件检测方法

摘要

本发明涉及一种基于混合特征组合分类的Android系统恶意软件检测方法,通过CHI统计方法、层次聚类和K‑Means聚类混合算法建立高危权限和敏感API库。在此基础上,分别对APK文件进行解析分析得到静态特征和对APP进行动态Hook得到动态特征,组合形成混合特征。通过对混合特征进行归一化和权重赋值处理,构建基于随机森林和Adaboost算法的混合特征组合分类器。本发明所提的基于混合特征组合分类器的Android恶意软件检测方法兼顾静态和动态特征,利用低维特征数据尽可能多的描述恶意软件的综合恶意特征,在混合特征分类检测模型下对Android恶意软件的检测具有良好效果。实验表明,本发明所提方法能显著提高恶意软件检测的准确率。

著录项

  • 公开/公告号CN112464232A

    专利类型发明专利

  • 公开/公告日2021-03-09

    原文格式PDF

  • 申请/专利权人 西北工业大学;

    申请/专利号CN202011315597.0

  • 发明设计人 姚烨;钱亮;贾耀;

    申请日2020-11-21

  • 分类号G06F21/56(20130101);G06K9/62(20060101);

  • 代理机构61204 西北工业大学专利中心;

  • 代理人刘新琼

  • 地址 710072 陕西省西安市友谊西路127号

  • 入库时间 2023-06-19 10:08:35

说明书

技术领域

本发明属于软件检测技术领域,涉及一种移动端恶意软件检测方法,尤其是提出一种基于混合特征组合分类的Android系统恶意软件检测方法。

背景技术

Android系统由于其开放性特征,使得其产品的市场占有率越来越高。同时,针对Android系统的恶意软件也层出不穷。对于Android恶意软件的检测方式分为静态检测和动态检测两种。目前,研究者们多数就Android恶意软件的单特征进行检测分析,并未完全兼顾到静态和动态特征,导致检测不全面等问题,影响了恶意软件的检测效率和准确度。

发明内容

要解决的技术问题

本发明针对Android恶意软件单特征检测不全面问题,提出了一种基于混合特征组合分类的Android系统恶意软件检测方法。搭建高危权限和敏感API库,分别提取静态权限和敏感API调用特征和动态敏感API调用频次特征以及动态系统状态特征,形成基于静态和动态的混合特征。在此基础上,先构建基于随机森林和Adaboost的单分类器,然后基于交叉验证法构建组合分类器,对Android恶意软件进行分类检测。

技术方案

一种基于混合特征组合分类的Android系统恶意软件检测方法,其特征在于步骤如下:

步骤1:构建Android高危权限和敏感API库

首先,基于CHI统计方法筛选高危权限;选取Android系统的所有权限作为权限集P={p

其中,N表示所有样本数,A表示含有权限p

按X

其次,采用层次凝聚和K-Means结合的方法对上述高危权限进行聚类处理,以去除权限之间的相关性;首先基于层次凝聚算法找到初始聚类中心,然后用K-Means算法进行重定位聚类;其中,权限之间的相关性基于皮尔逊相关系数来衡量,其计算公式如下:

其中,

步骤2:基于反编译和动态Hook技术进行混合特征提取

首先,基于反编译技术提取静态特征,包括高危权限特征和敏感API特征;使用开源jar包ApkParser解析APK文件,获取AndroidManifest.xml,通过提取其中的权限信息列表P

其次,基于成熟的Xposed框架动态Hook敏感API,以提取动态特征;部署自开发的API动态劫持插件,主动监控Android系统,若有系统api

步骤3:混合特征归一化和特征权重赋值处理

由于高危权限调用特征向量、静态敏感API调用特征向量和动态系统状态特征向量的值均在[0,1]之间,不需要处理;故只需对动态敏感API调用频次的特征向量进行归一化处理;

考虑到动态敏感API调用频次特征向量每隔一段时间特征值归零情况,以及对于APP来讲,并不可能在一段时间内对所有敏感API进行调用,甚至有些敏感API根本不进行调用;因此,动态敏感API调用频次特征向量中的向量值会出现值为0的现象;这里采用离差标准化方法进行归一化处理,转换函数如下所示:

对于静态特征向量(高危权限调用特征和敏感API调用特征),本发明采用TF-IDF算法进行赋权处理;

设恶意APK样本数为N

(1)计算特征元素f

其中,t

(2)计算特征元素f

(3)计算特征元素f

W

动态特征权重通过对系统特征向量的分析来给敏感API调用频次特征赋值;动态特征权重计算公式为:W

本发明对于系统状态特征向量元素重要程度的判断是基于专家决策的,其重要程度按从大到小排序为:f

(1)根据重要程序构建优序图如表3所示;

表3系统状态特征向量权重优序图

(2)计算优序图中第i行元素权重:

其中,w

(3)计算api

W

(4)计算api

步骤4:基于混合特征分类器的恶意软件检测和评价分析

本发明检测框架如图1所示,采用C/S模式,静态分析(包括:高危权限和敏感API库搭建、静态特征提取、特征值处理和分类器分类分析)在服务端完成;动态分析中,动态特征提取在客户端完成,特征值处理和分类器分类分析在服务端完成;

本发明基于随机森林RandomForest算法、Adaboost算法分别构建随机森林混合特征分类器和Adaboost混合特征分类器,在此基础上构建组合分类器;

在训练时分别基于5折交叉法、10折交叉法和20折交叉法,构造不同交叉法对应的随机森林混合特征分类器和Adaboost混合特征分类器,总共得到6个混合特征分类器;由于10折交叉法通常是获得最好误差估计的恰当选择,故对于采用10折交叉法训练得到的分类器赋予权重0.3,其余的分类器赋予权重0.1;

对于需要检测的每一条混合特征,分别经过上述6个混合特征分类器检测,得到6组分类结果,对每一组分类结果按类别进行加权求和,得到最终分类结果。

步骤1中所述的若干为30个。

有益效果

本发明提出的一种基于混合特征组合分类的Android系统恶意软件检测方法,通过CHI统计方法、层次聚类和K-Means聚类混合算法建立高危权限和敏感API库。在此基础上,分别对APK文件进行解析分析得到静态特征(高危权限特征、敏感API特征)和对APP进行动态Hook得到动态特征(动态敏感API特征、系统状态特征),组合形成混合特征。通过对混合特征进行归一化和权重赋值处理,构建基于随机森林和Adaboost算法的混合特征组合分类器。本发明所提的基于混合特征组合分类器的Android恶意软件检测方法兼顾静态和动态特征,利用低维特征数据尽可能多的描述恶意软件的综合恶意特征,在混合特征分类检测模型下对Android恶意软件的检测具有良好效果。实验表明,本发明所提方法能显著提高恶意软件检测的准确率。

附图说明

图1Android恶意软件混合特征检测框架

图2基于混合特征分类器的恶意软件检测流程

图3十折交叉验证对比

具体实施方式

现结合实施例、附图对本发明作进一步描述:

步骤一:搭建高危权限和敏感API库

首先,基于CHI统计方法筛选高危权限。选取Android系统的所有权限作为权限集P={p

其中,N=A+B+C+D,A表示属于类别K且含有权限p

按CHI值从大到小排序,初步筛选出高危权限列表。

其次,采用层次凝聚聚类算法和K-Means聚类算法结合的方法对上述高危权限进行聚类处理,以去除权限之间的相关性。首先基于层次凝聚聚类算法进行初始聚类,然后使用K-Means聚类算法进行重定位聚类。其中,权限之间的相关性基于“皮尔逊相关系数”来衡量。

假设权限集对应的特征向量为F

其中,

聚类后的权限共分成14组,设为P

表1聚类后的权限组

最后,本发明对敏感API函数中重载的函数进行筛选,每一组高危权限对应的API集合中只保留最具代表性的敏感API函数,最终筛选出40个敏感API,设为API

表2部分敏感API

步骤二:基于反编译和动态Hook技术进行混合特征提取

首先,基于反编译技术提取静态特征,包括高危权限特征和敏感API特征。依据步骤一中筛选出来的14组高危权限P

先使用ApkParser解析APK文件,获取AndroidManifest.xml,提取其中的权限信息列表P

其次,基于Xposed框架动态Hook敏感API,以提取动态特征。依据步骤三筛选出来的敏感API集合API

通过部署API动态劫持插件,主动监控Android系统,若检测到有系统api

综上,本发明结合步骤二中静态特征向量F

F={F

其中,F

步骤三:混合特征归一化和特征权重赋值处理

由于静态高危权限调用特征向量、静态敏感API调用特征向量和动态敏感API调用时的系统状态特征向量的值均在[0,1]之间,不需要处理。故只需对动态敏感API调用频次的特征向量进行归一化处理。

设动态敏感API调用频次特征向量为F

其中,f

对于静态特征向量F

设恶意APK样本数为N

(1)计算特征元素f

其中,t

(2)计算特征元素f

(3)计算特征元素f

W

由此得到静态特征向量F

动态敏感API调用频次特征向量F

本发明对于动态敏感API调用时的系统状态特征向量元素重要程度的判断是基于专家决策的。设f

本发明采用“优序图法”计算动态敏感API调用频次特征向量元素f

(1)根据动态敏感API调用时的系统状态特征向量元素的重要程度构建优序图如表3所示;

表3系统状态特征向量权重优序图

(2)计算优序图中每一行数据的的权重,则第i行对应的权重W

其中,w

(3)计算动态敏感API调用频次特征向量元素f

其中,f

由此得到动态敏感API调用频次特征向量F

最后,本发明用于恶意软件检测的特征向量值计算如下:

F

(5)其中,F

步骤四:基于混合特征分类器的检测和评价指标

本发明基于随机森林(Random Forest)算法、Adaboost算法分别构建随机森林混合特征分类器和Adaboost混合特征分类器,在此基础上构建组合分类器。

在训练时分别基于5折交叉法、10折交叉法和20折交叉法,构造不同交叉法对应的随机森林混合特征分类器和Adaboost混合特征分类器,总共得到6个混合特征分类器。由于10折交叉法通常是获得最好误差估计的恰当选择,故对于采用10折交叉法训练得到的分类器赋予权重0.3,其余的分类器赋予权重0.1。

对于需要检测的每一条混合特征,分别经过上述6个混合特征分类器检测,得到6组分类结果,对每一组分类结果按类别(良性或恶意)进行加权求和,得到最终分类结果。

本发明的评价模型基于传统机器学习评价指标来完成。具体评价指标如下:

(1)TP(True Positive):良性应用被判定为良性应用;

(2)TN(True Negative):恶意应用被判定为恶意应用;

(3)FP(False Positive):恶意应用被判定为良性应用;

(4)FN(False Negative):良性应用被判定为恶意应用;

(5)准确率ACC(Accuracy):应用被正确分类的概率;

(6)精确率(Precision):预测为恶意的应用中被确实为恶意应用的概率;

(7)召回率(Recall):恶意应用被正确判定为恶意应用的概率;

本发明基于混合特征分类器的恶意软件的检测框架如图1所示,检测流程如图2所示。

步骤五:对比试验

本发明实验所用数据集分为良性APK样本数据(不含恶意软件攻击行为)和恶意APK样本数据(含恶意软件攻击行为)。其中,良性APK数据从国内外Android应用市场(豌豆荚和Google Play)下载,恶意APK数据从VirusShare和Drebin下载,去除数据不完整和内容重复的APK样本,用于实验部分的样本数据控制在1500个,足以满足本发明的实验验证要求。其中,恶意APK数量为1000个,良性APK数量为800个。

表6实验环境

本发明在保证相同软硬件条件的前提下,通过对比本发明方法和其他研究者的方法,进行如下几个对比实验来分析:

(1)在去除权限相关性上,基于只采用K-Means聚类算法去除相关性的方法构建分类器,对比本发明(采用层次聚类算法优化的K-Means算法)构建混合特征分类器。

表7采用不同算法去除权限相关性的对比分析

可以看出,本发明采用的层次聚类优化K-Means去除权限相关性方法能够比较好的提升分类检测效果。

(2)针对单特征提取方法,对于本发明的混合特征,就其中的静态特征和动态特征分别构建基于静态特征的分类器和基于动态特征的分类器,来对比本发明提出的基于动静混合特征的分类器。

表8提取不同特征的对比分析

可以看出,本发明基于动静混合特征构建的分类器能够有效提高分类检测的准确率。

(3)针对本发明构建的组合分类器,通过分别构建随机森林和Adaboost单分类器进行对比。

表9采用不同分类器的对比分析

可以看出,本发明构建的组合分类器较单一混合特征分类器而言,可以有效提高分类的精度。

最后,本发明对上述对比实验采用5次、10次、15次和20次十折交叉验证法,对检测准确率ACC分别取平均值,生成图3所示的对比图

可以看出,本发明提出的方法,即在高危权限和敏感API库基础上,分别提取静态和动态特征,组合形成混合特征,最后基于混合特征构建组合分类器,能够有效提升Android恶意软件检测的准确率、精确率和召回率。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号