[发明专利]一种基于深度学习的恶意软件行为检测与分类系统有效
申请号: | 202111254605.X | 申请日: | 2021-10-27 |
公开(公告)号: | CN113961922B | 公开(公告)日: | 2023-03-24 |
发明(设计)人: | 刘晶;唐梓文;吴铤;齐永兴;王淳;谢作樟 | 申请(专利权)人: | 浙江网安信创电子技术有限公司;北京航空航天大学杭州创新研究院 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F18/214;G06N3/045;G06F18/2415 |
代理公司: | 杭州奇炬知识产权代理事务所(特殊普通合伙) 33393 | 代理人: | 贺心韬 |
地址: | 310000 浙江省杭州市下城*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 恶意 软件 行为 检测 分类 系统 | ||
1.一种基于深度学习的恶意软件行为检测与分类系统,其特征在于:具体步骤如下;
S1、读取沙箱采集的正常软件与恶意软件API调用序列,采用布谷鸟沙箱采集正常软件和恶意软件的API调用序列;
S2、针对API调用序列,分别基于自然语言处理(Natural Language Processing,NLP)技术和复杂网络技术提取特征,得到Fn和Fc;利用Bert预训练语言模型,编写代码提取API调用序列属性特征信息,得到特征向量数据集Fn;基于API调用序列的顺序,将每一个API调用作为一个网络节点,依据API调用序列的顺序将前后相连的API调用表示为网络中一条边,编写代码创建邻接列表(adjacency list)和边列表(edge list),再将邻接列表和边列表构成邻接矩阵,通过邻接矩阵来表征网络图;利用networkx库编写代码,计算图中API节点的出度、入度、中心度,挖掘关键节点和社群结构特征信息,得到特征向量数据集Fc;
S3、对步骤S2提取的两组特征Fn和Fc进行组合(Concatenate),得到API调用序列完成特征数据集F;基于F,利用对抗机器学习生成对抗样本Fa,并将Fa合并到F,得到更新后的F;基于CW、GAN攻击方法生成合适的对抗样本;
S4、对步骤S3的完整特征数据集划分训练集、验证集和测试集;
S4.1:基于有监督学习、无监督学习和强化学习分别构建检测与分类子模型;
S4.2:利用TensorFlow库编写模型代码,基于时序卷积网络TCN(TemporalConvolutional Network)训练有监督的恶意软件分类与检测子模型,其中TCN由因果卷积层、扩张卷积层和残差模块组成;
S4.3:利用TensorFlow库编写模型代码,基于注意力机制(Attention Mechanism)的长短期记忆LSTM(Long Short-Term Memory)模型训练有监督的恶意软件分类与检测子模型,该模型包含注意力机制层和LSTM动态行为检测两部分,在注意力机制层中将解码层的每一层隐藏层同编码层相关联,采取点乘得到注意力得分,再使用softmax激活函数得到注意力分布,以计算特征权重,最后对编码层的隐藏层使用加权和聚焦操作得到注意力输出;在LSTM动态行为检测部分,将注意力机制层的输出作为LSTM的输入,通过学习模型,完成对软件动态行为恶意与否的判定,最终完成软件行为的检测与分类;
S4.4:利用TensorFlow库编写模型代码,基于图神经网络GNN(Graph Neural Network)模型采用图分类的思路训练有监督的恶意软件分类与检测子模型,所述图分类包含图的结构信息和各个节点的属性信息,该模型采用图坍塌(Graph Coarsening)池化,将图划分为不同的子图,再将子图视为超级节点,从而形成一个坍塌的图,实现对图全局信息的层次化学习;
S4.5:利用TensorFlow库编写模型代码,基于深度强化学习DRL(Deep ReinforcementLearning)模型训练恶意软件分类与检测模型,将原始数据类型为字符串数组的API调用序列进行编码,采用One-hot编码或聚类算法进行转换,该转换结果将作为后期深度强化学习子模型的输入;
S4.5.1:从离线学习的角度出发,将所有API调用序列的特征向量作为一种状态,对软件的持续分类作为一个动作,把原来的分类问题转换成一个决策问题,并通过强化学习中的Q学习方法进行求解,采用深度学习的方式作为函数近似的方法来学习Q值;
S4.5.2:由环境产生的奖励如下:1)如果状态是恶意软件种类i的,动作输出为ai,则奖励为2;2)如果状态是恶意软件种类i的,动作输出为aj,j∈[1,10],j≠i,则奖励为1;3)如果状态是恶意软件种类i的,动作输出为a11,表示没有检测出,奖励为-1;4)如果状态是正常软件种类,动作输出为aj, j∈[1,10],奖励为-1;
S4.6:利用TensorFlow库编写模型代码,基于贝叶斯神经网络BNN(Bayesian NeuralNetwork)训练无监督的恶意软件分类与检测模型该模型主要由编码器、解码器和采样层组成;
S4.6.1:对训练集进行均值/方差归一化处理,为防止数据泄露,基于训练集的均值/方差对验证集和测试集同样进行归一化处理;
S4.6.2:编写编码层模块、编写统计特征Lambda模块、采样层模块、解码层模块、Variational Lower Bound(VLB)模块;
S4.6.3:根据VLB模块,将输入正常软件的训练数据、解码层输出、Lambda模块输出作为VLB模块的输入,设定模型的损失函数、优化器为和初始化学习率;
S5、基于步骤S4.2,步骤S4.3和步骤S4.4得到的三个有监督学习子模型构建Bagging集成学习模型,基于大于1个的奇数个有监督学习模型构建Bagging集成学习模型;
S6、基于步骤S4.5,步骤S4.6和步骤S5分别得到有监督学习Bagging模型、强化学习模型和无监督学习模型构建Stacking集成学习模型,基于步骤S5得到的Bagging集成学习模型输出、无监督学习模型和强化学习模型构建Stacking集成学习模型;
S7、保存模型,以此模型对未知分类软件进行检测与分类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江网安信创电子技术有限公司;北京航空航天大学杭州创新研究院,未经浙江网安信创电子技术有限公司;北京航空航天大学杭州创新研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111254605.X/1.html,转载请声明来源钻瓜专利网。