买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于混合特征组合分类的Android系统恶意软件检测方法_西北工业大学_202011315597.0 

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

申请日:2020-11-21

公开(公告)日:2024-04-09

公开(公告)号:CN112464232B

主分类号:G06F21/56

分类号:G06F21/56;G06F18/25;G06F18/23213;G06F18/243

优先权:

专利状态码:有效-授权

法律状态:2024.04.09#授权;2021.03.26#实质审查的生效;2021.03.09#公开

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

主权项:1.一种基于混合特征组合分类的Android系统恶意软件检测方法,其特征在于步骤如下:步骤1:构建Android高危权限和敏感API库首先,基于CHI统计方法筛选高危权限;选取Android系统的所有权限作为权限集P={p1,p2,...,pM},对于权限pi∈P,i=1,2,...,M,权限pi的CHI值X2pi,K: 其中,N表示所有样本数,A表示含有权限pi的恶意样本数,B表示不含权限pi的恶意样本数,C表示含有权限pi的正常样本数,D表示不含权限pi的正常样本数;按X2pi,K值从大到小排序,选取前若干个较高者作为当前筛选的高危权限列表;其次,采用层次凝聚和K-Means结合的方法对上述高危权限进行聚类处理,以去除权限之间的相关性;首先基于层次凝聚算法找到初始聚类中心,然后用K-Means算法进行重定位聚类;其中,权限之间的相关性基于皮尔逊相关系数来衡量,其计算公式如下: 其中,表示权限pmm=1,2,...,30的特征向量,表示权限pnn=1,2,...,30对应的特征向量,和分别表示各自的期望值;步骤2:基于反编译和动态Hook技术进行混合特征提取首先,基于反编译技术提取静态特征,包括高危权限特征和敏感API特征;使用开源jar包ApkParser解析APK文件,获取AndroidManifest.xml,通过提取其中的权限信息列表Papk={p1,p2,...,pm},对权限pi∈Papk,i=1,2,...,m,若满足则有:fj=1,j=1,2,...,14;由此得到APK文件的静态高危权限特征向量;再通过解压手段获得dex文件,使用开源jar包baksmali反编译dex文件,获取对应的smali文件;自定义方法解析smali文件,在每一个smali文件中遍历得到函数名列表APIapk={api1,api2,...,apin},对函数列表的每个元素,若满足apij=APIi∈APIAPK,i=1,2,...,40;j=1,2,...,n,则对应特征向量fi=1,i=1,2,...,40;由此得到APK文件的静态敏感API特征向量;其次,基于成熟的Xposed框架动态Hook敏感API,以提取动态特征;部署自开发的API动态劫持插件,主动监控Android系统,若有系统apiAPP=APIj∈APIAPP被调用,则记录本次调用的API相关信息,包括敏感API调用频次信息和系统状态信息FAPI={factive,fuser,fbkg},其中,factive表示是否处于息屏状态,fuser表示是否处于被用户操作状态,fbkg表示是否处于后台状态;由此得到动态敏感API调用时的系统状态特征;步骤3:混合特征归一化和特征权重赋值处理由于高危权限调用特征向量、静态敏感API调用特征向量和动态系统状态特征向量的值均在[0,1]之间,不需要处理;故只需对动态敏感API调用频次的特征向量进行归一化处理;考虑到动态敏感API调用频次特征向量每隔一段时间特征值归零情况,以及对于APP来讲,并不可能在一段时间内对所有敏感API进行调用,甚至有些敏感API根本不进行调用;因此,动态敏感API调用频次特征向量中的向量值会出现值为0的现象;这里采用离差标准化方法进行归一化处理,转换函数如下所示: 对于静态特征向量,即高危权限调用特征和敏感API调用特征,采用TF-IDF算法进行赋权处理;设恶意APK样本数为Nvir,静态特征向量为FAPK={FAPKper,FAPKapi}54,特征元素fk∈FAPK,k=1,2,...,54对应的APK样本数为Nk,k=1,2,...,54;具体流程如下:1计算特征元素fk在APK样本文件dj,j=1,2,...,Nk中的TF值: 其中,tk,j表示在样本dj中特征元素fk特征元素出现的次数,Tk表示样本dj中所有特征元素出现的总次数;2计算特征元素fk的IDF值: 3计算特征元素fk的权重:Wapkk=TFk,j×IDFk动态特征权重通过对系统特征向量的分析来给敏感API调用频次特征赋值;动态特征权重计算公式为:WAPPapik=FAPPapik×WAPPapik;其中,FAPPapik为经过归一化处理过的敏感apik特征向量值,WAPPapik表示由apik对应的系统状态特征向量计算得到的辅助权重;对于系统状态特征向量元素重要程度的判断是基于专家决策的,其重要程度按从大到小排序为:factive>fuser>fbkg,采用优序图法来计算权重;具体流程如下:1根据重要程序构建优序图如表3所示;表3系统状态特征向量权重优序图 2计算优序图中第i行元素权重: 其中,wi,j表示优序图中第i行、第j列元素值;3计算apik对应的辅助权重:WAPPapik=∑fi×Wfi,fi∈FAPI4计算apik对应的最终权重值;步骤4:基于混合特征分类器的恶意软件检测和评价分析采用CS模式,静态分析包括:高危权限和敏感API库搭建、静态特征提取、特征值处理和分类器分类分析在服务端完成;动态分析中,动态特征提取在客户端完成,特征值处理和分类器分类分析在服务端完成;基于随机森林RandomForest算法、Adaboost算法分别构建随机森林混合特征分类器和Adaboost混合特征分类器,在此基础上构建组合分类器;在训练时分别基于5折交叉法、10折交叉法和20折交叉法,构造不同交叉法对应的随机森林混合特征分类器和Adaboost混合特征分类器,总共得到6个混合特征分类器;由于10折交叉法通常是获得最好误差估计的恰当选择,故对于采用10折交叉法训练得到的分类器赋予权重0.3,其余的分类器赋予权重0.1;对于需要检测的每一条混合特征,分别经过上述6个混合特征分类器检测,得到6组分类结果,对每一组分类结果按类别进行加权求和,得到最终分类结果。

全文数据:

权利要求:

百度查询: 西北工业大学 一种基于混合特征组合分类的Android系统恶意软件检测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。