一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种恶意代码检测方法、装置及计算机设备与流程

2022-11-23 14:57:18 来源:中国专利 TAG:


1.本发明涉及互联网安全技术领域,具体涉及一种恶意代码检测方法、装置及计算机设备。


背景技术:

2.随着互联网、移动互联网、物联网以及工业控制网络的快速发展,信息技术逐渐渗透到各行各业,给生活带来便利的同时,也带来了网络安全的问题。其中恶意外码的检测技术是防止网络完全的重要部分。现有技术技术中关于恶意代码的检测技术大多是采用机器学习中改进随机森林算法、svm等方法对入侵检测进行二分类,从而完成对入侵行为的识别并预警。而现有技术中的检测方法的过程中容易陷入局部最优,并且对恶意代码的特征提取不够全面。


技术实现要素:

3.因此,为解决现有技术的不足,本发明实施例提供了一种恶意代码检测方法、装置及计算机设备。
4.根据第一方面,本发明实施例公开了恶意代码检测方法,包括:
5.获取可执行文件的文件信息;
6.将文件信息通过预设算法转化为二维矩阵;
7.将二维矩阵转化为rgb图像;
8.利用预设模型对rgb图像进行预测,得到预测结果;
9.根据预测结果确定可执行文件是否包括恶意代码。
10.可选地,预测结果包括rgb图像中每一个第一特征的类别,根据预测结果确定可执行文件是否包括恶意代码,具体包括:
11.利用预设算法确定类别的概率;
12.当概率满足预设条件,则可执行文件包括恶意代码。
13.可选地,将文件信息通过预设算法转化为二维矩阵,具体包括:
14.将文件信息转化为十进制数据,得到r通道数据矩阵;
15.对文件信息进行反汇编,得到可执行文件的代码信息;
16.根据代码信息,得到g通道数据矩阵;
17.根据文件信息的数据结构,得到b通道数据矩阵;
18.根据r通道数据矩阵、g通道数据矩阵和b通道数据矩阵,得到二维矩阵。
19.可选地,根据代码信息,得到g通道数据矩阵,具体包括:
20.从代码信息中提取第一特征信息;
21.根据第一特征信息,确定g通道数据。
22.可选地,预设模型包括第一预设模型和第二预设模型,
23.利用预设模型对rgb图像进行预测,得到预测结果,具体包括:
24.利用第一预设模型对rgb图像进行特征提取,得到至少一个第二特征信息;
25.利用第二预设模型对每一个第二特征信息分别进行识别,得到与每一个第二特征信息对应的类别。
26.可选地,类别包括第一类别和第二类别,当根据预测结果确定可执行文件包括恶意代码时,方法还包括:
27.根据第二类别对应的第二特征信息,确定可执行文件中恶意代码的位置,第一类别用于指示第二特征信息为正常特征信息,第二类别用于指示第二特征信息为非正常特征信息。
28.根据第二方面,本发明实施例还公开了一种恶意代码检测装置,装置包括:
29.获取模块,用于获取可执行文件的文件信息;
30.第一转化模块,用于将文件信息通过预设算法转化为二维矩阵;
31.第二转化模块,用于将二维矩阵转化为rgb图像;
32.预测模块,用于利用预设模型对rgb图像进行预测,得到预测结果;
33.确定模块,用于根据预测结果确定可执行文件是否包括恶意代码。
34.可选地,预测结果包括rgb图像中每一个第一特征的类别,确定模块,具体包括:
35.概率确定模块,用于利用预设算法确定类别的概率;
36.判断模块,用于当概率满足预设条件,则可执行文件包括恶意代码。
37.根据第三方面,本发明实施例还公开了一种计算机设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行如第一方面或第一方面任一可选实施方式的恶意代码检测方法的步骤。
38.根据第四方面,本发明实施方式还公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面或第一方面任一可选实施方式的恶意代码检测方法的步骤。
39.本发明技术方案,具有如下优点:
40.本发明提供的恶意代码检测方法、装置及计算机设备,包括:获取可执行文件的文件信息,其中文件信息包括了可执行文件的各类特征信息,因此根据文件信息可以对可执行文件进行准确的描述,进而,可以通过预设算法将可执行文件中的特征信息全部转化为以二维矩阵来进行体现,进一步将二维矩阵转化为多通道的rgb图像进行可视化展示,通过预设模型对rgb图像的每一个特征进行预测,从而解决了特征提取不全面的问题,最后根据预测结果可以准确的判断可执行文件中是否包括恶意代码。
附图说明
41.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本发明实施例中恶意代码检测方法的一个具体示例的示意图;
43.图2为本发明实施例中恶意代码检测方法的一个具体示例的流程图;
44.图3为本发明实施例中恶意代码检测方法的一个具体示例的流程图;
45.图4为本发明实施例中恶意代码检测方法的一个具体示例的示意图;
46.图5为本发明实施例中恶意代码检测方法的一个具体示例的示意图;
47.图6为本发明实施例中恶意代码检测方法的一个具体示例的示意图;
48.图7为本发明实施例中恶意代码检测装置的一个具体示例的原理框图;
49.图8为本发明实施例中计算机设备的一个具体示例图。
具体实施方式
50.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
52.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
53.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
54.恶意代码的攻击通常是通过可执行文件从磁盘到内存中映射时,将恶意代码写入内存映射所留每一段空白处,如图1中箭头所指位置,恶意代码会改变可执行文件指向的地址,使得文件在运行时首先会运行这段恶意代码,因此对恶意代码的识别至关重要。本实施例中以工业控制网络为例进行介绍,其中工业控制网络的层次由上至下主要是分为了管理层、监控层以及设备层,管理层往往采用tcp/ip协议,通过以太网实现与外部网络的连接,通常会受到外部恶意代码的攻击。
55.针对背景技术中所提及的技术问题,本技术实施例提供了一种恶意代码检测方法,具体参见图2所示,该方法包括如下步骤:
56.步骤201,获取可执行文件的文件信息。
57.示例性地,文件信息为可执行文件的信息,其中可执行文件在存储时均是以二进制信息来存储的,所以文件信息也即是可执行文件的二进制信息,其中二进制信息包括了可执行文件的所有信息。
58.步骤202,将文件信息通过预设算法转化为二维矩阵。
59.示例性地,预设算法可以是b2m算法,利用b2m算法将二进制信息转化为对应的二维矩阵,也就是灰阶图,具体的实现过程可以采用python来实现。计算机上存储文件其本质都是二进制信息,二进制信息都是用01010

