掌桥专利:专业的专利平台
掌桥专利
首页

恶意软件检测方法、系统、可读存储介质及计算机

文献发布时间:2024-04-18 19:53:33


恶意软件检测方法、系统、可读存储介质及计算机

技术领域

本发明涉及软件检测技术领域,特别涉及一种恶意软件检测方法、系统、可读存储介质及计算机。

背景技术

随着计算机技术的飞速发展,计算机技术已经深入到每个人的日常生活中,在伴随着社会对网络和计算机技术的依赖,各式各样的恶意软件也开始在网络中进行大量传播,因此,人们对于恶意软件的检测也越来越重视。

恶意软件通常是通过邮件、链接以及系统漏洞等手段进行传播,导致个人和企业的计算机设备带来较大威胁,造成大量的经济损失;现有的恶意软件的检测方法通常是采用静态分析法,静态分析法是通过不执行相关程序,直接对计算机设备进行快速检测,并对该计算机设备中的未知程序进行识别,从而达到对恶意软件的清除效果,然而,较多的恶意软件会使用相关的隐藏手段来阻碍静态分析,导致静态分析法对恶意软件的检测效果不太理想,无法做到完全清除的效果。

发明内容

基于此,本发明的目的是提供一种恶意软件检测方法、系统、可读存储介质及计算机,以至少解决上述技术中的不足。

本发明提出一种恶意软件检测方法,包括:

构建软件检测环境,并实时记录所有软件在所述软件检测环境下的运行文件;

对所述运行文件进行文件预处理,以得到所述运行文件的样本数据;

解析出所述样本数据中的标记序列,并将所述标记序列进行打包编译,以得到对应的灰度数据;

构建卷积神经网络模型,并将所述灰度数据输入所述卷积神经网络模型中,以得到所述灰度数据与目标向量的偏差量;

基于所述偏差量和预设偏差阈值确定所述灰度数据中的异常灰度数据,并基于所述偏差量和所述异常灰度数据对所述卷积神经网络模型进行模型优化,以得到对应的检测模型;

根据所述检测模型对待检测软件进行恶意软件检测,以得到对应的检测结果。

进一步的,所述构建软件检测环境,并实时记录所有软件在所述软件检测环境下的运行文件的步骤包括:

构建恶意软件分析参数,并将所述恶意软件分析参数运用于仿真分析模型中进行仿真运行;

记录所述仿真运行中所有软件的行为数据以及状态数据,并将所述行为数据和所述状态数据进行数据转换,以得到对应的运行文件。

进一步的,对所述运行文件进行文件预处理,以得到所述运行文件的样本数据的步骤包括:

对所述运行文件进行序列截断处理,并对序列截断处理后的运行文件进行逆向编辑,以得到对应的逆向编辑数据;

对所述逆向编辑数据进行向量化处理,以得到向量编辑数据,并对所述向量编辑数据进行负载转化,从而得到对应的样本数据。

进一步的,解析出所述样本数据中的标记序列,并将所述标记序列进行打包编译,以得到对应的灰度数据的步骤包括:

解析出所述样本数据中的标记序列,并对所述标记序列进行加权运算,以得到所述标记序列中标记向量;

对所述标记向量进行向量映射,以得到对应的像素点,并根据所述像素点构建出灰度数据。

进一步的,构建卷积神经网络模型的步骤包括:

定义卷积计算的成本数据,并根据所述成本数据进行参数计算得到卷积参数;

定义卷积嵌入向量,并利用所述卷积嵌入向量进行卷积输出,以得到对应的卷积特征,根据所述卷积特征和所述卷积参数构建所述卷积神经网络模型。

进一步的,所述成本数据的表达式为:

式中,

所述卷积参数的表达式为:

本发明还提出一种恶意软件检测系统,包括:

检测环境构建模块,用于构建软件检测环境,并实时记录所有软件在所述软件检测环境下的运行文件;

预处理模块,用于对所述运行文件进行文件预处理,以得到所述运行文件的样本数据;

数据解析模块,用于解析出所述样本数据中的标记序列,并将所述标记序列进行打包编译,以得到对应的灰度数据;

模型构建模块,用于构建卷积神经网络模型,并将所述灰度数据输入所述卷积神经网络模型中,以得到所述灰度数据与目标向量的偏差量;

模型优化模块,用于基于所述偏差量和预设偏差阈值确定所述灰度数据中的异常灰度数据,并基于所述偏差量和所述异常灰度数据对所述卷积神经网络模型进行模型优化,以得到对应的检测模型;

软件检测模块,用于根据所述检测模型对待检测软件进行恶意软件检测,以得到对应的检测结果。

