[发明专利]基于RNN和CNN的Android恶意软件检测方法及系统有效
| 申请号: | 201910751207.5 | 申请日: | 2019-08-15 |
| 公开(公告)号: | CN110489968B | 公开(公告)日: | 2021-02-05 |
| 发明(设计)人: | 赵立超;李丹;陈璨;史闻博;李天祥 | 申请(专利权)人: | 东北大学秦皇岛分校 |
| 主分类号: | G06F21/56 | 分类号: | G06F21/56;G06N3/04;G06N3/08;G06F8/53 |
| 代理公司: | 石家庄知住优创知识产权代理事务所(普通合伙) 13131 | 代理人: | 林艳艳 |
| 地址: | 066004 河北省秦*** | 国省代码: | 河北;13 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 rnn cnn android 恶意 软件 检测 方法 系统 | ||
1.一种基于RNN和CNN的Android恶意软件检测方法,其特征在于:包括以下步骤:
S1,对训练样本的原始安装文件进行特征提取,获得操作码序列;
S2,利用操作码序列训练BLSTM网络,得到训练好的BLSTM网络;
S3,利用训练好的BLSTM网络将操作码序列提取为特征图片;
所述步骤S3具体包括以下处理:
S3-1,对照Dalvik指令表对操作码序列进行one-hot编码后再输入到训练好的BLSTM网络中;
S3-2,提取每个隐藏层的输出向量{h1,h2,…,hL};
S3-3,利用将L个隐藏层的输出向量分成N个向量组,对每个向量组求平均,得到N个特征向量;其中,fk是固定长度向量序列的一个元素,L是操作码序列的长度,N是特征图片的高度,pk是第k个向量组的最后一个数字;
S3-4,将N个特征向量拼在一起构成N*W的特征矩阵F:
其中W是BLSTM中隐藏层的维度,Dalvik指令共256个,故W=256;
S3-5,用sigmoid函数将特征矩阵F中的元素转化为[0,1],再乘255以形成256级灰色图片,得到尺寸为N*256的特征图片;
S4,利用特征图片训练卷积神经网络,得到训练好的卷积神经网络;
S5,对待检测Android应用,首先对其安装文件进行特征提取,获得其操作码序列;然后将该操作码序列输入步骤S2获得的训练好的BLSTM网络中,提取出特征图片;最后将该特征图片输入到步骤S4中训练好的卷积神经网络中,输出是否属于恶意软件的分类结果。
2.根据权利要求1所述的基于RNN和CNN的Android恶意软件检测方法,其特征在于:所述步骤S1具体包括以下处理:
S1-1,解压缩训练样本的.apk安装文件,获取.apk安装文件包含的class.dex文件;
S1-2,对class.dex文件进行反编译,获取Android应用的.smali文件;
S1-3,舍弃.smali文件中的操作数,得到操作码序列。
3.根据权利要求1所述的基于RNN和CNN的Android恶意软件检测方法,其特征在于:所述步骤S2具体包括以下处理:
S2-1,BLSTM网络参数和权重随机初始化;
S2-2,将操作码序列输入BLSTM网络,进行训练;
S2-3,通过对比当前神经元的输出向量和下一神经元的输入向量计算损失函数,通过反向传播算法更新参数和权重;循环执行S2-2至S2-3,直至BLSTM满足条件或训练周期结束。
4.根据权利要求1所述的基于RNN和CNN的Android恶意软件检测方法,其特征在于:所述步骤S4具体包括以下处理:
S4-1,卷积神经网络参数和权重随机初始化;
S4-2,将尺寸为N*256的特征图片输入卷积神经网络,进行训练;
S4-3,根据神经网络的误测精度反向传播进行权重和参数的调整,直至CNN满足条件或训练周期结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学秦皇岛分校,未经东北大学秦皇岛分校许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910751207.5/1.html,转载请声明来源钻瓜专利网。