来表示,b2m算法的过程即为读取8bit为一个
无符号的整型(即整数,二进制信息和十进制数之间是可以转换的),根据指定行宽形成向量(定义256为行宽向量),然后将整个二进制文件表示为向量形成的数组,数组中的每个元素表示范围都在[0,255]之间(0表示黑色,255表示白色)二维矩阵。
[0060]
在一个可选的实施例中,如图3所示,将文件信息通过预设算法转化为二维矩阵,具体包括:
[0061]
步骤2021,将文件信息转化为十进制数据,得到r通道数据矩阵。
[0062]
示例性地,二进制信息都是用01010

来表示,而文件通常十六进制数,相对应的将十六进制转换为十进制数。同样通过b2m算法将十六进制转化为十进制,最终得到r通道数据位于[0,255]的矩阵,也就是r通道数据矩阵。
[0063]
步骤2022,对文件信息进行反汇编,得到可执行文件的代码信息。
[0064]
示例性地,反汇编的内容属于计算机基础理论,是将机器语言(二进制信息)转化为汇编语言,由低级语言到高级语言的转变(即计算机能够执行的语言,像c语言等编写的程序是属于高级语言为方便程序员编程,而计算机识别不了),因为最底层的机器语言只有01010

来表示,无法显现出恶意代码的特征,所以将其反汇编为机器语言(代码信息),更容易进行后续过程。
[0065]
步骤2023,根据代码信息,得到g通道数据矩阵。
[0066]
示例性地,在进行反汇编得到代码信息之后,将代码信息中具有代表性的信息(例如汇编指令地址等,也就是第一特征信息)进行提取,并将汇编指令地址等转化为[0,255]的值复制到二维矩阵中,从而得到g通道的数据。
[0067]
步骤2024,根据文件信息的数据结构,得到b通道数据矩阵。
[0068]
示例性地,文件信息得到数据结构,数据结构可以是文件头、节表、资源段、代码段、入口点等一系列信息。将这些数据结构转化为二维矩阵中的数据,得到b通道数据矩阵。
[0069]
步骤2025,根据r通道数据矩阵、g通道数据矩阵和b通道数据矩阵,得到二维矩阵。
[0070]
示例性地,将b通道数据矩阵、r通道数据矩阵和g通道数据矩阵相加可以得到rgb图像对应的二维矩阵。
[0071]
步骤203,将二维矩阵转化为rgb图像。
[0072]
示例性地,同样转化为rgb图像的实现过程可以采用python来实现。单一通道的灰阶图对恶意代码特征描述不够全面,在此基础上,加入rgb图像的概念,利用彩色图像的多通道特性,从多个维度来描述恶性代码文件特征,提高检测的效率。
[0073]
在得到rgb图像之后,为提升预测结果的准确率,可以对rgb图像进行扩充,其中扩充的具体方法可以对rgb图像进行翻转、旋转、平移和锐化等方法完成对rgb图像的扩充,从而提升了预测结果的准确率。
[0074]
步骤204,利用预设模型对rgb图像进行预测,得到预测结果。
[0075]
示例性地,预测模型可以是各种类型的神经网络模型,例如可以采用卷积神经网络、bp神经网络以及svm等对rgb图像进行预测,得到从而得到与rgb图像对应的可执行文件中是否包括恶意代码。
[0076]
优选的,在一个可选的实施例中,预设模型包括第一预设模型和第二预设模型,
[0077]
利用预设模型对rgb图像进行预测,得到预测结果,具体包括:
[0078]
利用第一预设模型对rgb图像进行特征提取,得到至少一个第二特征信息。
[0079]
利用第二预设模型对每一个第二特征信息分别进行识别,得到与每一个第二特征信息对应的类别。
[0080]
示例性地,在本实施例中,根据预设模型对rgb图像进行识别时,由于恶意代码分布不均匀,所以难以固定由恶意代码生成的rgb图像的大小,因此在选择预测模型时,需要考虑到对输入图像尺寸的问题。
[0081]
基于上述问题,如图4所示在本实施例中采用spp-net在进行预测,在第一阶段,可以解决输入图像尺寸不一致的问题。在第二阶段,spp-net网络中包括了res-net网络(第一预设模型,也就是spp-net的骨干网络)和金字塔池化层(第二预设模型)。resnet网络用于对rgb图像进行特征提取得到特征图(特征地图),金字塔池化层用于对特征图进行分类,然后通过全连接层对每个特征候选区域进行分类,得到每一个特征对应的类别。
[0082]
其中,resnet可以消除网络随着层数的加深而出现的梯度消失、梯度爆炸等问题,残差网络能够向更深层次发展,提取更多的特征,提高对rgb图像恶意代码的分类准确性。在resnet的每个残差模块中引入senet,通过全局平均池化和最大值池化获得rgb图像中突出的恶意代码的特征。senet部分可以从图5中看得,得到的特征图经过全局平均池化和最大值池化分别得到一个1
×1×
c(c为经过卷积特征提取后的通道数)的向量,然后经过两层全连接层得到权重向量。本段是在resnet的基础上加上senet,引导模型在特征提取时可以通道域中关注更主要的信息,从而得到更加准确的恶意代码的至少一个第二特征信息。
[0083]
步骤205,根据预测结果确定可执行文件是否包括恶意代码。
[0084]
示例性地,预测结果中包括了输入rgb图像中每一个特征的类别。在一个可选的实施例中,预测结果包括rgb图像中每一个第一特征的类别,根据预测结果确定可执行文件是否包括恶意代码,具体包括:
[0085]
利用预设算法确定类别的概率。
[0086]
当概率满足预设条件,则可执行文件包括恶意代码。
[0087]
示例性地,如图5所示,在得到每一个特征图之后全连接层将所有通道的特征变为一列向量,经过softmax函数来判断该特征属于某一类的概率,概率大的表示该特征被激活,是模型所找的恶意代码。
[0088]
在一个可选的实施例中,类别包括第一类别和第二类别,当根据预测结果确定可执行文件包括恶意代码时,方法还包括:
[0089]
根据第二类别对应的第二特征信息,确定可执行文件中恶意代码的位置,第一类别用于指示第二特征信息为正常特征信息,第二类别用于指示第二特征信息为非正常特征信息。
[0090]
示例性地,第一类别为不包括恶意代码,第二类别为包括恶意代码,当预测结果为包括恶意代码时,可以通过回归函数确定恶意代码的位置,也可以根据恶意代码对应的特征的代码信息确定对应的位置,从而将恶意代码的问题解决。
[0091]
在利用预设模型进行预测恶意代码时,首先需要对预设模型进行训练,其中训练的过程则是,根据已知是否包括恶意代码的rgb图像进行训练,当预测模型的评价指标达到预设标准时,则说明模型训练完成,其中评价指标可以是准确率和召回率曲线和损失值,损失值为真实概率分布和预测概率分布之间的差异,其中准确率可以通过以下公式计算得到:
[0092][0093]
其中tp为将正确类预测为正确的个数,tn为将错误类预测为错误的个数,fp为将错误类预测为正确的个数,fn为将正确类预测为错误的个数。
[0094]
根据上述模型的评价指标,对比resnet-senet和resnet之间的召回率(p-r曲线)和损失值,可以得到resnet-senet准确率的提升,并且损失值降低了。通过resnet-senet在经过b2m算法得到的灰度图和rgb彩色图像上实验,可以得到准去率的提升和损失值的降低。整体模型通过和常用于工控网络的分类算法(svm、随机森林等)进行对比,训练数据集的准确率、损失值和测试集的准确率、损失值都有一定程度的提升。
[0095]
如图6所示,为上述所有实施例中针对恶意代码的识别过程,其中pe文件为可执行文件,整个过程包括:对包含恶意代码的可执行文件进行rgb图像的转换,在转换为rgb图像之后,将rgb数据进行预处理扩充之后,一部分数据用于训练模型,一部分数据用于对训练完成的模型进行测试,最终根据训练完成的数据对可执行文件进行预测。
[0096]
通过此方式,获取可执行文件的文件信息,其中文件信息包括了可执行文件的各类特征信息,因此根据文件信息可以对可执行文件进行准确的描述,进而,可以通过预设算法将可执行文件中的特征信息全部转化为以二维矩阵来进行体现,进一步将二维矩阵转化为多通道的rgb图像进行可视化展示,通过预设模型对rgb图像的每一个特征进行预测,从而解决了特征提取不全面的问题,最后根据预测结果可以准确的判断可执行文件中是否包括恶意代码。
[0097]
以上,为本技术所提供的恶意代码检测方法的实施例,下文中则介绍说明本技术所提供的恶意代码检测的其他实施例,具体参见如下。
[0098]
本发明实施例还公开了一种恶意代码检测装置,如图7所示,该装置包括:
[0099]
获取模块701,用于获取可执行文件的文件信息;
[0100]
第一转化模块702,用于将文件信息通过预设算法转化为二维矩阵;
[0101]
第二转化模块703,用于将二维矩阵转化为rgb图像;
[0102]
预测模块704,用于利用预设模型对rgb图像进行预测,得到预测结果;
[0103]
确定模块705,用于根据预测结果确定可执行文件是否包括恶意代码。
[0104]
在一个可选的实施方式中,预测结果包括rgb图像中每一个第一特征的类别,确定模块,具体包括:
[0105]
概率确定模块,用于利用预设算法确定类别的概率;
[0106]
判断模块,用于当概率满足预设条件,则可执行文件包括恶意代码。
[0107]
在一个可选的实施方式中,第一转化模块,具体用于:
[0108]
将文件信息转化为十进制数据,得到r通道数据矩阵;
[0109]
对文件信息进行反汇编,得到可执行文件的代码信息;
[0110]
根据代码信息,得到g通道数据矩阵;
[0111]
根据文件信息的数据结构,得到b通道数据矩阵;
[0112]
根据r通道数据矩阵、g通道数据矩阵和b通道数据矩阵,得到二维矩阵。
[0113]
在一个可选的实施方式中,第一转化模块,还具体用于:
[0114]
从代码信息中提取第一特征信息;
[0115]
根据第一特征信息,确定g通道数据。
[0116]
在一个可选的实施方式中,预设模型包括第一预设模型和第二预设模型,预测模块,具体用于:
[0117]
利用第一预设模型对rgb图像进行特征提取,得到至少一个第二特征信息;
[0118]
利用第二预设模型对每一个第二特征信息分别进行识别,得到与每一个第二特征信息对应的类别。
[0119]
在一个可选的实施方式中,类别包括第一类别和第二类别,当确定模块确定可执行文件中包括恶意代码时,装置还用于:
[0120]
根据第二类别对应的第二特征信息,确定可执行文件中恶意代码的位置,第一类别用于指示第二特征信息为正常特征信息,第二类别用于指示第二特征信息为非正常特征信息。
[0121]
本发明实施例提供的恶意代码检测装置中各部件所执行的功能均已在上述任一方法实施例中做了详细的描述,因此这里不再赘述。
[0122]
通过执行此装置,获取可执行文件的文件信息,其中文件信息包括了可执行文件的各类特征信息,因此根据文件信息可以对可执行文件进行准确的描述,进而,可以通过预设算法将可执行文件中的特征信息全部转化为以二维矩阵来进行体现,进一步将二维矩阵转化为多通道的rgb图像进行可视化展示,通过预设模型对rgb图像的每一个特征进行预测,从而解决了特征提取不全面的问题,最后根据预测结果可以准确的判断可执行文件中是否包括恶意代码。
[0123]
本发明实施例还提供了一种计算机设备,如图8所示,该计算机设备可以包括处理器801和存储器802,其中处理器801和存储器802可以通过总线或者其他方式连接,图8中以通过总线连接为例。
[0124]
处理器801可以为中央处理器(central processing unit,cpu)。处理器801还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0125]
存储器802作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的运动训练方法对应的程序指令/模块。处理器801通过运行存储在存储器802中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的运动训练方法。
[0126]
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器801所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至处理器801。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0127]
一个或者多个模块存储在存储器802中,当被处理器801执行时,执行如图1所示实施例中的运动训练方法。
[0128]
上述计算机设备具体细节可以对应参阅图2所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0129]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
[0130]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献