进一步的,所述检测环境构建模块包括:

仿真运行单元,用于构建恶意软件分析参数,并将所述恶意软件分析参数运用于仿真分析模型中进行仿真运行;

数据记录单元,用于记录所述仿真运行中所有软件的行为数据以及状态数据,并将所述行为数据和所述状态数据进行数据转换,以得到对应的运行文件。

进一步的,所述预处理模块包括:

对所述运行文件进行序列截断处理,并对序列截断处理后的运行文件进行逆向编辑,以得到对应的逆向编辑数据;

对所述逆向编辑数据进行向量化处理,以得到向量编辑数据,并对所述向量编辑数据进行负载转化,从而得到对应的样本数据。

进一步的,所述数据解析模块包括:

解析出所述样本数据中的标记序列,并对所述标记序列进行加权运算,以得到所述标记序列中标记向量;

对所述标记向量进行向量映射,以得到对应的像素点,并根据所述像素点构建出灰度数据。

进一步的,所述模型构建模块包括:

定义卷积计算的成本数据,并根据所述成本数据进行参数计算得到卷积参数;

定义卷积嵌入向量,并利用所述卷积嵌入向量进行卷积输出,以得到对应的卷积特征,根据所述卷积特征和所述卷积参数构建所述卷积神经网络模型。

本发明还提出一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的恶意软件检测方法。

本发明还提出一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的恶意软件检测方法。

本发明当中的恶意软件检测方法、系统、可读存储介质及计算机,通过构建软件检测环境,并实时记录所有软件在该检测环境下的运行文件,根据所有软件的运行文件对恶意软件进行跟踪;通过对运行文件进行预处理实现恶意软件的有效检测,将样本数据转换成对应的灰度数据,进而利用卷积神经网络对灰度数据进行特征分类,将复杂的特征转化为简单的二值化图像特征,有效的提升恶意软件的分类效率,降低复杂特征对恶意软件的检测准确率的影响。

附图说明

图1为本发明第一实施例中恶意软件检测方法的流程图;

图2为图1中步骤S101的详细流程图;

图3为图1中步骤S102的详细流程;

图4为图1中步骤S103的详细流程

图5为图1中步骤S104的详细流程图;

图6为本发明第二实施例中软件测试系统的结构框图;

图7为本发明第三实施例中的计算机的结构框图。

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。

需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

实施例一

请参阅图1,所示为本发明第一实施例中的恶意软件检测方法,所述恶意软件检测方法具体包括步骤S101至S106:

S101,构建软件检测环境,并实时记录所有软件在所述软件检测环境下的运行文件;

进一步的,请参阅图2,所述步骤S101具体包括步骤S1011~S1012:

S1011,构建恶意软件分析参数,并将所述恶意软件分析参数运用于仿真分析模型中进行仿真运行;

S1012,记录所述仿真运行中所有软件的行为数据以及状态数据,并将所述行为数据和所述状态数据进行数据转换,以得到对应的运行文件。

在具体实施时,常见的恶意软件通常包括木马、病毒、蠕虫以及广告软件等,不同的恶意软件包含有其对应的底层数据,本实施例利用多个已知的恶意软件,并将多个已知的恶意软件输入至特征分析模型中进行特征分析,以确定出各恶意软件中的特征信息,将该特征信息作为基础,构建恶意软件分析参数,将该恶意软件分析参数运用于仿真分析模型中进行仿真运行,同时记录仿真运行过程中所有软件的行为数据和状态数据,并将行为数据和状态数据进行数据转换,以得到对应的运行文件。

需要说明的是,本实施例还能够预先构建沙箱环境,并利用该沙箱环境运行恶意软件,此时,沙箱会基于该恶意软件的运行记录所有的行为与状态,并将该行为与状态保存为报告文件(该报告文件所采用的格式为json格式),该报告文件中记录有程序所有的动态操作行为与对系统环境所产生的影响,从该报告文件中提取程序运行时所调用的系统API序列,将该系统API序列转换为对应的运行文件。

S102,对所述运行文件进行文件预处理,以得到所述运行文件的样本数据;

进一步的,请参阅图3,所述步骤S102具体包括步骤S1021~S1022:

S1021,对所述运行文件进行序列截断处理,并对序列截断处理后的运行文件进行逆向编辑,以得到对应的逆向编辑数据;

S1022,对所述逆向编辑数据进行向量化处理,以得到向量编辑数据,并对所述向量编辑数据进行负载转化,从而得到对应的样本数据。

