一种恶意代码检测方法、系统、设备及存储介质技术方案

技术编号:27936127 阅读:22 留言:0更新日期:2021-04-02 14:16
本发明专利技术涉及一种恶意代码检测方法、系统、设备及存储介质。该方法包括;(1)训练阶段:利用已知软件样本训练多模态深度神经网络模型;(2)检测阶段:利用训练阶段训练好的多模态深度神经网络模型对未知软件样本进行检测。本发明专利技术可以将任意不同大小的软件样本转换为相同大小的灰度图像,便于应用于卷积神经网络;本发明专利技术同时使用了API函数调用序列、指令序列、字节流三个典型特征,克服了单一特征检测的局限,本发明专利技术多模态深度学习将静态特征与动态特征进行融合决策,能获得更全面且准确的恶意代码检测结果。

【技术实现步骤摘要】
一种恶意代码检测方法、系统、设备及存储介质
本专利技术属于软件安全防护
,涉及一种恶意代码检测方法、系统、设备及存储介质。
技术介绍
随着网络信息技术的不断发展,恶意代码已成为网络空间安全领域面临的最重要威胁之一,特别是变种、混淆、加壳、加密等手段的应用,对恶意代码检测技术提出了更高的要求。机器学习已被广泛应用于恶意代码检测,但是传统的基于机器学习的恶意代码检测技术严重依赖于特征工程,需要依据大量专家知识构建能有效表征恶意代码行为的特征,然后使用分类器进行检测。近年来,随着深度学习技术的发展,出现了大量端到端的恶意代码检测方法,端到端的检测方法将特征提取与分类整合成一个学习过程,避免了特征难构建及需要人工参与的不足。目前,使用灰度图表示恶意代码,然后利用深度神经网络进行端到端检测受到广泛关注,但是由于不同恶意代码大小差异显著,如何将不同大小的恶意代码转换为相同大小的灰度图像,进而更好的应用深度神经网络进行检测是亟需解决的一个重要问题。同时,如何同时使用不同的特征对恶意代码进行表示,然后使用合适的深度学习框架以便获得更好的检测效果也是恶意代码检测领域面临的重要难题。
技术实现思路
针对现有技术的不足,本专利技术提供了一种恶意代码检测方法;本专利技术还提供了一种恶意代码检测系统、计算机存储设备及存储介质。术语解释:软件动态分析和静态分析方法,软件静态分析是指不执行软件程序,通过反汇编等方式获得字符串、操作码、头文件和控制流图等静态特征;动态分析是指在沙箱或虚拟机等受控环境中执行软件程序并记录它在系统中完成的操作,包括函数调用、注册表模式、软件行为和网络活动等。本专利技术的技术方案为:一种恶意代码检测方法,该方法包括;(1)训练阶段:利用已知软件样本训练多模态深度神经网络模型;(2)检测阶段:利用训练阶段训练好的多模态深度神经网络模型对未知软件样本进行检测。根据本专利技术优选的,步骤(1),利用已知软件样本训练多模态深度神经网络模型,包括步骤如下:步骤1.1:提取已知软件样本的API函数调用序列、指令序列、字节流;步骤1.2:分别将提取的已知软件样本的API函数调用序列、指令序列、字节流转换成相应的灰度图像;步骤1.3:使用步骤1.2中得到的由API函数调用序列、指令序列、字节流转换成的灰度图像训练多模态深度神经网络模型。根据本专利技术优选的,步骤1.1,提取已知软件样本的API函数调用序列、指令序列、字节流,包括步骤如下:步骤1.1.1:利用软件动态分析和静态分析方法获得所有已知软件样本的API函数调用序列、指令序列、字节流,统计在所有已知软件样本中出现频次最高的前M个API函数API1,API2,…,APIM与前N个指令INS1,INS2,…,INSN,将M个API函数组成集合A={API1,API2,…,APIM},将N个指令组成集合I={INS1,INS2,…,INSN},M和N为可调参数;步骤1.1.2:将已知软件样本中不属于集合A的API函数都标记为API0,不属于集合I的指令都标记为INS0,进而获得包括M+1种API函数的API函数调用序列即API0,API1,API2,…,APIM和包括N+1种指令的指令序列即INS0,INS1,INS2,…,INSN,以及只有256种字节的字节流BY0,BY1,BY2,…,BY255。根据本专利技术优选的,步骤1.2,分别将提取的已知软件样本的API函数调用序列、指令序列、字节流转换成相应的灰度图像;是指:针对API函数调用序列,构建一个长、宽均为M+1个像素的灰度图,其中第i行,第j列的像素点的取值记作p(APIi,APIj),此取值的计算方法如式(Ⅰ)所示:式(Ⅰ)中,q(APIi,APIj)表示在API函数调用序列中相邻出现且API函数APIi在前API函数APIj在后的函数对的数量;表示不小于x的最小整数;针对指令序列,构建一个长、宽均为N+1个像素的灰度图,其中第i行,第j列的像素点的取值记作p(INSi,INSj),此取值的计算方法如式(Ⅱ)所示:式(Ⅱ)中,q(INSi,INSj)表示在指令序列中相邻出现且指令INSi在前指令INSj在后的指令对的数量;针对字节流,构建一个长、宽均为256个像素的灰度图,其中第i行,第j列的像素点的取值记作p(BYi,BYj),此取值的计算方法如式(Ⅲ)所示:式(Ⅲ)中,q(BYi,BYj)表示在字节流中相邻出现且字节BYi在前字节BYj在后的字节对的数量。根据本专利技术优选的,已知软件样本标注正常或恶意,则通过训练好的多模态深度神经网络模型对未知软件样本判断检测其是正常软件或恶意软件。根据本专利技术优选的,已知软件样本标注其所属的类别,则通过训练好的多模态深度神经网络模型对未知软件样本判断检测所属的类别。根据本专利技术优选的,所述多模态深度神经网络模型包括三个子网络、全连接层及输出层;三个卷积神经网络分别作为三个子网络,每个子网络包括依次连接的若干个卷积池化层、全连接层,所述卷积池化层包括卷积层和池化层。根据本专利技术优选的,步骤1.3,使用步骤1.2中得到的由API函数调用序列、指令序列、字节流转换成的灰度图像训练多模态深度神经网络模型,是指:将步骤1.2中得到的由API函数调用序列、指令序列、字节流转换成的灰度图像分别输入三个子网络,经卷积和池化,通过全连接层和输出层进行多模态的决策融合,训练得到训练好的多模态深度神经网络模型。根据本专利技术优选的,步骤(2),利用训练阶段训练好的多模态深度神经网络模型对未知软件样本进行检测,包括步骤如下:步骤2.1:提取未知软件样本的API函数调用序列、指令序列、字节流;步骤2.2:分别将步骤2.1提取的未知软件样本的API函数调用序列、指令序列、字节流转换成相应的灰度图像;步骤2.3:将步骤2.2中得到的由API函数调用序列、指令序列、字节流转换成的灰度图像输入训练好的多模态深度神经网络模型,得到检测结果。一种恶意代码检测系统,用于实现恶意代码检测方法,包括数据获取模块、预处理模块、检测模块;所述数据获取模块用于:获取软件的API函数调用序列、指令序列、字节流;所述预处理模块用于:将获取的API函数调用序列、指令序列、字节流转换为相应的灰度图;所述检测模块用于:将API函数调用序列、指令序列、字节流转换为相应的灰度图输入训练好的多模态深度神经网络模型进行检测。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述恶意代码检测方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述恶意代码检测方法的步骤。本专利技术的有益效果为:1、本专利技术可以将任意不同大小的软件样本转换为相同大小的灰度图像,便于应用于卷积神经网络。2、本本文档来自技高网...

