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

技术编号:27612187 阅读:9 留言:0更新日期:2021-03-10 10:38
本发明专利技术涉及一种基于混合特征组合分类的Android系统恶意软件检测方法,通过CHI统计方法、层次聚类和K

【技术实现步骤摘要】
一种基于混合特征组合分类的Android系统恶意软件检测方法


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

技术介绍

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

技术实现思路

[0003]要解决的技术问题
[0004]本专利技术针对Android恶意软件单特征检测不全面问题,提出了一种基于混合特征组合分类的Android系统恶意软件检测方法。搭建高危权限和敏感API库,分别提取静态权限和敏感API调用特征和动态敏感API调用频次特征以及动态系统状态特征,形成基于静态和动态的混合特征。在此基础上,先构建基于随机森林和Adaboost的单分类器,然后基于交叉验证法构建组合分类器,对Android恶意软件进行分类检测。
[0005]技术方案
[0006]一种基于混合特征组合分类的Android系统恶意软件检测方法,其特征在于步骤如下:
[0007]步骤1:构建Android高危权限和敏感API库
[0008]首先,基于CHI统计方法筛选高危权限;选取Android系统的所有权限作为权限集P={p1,p2,...,p
M
},对于权限p
i
∈P,(i=1,2,...,M),权限p
i
的CHI值X2(p
i
,K):
[0009][0010]其中,N表示所有样本数,A表示含有权限p
i
的恶意样本数,B表示不含权限p
i
的恶意样本数,C表示含有权限p
i
的正常样本数,D表示不含权限p
i
的正常样本数;
[0011]按X2(p
i
,K)值从大到小排序,选取前若干个较高者作为当前筛选的高危权限列表;
[0012]其次,采用层次凝聚和K-Means结合的方法对上述高危权限进行聚类处理,以去除权限之间的相关性;首先基于层次凝聚算法找到初始聚类中心,然后用K-Means算法进行重定位聚类;其中,权限之间的相关性基于皮尔逊相关系数来衡量,其计算公式如下:
[0013][0014]其中,表示权限p
m
(m=1,2,...,30)的特征向量,表示权限p
n
(n=1,2,...,30)对应的特征向量,和分别表示各自的期望值。
[0015]步骤2:基于反编译和动态Hook技术进行混合特征提取
[0016]首先,基于反编译技术提取静态特征,包括高危权限特征和敏感API特征;使用开源jar包ApkParser解析APK文件,获取AndroidManifest.xml,通过提取其中的权限信息列表P
apk
={p1,p2,...,p
m
},对权限p
i
∈P
apk
,(i=1,2,...,m),若满足则有:f
j
=1,(j=1,2,...,14);由此得到APK文件的静态高危权限特征向量;再通过解压手段获得dex文件,使用开源jar包baksmali反编译dex文件,获取对应的smali文件;自定义方法解析smali文件,在每一个smali文件中遍历得到函数名列表API
apk
={api1,api2,...,api
n
},对函数列表的每个元素,若满足api
j
=API
i
∈API
APK
,(i=1,2,...,40;j=1,2,...,n),则对应特征向量f
i
=1,(i=1,2,...,40);由此得到APK文件的静态敏感API特征向量;
[0017]其次,基于成熟的Xposed框架动态Hook敏感API,以提取动态特征;部署自开发的API动态劫持插件,主动监控Android系统,若有系统api
APP
=API
j
∈API
APP
被调用,则记录本次调用的API相关信息,包括敏感API调用频次信息和系统状态信息F
API
={f
active
,f
user
,f
bkg
},其中,f
active
表示是否处于息屏状态,f
user
表示是否处于被用户操作状态,f
bkg
表示是否处于后台状态;由此得到动态敏感API调用时的系统状态特征;
[0018]步骤3:混合特征归一化和特征权重赋值处理
[0019]由于高危权限调用特征向量、静态敏感API调用特征向量和动态系统状态特征向量的值均在[0,1]之间,不需要处理;故只需对动态敏感API调用频次的特征向量进行归一化处理;
[0020]考虑到动态敏感API调用频次特征向量每隔一段时间特征值归零情况,以及对于APP来讲,并不可能在一段时间内对所有敏感API进行调用,甚至有些敏感API根本不进行调用;因此,动态敏感API调用频次特征向量中的向量值会出现值为0的现象;这里采用离差标准化方法进行归一化处理,转换函数如下所示:
[0021][0022]对于静态特征向量(高危权限调用特征和敏感API调用特征),本专利技术采用TF-IDF算法进行赋权处理;
[0023]设恶意APK样本数为N
vir
,静态特征向量为F
APK
={F
APK
(per),F
APK
(api)}
54
,特征元素f
k
∈F
APK
,(k=1,2,...,54)对应的APK样本数为N
k
,(k=1,2,...,54);具体流程如下:
[0024](1)计算特征元素f
k
在APK样本文件d
j
,(j=1,2,...,N
k
)中的TF值:
[0025][0026]其中,t
k,j
表示在样本d
j
中特征元素f
k
特征元素出现的次数,T
k
表示样本d
j
中所有特征元素出现的总次数;
[0027](2)计算特征元素f
k
的IDF值:
[0028][0029](3)计算特征元素f
k
的权重:
[0030]W
apk
(k)=TF
k本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于混合特征组合分类的Android系统恶意软件检测方法,其特征在于步骤如下:步骤1:构建Android高危权限和敏感API库首先,基于CHI统计方法筛选高危权限;选取Android系统的所有权限作为权限集P={p1,p2,...,p
M
},对于权限p
i
∈P,(i=1,2,...,M),权限p
i
的CHI值X2(p
i
,K):其中,N表示所有样本数,A表示含有权限p
i
的恶意样本数,B表示不含权限p
i
的恶意样本数,C表示含有权限p
i
的正常样本数,D表示不含权限p
i
的正常样本数;按X2(p
i
,K)值从大到小排序,选取前若干个较高者作为当前筛选的高危权限列表;其次,采用层次凝聚和K-Means结合的方法对上述高危权限进行聚类处理,以去除权限之间的相关性;首先基于层次凝聚算法找到初始聚类中心,然后用K-Means算法进行重定位聚类;其中,权限之间的相关性基于皮尔逊相关系数来衡量,其计算公式如下:其中,表示权限p
m
(m=1,2,...,30)的特征向量,表示权限p
n
(n=1,2,...,30)对应的特征向量,和分别表示各自的期望值。步骤2:基于反编译和动态Hook技术进行混合特征提取首先,基于反编译技术提取静态特征,包括高危权限特征和敏感API特征;使用开源jar包ApkParser解析APK文件,获取AndroidManifest.xml,通过提取其中的权限信息列表P
apk
={p1,p2,...,p
m
},对权限p
i
∈P
apk
,(i=1,2,...,m),若满足则有:f
j
=1,(j=1,2,...,14);由此得到APK文件的静态高危权限特征向量;再通过解压手段获得dex文件,使用开源jar包baksmali反编译dex文件,获取对应的smali文件;自定义方法解析smali文件,在每一个smali文件中遍历得到函数名列表API
apk
={api1,api2,...,api
n
},对函数列表的每个元素,若满足api
j
=API
i
∈API
APK
,(i=1,2,...,40;j=1,2,...,n),则对应特征向量f
i
=1,(i=1,2,...,40);由此得到APK文件的静态敏感API特征向量;其次,基于成熟的Xposed框架动态Hook敏感API,以提取动态特征;部署自开发的API动态劫持插件,主动监控Android系统,若有系统api
APP
=API
j
∈API
APP
被调用,则记录本次调用的API相关信息,包括敏感API调用频次信息和系统状态信息F
API
={f
active
,f
user
,f
bkg
},其中,f
active
表示是否处于息屏状态,f
user
表示是否处于被用户操作状态,f
bkg
表示是否处于后台状态;由此得到动态敏感API调用时的系统状态特征;步骤3:混合特征归一化和特征权重赋值处理由于高危权限调用特征向量、静态敏感API调用特征向量和动态系统状态特征向量的值均在[0,1]之间,不需要处理;故只需对动态敏感API调用频次的特征向量进行归一化处理;
考虑到动态敏感API调用频次特征向量每隔一段时间特征值归零情况,以及对于APP来讲,并不可能在一段时间内对所有敏感API进行调用,甚至有些敏感API根本不进行调用;因此,动态敏感API调用频次特征向量中的向量值会出现值为0的现象;这里采用离差标准化方法进行归一化处理,转换函数如下所示:对于...

【专利技术属性】
技术研发人员:姚烨钱亮贾耀
申请(专利权)人:西北工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1