在具体实施时,在上述得到的运行文件中进行序列名读取,由于恶意软件为了隐藏其目的会对系统所产生无意义调用,该调用会产生相应的序列名,将序列名存在重复的文件进行去除以及截断处理,通常,同族的恶意软件之间的执行码序列频率与分布存在相似性,本实施例通过对序列截断处理后的运行文件进行执行码识别,利用交互式反汇编器对序列截断处理后的运行文件进行逆向编辑,从而得到对应的逆向编辑数据,在本实施例中,仅提取执行码的前4位字符,当字符不满4位时,利用空格进行填充,当字符超过4位时,截取所超过的部分。

具体的,在得到逆向编辑数据后,对该逆向编辑数据进行数字向量化处理,本实施例中采用TF-IDF加权法对该逆向编辑数据进行词频统计,从而得到该逆向编辑数据中各词句的重要度;

可以理解的,通过TF-IDF加权法过滤掉逆向编辑数据中不必要的词句,进而有效的抑制数据中的噪声因素,有效的提升恶意软件的识别效率。

进一步的,提取上述得到的向量编辑数据中的有效负载,并对该有效负载进行负载转化得到对应的样本数据,其中,该有效负载即为向量编辑数据中包含有软件标识的数据,可以理解的,通过负载转化能够过滤数据中与软件无关的数据,进而保证后续处理的精准度。

S103,解析出所述样本数据中的标记序列,并将所述标记序列进行打包编译,以得到对应的灰度数据;

进一步的,请参阅图4,所述步骤S103具体包括步骤S1031~S1032:

S1031,解析出所述样本数据中的标记序列,并对所述标记序列进行加权运算,以得到所述标记序列中标记向量;

S1032,对所述标记向量进行向量映射,以得到对应的像素点,并根据所述像素点构建出灰度数据。

在具体实施时,将上述的样本数据转换成对应的哈希值,并将该哈希值进行散列值计算,从而得到256位的哈希值序列

将上述得到的标记向量进行向量映射,生成64个灰度值为0的像素点,根据Sim哈希值每一位的位置对其进行一一映射。对于任一像素点,如果

S104,构建卷积神经网络模型,并将所述灰度数据输入所述卷积神经网络模型中,以得到所述灰度数据与目标向量的偏差量;

进一步的,请参阅图5,所述步骤S104具体包括步骤S1041~S1042:

S1041,定义卷积计算的成本数据,并根据所述成本数据进行参数计算得到卷积参数;

S1042,定义卷积嵌入向量,并利用所述卷积嵌入向量进行卷积输出,以得到对应的卷积特征,根据所述卷积特征和所述卷积参数构建所述卷积神经网络模型。

在具体实施时,通过分解滤波器来降低参数计算量,定义卷积计算的成本数据,其中,成本数据的表达式为:

式中,

可以理解的,卷积参数与成本数据相比,能够降低卷积计算的难度,所降低的难度表达式如下:

具体的,定义卷积嵌入向量,并将该卷积嵌入向量与卷积核中的大小相乘并加上偏置得到一维卷积输出,卷积核通过滑动完成卷积运算,对该卷积嵌入向量进行压缩以输出卷积特征,通过卷积特征和上述得到的卷积参数通过神经网络构建形成卷积神经网络模型。

在本实施例中,该卷积神经网络模型采用双层结构,其中,第一层结构采用多个一维卷积层(在本实施例中选用深度可分离卷积)和最大池化层组成,一维卷积层的尺寸宽度为3,包含128个卷积核,步长为1,填充方式为valid,数据经过一维卷积层后会通过最大池化层筛选出该一维卷积层的局部关键特征,第二层结构采用记忆网络层LSTM,记忆网络层LSTM中的门可以使数据具有长期记忆能力,解决数据长依赖的情况,还可以缓解卷积神经网络中的梯度消失问题。

在得到上述卷积神经网络模型后,将上述的灰度数据输入卷积神经网络模型中进行卷积处理,以得到灰度数据与目标向量的偏差量。

S105,基于所述偏差量和预设偏差阈值确定所述灰度数据中的异常灰度数据,并基于所述偏差量和所述异常灰度数据对所述卷积神经网络模型进行模型优化,以得到对应的检测模型;

在具体实施时,将上述的偏差量与预设偏差阈值进行比对,其中,预设偏差阈值为各类恶意软件所对应的偏差阈值,当偏差量处于该偏差阈值之间,则意味着该灰度数据为异常灰度数据(与恶意软件相关的数据),并将偏差量和异常灰度数据输入卷积神经网络模型中进行模型学习,从而得到对应的检测模型。

S106,根据所述检测模型对待检测软件进行恶意软件检测,以得到对应的检测结果。

在具体实施时,将上述的检测模型进行存储,当获取到待检测软件时,通过该检测模型对该待检测软件进行恶意软件检测,从而得到对应的检测结果。

