CN111400715A - 分类引擎诊断方法、装置及计算机可读存储介质 - Google Patents
分类引擎诊断方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111400715A CN111400715A CN202010497275.6A CN202010497275A CN111400715A CN 111400715 A CN111400715 A CN 111400715A CN 202010497275 A CN202010497275 A CN 202010497275A CN 111400715 A CN111400715 A CN 111400715A
- Authority
- CN
- China
- Prior art keywords
- malicious code
- classification engine
- determining
- prototype
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分类引擎诊断方法,包括:通过待检测分类引擎,确定各个恶意代码家族对应的原型样本;将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量;基于所述加壳映射向量,确定待检测分类引擎对各个恶意代码家族的依赖程度。本发明还公开了一种分类引擎诊断装置及计算机可读存储介质。本发明通过加壳映射向量准确确定分类引擎对各个恶意代码家族的依赖程度,使得分类引擎能够根据各个恶意代码家族的依赖程度准确区分加壳的恶意代码文件,同时通过根据依赖程度调整分类引擎,降低分类引擎对各个恶意代码家族的依赖程度,提高分类引擎对恶意代码文件的检测的准确性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种分类引擎诊断方法、装置及计算机可读存储介质。
背景技术
对二进制文件加壳已经成为计算机信息安全领域应用比较广泛的一种技术手段,壳大致分为:压缩壳、加密壳、保护壳等种类,主要用于防止商业软件被逆向工程,压缩软件、躲避反病毒软件查杀这些方向上。
现有的检测引擎在对加壳软件进行检测时,加壳混淆了恶意代码的特征,在一定程度上帮助恶意代码逃脱杀软引擎的检测,同时,由于加壳软件的数据本身蕴含的偏见,基于数据集训练的恶意代码检测引擎对加壳正常软件存在误报,导致基于数据集训练的恶意代码检测引擎对恶意代码文件进行错误的家族分类,造成分类引擎难以区分加壳的恶意代码文件,导致恶意代码检测引擎对恶意代码文件的检测不准确。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种分类引擎诊断方法、装置及计算机可读存储介质,旨在解决现有检测引擎难以区分加壳的恶意代码文件而导致检测不准确的技术问题。
为实现上述目的,本发明提供一种分类引擎诊断方法,所述分类引擎诊断方法包括以下步骤:
通过待检测分类引擎,确定各个恶意代码家族对应的原型样本;
将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量;
基于所述加壳映射向量,确定待检测分类引擎对各个恶意代码家族的依赖程度。
进一步地,所述基于所述加壳映射向量,确定检测分类引擎对各个恶意代码家族的依赖程度的步骤包括:
基于所述加壳映射向量对应的加壳类别数量,对所述加壳映射向量进行整数化处理,以获得整形后的加壳映射向量;
基于整形后的加壳映射向量,确定各个加壳映射向量对应的信息熵,并将所述信息熵作为待检测分类引擎对各个恶意代码家族的依赖程度。
进一步地,所述基于整形后的加壳映射向量,确定各个加壳映射向量对应的信息熵的步骤包括:
分别统计各个整形后的加壳映射向量中各个整数对应的概率;
基于各个整数对应的概率,确定各个加壳映射向量对应的信息熵。
进一步地,所述基于多个恶意代码家族对应的数据集,通过待检测分类引擎,确定各个恶意代码家族对应的原型样本的步骤包括:
确定待检测分类引擎的预设层神经元对应的最大化激活;
基于所述最大化激活确定各个恶意代码家族对应的原型样本。
进一步地,所述基于所述最大化激活确定各个恶意代码家族对应的原型样本的步骤包括:
将各个所述最大化激活分别输入生成对抗网络,以通过生成对抗网络的输出层获得确定各个恶意代码家族对应的最大化激活的最优解;
基于各个所述最优解,确定各个恶意代码家族对应的原型输入;
基于所述原型输入确定各个恶意代码家族对应的原型样本。
进一步地,所述基于所述原型输入确定各个恶意代码家族对应的原型样本的步骤包括:
对各个原型输入进行归一化处理,基于归一化后的原型输入确定各个恶意代码家族对应的原型样本。
进一步地,所述将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量的步骤之前,还包括:
获取各个恶意代码家族对应的文件样本,将文件样本输入多层感知机,以获得文件样本对应的加壳类别预测结果;
基于所述文件样本对应的实际加壳类别、加壳类别预测结果以及多层感知机,确定预训练的加壳分类器。
进一步地,所述基于所述文件样本对应的实际加壳类别、加壳类别预测结果以及多层感知机,确定预训练的加壳分类器的步骤包括:
基于所述实际加壳类别以及加壳类别预测结果,确定交叉熵损失函数;
基于所述交叉熵损失函数以及多层感知机,确定预训练的加壳分类器。
进一步地,所述基于所述交叉熵损失函数以及多层感知机,确定预训练的加壳分类器的步骤包括:
基于交叉熵损失函数更新多层感知机,以获得更新后的多层感知机;
若更新后的多层感知机收敛,则将更新后的多层感知机作为预训练的加壳分类器。
进一步地,所述获取各个恶意代码家族对应的文件样本的步骤包括:
获取各个恶意代码家族对应的恶意代码文件,并确定恶意代码文件中文件大小小于预设值的第一恶意代码文件,以及文件大小大于预设值的第二恶意代码文件;
基于所述预设值对第一恶意代码文件进行补齐操作,并基于所述预设值对第二恶意代码文件进行截断操作;
基于补齐后的第一恶意代码文、截断后的第二恶意代码文件以及第三恶意代码文件,确定恶意代码样本,并将各个所述恶意代码样本分别转换为一维向量,以获得所述文件样本,其中,第三恶意代码文件为恶意代码文件中除所述第一恶意代码文以及第二恶意代码文件之外的其他文件。
此外,为实现上述目的,本发明还提供一种分类引擎诊断装置,所述分类引擎诊断装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分类引擎诊断程序,所述分类引擎诊断程序被所述处理器执行时实现前述的分类引擎诊断方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有分类引擎诊断程序,所述分类引擎诊断程序被处理器执行时实现前述的分类引擎诊断方法的步骤。
本发明通过待检测分类引擎,确定各个恶意代码家族对应的原型样本;接着将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量;然后基于所述加壳映射向量,确定待检测分类引擎对各个恶意代码家族的依赖程度,通过加壳分类器得到原型样本的加壳映射向量,通过加壳映射向量准确确定分类引擎对各个恶意代码家族的依赖程度,使得分类引擎能够根据各个恶意代码家族的依赖程度准确区分加壳的恶意代码文件,同时通过根据依赖程度调整分类引擎,降低分类引擎对各个恶意代码家族的依赖程度,提高分类引擎对恶意代码文件的检测的准确性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的分类引擎诊断装置的结构示意图;
图2为本发明分类引擎诊断方法第一实施例的流程示意图;
图3为本发明分类引擎诊断方法中的加壳分类器的训练流程示意图;
图4为本发明一实施例中加壳分类器的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的分类引擎诊断装置的结构示意图。
本发明实施例分类引擎诊断装置可以是PC,也可以是智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该分类引擎诊断装置可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,分类引擎诊断装置还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。
本领域技术人员可以理解,图1中示出的终端结构并不构成对分类引擎诊断装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及分类引擎诊断程序。
在图1所示的分类引擎诊断装置中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的分类引擎诊断程序。
在本实施例中,分类引擎诊断装置包括:存储器1005、处理器1001及存储在所述存储器1005上并可在所述处理器1001上运行的分类引擎诊断程序,其中,处理器1001调用存储器1005中存储的分类引擎诊断程序时,并执行以下操作:
通过待检测分类引擎,确定各个恶意代码家族对应的原型样本;
将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量;
基于所述加壳映射向量,确定待检测分类引擎对各个恶意代码家族的依赖程度。
进一步地,处理器1001可以调用存储器1005中存储的分类引擎诊断程序,还执行以下操作:
基于所述加壳映射向量对应的加壳类别数量,对所述加壳映射向量进行整数化处理,以获得整形后的加壳映射向量;
基于整形后的加壳映射向量,确定各个加壳映射向量对应的信息熵,并将所述信息熵作为待检测分类引擎对各个恶意代码家族的依赖程度。
进一步地,处理器1001可以调用存储器1005中存储的分类引擎诊断程序,还执行以下操作:
分别统计各个整形后的加壳映射向量中各个整数对应的概率;
基于各个整数对应的概率,确定各个加壳映射向量对应的信息熵。
进一步地,处理器1001可以调用存储器1005中存储的分类引擎诊断程序,还执行以下操作:
确定待检测分类引擎的预设层神经元对应的最大化激活;
基于所述最大化激活确定各个恶意代码家族对应的原型样本。
进一步地,处理器1001可以调用存储器1005中存储的分类引擎诊断程序,还执行以下操作:
将各个所述最大化激活分别输入生成对抗网络,以通过生成对抗网络的输出层获得确定各个恶意代码家族对应的最大化激活的最优解;
基于各个所述最优解,确定各个恶意代码家族对应的原型输入;
基于所述原型输入确定各个恶意代码家族对应的原型样本。
进一步地,处理器1001可以调用存储器1005中存储的分类引擎诊断程序,还执行以下操作:
对各个原型输入进行归一化处理,基于归一化后的原型输入确定各个恶意代码家族对应的原型样本。
进一步地,处理器1001可以调用存储器1005中存储的分类引擎诊断程序,还执行以下操作:
获取各个恶意代码家族对应的文件样本,将文件样本输入多层感知机,以获得文件样本对应的加壳类别预测结果;
基于所述文件样本对应的实际加壳类别、加壳类别预测结果以及多层感知机,确定预训练的加壳分类器。
进一步地,处理器1001可以调用存储器1005中存储的分类引擎诊断程序,还执行以下操作:
基于所述实际加壳类别以及加壳类别预测结果,确定交叉熵损失函数;
基于所述交叉熵损失函数以及多层感知机,确定预训练的加壳分类器。
进一步地,处理器1001可以调用存储器1005中存储的分类引擎诊断程序,还执行以下操作:
基于交叉熵损失函数更新多层感知机,以获得更新后的多层感知机;
若更新后的多层感知机收敛,则将更新后的多层感知机作为预训练的加壳分类器。
进一步地,处理器1001可以调用存储器1005中存储的分类引擎诊断程序,还执行以下操作:
获取各个恶意代码家族对应的恶意代码文件,并确定恶意代码文件中文件大小小于预设值的第一恶意代码文件,以及文件大小大于预设值的第二恶意代码文件;
基于所述预设值对第一恶意代码文件进行补齐操作,并基于所述预设值对第二恶意代码文件进行截断操作;
基于补齐后的第一恶意代码文、截断后的第二恶意代码文件以及第三恶意代码文件,确定恶意代码样本,并将各个所述恶意代码样本分别转换为一维向量,以获得所述文件样本,其中,第三恶意代码文件为恶意代码文件中除所述第一恶意代码文以及第二恶意代码文件之外的其他文件。
本发明还提供一种分类引擎诊断方法,参照图2,图2为本发明分类引擎诊断方法第一实施例的流程示意图。
本实施例中,该分类引擎诊断方法包括:
步骤S100,通过待检测分类引擎,确定各个恶意代码家族对应的原型样本;
本实施例中,通过待检测分类引擎,确定各个恶意代码家族对应的原型样本,具体地,通过待检测分类引擎的特定层找神经元首选输入的最大化激活,根据最大化激活确定各个恶意代码家族对应的原型输入,将原型输入进行归一化处理得到原型样本。
步骤S200,将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量;
需要说明的是,预训练的加壳分类器包括一个输入侧、若干个全连接层以及一个输出层,其中,输出层可使用Softmax函数,Softmax函数输出为各个加壳类别概率,即各个加壳类别的映射值。
在本实施例中,在获取到原型样本时,将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量,具体地,将各个原型样本依次作为预训练的加壳分类器,预训练的加壳分类器每次输出一个原型样本对应的各个加壳类别的映射值,将原型样本对应的各个加壳类别的映射值按序组成加壳映射向量。
参照图3,图3为加壳分类器的训练流程示意图,其中,原型样本为文本文件,其数据为可表示为一维向量,将原型样本输入预训练的加壳分类器后,通过预训练的加壳分类器的输出层输出原型样本对应的各个加壳类别的映射值s1……sn。
步骤S300,基于所述加壳映射向量,确定待检测分类引擎对各个恶意代码家族的依赖程度。
在本实施例中,在获取到加壳映射向量时,根据加壳映射向量,确定待检测分类引擎对各个恶意代码家族的依赖程度,具体地,可先计算各个加壳映射向量对应的信息熵,根据信息熵确定待检测分类引擎对各个恶意代码家族的依赖程度,例如,可设置一预设信息熵,各个加壳映射向量对应的信息熵存在小于该预设信息熵的目标信息熵,则获取目标信息熵对应的目标恶意代码家族,并确定待检测分类引擎对目标恶意代码家族的依赖程度高,或者,将各个信息熵按照由小到大的顺序进行排列,待检测分类引擎对信息熵小的恶意代码家族的依赖程度高,待检测分类引擎对信息熵大的恶意代码家族的依赖程度低。
本实施例提出的分类引擎诊断方法,通过待检测分类引擎,确定各个恶意代码家族对应的原型样本;接着将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量;然后基于所述加壳映射向量,确定待检测分类引擎对各个恶意代码家族的依赖程度,通过加壳分类器得到原型样本的加壳映射向量,通过加壳映射向量准确确定分类引擎对各个恶意代码家族的依赖程度,使得分类引擎能够根据各个恶意代码家族的依赖程度准确区分加壳的恶意代码文件,同时通过根据依赖程度调整分类引擎,降低分类引擎对各个恶意代码家族的依赖程度,提高分类引擎对恶意代码文件的检测的准确性。
基于第一实施例,提出本发明分类引擎诊断方法的第二实施例,在本实施例中,步骤S300包括:
步骤S310,基于所述加壳映射向量对应的加壳类别数量,对所述加壳映射向量进行整数化处理,以获得整形后的加壳映射向量;
步骤S320,基于整形后的加壳映射向量,确定各个加壳映射向量对应的信息熵,并将所述信息熵作为待检测分类引擎对各个恶意代码家族的依赖程度。
在本实施例中,原型样本对应的各个加壳类别的映射值s1……sn按序组成加壳映射向量记为:Z=[s1,s2,…sn],其中,n为加壳类别总数,si为该原型样本在类别的映射值,根据Softmax函数的性质,s1,s2,…sn之和为1。
如果原型样本是由存在加壳偏见家族生成的,则其加壳映射向量中,各向量的值存在较大差异,否则较为均衡。可通过计算信息熵识别其中存在加壳偏见的原型样本。由于Z中的向量元素均为浮点小数,难以计算其信息熵,因此,先对其进行整数化处理。具体地,基于加壳映射向量对应的加壳类别数量,对所述加壳映射向量进行整数化处理,以获得整形后的加壳映射向量
由于加壳类别的总数为n,将向量n中元素乘以n后,取其整数部分从而将整形化为:Z'=[int(s1*n),int(s2*n),…int(sn*n)]=[s1',s2',…sn']。
而后,根据整形后的加壳映射向量,确定各个加壳映射向量对应的信息熵,并将所述信息熵作为待检测分类引擎对各个恶意代码家族的依赖程度。例如,可设置一预设信息熵,各个加壳映射向量对应的信息熵存在小于该预设信息熵的目标信息熵,则获取目标信息熵对应的目标恶意代码家族,并确定待检测分类引擎对目标恶意代码家族的依赖程度高,或者,将各个信息熵按照由小到大的顺序进行排列,待检测分类引擎对信息熵小的恶意代码家族的依赖程度高,待检测分类引擎对信息熵大的恶意代码家族的依赖程度低。
进一步地,在一实施例中,步骤S320包括:
步骤S321,分别统计各个整形后的加壳映射向量中各个整数对应的概率;
步骤S322,基于各个整数对应的概率,确定各个加壳映射向量对应的信息熵。
本实施例中,分别统计各个整形后的加壳映射向量中各个整数对应的概率;例如,
PZ’={t1:count(t1)/n,t2:count(t2)/n,…tm:count(tm)/n}={t1:p1,t2:p2,…tm:pm};
其中,ti是Z'中出现的整数,m表示Z'中有m个不同的整数,count(ti)表示整数ti在Z'中出现的次数,pi为整数ti在Z'中出现的概率。
而后,基于各个整数对应的概率,确定各个加壳映射向量对应的信息熵,即采用信息熵计算公式通过ti、pi计算各个加壳映射向量对应的信息熵,进而通过信息熵的计算公式准确得到加壳映射向量对应的信息熵。
本实施例提出的分类引擎诊断方法,通过基于所述加壳映射向量对应的加壳类别数量,对所述加壳映射向量进行整数化处理,以获得整形后的加壳映射向量;接着基于整形后的加壳映射向量,确定各个加壳映射向量对应的信息熵,并将所述信息熵作为待检测分类引擎对各个恶意代码家族的依赖程度,实现了通过信息熵确定待检测分类引擎对各个恶意代码家族的依赖程度,根据信息熵的特性准确确定检测分类引擎对各个恶意代码家族的依赖程度,提高分类引擎诊断的准确性。
基于第一实施例,提出本发明分类引擎诊断方法的第三实施例,在本实施例中,步骤S100包括:
步骤S110,确定待检测分类引擎的预设层神经元对应的最大化激活;
步骤S120,基于所述最大化激活确定各个恶意代码家族对应的原型样本。
本实施例中,先确定待检测分类引擎的预设层神经元对应的最大化激活,根据最大化激活确定各个恶意代码家族对应的原型输入,接着基于原型输入确定各个恶意代码家族对应的原型样本。
例如,以MalConv恶意代码分类模型为例,MalConv恶意代码分类模型以卷积神经网络为基础,将PE(Portable Executable,可移植的可执行)文件的每个字节映射到一个固定长的向量后合并成矩阵作为模型输入,在给定的恶意代码数据集上,该MalConv恶意代码分类模型可以自动地学习数据与输出类别间的映射关系,同时也能学习到不同恶意代码家族特定的特征表示。通过在特定的层上找神经元首选输入的最大激活,能够深入理解并呈现深度神经网络模型中所有隐藏层神经单元所学习到的表征。通过挖掘有界范数的输入方式,最大限度地激活指定的隐层的神经元,该神经元能最大响应的输入方式,则大概率是该神经元正在计算的较好的一阶表示。通过分别将各个恶意代码家族对应的数据集输入MalConv恶意代码分类模型,以获得MalConv恶意代码分类模型的预设层神经元对应的最大化激活,并通过以下优化问题寻找最大化激活的原型样本:
其中,fl(x)为模型第层某个神经元在输入下的激活值,σ||X||2为l2正则,可以通过梯度上升求解该问题进行优化。
本实施例提出的分类引擎诊断方法,确定待检测分类引擎的预设层神经元对应的最大化激活;接着基于所述最大化激活确定各个恶意代码家族对应的原型样本,能够通过最大化激活准确地到各个恶意代码家族对应的原型样本,进而准确生成每个恶意代码家族具有代表性的原型样本,提升分类引擎诊断的准确性。
基于第三实施例,提出本发明分类引擎诊断方法的第四实施例,在本实施例中,步骤S220包括:
步骤S221,将各个所述最大化激活分别输入生成对抗网络,以通过生成对抗网络的输出层获得确定各个恶意代码家族对应的最大化激活的最优解;
步骤S222,基于各个所述最优解,确定各个恶意代码家族对应的原型输入;
步骤S223,基于所述原型输入确定各个恶意代码家族对应的原型样本。
本实施例中,由于通过最大化激活确定各个恶意代码家族对应的原型样本,存在搜索空间大的问题,因此,通过生成对抗网络确定各个恶意代码家族对应的原型样本。
即,将各个所述最大化激活分别输入生成对抗网络,以通过生成对抗网络的输出层获得确定各个恶意代码家族对应的最大化激活的最优解,具体公式为:
其中,g(Y)为生成对抗网络,首先求解找到输出层的最大化神经元激活的最优解Y’。
而后,基于各个所述最优解,确定各个恶意代码家族对应的原型输入;通过X’=g(Y’)确定各个恶意代码家族对应的原型输入。并基于所述原型输入确定各个恶意代码家族对应的原型样本。
进一步地,在一实施例中,步骤S223包括:
对各个原型输入进行归一化处理,基于归一化后的原型输入确定各个恶意代码家族对应的原型样本。
例如。MalConv恶意代码分类模型的原始输入为值在区间[0-255]的向量,因此,需要对X’进行归一化处理,具体地,获取该向量X’中的最小值min(X’)与最大值max(X’),然后将向量X’的值都归一化为[0,255]间的整数,获取原型输入向量如下公式:int((X’-min(X’))/(max(X’)-min(X’))*255)。
而后,将原型输入向量的值写入文件中,即生成对应家族的原型样本。
本实施例提出的分类引擎诊断方法,通过将各个所述最大化激活分别输入生成对抗网络,以通过生成对抗网络的输出层获得确定各个恶意代码家族对应的最大化激活的最优解;接着基于各个所述最优解,确定各个恶意代码家族对应的原型输入;而后基于所述原型输入确定各个恶意代码家族对应的原型样本,能够通过最大化激活以及生成对抗网络准确地到各个恶意代码家族对应的原型样本,进而准确生成每个恶意代码家族具有代表性的原型样本,提升分类引擎诊断的准确性。
基于上述各个实施例,提出本发明分类引擎诊断方法的第五实施例,在本实施例中,步骤S200之前,该分类引擎诊断方法还包括:
步骤S400,获取各个恶意代码家族对应的文件样本,将文件样本输入多层感知机,以获得文件样本对应的加壳类别预测结果;
步骤S500,基于所述文件样本对应的实际加壳类别、加壳类别预测结果以及多层感知机,确定预训练的加壳分类器。
本实施例中,在使用预训练的加壳分类器之前,需要对多层感知机进行训练,得到预训练的加壳分类器,多层感知机是一种前馈人工神经网络,将一组输入向量映射到一组输出向量,是直观且结构较简单的深度神经网络,通过使用多层感知机训练得到预训练的加壳分类器,从而使该预训练的加壳分类器具备识别加壳区域特征的能力。其中,参照图4,多层感知机包括:一个输入层、若干个全连接层以及一个输出层,其中,输入层设有2097152个神经元;全连接层的激活函数采用ReLU函数relu(x)=max(0,x),使用Dropout技术避免过拟合;输出层使用Softmax函数,Softmax函数的输出对应加壳类别。
具体地,先获取各个恶意代码家族对应的文件样本,将文件样本输入多层感知机,通过Softmax函数获得文件样本对应的加壳类别预测结果,并基于文件样本对应的实际加壳类别、加壳类别预测结果以及多层感知机,确定预训练的加壳分类器。
进一步地,在一实施例中,该步骤S500包括:
步骤S510,基于所述实际加壳类别以及加壳类别预测结果,确定交叉熵损失函数;
步骤S520,基于所述交叉熵损失函数以及多层感知机,确定预训练的加壳分类器。
本实施例中,在获取到文件样本对应的加壳类别预测结果时,根据实际加壳类别以及加壳类别预测结果,确定交叉熵损失函数,其中,该叉熵损失函数为多分类交叉熵损失。而后,基于交叉熵损失函数以及多层感知机,确定预训练的加壳分类器。
具体地,在一实施例中,该步骤S520包括:
步骤S521,基于交叉熵损失函数更新多层感知机,以获得更新后的多层感知机;
步骤S522,若更新后的多层感知机收敛,则将更新后的多层感知机作为预训练的加壳分类器。
本实施例中,在获得交叉熵损失函数时,基于交叉熵损失函数更新多层感知机,以获得更新后的多层感知机,具体地,可通过梯度下降算法对交叉熵损失函数进行处理,得到梯度,根据该梯度更新多层感知机以获得更新后的多层感知机。
而后,判断更新后的多层感知机是否收敛,例如,通过将测试数据输入更新后的多层感知机进行训练得到测试结果,根据测试结果以及测试数据对应的真实值得到测试损失函数,根据测试损失函数判断更新后的多层感知机是否收敛,具体地,判断测试损失函数是否小于预设损失函数,其中,在测试损失函数小于预设损失函数时,判定该更新后的多层感知机收敛,此时,将更新后的多层感知机作为预训练的加壳分类器,在测试损失函数大于或等于预设损失函数时,判定该更新后的多层感知机未收敛,此时,将更新后的多层感知机作为多层感知机,并返回执行步骤S400,直至收敛的预训练的加壳分类器。
进一步地,又一实施例中,步骤S400包括:
步骤S410,获取各个恶意代码家族对应的恶意代码文件,并确定恶意代码文件中文件大小小于预设值的第一恶意代码文件,以及文件大小大于预设值的第二恶意代码文件;
步骤S420,基于所述预设值对第一恶意代码文件进行补齐操作,并基于所述预设值对第二恶意代码文件进行截断操作;
步骤S430,基于补齐后的第一恶意代码文、截断后的第二恶意代码文件以及第三恶意代码文件,确定恶意代码样本,并将各个所述恶意代码样本分别转换为一维向量,以获得所述文件样本,其中,第三恶意代码文件为恶意代码文件中除所述第一恶意代码文以及第二恶意代码文件之外的其他文件。
一般情况下,多层感知机的输入一般是一维向量,在输入层,有多少个输入就有多少个神经元。每个PE文件均由大量字节组成,而每个字节可表示成0到255的十进制数字,因此可以将每个PE文件转换为一个一维向量[x1,x2,…,xn],其中,xi表示该文件中第i字节的值,xi∈[0,255],n表示该文件总的字节数。特定的多层感知机输入层维度是固定的,现有的恶意代码文件中的大小小于1MB的PE文件占比达96.41%,为覆盖足够的特征,本申请可将恶意代码文件填充或截断至2MB,因此多层感知机的输入维度为2097152(2M)。
本实施例中,在获取到各个恶意代码家族对应的恶意代码文件时,先确定恶意代码文件中文件大小小于预设值的第一恶意代码文件,以及文件大小大于预设值的第二恶意代码文件;而后,参照图4,基于预设值对第一恶意代码文件进行补齐操作,并基于预设值对第二恶意代码文件进行截断操作;其中,该预设值为2MB,以将恶意代码文件全部填充或截断至2MB,而后基于补齐后的第一恶意代码文、截断后的第二恶意代码文件以及第三恶意代码文件,确定恶意代码样本,并将各个所述恶意代码样本分别转换为一维向量,以获得所述文件样本,其中,第三恶意代码文件为恶意代码文件中除所述第一恶意代码文以及第二恶意代码文件之外的其他文件。
本实施例提出的分类引擎诊断方法,通过获取各个恶意代码家族对应的文件样本,将文件样本输入多层感知机,以获得文件样本对应的加壳类别预测结果;接着基于所述文件样本对应的实际加壳类别、加壳类别预测结果以及多层感知机,确定预训练的加壳分类器,通过训练多层感知机得到预训练的加壳分类器,使得预训练的加壳分类器具备识别加壳区域特征的能力。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有分类引擎诊断程序,所述分类引擎诊断程序被处理器执行时实现如下操作:
通过待检测分类引擎,确定各个恶意代码家族对应的原型样本;
将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量;
基于所述加壳映射向量,确定待检测分类引擎对各个恶意代码家族的依赖程度。
进一步地,所述分类引擎诊断程序被处理器执行时还实现如下操作:
基于所述加壳映射向量对应的加壳类别数量,对所述加壳映射向量进行整数化处理,以获得整形后的加壳映射向量;
基于整形后的加壳映射向量,确定各个加壳映射向量对应的信息熵,并将所述信息熵作为待检测分类引擎对各个恶意代码家族的依赖程度。
进一步地,所述分类引擎诊断程序被处理器执行时还实现如下操作:
分别统计各个整形后的加壳映射向量中各个整数对应的概率;
基于各个整数对应的概率,确定各个加壳映射向量对应的信息熵。
进一步地,所述分类引擎诊断程序被处理器执行时还实现如下操作:
确定待检测分类引擎的预设层神经元对应的最大化激活;
基于所述最大化激活确定各个恶意代码家族对应的原型样本。
进一步地,所述分类引擎诊断程序被处理器执行时还实现如下操作:
将各个所述最大化激活分别输入生成对抗网络,以通过生成对抗网络的输出层获得确定各个恶意代码家族对应的最大化激活的最优解;
基于各个所述最优解,确定各个恶意代码家族对应的原型输入;
基于所述原型输入确定各个恶意代码家族对应的原型样本。
进一步地,所述分类引擎诊断程序被处理器执行时还实现如下操作:
对各个原型输入进行归一化处理,基于归一化后的原型输入确定各个恶意代码家族对应的原型样本。
进一步地,所述分类引擎诊断程序被处理器执行时还实现如下操作:
获取各个恶意代码家族对应的文件样本,将文件样本输入多层感知机,以获得文件样本对应的加壳类别预测结果;
基于所述文件样本对应的实际加壳类别、加壳类别预测结果以及多层感知机,确定预训练的加壳分类器。
进一步地,所述分类引擎诊断程序被处理器执行时还实现如下操作:
基于所述实际加壳类别以及加壳类别预测结果,确定交叉熵损失函数;
基于所述交叉熵损失函数以及多层感知机,确定预训练的加壳分类器。
进一步地,所述分类引擎诊断程序被处理器执行时还实现如下操作:
基于交叉熵损失函数更新多层感知机,以获得更新后的多层感知机;
若更新后的多层感知机收敛,则将更新后的多层感知机作为预训练的加壳分类器。
进一步地,所述分类引擎诊断程序被处理器执行时还实现如下操作:
获取各个恶意代码家族对应的恶意代码文件,并确定恶意代码文件中文件大小小于预设值的第一恶意代码文件,以及文件大小大于预设值的第二恶意代码文件;
基于所述预设值对第一恶意代码文件进行补齐操作,并基于所述预设值对第二恶意代码文件进行截断操作;
基于补齐后的第一恶意代码文、截断后的第二恶意代码文件以及第三恶意代码文件,确定恶意代码样本,并将各个所述恶意代码样本分别转换为一维向量,以获得所述文件样本,其中,第三恶意代码文件为恶意代码文件中除所述第一恶意代码文以及第二恶意代码文件之外的其他文件。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种分类引擎诊断方法,其特征在于,所述分类引擎诊断方法包括以下步骤:
通过待检测分类引擎,确定各个恶意代码家族对应的原型样本;
将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量;
基于所述加壳映射向量,确定待检测分类引擎对各个恶意代码家族的依赖程度。
2.如权利要求1所述的分类引擎诊断方法,其特征在于,所述基于所述加壳映射向量,确定检测分类引擎对各个恶意代码家族的依赖程度的步骤包括:
基于所述加壳映射向量对应的加壳类别数量,对所述加壳映射向量进行整数化处理,以获得整形后的加壳映射向量;
基于整形后的加壳映射向量,确定各个加壳映射向量对应的信息熵,并将所述信息熵作为待检测分类引擎对各个恶意代码家族的依赖程度。
3.如权利要求2所述的分类引擎诊断方法,其特征在于,所述基于整形后的加壳映射向量,确定各个加壳映射向量对应的信息熵的步骤包括:
分别统计各个整形后的加壳映射向量中各个整数对应的概率;
基于各个整数对应的概率,确定各个加壳映射向量对应的信息熵。
4.如权利要求1所述的分类引擎诊断方法,其特征在于,所述通过待检测分类引擎,确定各个恶意代码家族对应的原型样本的步骤包括:
确定待检测分类引擎的预设层神经元对应的最大化激活;
基于所述最大化激活确定各个恶意代码家族对应的原型样本。
5.如权利要求4所述的分类引擎诊断方法,其特征在于,所述基于所述最大化激活确定各个恶意代码家族对应的原型样本的步骤包括:
将各个所述最大化激活分别输入生成对抗网络,以通过生成对抗网络的输出层获得确定各个恶意代码家族对应的最大化激活的最优解;
基于各个所述最优解,确定各个恶意代码家族对应的原型输入;
基于所述原型输入确定各个恶意代码家族对应的原型样本。
6.如权利要求5所述的分类引擎诊断方法,其特征在于,所述基于所述原型输入确定各个恶意代码家族对应的原型样本的步骤包括:
对各个原型输入进行归一化处理,基于归一化后的原型输入确定各个恶意代码家族对应的原型样本。
7.如权利要求1至6任一项所述的分类引擎诊断方法,其特征在于,所述将各个原型样本输入预训练的加壳分类器,以获得各个原型样本对应的加壳映射向量的步骤之前,还包括:
获取各个恶意代码家族对应的文件样本,将文件样本输入多层感知机,以获得文件样本对应的加壳类别预测结果;
基于所述文件样本对应的实际加壳类别、加壳类别预测结果以及多层感知机,确定预训练的加壳分类器。
8.如权利要求7所述的分类引擎诊断方法,其特征在于,所述基于所述文件样本对应的实际加壳类别、加壳类别预测结果以及多层感知机,确定预训练的加壳分类器的步骤包括:
基于所述实际加壳类别以及加壳类别预测结果,确定交叉熵损失函数;
基于所述交叉熵损失函数以及多层感知机,确定预训练的加壳分类器。
9.如权利要求8所述的分类引擎诊断方法,其特征在于,所述基于所述交叉熵损失函数以及多层感知机,确定预训练的加壳分类器的步骤包括:
基于交叉熵损失函数更新多层感知机,以获得更新后的多层感知机;
若更新后的多层感知机收敛,则将更新后的多层感知机作为预训练的加壳分类器。
10.如权利要求7所述的分类引擎诊断方法,其特征在于,所述获取各个恶意代码家族对应的文件样本的步骤包括:
获取各个恶意代码家族对应的恶意代码文件,并确定恶意代码文件中文件大小小于预设值的第一恶意代码文件,以及文件大小大于预设值的第二恶意代码文件;
基于所述预设值对第一恶意代码文件进行补齐操作,并基于所述预设值对第二恶意代码文件进行截断操作;
基于补齐后的第一恶意代码文、截断后的第二恶意代码文件以及第三恶意代码文件,确定恶意代码样本,并将各个所述恶意代码样本分别转换为一维向量,以获得所述文件样本,其中,第三恶意代码文件为恶意代码文件中除所述第一恶意代码文以及第二恶意代码文件之外的其他文件。
11.一种分类引擎诊断装置,其特征在于,所述分类引擎诊断装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分类引擎诊断程序,所述分类引擎诊断程序被所述处理器执行时实现如权利要求1至10中任一项所述的分类引擎诊断方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有分类引擎诊断程序,所述分类引擎诊断程序被处理器执行时实现如权利要求1至10中任一项所述的分类引擎诊断方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497275.6A CN111400715B (zh) | 2020-06-04 | 2020-06-04 | 分类引擎诊断方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497275.6A CN111400715B (zh) | 2020-06-04 | 2020-06-04 | 分类引擎诊断方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400715A true CN111400715A (zh) | 2020-07-10 |
CN111400715B CN111400715B (zh) | 2020-11-03 |
Family
ID=71430036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010497275.6A Active CN111400715B (zh) | 2020-06-04 | 2020-06-04 | 分类引擎诊断方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400715B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454380A (zh) * | 2023-12-22 | 2024-01-26 | 鹏城实验室 | 恶意软件的检测方法、训练方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778241A (zh) * | 2016-11-28 | 2017-05-31 | 东软集团股份有限公司 | 恶意文件的识别方法及装置 |
US20180314983A1 (en) * | 2017-05-01 | 2018-11-01 | SparkCognition, Inc. | Generation and use of trained file classifiers for malware detection |
KR101922956B1 (ko) * | 2018-08-07 | 2019-02-27 | (주)케이사인 | 저 차원 수의 엔트로피 카운트 맵 기반 악성코드 탐지 방법 |
CN110348214A (zh) * | 2019-07-16 | 2019-10-18 | 电子科技大学 | 对恶意代码检测的方法及系统 |
CN110837570A (zh) * | 2019-11-12 | 2020-02-25 | 北京交通大学 | 对图像数据进行无偏见分类的方法 |
CN110837638A (zh) * | 2019-11-08 | 2020-02-25 | 鹏城实验室 | 一种勒索软件的检测方法、装置、设备及存储介质 |
CN111046959A (zh) * | 2019-12-12 | 2020-04-21 | 上海眼控科技股份有限公司 | 模型训练方法、装置、设备和存储介质 |
-
2020
- 2020-06-04 CN CN202010497275.6A patent/CN111400715B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778241A (zh) * | 2016-11-28 | 2017-05-31 | 东软集团股份有限公司 | 恶意文件的识别方法及装置 |
US20180314983A1 (en) * | 2017-05-01 | 2018-11-01 | SparkCognition, Inc. | Generation and use of trained file classifiers for malware detection |
KR101922956B1 (ko) * | 2018-08-07 | 2019-02-27 | (주)케이사인 | 저 차원 수의 엔트로피 카운트 맵 기반 악성코드 탐지 방법 |
CN110348214A (zh) * | 2019-07-16 | 2019-10-18 | 电子科技大学 | 对恶意代码检测的方法及系统 |
CN110837638A (zh) * | 2019-11-08 | 2020-02-25 | 鹏城实验室 | 一种勒索软件的检测方法、装置、设备及存储介质 |
CN110837570A (zh) * | 2019-11-12 | 2020-02-25 | 北京交通大学 | 对图像数据进行无偏见分类的方法 |
CN111046959A (zh) * | 2019-12-12 | 2020-04-21 | 上海眼控科技股份有限公司 | 模型训练方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
李双双: "基于SVM方法的恶意软件加壳分类系统的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454380A (zh) * | 2023-12-22 | 2024-01-26 | 鹏城实验室 | 恶意软件的检测方法、训练方法、装置、设备及介质 |
CN117454380B (zh) * | 2023-12-22 | 2024-03-01 | 鹏城实验室 | 恶意软件的检测方法、训练方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111400715B (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111897964A (zh) | 文本分类模型训练方法、装置、设备及存储介质 | |
CN109101817A (zh) | 一种识别恶意文件类别的方法及计算设备 | |
CN111428557A (zh) | 基于神经网络模型的手写签名的自动校验的方法和装置 | |
CN111797589A (zh) | 一种文本处理网络、神经网络训练的方法以及相关设备 | |
CN111694954B (zh) | 图像分类方法、装置和电子设备 | |
CN110287311A (zh) | 文本分类方法及装置、存储介质、计算机设备 | |
CN111522953B (zh) | 一种针对朴素贝叶斯分类器的边际攻击方法、装置及存储介质 | |
CN111400715B (zh) | 分类引擎诊断方法、装置及计算机可读存储介质 | |
WO2022063076A1 (zh) | 对抗样本的识别方法及装置 | |
CN113449548A (zh) | 更新物体识别模型的方法和装置 | |
CN111353514A (zh) | 模型训练方法、图像识别方法、装置及终端设备 | |
CN112749737A (zh) | 图像分类方法及装置、电子设备、存储介质 | |
CN111582382A (zh) | 状态识别方法、装置以及电子设备 | |
CN111476144A (zh) | 行人属性识别模型确定方法、装置及计算机可读存储介质 | |
CN114399028B (zh) | 信息处理方法、图卷积神经网络训练方法及电子设备 | |
CN114416910A (zh) | 一种基于机器学习的数据处理方法及装置 | |
CN114844682A (zh) | 一种dga域名检测方法及系统 | |
CN116266394A (zh) | 多模态的情绪识别方法、设备及存储介质 | |
JP6734323B2 (ja) | 対象物の類似度判定のためのプログラム、システム、及び方法 | |
CN112487184A (zh) | 用户性格判定方法、装置、存储器和电子设备 | |
CN116401659B (zh) | 一种基于深度学习的多模型融合计算机病毒检测方法 | |
CN114254724A (zh) | 一种数据处理方法、神经网络的训练方法以及相关设备 | |
CN112418292B (zh) | 一种图像质量评价的方法、装置、计算机设备及存储介质 | |
CN109740671B (zh) | 一种图像识别方法及装置 | |
CN111444507B (zh) | 加壳软件是否误报的判定方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |