[发明专利]一种云平台上基于RNN的恶意软件检测方法有效

专利信息
申请号: 202011315600.9 申请日: 2020-11-21
公开(公告)号: CN112464233B 公开(公告)日: 2023-04-07
发明(设计)人: 姚烨;贾耀;钱亮 申请(专利权)人: 西北工业大学
主分类号: G06F21/56 分类号: G06F21/56;G06N3/0442;G06N3/084;G06N3/045
代理公司: 西安凯多思知识产权代理事务所(普通合伙) 61290 代理人: 刘新琼
地址: 710072 *** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 平台 基于 rnn 恶意 软件 检测 方法
【权利要求书】:

1.一种云平台上基于RNN的恶意软件检测方法,其特征在于步骤如下:

步骤1:基于时序的API调用序列的提取

为APK文件创建一个dex对象,通过对dex对象的分析,提取出该APK文件的函数调用图,通过对函数调用图中边信息的分析,获得各类内的函数调用关系;在此调用关系的基础上使用深度优先遍历算法完善每条调用序列;此时获得多条完整的类内调用序列,依据序列头节点在内存中的地址信息进行排序;最后按照地址递增的顺序将所有类内调用序列拼接在一起,构建成一条完整的API调用序列;

步骤2:API序列数据预处理

提取出API调用序列后,接下来对提取出来的API序列进行预处理:

(1)首先对API序列进行子序列提取,采用n-gram算法来执行此步骤,并将滑动窗口大小设置为4;

(2)上一步中提取出来的子序列数量很大,通过信息增益算法确认划分出来的子序列的有效性,依据信息增益算法得出来每个子序列的信息增益值,按照值大小将序列排序,然后选择信息量较高的子序列作为有效特征子序列;

(3)按照原始API序列中API调用顺序将提取出来的有效子序列连接起来;

(4)最后利用连续相同模式API去除法对得到的API序列进一步处理;

所述的连续相同模式API去除的方法;当连续相同模式长序列为S1S2S2S2S2S2S2S2,去除后为S1S2;当连续相同模式长序列为S2S2S2S2S2S2S2S2,去除后为S2S2

至此,对API序列的预处理完成,为了输入神经网络,还需将API序列转换为向量,具体方法如下:

(1)首先对每个API函数用特定的整数表示,每个API序列构建成为一个one-hot向量;

(2)然后利用构建的one-hot向量来训练skip-gram网络模型,该模型通过寻找与输入API属于同一类型的若干个API这样一个伪任务来获得能够记录API属性的API向量;

(3)当训练次数达到一定程度,取出模型中的Embedding矩阵,用API序列的one-hot向量与Embedding权重矩阵的乘积来表示该序列的Embedding向量;

具体解释如下:假设Embedding的权重矩阵为[VocabSize,EmbeddingSize]的稠密矩阵W,其中VocabSize为需要Embedding的所有项目的个数,EmbeddingSize为经过Embedding映射后的向量长度;那么对于函数Embedding(W,var),其中的var是向量的one-hot向量,大小为[1,VocabSize],此one-hot向量与矩阵W[VocabSize,EmbeddingSize]相乘,结果是一个[1,EmbeddingSize]向量,该向量就是此API序列对应的Embedding向量;权重矩阵W的值会在训练开始前进行随机初始化,在训练过程利用反向传播,实现值的更新;

步骤3:构建基于RNN的恶意软件检测模型

构建了双向LSTM网络,同时训练一个正向和一个反向的两个LSTM网络,使得API序列对于自己的上下文信息均有覆盖,并且将两个网络输出的最终状态h_n组合起来,作为样本的训练结果,再将该训练结果经过一个sigmoid函数即可进行判断;

在双向LSTM网络基本架构如上所述的前提下,在每个单向的网络中添加了15个隐藏层,每个隐藏层中包含16个隐藏层节点;并且分别在Embedding层和隐藏层后面使用了dropout技术,在防止过拟合的前提下提高训练效率;

还对网络的Embedding层进行了预处理:将之前API向量化时训练好的Embedding矩阵直接放入双向LSTM网络的Embedding层,这样在保留输入属性的同时加快了模型收敛速度;

步骤4:基于RNN的检测模型的训练

网络的训练采用BackPropagation算法,算法流程如下:

(1)迭代性地来处理训练集中的实例;

(2)初始权重和偏向一般随机初始化到-1到1或者-0.5到0.5之间;

(3)信号正向传导过程:输入层信号值通过隐藏层,经过非线性变换,作用于输出节点,获得预测值;

(4)对比经过神经网络后输出层预测值与真实值之间的误差;

(5)误差反向传到过程:将输出层误差反方向传导以更新每个连接的权重和每个节点的偏向;即:输出层-隐藏层-输入层;

(6)经过反复训练,当训练次数达到最大时,停止对分类器的训练;

将模型构建在云平台上,将模型的训练建立在Spark内核之上,加速模型的训练,Spark集群由Driver,Cluster Manager,Standalone,Yarn或Mesos,以及Worker Node组成;对于每个Spark应用程序,Worker Node上存在一个Executor进程,Executor进程中包括多个Task线程;Spark上的任务启动后,Driver向Cluster Manager申请资源;Cluster Manager向某些Work Node发送征召信号;被征召的Work Node启动Executor进程响应征召,并向Driver申请任务;Driver将任务的程序代码和不同的数据分片分发给Word Node;每个WorkNode根据拿到的数据进行完整逻辑的任务,完成训练后将任务参数汇总发送给Driver程序;最后再将各参数进行平均化处理。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011315600.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top