综上,本发明上述实施例中的恶意软件检测方法,通过构建软件检测环境,并实时记录所有软件在该检测环境下的运行文件,根据所有软件的运行文件对恶意软件进行跟踪;通过对运行文件进行预处理实现恶意软件的有效检测,将样本数据转换成对应的灰度数据,进而利用卷积神经网络对灰度数据进行特征分类,将复杂的特征转化为简单的二值化图像特征,有效的提升恶意软件的分类效率,降低复杂特征对恶意软件的检测准确率的影响。

实施例二

本发明另一方面还提出一种软件测试系统,请查阅图6所示为本发明第二实施例中的软件测试系统,所述系统包括:

检测环境构建模块11,用于构建软件检测环境,并实时记录所有软件在所述软件检测环境下的运行文件;

进一步的,所述检测环境构建模块11包括:

仿真运行单元,用于构建恶意软件分析参数,并将所述恶意软件分析参数运用于仿真分析模型中进行仿真运行;

数据记录单元,用于记录所述仿真运行中所有软件的行为数据以及状态数据,并将所述行为数据和所述状态数据进行数据转换,以得到对应的运行文件。

预处理模块12,用于对所述运行文件进行文件预处理,以得到所述运行文件的样本数据;

进一步的,所述预处理模块12包括:

对所述运行文件进行序列截断处理,并对序列截断处理后的运行文件进行逆向编辑,以得到对应的逆向编辑数据;

对所述逆向编辑数据进行向量化处理,以得到向量编辑数据,并对所述向量编辑数据进行负载转化,从而得到对应的样本数据。

数据解析模块13,用于解析出所述样本数据中的标记序列,并将所述标记序列进行打包编译,以得到对应的灰度数据;

进一步的,所述数据解析模块13包括:

解析出所述样本数据中的标记序列,并对所述标记序列进行加权运算,以得到所述标记序列中标记向量;

对所述标记向量进行向量映射,以得到对应的像素点,并根据所述像素点构建出灰度数据。

模型构建模块14,用于构建卷积神经网络模型,并将所述灰度数据输入所述卷积神经网络模型中,以得到所述灰度数据与目标向量的偏差量;

进一步的,所述模型构建模块14包括:

定义卷积计算的成本数据,并根据所述成本数据进行参数计算得到卷积参数;

定义卷积嵌入向量,并利用所述卷积嵌入向量进行卷积输出,以得到对应的卷积特征,根据所述卷积特征和所述卷积参数构建所述卷积神经网络模型。

模型优化模块15,用于基于所述偏差量和预设偏差阈值确定所述灰度数据中的异常灰度数据,并基于所述偏差量和所述异常灰度数据对所述卷积神经网络模型进行模型优化,以得到对应的检测模型;

软件检测模块16,用于根据所述检测模型对待检测软件进行恶意软件检测,以得到对应的检测结果。

上述各模块、单元被执行时所实现的功能或操作步骤与上述方法实施例大体相同,在此不再赘述。

本发明实施例所提供的软件测试系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容。

实施例三

本发明还提出一种计算机,请参阅图7,所示为本发明第三实施例中的计算机,包括存储器10、处理器20以及存储在所述存储器10上并可在所述处理器20上运行的计算机程序30,所述处理器20执行所述计算机程序30时实现上述的恶意软件检测方法。

其中,存储器10至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器10在一些实施例中可以是计算机的内部存储单元,例如该计算机的硬盘。存储器10在另一些实施例中也可以是外部存储装置,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器10还可以既包括计算机的内部存储单元也包括外部存储装置。存储器10不仅可以用于存储安装于计算机的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。

其中,处理器20在一些实施例中可以是电子控制单元 (Electronic ControlUnit,简称ECU,又称行车电脑)、中央处理器(Central Processing Unit, CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器10中存储的程序代码或处理数据,例如执行访问限制程序等。

需要指出的是,图7示出的结构并不构成对计算机的限定,在其它实施例当中,该计算机可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本发明实施例还提出一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的恶意软件检测方法。

本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 机器学习恶意软件检测模型的方法、系统和计算机可读介质
  • 目标检测系统、方法、空调系统和计算机可读存储介质
  • 疲劳检测方法、装置、系统及计算机可读存储介质
  • 死机检测方法、装置、播放系统及计算机可读存储介质
  • 一种用于裁床上的裁刀角度检测方法及系统、计算机可读存储介质、终端
  • 一种恶意软件检测方法、装置、物联网云平台以及计算机可读存储介质
  • 恶意软件的检测方法及装置、计算机装置及可读存储介质
技术分类

06120116342005