【技术保护点】
1.一种恶意代码检测方法,其特征在于,该方法包括;/n(1)训练阶段:利用已知软件样本训练多模态深度神经网络模型;/n(2)检测阶段:利用训练阶段训练好的多模态深度神经网络模型对未知软件样本进行检测。/n

【技术特征摘要】
1.一种恶意代码检测方法,其特征在于,该方法包括;
(1)训练阶段:利用已知软件样本训练多模态深度神经网络模型;
(2)检测阶段:利用训练阶段训练好的多模态深度神经网络模型对未知软件样本进行检测。


2.根据权利要求1所述的一种恶意代码检测方法,其特征在于,步骤(1),利用已知软件样本训练多模态深度神经网络模型,包括步骤如下:
步骤1.1:提取已知软件样本的API函数调用序列、指令序列、字节流;
步骤1.2:分别将提取的已知软件样本的API函数调用序列、指令序列、字节流转换成相应的灰度图像;
步骤1.3:使用步骤1.2中得到的由API函数调用序列、指令序列、字节流转换成的灰度图像训练多模态深度神经网络模型。


3.根据权利要求2所述的一种恶意代码检测方法,其特征在于,步骤1.1,提取已知软件样本的API函数调用序列、指令序列、字节流,包括步骤如下:
步骤1.1.1:利用软件动态分析和静态分析方法获得所有已知软件样本的API函数调用序列、指令序列、字节流,统计在所有已知软件样本中出现频次最高的前M个API函数API1,API2,…,APIM与前N个指令INS1,INS2,…,INSN,将M个API函数组成集合A={API1,API2,…,APIM},将N个指令组成集合I={INS1,INS2,…,INSN},M和N为可调参数;
步骤1.1.2:将已知软件样本中不属于集合A的API函数都标记为API0,不属于集合I的指令都标记为INS0,进而获得包括M+1种API函数的API函数调用序列即API0,API1,API2,…,APIM和包括N+1种指令的指令序列即INS0,INS1,INS2,…,INSN,以及只有256种字节的字节流BY0,BY1,BY2,…,BY255。


4.根据权利要求3所述的一种恶意代码检测方法,其特征在于,步骤1.2,分别将提取的已知软件样本的API函数调用序列、指令序列、字节流转换成相应的灰度图像;是指:
针对API函数调用序列,构建一个长、宽均为M+1个像素的灰度图,其中第i行,第j列的像素点的取值记作p(APIi,APIj),此取值的计算方法如式(Ⅰ)所示:



式(Ⅰ)中,q(APIi,APIj)表示在API函数调用序列中相邻出现且API函数APIi在前API函数APIj在后的函数对的数量;
针对指令序列,构建一个长、宽均为N+1个像素的灰度图,其中第i行,第j列的像素点的取值记作p(INSi,INSj),此取值的计算方法如式(Ⅱ)所示:



式(Ⅱ)中,q(INSi,INSj)表示在指令序列中相邻出现且指令INSi在前指令INSj在后的指令对的数量;
针对字节流,构建一个长、宽均为25...

【专利技术属性】
技术研发人员:赵大伟吴晓明杨美红徐丽娟张磊杨淑棉唐勇伟陈川周洋
申请(专利权)人:山东省计算中心国家超级计算济南中心
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1