CN117521063A - 基于残差神经网络并结合迁移学习的恶意软件检测方法及装置 - Google Patents
基于残差神经网络并结合迁移学习的恶意软件检测方法及装置 Download PDFInfo
- Publication number
- CN117521063A CN117521063A CN202311397538.6A CN202311397538A CN117521063A CN 117521063 A CN117521063 A CN 117521063A CN 202311397538 A CN202311397538 A CN 202311397538A CN 117521063 A CN117521063 A CN 117521063A
- Authority
- CN
- China
- Prior art keywords
- model
- neural network
- data set
- malicious code
- residual neural
- 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.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 41
- 238000013526 transfer learning Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000001514 detection method Methods 0.000 claims abstract description 46
- 230000006870 function Effects 0.000 claims abstract description 36
- 238000012549 training Methods 0.000 claims abstract description 31
- 238000012360 testing method Methods 0.000 claims abstract description 14
- 230000004913 activation Effects 0.000 claims description 18
- 238000010606 normalization Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims description 4
- 238000013508 migration Methods 0.000 claims description 4
- 230000005012 migration Effects 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 238000011176 pooling Methods 0.000 claims description 3
- 238000010801 machine learning Methods 0.000 abstract description 8
- 230000008901 benefit Effects 0.000 abstract description 6
- 238000013135 deep learning Methods 0.000 abstract description 5
- 238000011156 evaluation Methods 0.000 abstract description 4
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 abstract description 3
- 238000002474 experimental method Methods 0.000 abstract description 2
- 230000000007 visual effect Effects 0.000 abstract description 2
- 238000012546 transfer Methods 0.000 abstract 1
- 210000002569 neuron Anatomy 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008033 biological extinction Effects 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 210000004205 output neuron Anatomy 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012800 visualization 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
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/096—Transfer learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Virology (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了基于残差神经网络并结合迁移学习的恶意软件检测方法及装置,其中的方法首先将数据集中恶意代码的原始字节编码转化为可视灰度图,然后对数据集进行归一化和数据增强以扩充数据集,并将ResNet50模型作为基础模型迁移到恶意软件的图像分类当中,以加速模型的收敛并在测试集上进行验证,最后设置Adam优化器对模型进行编译,训练完成后生成精确率和损失函数的图像以及各种评价指标,以此来评估模型的优劣。通过实验,使用深度学习方法检测恶意代码的准确率达到了94%,比传统机器学习方法检测更准确,更具有普适性。
Description
技术领域
本发明涉及深度学习和网络安全技术领域,尤其涉及基于残差神经网络并结合迁移学习的恶意软件检测方法及装置。
背景技术
近年来,随着计算机软件***的复杂性增强,潜在的安全漏洞数量呈现递增趋势。
尽管部分披露的软件安全漏洞已经被修复,这并不意味着计算机用户在使用软件***时所面临的危害有所降低。近年来,软件安全漏洞不仅在数量上逐年激增,其形态也表现出复杂性和多样性的特点,给软件***的正常运行带来了严峻的挑战。
早期的软件安全漏洞挖掘技术主要分为三大类:1)静态分析技术。这种技术是指在不运行程序的情况下,对程序源代码或字节码的语法、语义、控制流和数据流进行分析,从而检测目标程序中可能潜在的安全漏洞。2)动态分析技术。这种技术是指在程序运行情况下,对运行程序的运行状态、执行路径和寄存器状态进行分析,从而发现动态调试器中存在的安全漏洞。3)混合分析技术。该技术是指同时结合静态分析和动态分析技术,以对目标程序进行安全漏洞挖掘。
近年来,随着人工智能(artificial intelligence,AI)技术的兴起,利用AI可以自动化地从复杂高维数据中提取数据的有效特征。目前,将AI应用于安全漏洞挖掘领域主要是利用机器学习(machine learning,ML)、自然语言处理(natural languageprocessing,NLP)和深度学习(deep learning,DL),以实现软件安全漏洞的自动化和智能化研究。然而,基于传统机器学习的软件安全漏洞挖掘模型依赖于安全专家去定义漏洞特征,且只能挖掘已知的漏洞信息,在实际应用环境中无法挖掘未知的漏洞信息,应用范围比较局限。同时,现有的基于机器学习的软件安全漏洞挖掘模型无法指明与漏洞相关的关键语句或特征,使得难以定位安全漏洞存在的精确位置。
发明内容
本发明提供了一种基于残差神经网络并结合迁移学习的恶意软件检测方法及装置,用以解决或者至少部分解决现有技术中检测准确性不高的技术问题。
为了解决上述技术问题,本发明第一方面提供了基于残差神经网络并结合迁移学习的恶意软件检测方法,包括:
获取原始数据集;
采用数据增强方法对原始数据集进行扩充,具体包括:对恶意代码二进制文件进行归一化处理,然后转化为灰度图像,再对得到的灰度图像进行扩充;
根据扩充后的数据集中的灰度图像构建样本数据集,并划分出训练集和测试集;
采用预先构建的残差神经网络作为基础模型,得到部分参数,将部分参数迁移至恶意代码灰度图像的识别过程中,然后构建平坦层和全连接层构成一个检测模型,再将训练集输入检测模型中进行训练,根据输出的数据对检测模型的参数进行微调;
利用微调后的检测模型对待检测样本进行检测。
在一种实施方式中,原始数据集来自Kaggle平台提供的恶意样本,数据集的每条数据分为.asm格式和.bytes格式,采用.bytes格式的文件作为原始数据集的样本。
在一种实施方式中,对恶意代码二进制文件进行归一化处理,包括:
采用min-max归一化方法,对生成的恶意代码的原始字节矩阵进行处理。
在一种实施方式中,将恶意代码二进制文件转化为灰度图像,包括:对于给定的恶意代码二进制可执行文件,将其每8bit分割为一个子序列,每个子序列通过进制转换转换成两个十六进制数,对应像素区间[0,255],并将这些子序列按顺序排列。
在一种实施方式中,对得到的灰度图像进行扩充,包括:
对得到的灰度图像进行旋转、剪裁、上下翻转、左右翻转以及调节对比度。
在一种实施方式中,预先构建的残差神经网络为经过ImageNet预训练过的ResNet50模型,该模型由多个基本残差块构成,一个基本残差块包括卷积层、ReLU激活函数、批量归一化、下采样、全局平均池化层、全连接层。
在一种实施方式中,检测模型以ResNet50为基础框架,随后设置一个Flatten层和五个Dense层,在第三和第四个Dense层中间添加一个Dropout,在第四和第五个Dense层中间添加一个Dropout,使用ReLU和Softmax函数作为激活函数。
基于同样的发明构思,本发明第二方面提供了基于残差神经网络并结合迁移学习的恶意软件检测装置,包括:
数据获取模块,用于获取原始数据集;
数据增强模块,用于采用数据增强方法对原始数据集进行扩充,具体包括:对恶意代码二进制文件进行归一化处理,然后转化为灰度图像,再对得到的灰度图像进行扩充;
数据集划分模块,根据扩充后的数据集中的灰度图像构建样本数据集,并划分出训练集和测试集;
模型构建模块,用于采用预先构建的残差神经网络作为基础模型,得到部分参数,将部分参数迁移至恶意代码灰度图像的识别过程中,然后构建平坦层和全连接层构成一个检测模型,再将训练集输入检测模型中进行训练,根据输出的数据对检测模型的参数进行微调;
检测模块,用于利用微调后的检测模型对待检测样本进行检测。
基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。
基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
相对于现有技术,本发明的优点和有益的技术效果如下:
提出了一种基于残差神经网络并结合迁移学***坦层和全连接层构成一个检测模型,用于恶意软件的检测,解决了基于传统机器学习的恶意软件检测模型依赖于手工定义恶意软件特征,误报率、漏报率高的问题,提高了检测的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中恶意代码二进制文件转化为灰度图的过程示意图;
图2为本发明实施例中检测模型的基本框架图;
图3为本发明实施例中ResNet50模型框架图;
图4为本发明实施例中基本残差块的结构图;
图5为本发明实施例中ReLU函数图像示意图;
图6为本发明实施例中Softmax函数图像示意图;
图7为本发明实施例中神经网络使用Dropout前后的变化图。
具体实施方式
为了更精确的实现对恶意软件的分类,本发明提出了一种基于ResNet(残差神经网络)并结合迁移学习的灰度编码可视化的恶意软件检测方法。首先,将数据集中恶意代码的原始字节编码转化为可视灰度图,然后对数据集进行归一化和数据增强以扩充数据集,并将ResNet50模型作为基础模型迁移到恶意软件的图像分类当中,以加速模型的收敛并在测试集上进行验证,最后设置Adam优化器对模型进行编译,训练完成后生成精确率和损失函数的图像以及各种评价指标,以此来评估模型的优劣。
具体实施过程中本发明从Kaggle平台上收集了九个常见的恶意代码家族样本,共计10868个样本。这些样本被随机混合,并分为训练集和测试集,其中训练集和测试集的比例为7:3。通过实验,使用深度学习方法检测恶意代码的准确率达到了94%,比传统机器学习方法检测更准确,更具有普适性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了基于残差神经网络并结合迁移学习的恶意软件检测方法,包括:
获取原始数据集;
采用数据增强方法对原始数据集进行扩充,具体包括:对恶意代码二进制文件进行归一化处理,然后转化为灰度图像,再对得到的灰度图像进行扩充;
根据扩充后的数据集中的灰度图像构建样本数据集,并划分出训练集和测试集;
采用预先构建的残差神经网络作为基础模型,得到部分参数,将部分参数迁移至恶意代码灰度图像的识别过程中,然后构建平坦层和全连接层构成一个检测模型,再将训练集输入检测模型中进行训练,根据输出的数据对检测模型的参数进行微调;
利用微调后的检测模型对待检测样本进行检测。
具体来说,在进行归一化处理之前,创建内存映射,并创建生成器,将恶意代码二进制文件写入内存。在划分训练集和测试集时可以根据需要设置对应的比例,本实施方式中训练集和测试集的比例为7:3。
检测模型以残差神经网络作为基础模型,并构建平坦层和全连接层,从而得到检测模型,再通过训练和参数微调得到的完整的检测模型。
在一种实施方式中,原始数据集来自Kaggle平台提供的恶意样本,数据集的每条数据分为.asm格式和.bytes格式,采用.bytes格式的文件作为原始数据集的样本。
具体来说,原始数据集中一共包含来自互联网平台的9个恶意代码样本家族,共计10868条数据。
在一种实施方式中,对恶意代码二进制文件进行归一化处理,包括:
采用min-max归一化方法,对生成的恶意代码的原始字节矩阵进行处理。
具体来说,Min-Max归一化用于将数据缩放到指定的范围内。通过对原始数据进行线性变换,将其转化为新的数值,使得这些新数值都落在指定的区间内,通常是[0,1]或[-1,1]之间。
该方法的步骤如下:选取一个特征的所有数据中的最大值和最小值;对于该特征的每个数据,将其减去最小值,再除以最大值与最小值之差;重复以上步骤,对于每个特征都进行归一化。
经过Min-Max归一化处理后,每个特征的数值都将被映射到指定的范围内,且每个特征的重要性权重不会发生改变。Max为样本数据的最大值,Min为样本数据的最小值,Min-Max的表达式如下:
x表示样本数据,x*表示归一化处理后的数据。
在一种实施方式中,将恶意代码二进制文件转化为灰度图像,包括:对于给定的恶意代码二进制可执行文件,将其每8bit分割为一个子序列,每个子序列通过进制转换转换成两个十六进制数,对应像素区间[0,255],并将这些子序列按顺序排列。
具体来说,通过上述方法可将其可视化为相应的恶意代码灰度图,图像的宽度和高度取决于文件的大小。本实施例中转化的灰度图像格式为JPEG,因此保证输入的数组每一行都对应于输出图像的一个像素,并且每个像素由16个字节的数据表示,对输入的数组进行调整使其满足JPEG格式图像的要求,本实施例使输入的数组调整为正方形。具体做法为,取原始数组大小的平方根整形作为宽或高,向上舍入到最接近2的幂次方,得到调整后的宽或高。
具体实施过程中,取原始数组大小的平方根整形作为宽或高,向上舍入到最接近2的幂次方,得到调整后的宽或高。恶意代码二进制文件转化为灰度图的过程如图1所示。
其中,对恶意代码生成的可执行程序进行解析时使用keras库。Keras库是一种可以对二进制文件进行解析的基于tensorflow2.0的开源库。
在一种实施方式中,对得到的灰度图像进行扩充,包括:
对得到的灰度图像进行旋转、剪裁、上下翻转、左右翻转以及调节对比度。
具体实施过程中,使用tensorflow中image库中的函数对像进行旋转、剪裁、上下翻转、左右翻转以及调节对比度来进行数据的扩充,从而提高模型的泛化能力,降低过拟合风险,让模型更准确的预测未知数据。其中,旋转的次数为随机的0-3次,对比度的随机对比因子上限为0.2,下限为0.5。
在一种实施方式中,预先构建的残差神经网络为经过ImageNet预训练过的ResNet50模型,该模型由多个基本残差块构成,一个基本残差块包括卷积层、ReLU激活函数、批量归一化、下采样、全局平均池化层、全连接层。
具体来说,构建的残差神经网络模型的卷积层和全连接层的激活函数为非线性激活函数Relu和置信度转换函数Softmax。
在一种实施方式中,检测模型以ResNet50为基础框架,随后设置一个Flatten(平坦层)层和五个Dense层,在第三和第四个Dense层中间添加一个Dropout,在第四和第五个Dense层中间添加一个Dropout,使用ReLU和Softmax函数作为激活函数。
具体实施过程中,在对模型进行训练时,使用Dropout减少过拟合。五个Dense层(全连接层)中的每个Dense层的神经元个数分别为1024、512、256、128、10,其中在第三和第四个Dense层中间添加一个概率p=0.3的Dropout,在第四和第五个Dense层中间添加一个概率p=0.2的Dropout。检测模型的基本框架如图2所示。
ResNet50由多个基础残差块组成。其模型框架如图3所示。
深层神经网络的梯度消失问题是一个普遍存在的问题,梯度消失的原因是深层神经网络的激活输入值会发生偏移和变动,使得梯度变得非常小,甚至为0,导致无法进行有效的反向传播更新网络参数。BN通过规范化网络各层输入并强制拉回标准正态分布,使激活输入值落入非线性函数线性区域内,避免梯度消失的问题。BN的基本思想是在每个小批量数据上,对每一维特征进行规范化,使其均值为0,方差为1,然后再进行线性变换和非线性变换。这样可以避免特征值的偏移和变化,从而使得网络的训练更加稳定和快速。
BN的计算的输入为x在mini-batch上的值。见式(1)。
B={x1,…,xm}#(1)
B表示输入的数据的集合,x1…xm表示从卷积层中输出的第一个数据和第m个数据。
计算mini-batch。见式(2)
计算mini-batch的差异。见式(3)
μB表示样本均值,m表示样本的输入个数,xi表示第i个数据,σB表示样本的标准差。
归一化。见式(4)
表示某对第l个数据的无偏估计,∈>0,是一个很小的常数,用于保证分母大于0。
还原特征分布。见式(5)
γ表示拉伸参数,β表示偏移参数,这两个参数是可学习的;Nγ,β(xi)表示归一化后的数据。
整个基本残差块的框架如图4所示。其中,filter_num表示过滤器的个数,stride表示过滤器在原图扫描时需要跳跃的格数,即步长。
迁移学习的核心思想是利用一个已经训练好的模型在新的任务上进行微调或调整,从而加速和提高新任务的学习效率和性能。
本模型使用基于模型的迁移学习,通过对神经网络模型进行调整,保留源领域的参数和知识,使用这些参数在目标领域上共享模型层,从而使得一些低层次的参数的特征能够更好地适应目标领域的任务。基于模型的迁移学习流程通常分为三步:首先,选取一款预先训练好的模型,通常是在大规模数据集上进行训练的模型(如ImageNet、GPT、BERT等)。其次,通过将新数据输入原先训练的模型,提取出模型中的特征表示。最后,使用这些特征表示来微调一个用于目标任务的新模型。微调的过程中,新模型的初始权重通常是基于原先的预训练模型的权重,然后通过使用小样本数据进行新模型的训练,以更新权重。
本模型使用先经过ImageNet预训练过的ResNet50模型作为基础,冻结其预训练的卷积层权重,使用其经过imagenet训练出来的权重,但不使用其用于分类的全连接层,然后再构建一个Flatten层和五个Dense层形成一个新模型,再把数据集放进模型中训练,根据输出的数据进行模型参数的适当微调,最终得到完整的新模型。
本模型使用ReLU激活函数和Softmax激活函数。
神经网络中的激活函数起到将神经元输入映射到输出端的作用。本模型使用了两个激活函数,分别是ReLU激活函数和Softmax激活函数,ReLU激活函数用于两个卷积层和第一个Dense层,Softmax激活函数用于第二个Dense层。
ReLU激活函数通常指代数学中的斜坡函数,它的提出是为了解决梯度消失问题。ReLU的梯度只可以取两个值:0或1,当输入小于0时,梯度为0;当输入大于0时,梯度为1,这样可以避免梯度消失问题。ReLU函数见式(6)。
ReLU函数图像如图5所示。
Softmax激活函数主要用于对多元分类问题进行预测。在神经网络中,输出层的每个神经元代表着网络对不同类别的置信度,Softmax函数将这些置信度转换为概率分布,可以将神经元的输出归一化为0到1的概率值,且所有输出的和等于1。Softmax函数见式(7)。
zc表示第c个神经元的输出值,
zd表示第d个输出神经元,分母表示所有输出数据的指数函数总和,K为输出神经元的个数。
Softmax函数图像如图6所示。
本模型使用Dropout来降低模型的过拟合风险。
使用Dropout这种正则化技术来限制模型参数,从而可以减少过拟合现象。在每个训练迭代中,Dropout会随机地将一些神经元的输出设置为零,这些神经元在该迭代中不会对网络的前向传播或反向传播做出贡献,每个神经元被设置为零的概率是一个超参数p,其它神经元以q=1-p的概率被保留,其输入的表达式见式(8)。
通过随机地丢弃神经元,Dropout可以训练出具有更强的泛化能力的神经网络。在训练过程中,网络不会过分依赖于任何一个神经元,因为每个神经元都可能被随机丢弃,这样Dropout可以减少隐藏神经元之间的相互作用,提高模型的性能。神经网络使用Dropout前后的变化如图7所示。
在一种实施方式中,所述方法还包括,使用测试集数据测试残差神经网络模型的准确率、精确率、召回率、F1分数等指标来评估模型的优劣。
本实施例采用Adam优化器编译模型,编译模型的损失函数使用交叉熵损失函数,并依据4个评价指标ACC(Accuracy,准确率)、Precision(精确率)、Recall(召回率)、F1Score(F1分数)来评估模型的优劣。
假定恶意样本为正例-Positive,良性样本为负例-Negative;预测正确为True,反之为False。得到以下表示四个预测值TP、FP、TN、FN的表:
表1混淆矩阵
于是有如下评价指标的定义:
本发明的技术方案与现有的恶意代码检测方法相比,具有以下优点:
1、提出了一种基于残差神经网络并结合迁移学习的恶意代码检测方法,解决基于传统机器学习的恶意软件检测模型依赖于手工定义恶意软件特征,误报率、漏报率高的问题。
2、提出的方法使用了数据增强技术。原始数据集可能很小或者非常不平衡,导致模型过拟合或者不能很好的表示全局性质。数据增强可以通过一系列的变换,扩大原始数据集的规模,从而提高模型的泛化能力,降低过拟合风险,让模型更准确的预测未知数据。
3、提出的方法使用了迁移学习技术。通过利用已有的知识和经验,迁移学习可以解决数据不足或数据质量差的问题,并且可以避免从头开始训练模型所需要的时间和计算资源。
实施例二
基于同样的发明构思,本实施例公开了基于残差神经网络并结合迁移学习的恶意软件检测装置,包括:
数据获取模块,用于获取原始数据集;
数据增强模块,用于采用数据增强方法对原始数据集进行扩充,具体包括:对恶意代码二进制文件进行归一化处理,然后转化为灰度图像,再对得到的灰度图像进行扩充;
数据集划分模块,根据扩充后的数据集中的灰度图像构建样本数据集,并划分出训练集和测试集;
模型构建模块,用于采用预先构建的残差神经网络作为基础模型,得到部分参数,将部分参数迁移至恶意代码灰度图像的识别过程中,然后构建平坦层和全连接层构成一个检测模型,再将训练集输入检测模型中进行训练,根据输出的数据对检测模型的参数进行微调;
检测模块,用于利用微调后的检测模型对待检测样本进行检测。
由于本发明实施例二所介绍的装置为实施本发明实施例一中基于残差神经网络并结合迁移学习的恶意软件检测方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的装置都属于本发明所欲保护的范围。
实施例三
基于同一发明构思,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现如实施例一中所述的方法。
由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中基于残差神经网络并结合迁移学习的恶意软件检测方法所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
实施例四
基于同一发明构思,本申请还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行上述程序时实现实施例一中的方法。
由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中基于残差神经网络并结合迁移学习的恶意软件检测方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.基于残差神经网络并结合迁移学习的恶意软件检测方法,其特征在于,包括:
获取原始数据集;
采用数据增强方法对原始数据集进行扩充,具体包括:对恶意代码二进制文件进行归一化处理,然后转化为灰度图像,再对得到的灰度图像进行扩充;
根据扩充后的数据集中的灰度图像构建样本数据集,并划分出训练集和测试集;
采用预先构建的残差神经网络作为基础模型,得到部分参数,将部分参数迁移至恶意代码灰度图像的识别过程中,然后构建平坦层和全连接层构成一个检测模型,再将训练集输入检测模型中进行训练,根据输出的数据对检测模型的参数进行微调;
利用微调后的检测模型对待检测样本进行检测。
2.如权利要求1所述的基于残差神经网络并结合迁移学***台提供的恶意样本,数据集的每条数据分为.asm格式和.bytes格式,采用.bytes格式的文件作为原始数据集的样本。
3.如权利要求1所述的基于残差神经网络并结合迁移学习的恶意软件检测方法,其特征在于,对恶意代码二进制文件进行归一化处理,包括:
采用min-max归一化方法,对生成的恶意代码的原始字节矩阵进行处理。
4.如权利要求1所述的基于残差神经网络并结合迁移学习的恶意软件检测方法,其特征在于,将恶意代码二进制文件转化为灰度图像,包括:对于给定的恶意代码二进制可执行文件,将其每8bit分割为一个子序列,每个子序列通过进制转换转换成两个十六进制数,对应像素区间[0,255],并将这些子序列按顺序排列。
5.如权利要求1所述的基于残差神经网络并结合迁移学习的恶意软件检测方法,其特征在于,对得到的灰度图像进行扩充,包括:
对得到的灰度图像进行旋转、剪裁、上下翻转、左右翻转以及调节对比度。
6.如权利要求1所述的基于残差神经网络并结合迁移学***均池化层、全连接层。
7.如权利要求6所述的基于残差神经网络并结合迁移学习的恶意软件检测方法,其特征在于,检测模型以ResNet50为基础框架,随后设置一个Flatten层和五个Dense层,在第三和第四个Dense层中间添加一个Dropout,在第四和第五个Dense层中间添加一个Dropout,使用ReLU和Softmax函数作为激活函数。
8.基于残差神经网络并结合迁移学习的恶意软件检测装置,其特征在于,包括:
数据获取模块,用于获取原始数据集;
数据增强模块,用于采用数据增强方法对原始数据集进行扩充,具体包括:对恶意代码二进制文件进行归一化处理,然后转化为灰度图像,再对得到的灰度图像进行扩充;
数据集划分模块,根据扩充后的数据集中的灰度图像构建样本数据集,并划分出训练集和测试集;
模型构建模块,用于采用预先构建的残差神经网络作为基础模型,得到部分参数,将部分参数迁移至恶意代码灰度图像的识别过程中,然后构建平坦层和全连接层构成一个检测模型,再将训练集输入检测模型中进行训练,根据输出的数据对检测模型的参数进行微调;
检测模块,用于利用微调后的检测模型对待检测样本进行检测。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至7中任一项权利要求所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311397538.6A CN117521063A (zh) | 2023-10-25 | 2023-10-25 | 基于残差神经网络并结合迁移学习的恶意软件检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311397538.6A CN117521063A (zh) | 2023-10-25 | 2023-10-25 | 基于残差神经网络并结合迁移学习的恶意软件检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117521063A true CN117521063A (zh) | 2024-02-06 |
Family
ID=89750364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311397538.6A Pending CN117521063A (zh) | 2023-10-25 | 2023-10-25 | 基于残差神经网络并结合迁移学习的恶意软件检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117521063A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118094550A (zh) * | 2024-04-23 | 2024-05-28 | 山东省计算中心(国家超级计算济南中心) | 基于Bert与监督对比学习的动态恶意软件检测方法 |
-
2023
- 2023-10-25 CN CN202311397538.6A patent/CN117521063A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118094550A (zh) * | 2024-04-23 | 2024-05-28 | 山东省计算中心(国家超级计算济南中心) | 基于Bert与监督对比学习的动态恶意软件检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Murdoch et al. | Interpretable machine learning: definitions, methods, and applications | |
US12014257B2 (en) | Domain specific language for generation of recurrent neural network architectures | |
US11741361B2 (en) | Machine learning-based network model building method and apparatus | |
CN110580501B (zh) | 一种基于变分自编码对抗网络的零样本图像分类方法 | |
US11645541B2 (en) | Machine learning model interpretation | |
CN109408389B (zh) | 一种基于深度学习的代码缺陷检测方法及装置 | |
US20190080253A1 (en) | Analytic system for graphical interpretability of and improvement of machine learning models | |
Albahra et al. | Artificial intelligence and machine learning overview in pathology & laboratory medicine: A general review of data preprocessing and basic supervised concepts | |
CN113692594A (zh) | 通过强化学***性改进 | |
US20200285899A1 (en) | Computer Model Machine Learning Based on Correlations of Training Data with Performance Trends | |
RU2689818C1 (ru) | Способ интерпретации искусственных нейронных сетей | |
EP3916597B1 (en) | Detecting malware with deep generative models | |
US20210357680A1 (en) | Machine learning classification system | |
JP6172317B2 (ja) | 混合モデル選択の方法及び装置 | |
CN114341880A (zh) | 用于使神经网络的操作可视化的技术 | |
CN117521063A (zh) | 基于残差神经网络并结合迁移学习的恶意软件检测方法及装置 | |
CN114913923A (zh) | 针对单细胞染色质开放性测序数据的细胞类型识别方法 | |
Suleman et al. | Google play store app ranking prediction using machine learning algorithm | |
CN117437507A (zh) | 一种用于评价图像识别模型的偏见性评估方法 | |
Rahul et al. | Deep auto encoder based on a transient search capsule network for student performance prediction | |
WO2020167156A1 (ru) | Способ отладки обученной рекуррентной нейронной сети | |
US20230022253A1 (en) | Fast and accurate prediction methods and systems based on analytical models | |
US20230041338A1 (en) | Graph data processing method, device, and computer program product | |
CN117999560A (zh) | 机器学习模型的硬件感知渐进训练 | |
CN113159419A (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 |