[发明专利]利用随机森林分类器实时检测安卓恶意软件的方法有效
申请号: | 201710269007.7 | 申请日: | 2017-04-24 |
公开(公告)号: | CN107153789B | 公开(公告)日: | 2019-08-13 |
发明(设计)人: | 董庆宽;曾敏;张文博;陈原;白丽娜 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 恶意软件 待检测样本 实时检测 随机森林分类器 检测 数据流 随机森林 应用程序接口调用 隐马尔科夫模型 应用程序接口 数据流特征 输出 调用序列 特征向量 网络数据 网络特征 最小单元 准确率 字段 传输 分组 网络 | ||
1.一种利用随机森林分类器实时检测安卓恶意软件的方法,包括以下步骤:
(1)收集网络数据:
使用数据包捕获工具,分别收集正常软件样本和恶意软件样本所产生的运行时应用程序接口调用数据流,将收集到的运行时应用程序接口调用数据流作为训练恶意软件检测模型的初始数据集;
(2)应用程序接口调用数据流分组:
应用程序接口利用数据流的分组规则,对初始应用程序接口调用数据集进行分组,得到多个不同应用程序接口数据流类型的分组;
所述的数据流的分组规则是指,对于初始数据集中的应用程序接口数据流,按照数据流的时间顺序,将两个数据流时间间隔小于4.5秒的相邻应用程序接口数据流,划分为一个数据流分组;
(3)提取数据流最小单元:
应用程序接口利用数据流最小单元的分组规则,提取不同应用程序接口数据流类型的分组,从运行时trace文件生成的应用程序接口数据流调用关系树中,提取应用程序接口数据流最小单元;
所述的应用程序接口数据流最小单元的分组规则是指,对于每一个应用程序接口数据流分组内的数据包,按照数据包的时间顺序,将具有相同的应用程序接口数据包,划分成一个应用程序数据流最小单元,7<Count<256,其中,Count为应用程序数据流最小单元中数据包的总数;
(4)提取调用序列特征:
(4a)根据运行时trace文件对应的应用程序接口数据流最小单元,分别从每个应用程序接口数据流最小单元的头部字段调用信息中,提取多种网络行为特征序列;
(4b)将提取到的多种网络行为特征中每一项网络行为特征作为对应向量的每一列特征元素,组成字段网络特征向量;
(5)训练隐马尔科夫模型:
(5a)分别将每个字段网络特征向量标记为与该特征向量对应的软件样本类别,将所有标记后的字段网络特征向量组成隐马尔科夫模型的训练样本集;
(5b)利用Baum-Welch算法,对训练样本集进行训练,得到隐马尔科夫模型;
(5c)利用最大似然推导公式,计算在Baum-Welch算法下得到的隐马尔科夫模型的最大似然输出,将多个类型的最大似然输出组成最大似然向量;
所述的最大似然推导公式如下:
第1步,按照下式,计算特征集合中状态特征的转移概率:
其中,akj表示状态特征qk转移到状态特征qj的转移概率,T表示当前字段特征向量中向量元素的总数,δ(qk,qj)表示状态特征qk与状态特征qj的克罗奈可值,当状态特征qk与状态特征qj相等时,δ(qk,qj)等于1,当状态特征qk与状态特征qj不相等时,δ(qk,qj)等于0,qt表示特征集合中第t个状态特征,qk表示特征集合中第k个状态特征,qt+1表示特征集合中第t+1个状态特征,qj表示特征集合中第j个状态特征;
第2步,按照下式,计算特征集合的发散概率:
其中,bj(l)表示从特征集合中的状态特征qj至下一个状态特征ql的发散概率,ql表示特征集合中第l个状态特征;
第3步,将状态特征qi与状态特征qj的转移概率和发散概率作为特征集合的最大似然输出;
(6)训练随机森林模型:
(6a)将最大似然向量作为随机森林模型的观测值训练样本集;
(6b)利用随机森林算法,对训练样本集进行训练,得到随机森林分类器检测模型;
(7)提取待检测样本的应用程序接口数据流特征:
(7a)利用网络数据包捕获工具,实时捕获待检测样本的应用程序接口数据流特征;
(7b)根据数据流的分组规则,得到待检测样本的应用程序接口数据流分组;
所述的数据流的分组规则是指,对于初始数据集中的应用程序接口数据流,按照数据流的时间顺序,将两个数据流时间间隔小于4.5秒的相邻应用程序接口数据流,划分为一个数据流分组;
(7c)根据数据流最小单元的分组规则,从待检测样本的应用程序接口数据流分组中提取应用程序接口数据流最小单元;
所述的应用程序接口数据流最小单元的分组规则是指,对于每一个应用程序接口数据流分组内的数据包,按照数据包的时间顺序,将具有相同的应用程序接口数据包,划分成一个应用程序数据流最小单元,7<Count<256,其中,Count为应用程序数据流最小单元中数据包的总数;
(7d)提取到网络行为特征作为向量的元素,组成字段网络特征向量;
(8)将待检测样本的特征向量输入随机森林检测模型,判断特征检测模型的输出是否为恶意软件类别,若是,则执行步骤(9),否则,执行步骤(10);
(9)将待检测样本标记为恶意软件,输出待检测样本对应的恶意软件类别;
(10)将待检测样本标记为正常软件,输出待检测样本对应的正常软件类别。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710269007.7/1.html,转载请声明来源钻瓜专利网。