CN117454380B - 恶意软件的检测方法、训练方法、装置、设备及介质 - Google Patents
恶意软件的检测方法、训练方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117454380B CN117454380B CN202311782220.XA CN202311782220A CN117454380B CN 117454380 B CN117454380 B CN 117454380B CN 202311782220 A CN202311782220 A CN 202311782220A CN 117454380 B CN117454380 B CN 117454380B
- Authority
- CN
- China
- Prior art keywords
- software
- sample
- detection
- model
- shell
- 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.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 173
- 238000000034 method Methods 0.000 title claims abstract description 142
- 238000001514 detection method Methods 0.000 claims abstract description 229
- 238000013145 classification model Methods 0.000 claims description 197
- 230000008569 process Effects 0.000 claims description 62
- 230000002596 correlated effect Effects 0.000 claims description 45
- 238000006243 chemical reaction Methods 0.000 claims description 30
- 238000000605 extraction Methods 0.000 claims description 20
- 230000000875 corresponding effect Effects 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005520 cutting process Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000002441 reversible effect Effects 0.000 claims description 3
- 239000000523 sample Substances 0.000 description 214
- 238000005516 engineering process Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 238000013473 artificial intelligence Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000003313 weakening effect Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 241000700605 Viruses Species 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005336 cracking Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0475—Generative networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/094—Adversarial learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Virology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供了一种恶意软件的检测方法、训练方法、装置、设备及介质,属于软件检测技术领域。方法包括:获取待检测软件;提取待检测软件的目标软件特征,并通过预先训练好的恶意软件检测模型对目标软件特征进行软件检测,得到待检测软件的软件分类预测值;根据软件分类预测值确定待检测软件的软件检测结果,其中恶意软件检测模型是通过对抗训练的方式训练得到的,通过对抗训练弱化与壳类别相关的特征,最终所得到的恶意软件检测模型就可以对输入的待检测软件进行精准分类预测,最终得到准确的软件检测结果,即使恶意软件与正常软件进行相同的加壳也能忽视加壳特征对检测的影响,提高了恶意软件检测的准确性和有效性。
Description
技术领域
本申请涉及软件检测技术领域,尤其涉及一种恶意软件的检测方法、训练方法、装置、设备及介质。
背景技术
恶意软件是指那些具有恶意目的、对计算机系统和用户数据造成破坏、窃取信息或干扰正常运行的软件程序,恶意软件通常会在用户不知情的情况下进入计算机系统,通过利用漏洞、社会工程等方式进行传播和感染,因此检测恶意软件对于确保计算机系统和用户数据的安全至关重要。
相关技术中,软件需要进行加壳,而恶意软件也广泛采用加壳技术,因此常通过检测软件的加壳特征来判断是否为恶意软件。然而,大量的正常软件和恶意软件都采用了相同的加壳技术,使得在对软件的加壳特征进行检测的时候常常出现误报,错把正常软件也识别成恶意软件,或者将恶意软件判定为正常软件,因此降低了恶意软件检测的准确性和有效性。
发明内容
本申请实施例的主要目的在于提出一种恶意软件的检测方法、训练方法、装置、设备及介质,能够提高恶意软件检测的准确性和有效性。
为实现上述目的,本申请实施例的第一方面提出了一种恶意软件的检测方法,包括:获取待检测软件;提取所述待检测软件的目标软件特征,并通过预先训练好的恶意软件检测模型对所述目标软件特征进行软件检测,得到所述待检测软件的软件分类预测值;根据所述软件分类预测值确定所述待检测软件的软件检测结果;其中,所述恶意软件检测模型的对抗模型是壳分类模型,所述恶意软件检测模型和所述壳分类模型是预先根据对抗损失值进行对抗训练后得到的,所述对抗损失值根据第一损失值和第二损失值确定得到,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关,所述第一损失值是根据所述恶意软件检测模型对样本检测软件的样本软件分类预测值得到的,所述样本软件分类预测值是在提取所述样本检测软件的样本软件特征,并通过所述恶意软件检测模型对所述样本软件特征进行软件检测后得到的,所述样本检测软件包含样本壳特征,所述第二损失值是根据所述壳分类模型对所述样本壳特征的样本壳分类预测值得到的,所述样本壳分类预测值是通过所述壳分类模型对所述样本软件特征进行壳分类预测后得到的。
在一些实施例中,所述恶意软件检测模型通过以下步骤训练得到:获取所述样本检测软件,其中,所述样本检测软件包含所述样本壳特征;提取所述样本检测软件的样本软件特征,并通过所述恶意软件检测模型对所述样本软件特征进行软件检测,得到所述样本检测软件的所述样本软件分类预测值,并通过所述壳分类模型对所述样本软件特征进行壳分类预测,得到所述样本壳特征的所述样本壳分类预测值;基于所述样本软件分类预测值确定所述恶意软件检测模型的所述第一损失值,基于所述样本壳分类预测值确定所述壳分类模型的所述第二损失值,并根据所述第一损失值和所述第二损失值确定所述对抗损失值,其中,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关;基于所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型。
在一些实施例中,所述恶意软件检测模型设置有第一输入层和第一全连接层,所述壳分类模型设置有第二输入层和第二全连接层;所述提取所述样本检测软件的样本软件特征,并通过所述恶意软件检测模型对所述样本软件特征进行软件检测,得到所述样本检测软件的所述样本软件分类预测值,并通过所述壳分类模型对所述样本软件特征进行壳分类预测,得到所述样本壳特征的所述样本壳分类预测值,包括:将所述样本检测软件输入到所述恶意软件检测模型中,通过所述第一输入层对所述样本检测软件进行特征转换操作,并通过所述第一全连接层对特征转换后的所述样本检测软件进行特征提取操作,得到样本软件特征,基于所述样本软件特征得到所述样本检测软件的所述样本软件分类预测值;将所述样本检测软件输入到所述壳分类模型中,通过所述第二输入层对所述样本检测软件进行特征转换操作,并通过所述第二全连接层对特征转换后的所述样本检测软件进行特征提取操作,得到相同的所述样本软件特征,基于所述样本软件特征得到所述样本壳特征的所述样本壳分类预测值;其中,所述恶意软件检测模型和所述壳分类模型均设置有多个全连接层,所述第一全连接层是所述恶意软件检测模型中的首层全连接层,所述第二全连接层是所述壳分类模型中的首层全连接层,所述第一输入层和所述第二输入层的参数共享,所述第一全连接层和所述第二全连接层的参数共享。
在一些实施例中,所述基于所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型,包括:在最小化所述对抗损失值的基础上,根据所述第一损失值和所述第二损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型;其中,所述第一损失值用于调整所述恶意软件检测模型的参数,所述第二损失值用于调整所述壳分类模型的参数。
在一些实施例中,所述根据所述第一损失值和所述第二损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型,包括:将所述第一损失值反向传播至所述恶意软件检测模型,通过梯度下降操作最小化所述第一损失值,以最小化所述对抗损失值,对所述恶意软件检测模型进行训练,得到训练好的所述恶意软件检测模型;将所述第二损失值反向传播至所述壳分类模型,在反向传播过程中进行梯度反转操作,并同时通过梯度下降操作最大化所述第二损失值,以最小化所述对抗损失值,对所述壳分类模型进行训练,得到训练好的所述壳分类模型。
在一些实施例中,所述基于所述样本软件分类预测值确定所述恶意软件检测模型的所述第一损失值,基于所述样本壳分类预测值确定所述壳分类模型的所述第二损失值,并根据所述第一损失值和所述第二损失值确定所述对抗损失值,包括:获取所述样本检测软件的软件分类标签和壳分类标签;基于所述软件分类标签和所述样本软件分类预测值确定所述恶意软件检测模型的所述第一损失值;基于所述壳分类标签和所述样本壳分类预测值确定所述壳分类模型的所述第二损失值;根据所述第一损失值和所述第二损失值之间的差值,得到所述对抗损失值。
在一些实施例中,所述根据所述第一损失值和所述第二损失值确定所述对抗损失值,包括:基于预设的第一权重参数对所述第一损失值进行乘积操作,基于预设的第二权重参数对所述第二损失值进行乘积操作,并根据乘积后所述第一损失值和所述第二损失值之间的差值,得到所述对抗损失值。
在一些实施例中,所述方法还包括:计算所述第二权重参数与所述第一权重参数之间的目标比值;在对所述恶意软件检测模型和所述壳分类模型进行对抗训练的过程中,通过调整所述第一权重参数或所述第二权重参数的大小以最大化所述目标比值,并在调整后的所述第一权重参数或所述第二权重参数下,更新所述对抗损失值。
在一些实施例中,预设的所述第一权重参数和所述第二权重参数通过以下步骤更新得到:获取初始的所述第一权重参数和初始的所述第二权重参数;调整所述第一权重参数或所述第二权重参数,并在预设的目标训练轮次下,基于调整过程中得到的不同的所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到在不同的所述第一权重参数或所述第二权重参数下训练得到的所述恶意软件检测模型;在根据调整所述第一权重参数或所述第二权重参数后训练到的不同的所述恶意软件检测模型的检测准确率中,选择最高检测准确率下对应的所述第一权重参数或所述第二权重参数,作为更新后的所述第一权重参数或更新后的所述第二权重参数。
在一些实施例中,所述提取所述待检测软件的目标软件特征,包括:获取所述待检测软件的软件大小;当所述待检测软件的软件大小大于预设的软件阈值时,对所述待检测软件进行截断操作,以使截断后的软件大小等于所述软件阈值,并提取截断后所述待检测软件的目标软件特征;当所述待检测软件的软件大小小于所述软件阈值时,对所述待检测软件进行填充操作,以使填充后的软件大小等于所述软件阈值,并提取填充后所述待检测软件的所述目标软件特征。
为实现上述目的,本申请实施例的第二方面提出了一种模型的训练方法,包括:获取样本检测软件,其中,所述样本检测软件包含样本壳特征;提取所述样本检测软件的样本软件特征,并通过恶意软件检测模型对所述样本软件特征进行软件检测,得到所述样本检测软件的样本软件分类预测值,并通过壳分类模型对所述样本软件特征进行壳分类预测,得到样本壳特征的样本壳分类预测值,其中,所述壳分类模型是所述恶意软件检测模型的对抗模型;基于所述样本软件分类预测值确定所述恶意软件检测模型的第一损失值,基于所述样本壳分类预测值确定所述壳分类模型的第二损失值,并根据所述第一损失值和所述第二损失值确定对抗损失值,其中,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关;基于所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型。
为实现上述目的,本申请实施例的第三方面提出了一种恶意软件的检测装置,包括:第一软件获取模块,用于获取待检测软件;第一分类预测模块,用于提取所述待检测软件的目标软件特征,并通过预先训练好的恶意软件检测模型对所述目标软件特征进行软件检测,得到所述待检测软件的软件分类预测值;检测结果确定模块,用于根据所述软件分类预测值确定所述待检测软件的软件检测结果;其中,所述恶意软件检测模型的对抗模型是壳分类模型,所述恶意软件检测模型和所述壳分类模型是预先根据对抗损失值进行对抗训练后得到的,所述对抗损失值根据第一损失值和第二损失值确定得到,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关,所述第一损失值是根据所述恶意软件检测模型对样本检测软件的样本软件分类预测值得到的,所述样本软件分类预测值是在提取所述样本检测软件的样本软件特征,并通过所述恶意软件检测模型对所述样本软件特征进行软件检测后得到的,所述样本检测软件包含样本壳特征,所述第二损失值是根据所述壳分类模型对所述样本壳特征的样本壳分类预测值得到的,所述样本壳分类预测值是通过所述壳分类模型对所述样本软件特征进行壳分类预测后得到的。
为实现上述目的,本申请实施例的第四方面提出了一种模型的训练装置,包括:第二软件获取模块,用于获取样本检测软件,其中,所述样本检测软件包含样本壳特征;第二分类预测模块,用于提取所述样本检测软件的样本软件特征,并通过恶意软件检测模型对所述样本软件特征进行软件检测,得到所述样本检测软件的样本软件分类预测值,并通过壳分类模型对所述样本软件特征进行壳分类预测,得到样本壳特征的样本壳分类预测值,其中,所述壳分类模型是所述恶意软件检测模型的对抗模型;损失确定模块,用于基于所述样本软件分类预测值确定所述恶意软件检测模型的第一损失值,基于所述样本壳分类预测值确定所述壳分类模型的第二损失值,并根据所述第一损失值和所述第二损失值确定对抗损失值,其中,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关;训练模块,用于基于所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型。
为实现上述目的,本申请实施例的第五方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面实施例所述的恶意软件的检测方法,或第二方面实施例所述的模型的训练方法。
为实现上述目的,本申请实施例的第六方面提出了一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面实施例所述的恶意软件的检测方法,或第二方面实施例所述的模型的训练方法。
本申请实施例提出的恶意软件的检测方法、训练方法、装置、设备及介质,具有以下有益效果:
本申请实施例中通过预先训练一个恶意软件检测模型,而恶意软件检测模型是通过对抗训练的方式训练得到的,其中,恶意软件检测模型的对抗模型是壳分类模型,训练过程可以在提取样本检测软件的样本软件特征后,通过恶意软件检测模型对样本软件特征进行软件检测后得到样本软件分类预测值,而壳分类模型可以对相同的样本软件特征进行壳分类预测后得到样本壳分类预测值,因此壳分类模型可以使用恶意软件检测模型相同的特征表示来预测需要被忽略的加壳类别。后续可以基于样本软件分类预测值确定第一损失值,基于样本壳分类预测值得到第二损失值,基于第一损失值和第二损失值得到的对抗损失值就可以对恶意软件检测模型和壳分类模型进行对抗训练了,而对抗损失值与第一损失值正相关,因此在对抗训练的过程中,恶意软件检测模型可以实现判定误差的最小化,从而最大化其分类性能,而对抗损失值与第二损失值负相关,因此恶意软件检测模型可以通过对抗训练弱化与壳类别相关的特征,最终所得到的恶意软件检测模型就可以对输入的待检测软件进行精准分类预测,最终得到准确的软件检测结果,即使恶意软件与正常软件进行相同的加壳也能忽视加壳特征对检测的影响,提高了恶意软件检测的准确性和有效性。
附图说明
图1是本申请实施例提供的恶意软件的检测系统的实施环境的示意图;
图2是本申请实施例提供的恶意软件的检测方法的流程示意图;
图3是本申请实施例提供的恶意软件检测模型训练过程的流程示意图;
图4是图3中的步骤S202中的流程示意图;
图5是本申请实施例提供的恶意软件检测模型和壳分类模型结构的示意图;
图6是本申请实施例提供的步骤401中的流程示意图;
图7是图3中的步骤S203中的流程示意图;
图8是本申请实施例提供的恶意软件的检测方法中的另一个流程示意图;
图9是本申请实施例提供的预设的第一权重参数和第二权重参数更新得到的过程中的流程示意图;
图10是图2中的步骤S102中的流程示意图;
图11是本申请实施例提供的对恶意软件检测模型和壳分类模型进行对抗训练过程的示意图;
图12是本申请实施例提供的模型的训练方法的流程示意图;
图13是本申请实施例提供的恶意软件的检测装置的功能模块示意图;
图14是本申请实施例提供的模型的训练装置的功能模块示意图;
图15是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
人工智能(artificial intelligence,AI):是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学;人工智能是计算机科学的一个分支,人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能可以对人的意识、思维的信息过程的模拟。人工智能还是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
恶意软件是指那些具有恶意目的、对计算机系统和用户数据造成破坏、窃取信息或干扰正常运行的软件程序,恶意软件通常会在用户不知情的情况下进入计算机系统,通过利用漏洞、社会工程等方式进行传播和感染,恶意软件的目的通常是为了获取利益、从用户身上窃取财产、操纵用户行为或破坏系统稳定。因此,及时发现和防范恶意软件对于确保计算机系统和用户数据的安全至关重要。
软件加壳,也称为软件加密或软件压缩,是一种保护程序资源的方法。它不会破坏程序的结构,当运行加壳的程序时,系统首先会运行程序里的壳,然后由壳将加密的程序逐步还原到内存中,最后运行程序。常见的加壳技术工具有INNO、ASPACK、UPX、PEcompact等。
在恶意软件检测中,特征码曾是主要的检测手段。面对恶意软件开发者广泛采用的加壳技术,检测系统开始利用加壳特征进行识别,虽然提高了对新型恶意软件的识别率,但也导致了正常软件的高误报。研究表示,大量的正常软件和恶意软件都采用了相同的加壳技术,如INNO和UPX等,这进一步加剧了误报问题,该类误报产生的根本原因在于,为绕过杀毒软件,加壳已成为恶意软件的惯用手段,从而检测引擎鉴定过程中过于依赖恶意代码样本加壳区域的特征。所以,安全厂商通过使用这些被错误标记的文件来训练检测系统,无意中放大了误报的问题,因此,急需一种新的方法来降低因加壳技术而产生的正常软件误报,确保恶意软件检测的准确性和有效性。
基于此,本申请实施例提供了一种恶意软件的检测方法、训练方法、装置、设备及介质,可以提高恶意软件检测的准确性和有效性。
本申请实施例提供的恶意软件的检测方法、训练方法、装置、设备及介质,具体通过如下实施例进行说明,首先描述本申请实施例中的恶意软件的检测系统。
参照图1,图1为本申请实施例提供的恶意软件的检测系统的实施环境的示意图,该实施环境包括终端101和服务器102,其中,终端101和服务器102之间通过通信网络连接。
示例性的,服务器102在可以获取终端101发送的待检测软件,随后服务器102提取待检测软件的目标软件特征,并通过预先训练好的恶意软件检测模型对目标软件特征进行软件检测,得到待检测软件的软件分类预测值,根据软件分类预测值确定待检测软件的软件检测结果;其中,恶意软件检测模型的对抗模型是壳分类模型,恶意软件检测模型和壳分类模型是服务器102预先根据对抗损失值进行对抗训练后得到的,对抗损失值根据第一损失值和第二损失值确定得到,对抗损失值与第一损失值正相关,对抗损失值与第二损失值负相关,第一损失值是根据恶意软件检测模型对样本检测软件的样本软件分类预测值得到的,样本软件分类预测值是在提取样本检测软件的样本软件特征,并通过恶意软件检测模型对样本软件特征进行软件检测后得到的,样本检测软件包含样本壳特征,第二损失值是根据壳分类模型对样本壳特征的样本壳分类预测值得到的,样本壳分类预测值是通过壳分类模型对样本软件特征进行壳分类预测后得到的。
服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。另外,服务器102还可以是区块链网络中的一个节点服务器。
终端101可以是手机、电脑、智能语音交互设备、智能家电、车载终端等,但并不局限于此。终端101以及服务器102可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。
下面,恶意软件的检测方法可以通过如下实施例进行说明。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意,例如,在获取待检测软件或样本检测软件时,本申请实施例会先获得用户的许可或者同意。而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的用户相关数据。
图2是本申请实施例提供的恶意软件的检测方法的一个可选的流程图,图2中的方法可以包括但不限于包括步骤S101至步骤S103。
步骤S101,获取待检测软件。
其中,待检测软件指的是需要进行恶意软件检测的软件,也就是被检测是否含有恶意特征的软件。本申请实施例中的恶意软件,指的是包含病毒、木马、恶意代码等恶意元素的代码软件,对于待检测软件来说,其可以是可执行程序文件、脚本文件、压缩文件、网络流量数据(如网络数据包、报文等)、在操作系统中运行的进程或服务等软件,这些文件可能含有恶意元素,所以需要进行检测。
示例性的,获取待检测软件的方式有多种,待检测软件可以是终端发送给服务器的。进一步的,本申请实施例可以从各种软件下载网站、开源软件仓库等渠道下载软件样本,并作为待检测软件;还可以从邮件附件或网络共享文件中获取;还可以从虚拟机中提取;还可以从恶意软件分析工具中提取;还可以从系统的运行过程中所产生的文件中获取。
步骤S102,提取待检测软件的目标软件特征,并通过预先训练好的恶意软件检测模型对目标软件特征进行软件检测,得到待检测软件的软件分类预测值。
其中,目标软件特征是对待检测软件进行特征提取得到的特征。目标软件特征可以有多种,例如,目标软件特征可以是对待检测软件直接进行特征转换后得到的特征表示,因为在恶意软件检测模型中,需要对输入的数据进行特征转换,以便后续对转换后得到的特征进行进一步的处理;此外,目标软件特征还可以是对待检测软件进行特征转换后,再进一步进行特征提取到的特征,如可以通过恶意软件检测模型的输入层对输入的待检测软件进行特征转换,再通过后续的全连接层对转换得到的特征进行特征提取,所得到的特征就是目标软件特征。
恶意软件检测模型是一种预先训练好的分类模型,可以通过对抗训练的方式得到,并用于对输入的待检测软件进行分类预测,能够有效地检测出恶意软件。恶意软件检测模型可以是任何能够实现对待检测软件进行分类预测的模型,例如决策树、支持向量机等传统机器学习模型,也可以是深度学习模型中的神经网络模型,本申请实施例中以恶意软件检测模型为神经网络模型为例子进行说明,后续不再赘述。
软件分类预测值指的是对待检测软件进行软件检测后得到的分类结果,是恶意软件检测模型输出的一个概率值,用于协助判断待检测软件是属于恶意软件还是正常软件的结果。在本申请实施例中,通过提取待检测软件的特征,并通过预先训练好的恶意软件检测模型进行软件检测,最终确定待检测软件的软件检测预测情况,即软件分类预测值。
进一步的,恶意软件检测模型的对抗模型是壳分类模型,恶意软件检测模型和壳分类模型是预先根据对抗损失值进行对抗训练后得到的,对抗损失值根据第一损失值和第二损失值确定得到,对抗损失值与第一损失值正相关,对抗损失值与第二损失值负相关,第一损失值是根据恶意软件检测模型对样本检测软件的样本软件分类预测值得到的,样本软件分类预测值是在提取样本检测软件的样本软件特征,并通过恶意软件检测模型对样本软件特征进行软件检测后得到的,样本检测软件包含样本壳特征,第二损失值是根据壳分类模型对样本壳特征的样本壳分类预测值得到的,样本壳分类预测值是通过壳分类模型对样本软件特征进行壳分类预测后得到的。
其中,壳分类模型是指用于对软件进行壳分类预测的分类模型。在计算机安全领域,软件壳通常指的是对软件进行加壳处理,目的是为了防止反编译、破解或分析软件的内部结构和代码。壳分类模型被用于对样本软件特征进行壳分类预测,判断软件是否经过了某种特定的加壳处理,以便在恶意软件检测中对加壳特征进行识别和处理,以帮助恶意软件检测模型识别恶意软件中与壳类别相关的特征,这样可以通过对抗训练的方式弱化与壳类别相关的特征,提高恶意软件检测模型对输入的待检测软件进行精准分类预测,从而提高恶意软件检测的准确性和有效性。
样本软件特征是对样本检测软件进行特征提取后得到的特征,样本软件特征与目标软件特征类似,与目标软件特征一样,样本软件特征也可以有多种,例如,样本软件特征可以是对样本检测软件直接进行特征转换后得到的特征表示;此外,样本软件特征还可以是对样本检测软件进行特征转换后,再进一步进行特征提取到的特征,如可以通过恶意软件检测模型的输入层对输入的样本检测软件进行特征转换,再通过后续的全连接层对转换得到的特征进行特征提取,所得到的特征就是样本软件特征。
进一步的,本申请实施例中的样本软件特征也是恶意软件检测模型的某层全连接层经过特征提取后得到的特征,但是该全连接层并不是恶意软件检测模型中多层全连接层中的最后一层,这样,通过相同的特征表示,壳分类模型可以对相同的样本软件特征进行处理,这样两个模型更好地利用数据中的相关性和共享信息,从而提高模型的训练效率和泛化能力。
样本软件分类预测值指的是对样本检测软件进行软件检测后得到的分类结果,是恶意软件检测模型输出的一个概率值,用于协助判断样本检测软件是属于恶意软件还是正常软件的结果。在本申请实施例中,通过提取样本检测软件的特征,并通过恶意软件检测模型进行软件检测,最终确定样本检测软件的软件检测预测情况,即样本软件分类预测值,后续可以用于进行模型的训练。
样本检测软件指的是需要进行恶意软件检测的软件,也就是被检测是否含有恶意特征的软件,样本检测软件是训练过程中的软件。本申请实施例中的恶意软件,指的是包含病毒、木马、恶意代码等恶意元素的代码软件,对于样本检测软件来说,与待检测软件一样,其也可以是可执行程序文件、脚本文件、压缩文件、网络流量数据(如网络数据包、报文等)、在操作系统中运行的进程或服务等软件,这些文件可能含有恶意元素,所以需要进行检测。此外,样本检测软件上的加壳特征称为样本壳特征,是通过相应的加壳技术得到的。
可以理解的是,样本检测软件带有训练所需要的标签,包括软件分类标签和壳分类标签,软件分类标签用于指示样本检测软件是正常软件还是恶意软件,壳分类标签用于指示样本检测软件上的样本壳特征是通过哪一类技术加壳得到的。
样本壳分类预测值指的是对样本检测软件进行加壳分类后得到的分类结果,是壳分类模型输出的一个概率值,用于协助判断样本检测软件的加壳特征是通过哪一类技术加壳得到的结果,如UPX、ASPack、PECompact等等。在本申请实施例中,通过提取样本检测软件的特征,并通过壳分类模型进行壳分类检测,最终确定样本检测软件的壳分类预测值,后续可以用于进行模型的训练。
第一损失值是指根据恶意软件检测模型对样本检测软件的样本软件分类预测值得到的损失值。具体来说,该损失值是通过将样本软件特征输入恶意软件检测模型进行软件检测后得到的软件分类预测值,与实际标签进行比较得出的损失值,通过最小化第一损失值,可以实现恶意软件检测模型的分类性能优化。
第二损失值是指根据壳分类模型对样本壳特征的样本壳分类预测值得到的损失值。具体来说,该损失值是通过将样本软件特征输入壳分类模型进行壳分类预测后得到的壳分类预测值,与实际标签进行比较得出的损失值。通过最小化第二损失值,可以在对抗训练的过程中弱化与壳类别相关的特征,从而提高恶意软件检测模型对输入的待检测软件的分类预测准确性。
对抗损失值是在对抗训练中,通过结合第一损失值和第二损失值计算得出的损失值。具体来说,对抗损失值是由第一损失值和第二损失值确定的,在对抗训练的过程中,最小化对抗损失值可以实现最大化恶意软件检测模型的分类性能以及弱化与壳类别相关的特征。
进一步的,对抗损失值与第一损失值正相关,与第二损失值负相关,通过使对抗损失值与第一损失值正相关,对抗训练过程中可以尽量减小恶意软件检测模型的分类误差,提高其分类性能,这样可以使模型在检测恶意软件时更加准确和可靠;通过使对抗损失值与第二损失值负相关,对抗训练过程中可以弱化与壳类别相关的特征,从而减少对加壳特征的关注,提高模型对于加壳恶意软件的检测能力,这样即使恶意软件与正常软件进行相同的加壳,模型也能够忽视加壳特征对检测的影响,提高检测的准确性和有效性。
可以理解的是,第一损失值用于在训练过程中,调整恶意软件检测模型的参数,第二损失值用于在训练过程中,调整壳分类模型的参数,但是恶意软件检测模型是通过与壳分类模型对抗训练得到的,在对抗训练的过程中,还需要基于对抗损失值进行,而本申请实施例中对抗训练的目的是最小化对抗损失值。
需要说明的是,本申请实施例中通过对抗训练的方式来训练恶意软件检测模型,通过使用壳分类模型来预测需要被忽略的加壳类别,使得恶意软件检测模型可以忽略加壳特征对检测的影响,这可以提高模型的鲁棒性和分类能力,使得恶意软件检测模型在面对恶意软件的攻击时更具有鲁棒性和对抗性,从而更好地检测恶意软件,可以有效地应对恶意软件的变异和逃避检测的能力,且由于训练数据集中包含各种形式的恶意软件,因此该模型可以准确识别不同类型的恶意软件,从而提高恶意软件检测的准确性和有效性。最终,即使恶意软件与正常软件进行相同的加壳,恶意软件检测模型也能忽视加壳特征对检测的影响。
步骤S103,根据软件分类预测值确定待检测软件的软件检测结果。
其中,软件检测结果是一个表征待检测软件为正常软件还是异常软件的最终结果。由于恶意软件检测模型是一个分类模型,所得到的分类结果通常是一个表示概率的值,在恶意软件检测中,该概率值可以表示待检测软件被分类为恶意软件的置信度。例如,该概率值越高,表示模型越确信该软件是恶意软件,而概率值较低则表示模型更倾向于将该软件归类为正常软件,因此,根据软件分类预测值的大小可以确定待检测软件的软件检测结果。
示例性的,本申请实施例中可以通过设置一个阈值,可以根据软件分类预测值进行二元分类,例如将软件分类预测值大于0.5的标记为恶意软件,软件分类预测值小于或等于0.5的标记为正常软件。可以理解的是,具体的阈值选择可能因实际应用场景和需求而有所差异,本申请实施例不做具体限制。
综上,本申请实施例中通过预先训练一个恶意软件检测模型,而恶意软件检测模型是通过对抗训练的方式训练得到的,其中,恶意软件检测模型的对抗模型是壳分类模型,训练过程可以在提取样本检测软件的样本软件特征后,通过恶意软件检测模型对样本软件特征进行软件检测后得到样本软件分类预测值,而壳分类模型可以对相同的样本软件特征进行壳分类预测后得到样本壳分类预测值,因此壳分类模型可以使用恶意软件检测模型相同的特征表示来预测需要被忽略的加壳类别。后续可以基于样本软件分类预测值确定第一损失值,基于样本壳分类预测值得到第二损失值,基于第一损失值和第二损失值得到的对抗损失值就可以对恶意软件检测模型和壳分类模型进行对抗训练了,而对抗损失值与第一损失值正相关,因此在对抗训练的过程中,恶意软件检测模型可以实现判定误差的最小化,从而最大化其分类性能,而对抗损失值与第二损失值负相关,因此恶意软件检测模型可以通过对抗训练弱化与壳类别相关的特征,最终所得到的恶意软件检测模型就可以对输入的待检测软件进行精准分类预测,最终得到准确的软件检测结果,即使恶意软件与正常软件进行相同的加壳也能忽视加壳特征对检测的影响,提高了恶意软件检测的准确性和有效性。
上面描述了恶意软件的检测方法的整体流程,下面,针对上述步骤中的细节进行详细描述。
请参阅图3,在一些实施例中,恶意软件检测模型通过以下步骤训练得到,可以包括步骤S201至步骤S204:
步骤S201,获取样本检测软件;
其中,样本检测软件包含样本壳特征;
步骤S202,提取样本检测软件的样本软件特征,并通过恶意软件检测模型对样本软件特征进行软件检测,得到样本检测软件的样本软件分类预测值,并通过壳分类模型对样本软件特征进行壳分类预测,得到样本壳特征的样本壳分类预测值;
步骤S203,基于样本软件分类预测值确定恶意软件检测模型的第一损失值,基于样本壳分类预测值确定壳分类模型的第二损失值,并根据第一损失值和第二损失值确定对抗损失值;
其中,对抗损失值与第一损失值正相关,对抗损失值与第二损失值负相关;
步骤S204,基于对抗损失值对恶意软件检测模型和壳分类模型进行对抗训练,得到训练好的壳分类模型和恶意软件检测模型。
壳分类模型是指用于对软件进行壳分类预测的分类模型。在计算机安全领域,软件壳通常指的是对软件进行加壳处理,目的是为了防止反编译、破解或分析软件的内部结构和代码。壳分类模型被用于对样本软件特征进行壳分类预测,判断软件是否经过了某种特定的加壳处理,以便在恶意软件检测中对加壳特征进行识别和处理,以帮助恶意软件检测模型识别恶意软件中与壳类别相关的特征,这样可以通过对抗训练的方式弱化与壳类别相关的特征,提高恶意软件检测模型对输入的待检测软件进行精准分类预测,从而提高恶意软件检测的准确性和有效性。
样本软件特征是对样本检测软件进行特征提取后得到的特征,样本软件特征与目标软件特征类似,与目标软件特征一样,样本软件特征也可以有多种,例如,样本软件特征可以是对样本检测软件直接进行特征转换后得到的特征表示;此外,样本软件特征还可以是对样本检测软件进行特征转换后,再进一步进行特征提取到的特征,如可以通过恶意软件检测模型的输入层对输入的样本检测软件进行特征转换,再通过后续的全连接层对转换得到的特征进行特征提取,所得到的特征就是样本软件特征。
进一步的,本申请实施例中的样本软件特征也是恶意软件检测模型的某层全连接层经过特征提取后得到的特征,但是该全连接层并不是恶意软件检测模型中多层全连接层中的最后一层,这样,通过相同的特征表示,壳分类模型可以对相同的样本软件特征进行处理,这样两个模型更好地利用数据中的相关性和共享信息,从而提高模型的训练效率和泛化能力。
样本软件分类预测值指的是对样本检测软件进行软件检测后得到的分类结果,是恶意软件检测模型输出的一个概率值,用于协助判断样本检测软件是属于恶意软件还是正常软件的结果。在本申请实施例中,通过提取样本检测软件的特征,并通过恶意软件检测模型进行软件检测,最终确定样本检测软件的软件检测预测情况,即样本软件分类预测值,后续可以用于进行模型的训练。
样本检测软件指的是需要进行恶意软件检测的软件,也就是被检测是否含有恶意特征的软件,样本检测软件是训练过程中的软件。本申请实施例中的恶意软件,指的是包含病毒、木马、恶意代码等恶意元素的代码软件,对于样本检测软件来说,与待检测软件一样,其也可以是可执行程序文件、脚本文件、压缩文件、网络流量数据(如网络数据包、报文等)、在操作系统中运行的进程或服务等软件,这些文件可能含有恶意元素,所以需要进行检测。此外,样本检测软件上的加壳特征称为样本壳特征,是通过相应的加壳技术得到的。
可以理解的是,样本检测软件带有训练所需要的标签,包括软件分类标签和壳分类标签,软件分类标签用于指示样本检测软件是正常软件还是恶意软件,壳分类标签用于指示样本检测软件上的样本壳特征是通过哪一类技术加壳得到的。
样本壳分类预测值指的是对样本检测软件进行加壳分类后得到的分类结果,是壳分类模型输出的一个概率值,用于协助判断样本检测软件的加壳特征是通过哪一类技术加壳得到的结果,如UPX、ASPack、PECompact等等。在本申请实施例中,通过提取样本检测软件的特征,并通过壳分类模型进行壳分类检测,最终确定样本检测软件的壳分类预测值,后续可以用于进行模型的训练。
第一损失值是指根据恶意软件检测模型对样本检测软件的样本软件分类预测值得到的损失值。具体来说,该损失值是通过将样本软件特征输入恶意软件检测模型进行软件检测后得到的软件分类预测值,与实际标签进行比较得出的损失值,通过最小化第一损失值,可以实现恶意软件检测模型的分类性能优化。
第二损失值是指根据壳分类模型对样本壳特征的样本壳分类预测值得到的损失值。具体来说,该损失值是通过将样本软件特征输入壳分类模型进行壳分类预测后得到的壳分类预测值,与实际标签进行比较得出的损失值。通过最小化第二损失值,可以在对抗训练的过程中弱化与壳类别相关的特征,从而提高恶意软件检测模型对输入的待检测软件的分类预测准确性。
在一些实施例中,上述步骤S204可以包括以下步骤S401:
步骤S401,在最小化对抗损失值的基础上,根据第一损失值和第二损失值对恶意软件检测模型和壳分类模型进行对抗训练,得到训练好的壳分类模型和恶意软件检测模型;
其中,第一损失值用于调整恶意软件检测模型的参数,第二损失值用于调整壳分类模型的参数。
对抗损失值是在对抗训练中,通过结合第一损失值和第二损失值计算得出的损失值。具体来说,对抗损失值是由第一损失值和第二损失值确定的,在对抗训练的过程中,最小化对抗损失值可以实现最大化恶意软件检测模型的分类性能以及弱化与壳类别相关的特征。
进一步的,对抗损失值与第一损失值正相关,与第二损失值负相关,也即第一损失值越小,对抗损失值越小,第二损失值越大,对抗损失值越小。通过使对抗损失值与第一损失值正相关,对抗训练过程中可以尽量减小恶意软件检测模型的分类误差,提高其分类性能,这样可以使模型在检测恶意软件时更加准确和可靠;通过使对抗损失值与第二损失值负相关,对抗训练过程中可以弱化与壳类别相关的特征,从而减少对加壳特征的关注,提高模型对于加壳恶意软件的检测能力,这样即使恶意软件与正常软件进行相同的加壳,模型也能够忽视加壳特征对检测的影响,提高检测的准确性和有效性。
可以理解的是,第一损失值用于在训练过程中,调整恶意软件检测模型的参数,第二损失值用于在训练过程中,调整壳分类模型的参数,但是恶意软件检测模型是通过与壳分类模型对抗训练得到的,在对抗训练的过程中,还需要基于对抗损失值进行,而本申请实施例中对抗训练的目的是最小化对抗损失值。
需要说明的是,本申请实施例中通过对抗训练的方式来训练恶意软件检测模型,通过使用壳分类模型来预测需要被忽略的加壳类别,使得恶意软件检测模型可以忽略加壳特征对检测的影响,这可以提高模型的鲁棒性和分类能力,使得恶意软件检测模型在面对恶意软件的攻击时更具有鲁棒性和对抗性,从而更好地检测恶意软件,可以有效地应对恶意软件的变异和逃避检测的能力,且由于训练数据集中包含各种形式的恶意软件,因此该模型可以准确识别不同类型的恶意软件,从而提高恶意软件检测的准确性和有效性。最终,即使恶意软件与正常软件进行相同的加壳,恶意软件检测模型也能忽视加壳特征对检测的影响。
请参阅图4,在一些实施例中,上述步骤S202可以包括步骤S301至步骤S304:
步骤S301,将样本检测软件输入到恶意软件检测模型中,通过第一输入层对样本检测软件进行特征转换操作,并通过第一全连接层对特征转换后的样本检测软件进行特征提取操作,得到样本软件特征,基于样本软件特征得到样本检测软件的样本软件分类预测值;
步骤S302,将样本检测软件输入到壳分类模型中,通过第二输入层对样本检测软件进行特征转换操作,并通过第二全连接层对特征转换后的样本检测软件进行特征提取操作,得到相同的样本软件特征,基于样本软件特征得到样本壳特征的样本壳分类预测值。
在一些实施例中,恶意软件检测模型设置有第一输入层和第一全连接层,壳分类模型设置有第二输入层和第二全连接层,其中,恶意软件检测模型和壳分类模型均设置有多个全连接层,第一全连接层是恶意软件检测模型中的首层全连接层,第二全连接层是壳分类模型中的首层全连接层,第一输入层和第二输入层的参数共享,第一全连接层和第二全连接层的参数共享。
请参阅图5,图5为本申请实施例提供的恶意软件检测模型和壳分类模型结构的示意图。在图中,恶意软件检测模型和壳分类模型均为神经网络模型,具体的,恶意软件检测模型和壳分类模型均通过多层感知机实现,例如,在恶意软件检测模型中,含有第一输入层、多层全连接层和第一输出层,其多层全连接层的首层成为第一全连接层,除了第一全连接层之外,恶意软件检测模型还有多个全连接层,图中仅以所含有的全连接层n为例子,n可以是任意数字,表示剩余的多层全连接层。同理,在壳分类模型中,含有第二输入层、多层全连接层和第二输出层,其多层全连接层的首层成为第二全连接层,除了第二全连接层之外,壳分类模型还含有全连接层m,m可以是任意数字,表示剩余的多层全连接层。
在得到恶意软件检测模型输出的样本软件分类预测值的过程中,首先需要将样本检测软件输入到恶意软件检测模型中的第一输入层中,通过第一输入层对样本检测软件进行特征转换操作,将样本检测软件转化一维向量。在第一输入层中,有多少个输入就有多少个神经元,例如,若样本检测软件是一个PE文件,PE文件由大量字节组成,而每个字节可表示成0到255的十进制数字,因此可以将每个PE文件,也即每个样本检测软件S转换为一个一维向量,其中,/>表示该文件中第i字节的值,/>,i表示该文件总的字节数。转换后的一维向量可以表示为记为/>,其中,。
接着,转换后得到的一维向量会输入到多层全连接层中,首先通过第一全连接层对特征转换后的样本检测软件进行特征提取操作,也即对上述一维向量进行特征提取操作,得到样本软件特征,后续其他全连接层和第一输出层可以基于样本软件特征进一步进行特征处理,最终第一输出层可以得到样本检测软件的样本软件分类预测值。
在本申请实施例中,第一全连接层和第二全连接层可以称为全连接共享层,对于整个对抗训练过程来讲,其可以分成两个分支,即恶意软件检测模型和壳分类模型/>,通过恶意软件检测模型/>,判定是否是恶意软件,通过壳分类模型/>实现加壳类别判定,如UPX、ASPack、PECompact等等。因此,在本申请实施例中,第一输入层和第二输入层之间共享参数,第一全连接层和第二全连接层之间共享参数,通过共享参数,模型可以更好地捕捉数据中的共享特征,对抗训练过程中可以更好利用数据的相关性和共享信息。而其余的全连接层并不共享,以便负责进行相应的特征处理,得到所需要的分类预测值。
所以,对于壳分类模型来说,在接收到相同的样本检测软件后,可以通过第二输入层对样本检测软件进行特征转换操作,并通过第二全连接层对特征转换后的样本检测软件进行特征提取操作,得到相同的样本软件特征,后续壳分类模型中的其他全连接层和第二输出层可以基于样本软件特征进一步进行特征处理,得到所需要的样本壳分类预测值。
可以理解的是,恶意软件检测模型作为主模型,壳分类模型作为对抗模型,主模型和对抗模型的训练是同时进行的,共享部分网络结构保证了它们能够互相影响。在训练过程中,通过最小化主模型的恶意代码分类误差和最大化对抗模型的壳分类误差,达到了弱化与壳类别相关特征的目的。整个训练过程通过反复迭代更新参数,直到达到一定的收敛条件或训练轮次。
请参阅图6,在一些实施例中,上述步骤S401可以包括以下步骤S501至步骤S502:
步骤S501,将第一损失值反向传播至恶意软件检测模型,通过梯度下降操作最小化第一损失值,以最小化对抗损失值,对恶意软件检测模型进行训练,得到训练好的恶意软件检测模型;
步骤S502,将第二损失值反向传播至壳分类模型,在反向传播过程中进行梯度反转操作,并同时通过梯度下降操作最大化第二损失值,以最小化对抗损失值,对壳分类模型进行训练,得到训练好的壳分类模型。
需要说明的是,本申请实施例中在得到第一损失值后,可以通过反向传播算法和梯度下降优化方法,根据第一损失值的梯度更新恶意软件检测模型的参数,并在将第一损失值反向传播至恶意软件检测模型,由于第一损失值与对抗损失值正相关,因此通过梯度下降操作最小化第一损失值,可以最小化对抗损失值,最终训练得到所需要的恶意软件检测模型。
同样的,在得到第二损失值后,可以通过反向传播算法和梯度下降优化方法,根据第二损失值的梯度更新壳分类模型的参数,而与主模型不同的是,在反向传播的过程中,壳分类模型设置有梯度反转层,使得在反向传播过程中梯度方向自动取反,在前向传播过程中实现恒等变换,因此可以在反向传播过程中进行梯度反转操作,并同时通过梯度下降操作最大化第二损失值,由于第二损失值与对抗损失值是负相关的,在最大化第二损失值时,也就可以最小化对抗损失值,最终训练得到所需要的壳分类模型。
可以理解的是,由于壳分类模型与壳类别相关的特征可能会干扰恶意软件检测模型的判定,因此本申请实施例在训练过程中引入梯度反转操作来弱化这些特征,梯度反转层的目的是在对抗模型的训练过程中反转梯度,使得主模型在优化过程中“避开”对抗模型正在学习预测的特征。通过梯度反转,对于壳分类模型,该模型的输出与待忽略的壳类别相关的特征应该被忽略,而与待关注的恶意软件类别相关的特征应该被保留,因此,通过梯度反转操作,可以弱化与壳类别相关的特征,而加强与恶意软件类别相关的特征,最终提高恶意软件检测的准确性和有效性。
请参阅图7,在一些实施例中,上述步骤S203可以包括以下步骤S601至步骤S604:
步骤S601,获取样本检测软件的软件分类标签和壳分类标签;
步骤S602,基于软件分类标签和样本软件分类预测值确定恶意软件检测模型的第一损失值;
步骤S603,基于壳分类标签和样本壳分类预测值确定壳分类模型的第二损失值;
步骤S604,根据第一损失值和第二损失值之间的差值,得到对抗损失值。
其中,样本检测软件带有训练所需要的标签,包括软件分类标签和壳分类标签,软件分类标签用于指示样本检测软件是正常软件还是恶意软件,壳分类标签用于指示样本检测软件上的样本壳特征是通过哪一类技术加壳得到的。
在计算第一损失值的过程中,首先需要将软件分类标签和样本软件分类预测值输入到损失函数中,本申请实施例中通过多分类交叉熵损失作为损失函数,同样的,正计算第二损失值的过程中,首先需要将壳分类标签和样本壳分类预测值输入到损失函数中,也同样采用多分类交叉熵损失作为损失函数。
示例性的,若软件分类标签,其中/>,代表恶意代码判定标签空间,其中0表示正常软件,1表示恶意软件,而壳分类标签/>,其中,代表壳类别标签空间,不同的数字表示加壳对应的技术,如UPX、ASPack、PECompact等等。对于恶意软件检测模型/>,第一损失值为/>,对于壳分类模型/>,其第二损失值为/>,最终,得到的对抗损失值为/>,对抗损失值的计算公式如下:
其中,表示转换后的一维向量,y表示恶意软件检测模型的输出,d表示壳分类模型的输出,因此/>表示样本软件分类预测值,/>为对应的软件分类标签,/>表示样本壳分类预测值,/>为对应的壳分类标签,N表示样本的数量,/>为第二损失值的权重参数。
因此,可以看出,对抗损失值是根据第一损失值和第二损失值之间的差值得到的,在式子中可以看出,第一损失值与对抗损失值正相关,第二损失值与对抗损失值负相关。
在一些实施例中,上述步骤S203还可以包括以下步骤S701:
步骤S701,基于预设的第一权重参数对第一损失值进行乘积操作,基于预设的第二权重参数对第二损失值进行乘积操作,并根据乘积后第一损失值和第二损失值之间的差值,得到对抗损失值。
示例性的,第一权重参数和第二权重参数是训练过程中用于控制第一损失值和第二损失值对于对抗损失值的影响程度的参数。在具体实现中,将第一权重参数和第二权重参数设定为一个介于0到1之间的实数,以反映它们对对抗损失值的贡献比例。
第一权重参数表示恶意软件检测模型对样本软件分类结果的信任程度,第二权重参数表示壳分类模型对样本壳分类结果的信任程度,通过调整第一权重参数和第二权重参数,可以在对抗训练的过程中平衡恶意软件检测模型和壳分类模型对于样本软件和壳的分类结果的信任程度,从而提高恶意软件检测模型的鲁棒性和准确性。
例如,在上述实施例中,若对抗损失值为,对抗损失值的计算公式如下:
可见,本实施例中第一权重参数为1,第二权重参数为。
请参阅图8,在一些实施例中,恶意软件的检测方法还可以包括以下步骤S801至步骤S802:
步骤S801,计算第二权重参数与第一权重参数之间的目标比值;
步骤S802,在对恶意软件检测模型和壳分类模型进行对抗训练的过程中,通过调整第一权重参数或第二权重参数的大小以最大化目标比值,并在调整后的第一权重参数或第二权重参数下,更新对抗损失值。
进一步的,第一损失值和第二损失值之间的大小关系不同,会影响训练后恶意软件检测模型的性能。因此,本申请实施例中需要计算第二权重参数与第一权重参数之间的目标比值,在对恶意软件检测模型和壳分类模型进行对抗训练的过程中,通过调整第一权重参数或第二权重参数的大小以最大化目标比值,并在调整后的第一权重参数或第二权重参数下,更新对抗损失值,后续基于更新后的对抗损失值进行训练。
可以理解的是,由于在得到目标比值的过程中,第二权重参数是分子,因此第二权重参数越大,目标比值越大,第一权重参数是分母,所以第一权重参数越小,目标比值越大。本申请实施例中奖第一权重参数定义为1,后续只需要调整第二权重参数λ的大小。
需要说明的是,第二权重参数λ的取值需要根据具体任务和实验结果进行调优,当λ较小时,主模型的损失更加重要,对恶意软件检测的准确性有更高的要求,此时,主模型会更加关注恶意代码特征,对壳特征的关注会相对减少。但是,本申请实施例的目标是通过对抗训练弱化与壳类别相关的特征,因此,当λ较大时,对抗模型的损失更加重要,弱化与壳类别相关的特征的效果更加明显。为了保证模型的训练效果,使恶意软件检测模型可以更好地弱化与壳类别相关的特征,提高对恶意软件检测的准确性,本申请实施例将在训练过程中最大化目标比值,也即让λ尽可能大。
然而,如果λ过大,可能会导致过分弱化与壳类别相关的特征,从而影响到恶意代码与壳之间的区分能力,降低整体的检测性能。因此,选择合适的λ值需要综合考虑主模型和对抗模型的训练效果、模型性能以及任务的要求。进一步的,本申请实施例可以通过交叉验证或尝试不同的λ值来找到最佳的平衡点,以获得最优的结果,在此不做具体限制。
请参阅图9,在一些实施例中,预设的第一权重参数和第二权重参数通过以下步骤更新得到,可以包括以下步骤S901至步骤S903:
步骤S901,获取初始的第一权重参数和初始的第二权重参数;
步骤S902,调整第一权重参数或第二权重参数,并在预设的目标训练轮次下,基于调整过程中得到的不同的对抗损失值对恶意软件检测模型和壳分类模型进行对抗训练,得到在不同的第一权重参数或第二权重参数下训练得到的恶意软件检测模型;
步骤S903,在根据调整第一权重参数或第二权重参数后训练到的不同的恶意软件检测模型的检测准确率中,选择最高检测准确率下对应的第一权重参数或第二权重参数,作为更新后的第一权重参数或更新后的第二权重参数。
进一步的,除了上述步骤S801至步骤S802来调整第一权重参数和第二权重参数外,还可以通过步骤S901至步骤S903来调整第一权重参数和第二权重参数。步骤S901至步骤S903是关于对抗训练中权重参数调整的详细步骤,在这个过程中,本申请实施例需要调整第一权重参数和第二权重参数,以便在对抗训练的过程中得到最佳的恶意软件检测模型。
首先,需要确定初始的第一权重参数和第二权重参数的数值。这些参数可能是通过先前的实验和经验得到的,或者可以根据具体的需求和模型特性进行初始化。示例性的,本申请将初始的第一权重参数定义为1,后续只需要调整第二权重参数的大小。
接着,本申请实施例之中将会对第一权重参数或第二权重参数进行调整。以对第二权重参数调整为例子,通过改变λ的数值,可以影响对抗损失值的计算,从而影响对抗训练过程中模型的学习和调整。在预设的目标训练轮次下,需要基于不同调整过程中得到的对抗损失值对恶意软件检测模型和壳分类模型进行对抗训练。这意味着针对每一组不同的第一权重参数或第二权重参数,都需要进行一轮对抗训练。
最后,需要根据步骤S902中得到的在不同第一权重参数或第二权重参数下训练得到的恶意软件检测模型的检测准确率,选择最高检测准确率下对应的第一权重参数或第二权重参数。也就是说,本申请实施例会比较不同参数下模型的表现,选择表现最好的参数作为更新后的第一权重参数或更新后的第二权重参数。如通过定义第一权重参数定义为1,后续不断调整λ的数值,并进行相同轮次下的训练,根据不同的训练后的模型的检测准确率,选择合适的λ作为更新后的第二权重参数。
请参阅图10,在一些实施例中,上述步骤S102可以包括以下步骤S1001至步骤S1003:
步骤S1001,获取待检测软件的软件大小;
步骤S1002,当待检测软件的软件大小大于预设的软件阈值时,对待检测软件进行截断操作,以使截断后的软件大小等于软件阈值,并提取截断后待检测软件的目标软件特征;
步骤S1003,当待检测软件的软件大小小于软件阈值时,对待检测软件进行填充操作,以使填充后的软件大小等于软件阈值,并提取填充后待检测软件的目标软件特征。
需要说明的是,作为深度学习网络的恶意软件检测模型或壳分类模型,其输入层维度是固定的,若输入数据过大,则无法完整预测和分类,因此本申请实施例中需要对输入到模型的数据的大小进行调整,以便符合输入要求。
进一步的,恶意软件检测模型的输入文件PE文件,也即待检测文件和样本检测文件均为PE文件时,本申请实施例中通过对多个恶意代码文件进行统计,包括通过实验对27万个恶意代码文件的大小进行了统计,其中小于1MB的PE文件占比达96.41%,大于1MB的仅有3.59%,为覆盖足够的特征,将软件填充或截断至2MB,因此多层感知机的输入维度为2097152(=2M),因此,本申请实施例中将设定软件阈值为2MB。
那么在应用过程或训练过程中都将对输入的样本进行调整以便符合软件阈值的大小要求。以应用过程为例子,在将待检测软件输入到恶意软件检测模型之前,需要获取待检测软件的软件大小,当待检测软件的软件大小大于预设的软件阈值时,如大于2MB时,表明文件过大,需要减小,则对待检测软件进行截断操作,以使截断后的软件大小等于2MB,最终将截断后的待检测文件输入到恶意软件检测模型中进行处理,以便提取截断后待检测软件的目标软件特征,在此不再赘述后续过程。
同样的,当待检测软件的软件大小小于软件阈值时,如小于2MB时,表明文件过小,则需要对待检测软件进行填充操作,填充过程需要保证所填充的数据不会影响到原文件的特征表达,因此本申请实施例对待检测软件的后面添加0字节,完成填充操作,填充后的软件大小等于2MB,最终将填充后的待检测文件输入到恶意软件检测模型中进行处理,以便提取填充后待检测软件的目标软件特征,在此不再赘述后续过程。
综上,是本申请实施例中恶意软件的检测方法各个步骤的详细介绍,下面,以具体的实施例进行补充说明:
请参阅图11,图11为本申请实施例提供的对恶意软件检测模型和壳分类模型进行对抗训练过程的示意图。
在本实施例中,对于一个样本检测软件(PE文件,应用过程则为待检测软件),若体积小于2MB则在文件后面添加0字节补齐至2MB,若体积大于2MB,则将大于2MB的部分截断,然后将样本转换为一维向量,得到输入字节序列,记为:
为一个2M维度的特征向量。此外,软件分类标签/>,其中,代表恶意代码判定标签空间,其中0表示正常软件,1表示恶意软件,而壳分类标签/>,其中/>,代表壳类别标签空间,不同的数字表示加壳对应的技术,如UPX、ASPack、PECompact等等。
在输入后插入一个全连接共享层,这个全连接共享层可以是恶意软件检测模型的第一层全连接层,也可以是壳分类模型的第一层全连接层,因为二者输出的特征相同,所以这里简称为全连接共享层。在全连接共享层输入字节序列进行特征提前后,可以得到样本软件特征。然后训练过程分成两个分支,即恶意软件检测模型和壳分类模型,通过恶意软件检测模型/>,判定是否是恶意软件,通过壳分类模型实现加壳类别判定,如UPX、ASPack、PECompact等等。
本实施例中,恶意软件检测模型作为主模型,壳分类模型作为对抗模型,主模型与对抗模型均使用多层感知机,包括若干个全连接层,全连接层的激活函数采用ReLU函数relu(x)=max(0,x),同时使用Dropout避免过拟合,在两个模型的输出层,都可以使用Softmax函数,对应恶意软件、加壳类别,最后使用多分类交叉熵损失作为它的损失函数。
在训练阶段完成两个任务,一是实现恶意软件的准确检测,实现判定误差的最小化;二是要弱化与壳类别相关的特征,实现壳分类误差的最大化。对于恶意软件检测模型,第一损失值为/>,对于壳分类模型/>,其第二损失值为/>,最终,得到的对抗损失值为/>,那么损失函数即可以定义成如下式所示:
其中,表示转换后的一维向量,y表示恶意软件检测模型的输出,d表示壳分类模型的输出,因此/>表示样本软件分类预测值,/>为对应的软件分类标签,/>表示样本壳分类预测值,/>为对应的壳分类标签,N表示样本的数量,/>为第二损失值的权重参数。
本实施例中第一权重参数为1,第二权重参数为。
为实现对抗学习,本实施例引入了梯度反转层(Gradient Reversal Layer,GRL),使得在反向传播过程中梯度方向自动取反,在前向传播过程中实现恒等变换,相关数学表示如下式所示:
在反向传播过程中,壳分类模型的第二损失值的梯度反向传播到全连接共享层的参数之前会自动取反,进而实现了类似与对抗网络的对抗损失。
因此,本实施例中基于以上网络结构训练生成的恶意软件检测模型,弱化与壳类别相关的特征,最终所得到的恶意软件检测模型就可以对输入的待检测软件进行精准分类预测,最终得到准确的软件检测结果,即使恶意软件与正常软件进行相同的加壳也能忽视加壳特征对检测的影响,提高了恶意软件检测的准确性和有效性,从而大大降低了正常加壳软件被误报的概率。
进一步的,恶意软件检测模型还可以结合集成学习提升检测稳定性,并通过持续的数据更新与模型迭代,保持对新变种恶意软件的高敏感性。
图12是本申请实施例提供的模型的训练方法的一个可选的流程图,图12中的方法可以包括但不限于包括步骤S1101至步骤S1104。
步骤S1101,获取样本检测软件;
其中,样本检测软件包含样本壳特征;
步骤S1102,提取样本检测软件的样本软件特征,并通过恶意软件检测模型对样本软件特征进行软件检测,得到样本检测软件的样本软件分类预测值,并通过壳分类模型对样本软件特征进行壳分类预测,得到样本壳特征的样本壳分类预测值;
其中,壳分类模型是恶意软件检测模型的对抗模型;
步骤S1103,基于样本软件分类预测值确定恶意软件检测模型的第一损失值,基于样本壳分类预测值确定壳分类模型的第二损失值,并根据第一损失值和第二损失值确定对抗损失值;
其中,对抗损失值与第一损失值正相关,对抗损失值与第二损失值负相关;
步骤S1104,基于对抗损失值对恶意软件检测模型和壳分类模型进行对抗训练,得到训练好的壳分类模型和恶意软件检测模型。
恶意软件检测模型是一种预先训练好的分类模型,可以通过对抗训练的方式得到,并用于对输入的待检测软件进行分类预测,能够有效地检测出恶意软件。恶意软件检测模型可以是任何能够实现对待检测软件进行分类预测的模型,例如决策树、支持向量机等传统机器学习模型,也可以是深度学习模型中的神经网络模型,本申请实施例中以恶意软件检测模型为神经网络模型为例子进行说明,后续不再赘述。
壳分类模型是指用于对软件进行壳分类预测的分类模型。在计算机安全领域,软件壳通常指的是对软件进行加壳处理,目的是为了防止反编译、破解或分析软件的内部结构和代码。壳分类模型被用于对样本软件特征进行壳分类预测,判断软件是否经过了某种特定的加壳处理,以便在恶意软件检测中对加壳特征进行识别和处理,以帮助恶意软件检测模型识别恶意软件中与壳类别相关的特征,这样可以通过对抗训练的方式弱化与壳类别相关的特征,提高恶意软件检测模型对输入的待检测软件进行精准分类预测,从而提高恶意软件检测的准确性和有效性。
样本软件特征是对样本检测软件进行特征提取后得到的特征,样本软件特征与目标软件特征类似,与目标软件特征一样,样本软件特征也可以有多种,例如,样本软件特征可以是对样本检测软件直接进行特征转换后得到的特征表示;此外,样本软件特征还可以是对样本检测软件进行特征转换后,再进一步进行特征提取到的特征,如可以通过恶意软件检测模型的输入层对输入的样本检测软件进行特征转换,再通过后续的全连接层对转换得到的特征进行特征提取,所得到的特征就是样本软件特征。
进一步的,本申请实施例中的样本软件特征也是恶意软件检测模型的某层全连接层经过特征提取后得到的特征,但是该全连接层并不是恶意软件检测模型中多层全连接层中的最后一层,这样,通过相同的特征表示,壳分类模型可以对相同的样本软件特征进行处理,这样两个模型更好地利用数据中的相关性和共享信息,从而提高模型的训练效率和泛化能力。
样本软件分类预测值指的是对样本检测软件进行软件检测后得到的分类结果,是恶意软件检测模型输出的一个概率值,用于协助判断样本检测软件是属于恶意软件还是正常软件的结果。在本申请实施例中,通过提取样本检测软件的特征,并通过恶意软件检测模型进行软件检测,最终确定样本检测软件的软件检测预测情况,即样本软件分类预测值,后续可以用于进行模型的训练。
样本检测软件指的是需要进行恶意软件检测的软件,也就是被检测是否含有恶意特征的软件,样本检测软件是训练过程中的软件。本申请实施例中的恶意软件,指的是包含病毒、木马、恶意代码等恶意元素的代码软件,对于样本检测软件来说,与待检测软件一样,其也可以是可执行程序文件、脚本文件、压缩文件、网络流量数据(如网络数据包、报文等)、在操作系统中运行的进程或服务等软件,这些文件可能含有恶意元素,所以需要进行检测。此外,样本检测软件上的加壳特征称为样本壳特征,是通过相应的加壳技术得到的。
可以理解的是,样本检测软件带有训练所需要的标签,包括软件分类标签和壳分类标签,软件分类标签用于指示样本检测软件是正常软件还是恶意软件,壳分类标签用于指示样本检测软件上的样本壳特征是通过哪一类技术加壳得到的。
样本壳分类预测值指的是对样本检测软件进行加壳分类后得到的分类结果,是壳分类模型输出的一个概率值,用于协助判断样本检测软件的加壳特征是通过哪一类技术加壳得到的结果,如UPX、ASPack、PECompact等等。在本申请实施例中,通过提取样本检测软件的特征,并通过壳分类模型进行壳分类检测,最终确定样本检测软件的壳分类预测值,后续可以用于进行模型的训练。
第一损失值是指根据恶意软件检测模型对样本检测软件的样本软件分类预测值得到的损失值。具体来说,该损失值是通过将样本软件特征输入恶意软件检测模型进行软件检测后得到的软件分类预测值,与实际标签进行比较得出的损失值,通过最小化第一损失值,可以实现恶意软件检测模型的分类性能优化。
第二损失值是指根据壳分类模型对样本壳特征的样本壳分类预测值得到的损失值。具体来说,该损失值是通过将样本软件特征输入壳分类模型进行壳分类预测后得到的壳分类预测值,与实际标签进行比较得出的损失值。通过最小化第二损失值,可以在对抗训练的过程中弱化与壳类别相关的特征,从而提高恶意软件检测模型对输入的待检测软件的分类预测准确性。
对抗损失值是在对抗训练中,通过结合第一损失值和第二损失值计算得出的损失值。具体来说,对抗损失值是由第一损失值和第二损失值确定的,在对抗训练的过程中,最小化对抗损失值可以实现最大化恶意软件检测模型的分类性能以及弱化与壳类别相关的特征。
进一步的,对抗损失值与第一损失值正相关,与第二损失值负相关,通过使对抗损失值与第一损失值正相关,对抗训练过程中可以尽量减小恶意软件检测模型的分类误差,提高其分类性能,这样可以使模型在检测恶意软件时更加准确和可靠;通过使对抗损失值与第二损失值负相关,对抗训练过程中可以弱化与壳类别相关的特征,从而减少对加壳特征的关注,提高模型对于加壳恶意软件的检测能力,这样即使恶意软件与正常软件进行相同的加壳,模型也能够忽视加壳特征对检测的影响,提高检测的准确性和有效性。
可以理解的是,第一损失值用于在训练过程中,调整恶意软件检测模型的参数,第二损失值用于在训练过程中,调整壳分类模型的参数,但是恶意软件检测模型是通过与壳分类模型对抗训练得到的,在对抗训练的过程中,还需要基于对抗损失值进行,而本申请实施例中对抗训练的目的是最小化对抗损失值。
需要说明的是,本申请实施例中通过对抗训练的方式来训练恶意软件检测模型,通过使用壳分类模型来预测需要被忽略的加壳类别,使得恶意软件检测模型可以忽略加壳特征对检测的影响,这可以提高模型的鲁棒性和分类能力,使得恶意软件检测模型在面对恶意软件的攻击时更具有鲁棒性和对抗性,从而更好地检测恶意软件,可以有效地应对恶意软件的变异和逃避检测的能力,且由于训练数据集中包含各种形式的恶意软件,因此该模型可以准确识别不同类型的恶意软件,从而提高恶意软件检测的准确性和有效性。最终,即使恶意软件与正常软件进行相同的加壳,恶意软件检测模型也能忽视加壳特征对检测的影响。
请参阅图13,本申请实施例还提供一种恶意软件的检测装置,可以实现上述恶意软件的检测方法,恶意软件的检测装置包括:
第一软件获取模块1301,用于获取待检测软件;
第一分类预测模块1302,用于提取待检测软件的目标软件特征,并通过预先训练好的恶意软件检测模型对目标软件特征进行软件检测,得到待检测软件的软件分类预测值;
检测结果确定模块1303,用于根据软件分类预测值确定待检测软件的软件检测结果;
其中,恶意软件检测模型的对抗模型是壳分类模型,恶意软件检测模型和壳分类模型是预先根据对抗损失值进行对抗训练后得到的,对抗损失值根据第一损失值和第二损失值确定得到,对抗损失值与第一损失值正相关,对抗损失值与第二损失值负相关,第一损失值是根据恶意软件检测模型对样本检测软件的样本软件分类预测值得到的,样本软件分类预测值是在提取样本检测软件的样本软件特征,并通过恶意软件检测模型对样本软件特征进行软件检测后得到的,样本检测软件包含样本壳特征,第二损失值是根据壳分类模型对样本壳特征的样本壳分类预测值得到的,样本壳分类预测值是通过壳分类模型对样本软件特征进行壳分类预测后得到的。
该恶意软件的检测装置的具体实施方式与上述恶意软件的检测方法的具体实施例基本相同,在此不再赘述。在满足本申请实施例要求的前提下,恶意软件的检测装置还可以设置其他功能模块,以实现上述实施例中的恶意软件的检测方法。
请参阅图14,本申请实施例还提供一种模型的训练装置,可以实现上述模型的训练方法,模型的训练装置包括:
第二软件获取模块1401,用于获取样本检测软件,其中,样本检测软件包含样本壳特征;
第二分类预测模块1402,用于提取样本检测软件的样本软件特征,并通过恶意软件检测模型对样本软件特征进行软件检测,得到样本检测软件的样本软件分类预测值,并通过壳分类模型对样本软件特征进行壳分类预测,得到样本壳特征的样本壳分类预测值,其中,壳分类模型是恶意软件检测模型的对抗模型;
损失确定模块1403,用于基于样本软件分类预测值确定恶意软件检测模型的第一损失值,基于样本壳分类预测值确定壳分类模型的第二损失值,并根据第一损失值和第二损失值确定对抗损失值,其中,对抗损失值与第一损失值正相关,对抗损失值与第二损失值负相关;
训练模块1404,用于基于对抗损失值对恶意软件检测模型和壳分类模型进行对抗训练,得到训练好的壳分类模型和恶意软件检测模型。
模型的训练装置可以通过执行模型的训练方法,通过对抗训练的方式来训练恶意软件检测模型,通过使用壳分类模型来预测需要被忽略的加壳类别,使得恶意软件检测模型可以忽略加壳特征对检测的影响,这可以提高模型的鲁棒性和分类能力,使得恶意软件检测模型在面对恶意软件的攻击时更具有鲁棒性和对抗性,从而更好地检测恶意软件,可以有效地应对恶意软件的变异和逃避检测的能力,且由于训练数据集中包含各种形式的恶意软件,因此该模型可以准确识别不同类型的恶意软件,从而提高恶意软件检测的准确性和有效性。最终,即使恶意软件与正常软件进行相同的加壳,恶意软件检测模型也能忽视加壳特征对检测的影响。
该模型的训练装置的具体实施方式与上述模型的训练方法的具体实施例基本相同,在此不再赘述。在满足本申请实施例要求的前提下,模型的训练装置还可以设置其他功能模块,以实现上述实施例中的模型的训练方法。
本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述恶意软件的检测方法或模型的训练方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图15,图15示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器1501,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器1502,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器1502可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1502中,并由处理器1501来调用执行本申请实施例的恶意软件的检测方法或模型的训练方法;
输入/输出接口1503,用于实现信息输入及输出;
通信接口1504,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线1505,在设备的各个组件(例如处理器1501、存储器1502、输入/输出接口1503和通信接口1504)之间传输信息;
其中处理器1501、存储器1502、输入/输出接口1503和通信接口1504通过总线1505实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述恶意软件的检测方法或模型的训练方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (15)
1.一种恶意软件的检测方法,其特征在于,包括:
获取待检测软件;
提取所述待检测软件的目标软件特征,并通过预先训练好的恶意软件检测模型对所述目标软件特征进行软件检测,得到所述待检测软件的软件分类预测值;
根据所述软件分类预测值确定所述待检测软件的软件检测结果;
其中,所述恶意软件检测模型的对抗模型是壳分类模型,所述恶意软件检测模型和所述壳分类模型是预先根据对抗损失值进行对抗训练后得到的,所述对抗损失值根据第一损失值和第二损失值确定得到,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关,所述第一损失值是根据所述恶意软件检测模型对样本检测软件的样本软件分类预测值得到的,所述样本软件分类预测值是在提取所述样本检测软件的样本软件特征,并通过所述恶意软件检测模型对所述样本软件特征进行软件检测后得到的,所述样本检测软件包含样本壳特征,所述第二损失值是根据所述壳分类模型对所述样本壳特征的样本壳分类预测值得到的,所述样本壳分类预测值是通过所述壳分类模型对所述样本软件特征进行壳分类预测后得到的。
2.根据权利要求1所述的恶意软件的检测方法,其特征在于,所述恶意软件检测模型通过以下步骤训练得到:
获取所述样本检测软件,其中,所述样本检测软件包含所述样本壳特征;
提取所述样本检测软件的样本软件特征,并通过所述恶意软件检测模型对所述样本软件特征进行软件检测,得到所述样本检测软件的所述样本软件分类预测值,并通过所述壳分类模型对所述样本软件特征进行壳分类预测,得到所述样本壳特征的所述样本壳分类预测值;
基于所述样本软件分类预测值确定所述恶意软件检测模型的所述第一损失值,基于所述样本壳分类预测值确定所述壳分类模型的所述第二损失值,并根据所述第一损失值和所述第二损失值确定所述对抗损失值,其中,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关;
基于所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型。
3.根据权利要求2所述的恶意软件的检测方法,其特征在于,所述恶意软件检测模型设置有第一输入层和第一全连接层,所述壳分类模型设置有第二输入层和第二全连接层;
所述提取所述样本检测软件的样本软件特征,并通过所述恶意软件检测模型对所述样本软件特征进行软件检测,得到所述样本检测软件的所述样本软件分类预测值,并通过所述壳分类模型对所述样本软件特征进行壳分类预测,得到所述样本壳特征的所述样本壳分类预测值,包括:
将所述样本检测软件输入到所述恶意软件检测模型中,通过所述第一输入层对所述样本检测软件进行特征转换操作,并通过所述第一全连接层对特征转换后的所述样本检测软件进行特征提取操作,得到样本软件特征,基于所述样本软件特征得到所述样本检测软件的所述样本软件分类预测值;
将所述样本检测软件输入到所述壳分类模型中,通过所述第二输入层对所述样本检测软件进行特征转换操作,并通过所述第二全连接层对特征转换后的所述样本检测软件进行特征提取操作,得到相同的所述样本软件特征,基于所述样本软件特征得到所述样本壳特征的所述样本壳分类预测值;
其中,所述恶意软件检测模型和所述壳分类模型均设置有多个全连接层,所述第一全连接层是所述恶意软件检测模型中的首层全连接层,所述第二全连接层是所述壳分类模型中的首层全连接层,所述第一输入层和所述第二输入层的参数共享,所述第一全连接层和所述第二全连接层的参数共享。
4.根据权利要求2所述的恶意软件的检测方法,其特征在于,所述基于所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型,包括:
在最小化所述对抗损失值的基础上,根据所述第一损失值和所述第二损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型;
其中,所述第一损失值用于调整所述恶意软件检测模型的参数,所述第二损失值用于调整所述壳分类模型的参数。
5.根据权利要求4所述的恶意软件的检测方法,其特征在于,所述根据所述第一损失值和所述第二损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型,包括:
将所述第一损失值反向传播至所述恶意软件检测模型,通过梯度下降操作最小化所述第一损失值,以最小化所述对抗损失值,对所述恶意软件检测模型进行训练,得到训练好的所述恶意软件检测模型;
将所述第二损失值反向传播至所述壳分类模型,在反向传播过程中进行梯度反转操作,并同时通过梯度下降操作最大化所述第二损失值,以最小化所述对抗损失值,对所述壳分类模型进行训练,得到训练好的所述壳分类模型。
6.根据权利要求2所述的恶意软件的检测方法,其特征在于,所述基于所述样本软件分类预测值确定所述恶意软件检测模型的所述第一损失值,基于所述样本壳分类预测值确定所述壳分类模型的所述第二损失值,并根据所述第一损失值和所述第二损失值确定所述对抗损失值,包括:
获取所述样本检测软件的软件分类标签和壳分类标签;
基于所述软件分类标签和所述样本软件分类预测值确定所述恶意软件检测模型的所述第一损失值;
基于所述壳分类标签和所述样本壳分类预测值确定所述壳分类模型的所述第二损失值;
根据所述第一损失值和所述第二损失值之间的差值,得到所述对抗损失值。
7.根据权利要求2或6所述的恶意软件的检测方法,其特征在于,所述根据所述第一损失值和所述第二损失值确定所述对抗损失值,包括:
基于预设的第一权重参数对所述第一损失值进行乘积操作,基于预设的第二权重参数对所述第二损失值进行乘积操作,并根据乘积后所述第一损失值和所述第二损失值之间的差值,得到所述对抗损失值。
8.根据权利要求7所述的恶意软件的检测方法,其特征在于,所述方法还包括:
计算所述第二权重参数与所述第一权重参数之间的目标比值;
在对所述恶意软件检测模型和所述壳分类模型进行对抗训练的过程中,通过调整所述第一权重参数或所述第二权重参数的大小以最大化所述目标比值,并在调整后的所述第一权重参数或所述第二权重参数下,更新所述对抗损失值。
9.根据权利要求7所述的恶意软件的检测方法,其特征在于,预设的所述第一权重参数和所述第二权重参数通过以下步骤更新得到:
获取初始的所述第一权重参数和初始的所述第二权重参数;
调整所述第一权重参数或所述第二权重参数,并在预设的目标训练轮次下,基于调整过程中得到的不同的所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到在不同的所述第一权重参数或所述第二权重参数下训练得到的所述恶意软件检测模型;
在根据调整所述第一权重参数或所述第二权重参数后训练到的不同的所述恶意软件检测模型的检测准确率中,选择最高检测准确率下对应的所述第一权重参数或所述第二权重参数,作为更新后的所述第一权重参数或更新后的所述第二权重参数。
10.根据权利要求1所述的恶意软件的检测方法,其特征在于,所述提取所述待检测软件的目标软件特征,包括:
获取所述待检测软件的软件大小;
当所述待检测软件的软件大小大于预设的软件阈值时,对所述待检测软件进行截断操作,以使截断后的软件大小等于所述软件阈值,并提取截断后所述待检测软件的目标软件特征;
当所述待检测软件的软件大小小于所述软件阈值时,对所述待检测软件进行填充操作,以使填充后的软件大小等于所述软件阈值,并提取填充后所述待检测软件的所述目标软件特征。
11.一种模型的训练方法,其特征在于,包括:
获取样本检测软件,其中,所述样本检测软件包含样本壳特征;
提取所述样本检测软件的样本软件特征,并通过恶意软件检测模型对所述样本软件特征进行软件检测,得到所述样本检测软件的样本软件分类预测值,并通过壳分类模型对所述样本软件特征进行壳分类预测,得到样本壳特征的样本壳分类预测值,其中,所述壳分类模型是所述恶意软件检测模型的对抗模型;
基于所述样本软件分类预测值确定所述恶意软件检测模型的第一损失值,基于所述样本壳分类预测值确定所述壳分类模型的第二损失值,并根据所述第一损失值和所述第二损失值确定对抗损失值,其中,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关;
基于所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型。
12.一种恶意软件的检测装置,其特征在于,包括:
第一软件获取模块,用于获取待检测软件;
第一分类预测模块,用于提取所述待检测软件的目标软件特征,并通过预先训练好的恶意软件检测模型对所述目标软件特征进行软件检测,得到所述待检测软件的软件分类预测值;
检测结果确定模块,用于根据所述软件分类预测值确定所述待检测软件的软件检测结果;
其中,所述恶意软件检测模型的对抗模型是壳分类模型,所述恶意软件检测模型和所述壳分类模型是预先根据对抗损失值进行对抗训练后得到的,所述对抗损失值根据第一损失值和第二损失值确定得到,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关,所述第一损失值是根据所述恶意软件检测模型对样本检测软件的样本软件分类预测值得到的,所述样本软件分类预测值是在提取所述样本检测软件的样本软件特征,并通过所述恶意软件检测模型对所述样本软件特征进行软件检测后得到的,所述样本检测软件包含样本壳特征,所述第二损失值是根据所述壳分类模型对所述样本壳特征的样本壳分类预测值得到的,所述样本壳分类预测值是通过所述壳分类模型对所述样本软件特征进行壳分类预测后得到的。
13.一种模型的训练装置,其特征在于,包括:
第二软件获取模块,用于获取样本检测软件,其中,所述样本检测软件包含样本壳特征;
第二分类预测模块,用于提取所述样本检测软件的样本软件特征,并通过恶意软件检测模型对所述样本软件特征进行软件检测,得到所述样本检测软件的样本软件分类预测值,并通过壳分类模型对所述样本软件特征进行壳分类预测,得到样本壳特征的样本壳分类预测值,其中,所述壳分类模型是所述恶意软件检测模型的对抗模型;
损失确定模块,用于基于所述样本软件分类预测值确定所述恶意软件检测模型的第一损失值,基于所述样本壳分类预测值确定所述壳分类模型的第二损失值,并根据所述第一损失值和所述第二损失值确定对抗损失值,其中,所述对抗损失值与所述第一损失值正相关,所述对抗损失值与所述第二损失值负相关;
训练模块,用于基于所述对抗损失值对所述恶意软件检测模型和所述壳分类模型进行对抗训练,得到训练好的所述壳分类模型和所述恶意软件检测模型。
14.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至10任一项所述的恶意软件的检测方法,或权利要求11所述的模型的训练方法。
15.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10任一项所述的恶意软件的检测方法,或权利要求11所述的模型的训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311782220.XA CN117454380B (zh) | 2023-12-22 | 2023-12-22 | 恶意软件的检测方法、训练方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311782220.XA CN117454380B (zh) | 2023-12-22 | 2023-12-22 | 恶意软件的检测方法、训练方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117454380A CN117454380A (zh) | 2024-01-26 |
CN117454380B true CN117454380B (zh) | 2024-03-01 |
Family
ID=89589562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311782220.XA Active CN117454380B (zh) | 2023-12-22 | 2023-12-22 | 恶意软件的检测方法、训练方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117454380B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117763550B (zh) * | 2024-02-22 | 2024-06-21 | 鹏城实验室 | 多任务恶意软件检测方法和装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400715A (zh) * | 2020-06-04 | 2020-07-10 | 鹏城实验室 | 分类引擎诊断方法、装置及计算机可读存储介质 |
CN113569611A (zh) * | 2021-02-08 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备和存储介质 |
CN116522337A (zh) * | 2023-04-18 | 2023-08-01 | 杭州电子科技大学 | 一种基于api语义的恶意软件家族无偏检测方法 |
CN116821905A (zh) * | 2023-06-01 | 2023-09-29 | 江苏大学 | 一种基于知识搜索的恶意软件检测方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10841333B2 (en) * | 2018-01-08 | 2020-11-17 | Sophos Limited | Malware detection using machine learning |
-
2023
- 2023-12-22 CN CN202311782220.XA patent/CN117454380B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400715A (zh) * | 2020-06-04 | 2020-07-10 | 鹏城实验室 | 分类引擎诊断方法、装置及计算机可读存储介质 |
CN113569611A (zh) * | 2021-02-08 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备和存储介质 |
CN116522337A (zh) * | 2023-04-18 | 2023-08-01 | 杭州电子科技大学 | 一种基于api语义的恶意软件家族无偏检测方法 |
CN116821905A (zh) * | 2023-06-01 | 2023-09-29 | 江苏大学 | 一种基于知识搜索的恶意软件检测方法及系统 |
Non-Patent Citations (3)
Title |
---|
Qiao yanchen et al..Adversarial malware sample generation method based on the prototype of deep learning detector.《Computers and Security》.2022,第1-12页. * |
王树伟 等.基于生成对抗网络的恶意软件对抗样本生成综述.《信息工程大学学报》.2019,第108-113页. * |
赵凌园.基于机器学习的恶意软件检测方法研究.《中国优秀硕士学位论文全文数据库信息科技辑》.2020,第1-89页. * |
Also Published As
Publication number | Publication date |
---|---|
CN117454380A (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Vinayakumar et al. | Robust intelligent malware detection using deep learning | |
CN110266647B (zh) | 一种命令和控制通信检测方法及系统 | |
KR102093275B1 (ko) | 악성코드 감염 유도정보 판별 시스템, 프로그램이 기록된 저장매체 및 방법 | |
CN114730339A (zh) | 检测计算机系统中未知的恶意内容 | |
KR101949338B1 (ko) | 기계 학습 모델에 기반하여 페이로드로부터 sql 인젝션을 탐지하는 방법 및 이를 이용한 장치 | |
CN111600919B (zh) | 智能网络应用防护系统模型的构建方法和装置 | |
CN111614599B (zh) | 基于人工智能的webshell检测方法和装置 | |
CN112073415B (zh) | 一种网络安全知识图谱的构建方法及装置 | |
CN117454380B (zh) | 恶意软件的检测方法、训练方法、装置、设备及介质 | |
CN113360912A (zh) | 恶意软件检测方法、装置、设备及存储介质 | |
CN116303290A (zh) | 一种office文档检测方法及装置、设备及介质 | |
CN114422271B (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN112948578A (zh) | 一种dga域名开集分类方法、装置、电子设备及介质 | |
CN115883261A (zh) | 一种基于att和ck的电力系统apt攻击建模方法 | |
KR20200133644A (ko) | 악성 멀티미디어 파일을 분류하는 인공지능 기반 장치, 방법 및 그 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체 | |
Zhu et al. | Effective phishing website detection based on improved BP neural network and dual feature evaluation | |
Ye et al. | Android malware detection technology based on lightweight convolutional neural networks | |
CN113704569A (zh) | 信息的处理方法、装置及电子设备 | |
WO2023072002A1 (zh) | 开源组件包的安全检测方法及装置 | |
CN116962047A (zh) | 一种可解释的威胁情报生成方法、系统及装置 | |
Sharma et al. | Deep learning applications in cyber security: a comprehensive review, challenges and prospects | |
Chen et al. | ELAMD: An ensemble learning framework for adversarial malware defense | |
CN114398887A (zh) | 一种文本分类方法、装置及电子设备 | |
CN113420293A (zh) | 一种基于深度学习的安卓恶意应用检测方法及系统 | |
KR102202448B1 (ko) | 파일 내 악성 위협을 처리하는 인공지능 기반 장치, 그 방법 및 그 기록매체 |
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 |