CN116010950A - 一种基于ViT孪生神经网络的恶意软件检测方法及系统 - Google Patents
一种基于ViT孪生神经网络的恶意软件检测方法及系统 Download PDFInfo
- Publication number
- CN116010950A CN116010950A CN202211664994.8A CN202211664994A CN116010950A CN 116010950 A CN116010950 A CN 116010950A CN 202211664994 A CN202211664994 A CN 202211664994A CN 116010950 A CN116010950 A CN 116010950A
- Authority
- CN
- China
- Prior art keywords
- vit
- data
- neural network
- file
- twin 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
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明提出一种基于ViT孪生神经网络的恶意软件检测方法及系统,涉及计算机网络信息安全的技术领域,首先获取公开的恶意软件PE文件数据集,通过静态分析和动态分析联合获取PE文件的原始信息和运行状态下的信息,将静态分析和动态分析获取的数据合并,并将合并后的一维数据转化为二维数据,再转化为灰度图,最后将灰度图分割为训练集和测试集,然后构建ViT孪生神经网络模型,利用训练集和测试集分别训练和测试评估ViT孪生神经网络模型,不断调参优化,得到训练好的ViT孪生神经网络模型用于恶意软件检测,较充分地提取恶意软件的特征,提高恶意软件检测的准确率和召回率。
Description
技术领域
本发明涉及计算机网络信息安全的技术领域,更具体地,涉及一种基于ViT孪生神经网络的恶意软件检测方法及系统。
背景技术
随着互联网的高速发展,其应用已经逐渐渗透到人们生活中的每一处,包括社交互动、网上银行、健康相关交易和营销。与此同时,不法分子开始在互联网上实施犯罪。他们通常使用恶意软件对受害者计算机进行网络攻击。
所谓的恶意软件,是指故意在受害者计算机上执行恶意有效载荷的任何软件。恶意软件有不同类型,包括病毒、蠕虫、特洛伊木马、rootkit和勒索软件。每种恶意软件类型和家族都旨在以不同的方式影响原始受害者机器,例如损坏目标系统,允许远程代码执行,窃取机密数据等。早期恶意软件的编写目的很简单,因此更容易检测,此种恶意软件可以被定义为传统恶意软件。但是,如今,新一代恶意软件可以在内核模式下运行并且比传统恶意软件更具破坏性且更难检测,这种恶意软件可以轻松绕过防火墙,防病毒软件等以内核模式运行的保护软件。通常,传统的恶意软件由一个进程组成,并且不使用复杂的技术来隐藏自己,而新一代恶意软件可以同时使用多个不同的现有或新进程,并使用一些混淆的技术来隐藏自己并在系统中变得持久。此外,新一代恶意软件可以发起更具破坏性的攻击,例如以前从未见过的针对性和持久性攻击,并且在攻击过程中使用了一种以上的恶意软件。
现有的恶意软件检测方法主要有两种:静态检测和动态检测。静态检测指的是通过反编译工具获取软件的原始代码序列、头部信息、Hash值等特征信息。文献“Qi P,ZhangZ,Wang W,et al.Malware detection by exploiting deep learning over binaryprograms[C]//2020 25th International Conference on Pattern Recognition(ICPR).IEEE,2021:9068-9075”中提出了通过主成分分析对反编译获取的数据进行降维,并使用支持向量机算法对降维后的数据进行分类的方法,提高了恶意软件检测效率;动态检测指的是通过在沙箱环境中运行软件,在运行软件获取软件的日志信息、函数调用信息、上下文参数等特征信息。文献“Wang S,Zhou G,Lu J,et al.A novel malware detection andclassification method based on capsule network[C]//International Conferenceon artificial intelligence and security.Springer,Cham,2019:573-584”将运行条件下获取的特征信息转换为RGB图像,并提出了一种动态路由的胶囊网络框架用于恶意软件图像的分类。二者在获取特征信息的方式存在区别,但都是通过获取特性信息对深度学习方法进行建模,判别。
面对日新月异的恶意软件,传统的检测检测方式,比如基于签名、启发、行为式的检测方式显然无法满足当今社会对检测准确率的要求,尤其是面对新型加壳的恶意软件。近些年,随着机器学习,深度学习的发展,深度学习神经网络经过良好的训练能够分辨出程序是否为恶意软件,并展现了极好的性能,在面对新型加壳恶意软件是也表现出了良好的检测效果。然而,恶意软件的威胁一直都存在,但现有的恶意软件检测方法普遍存在检测准确率较低,特征提取不充分,对新型恶意软件检测效果差等问题。现有技术中公开了一种恶意软件家族检测方法、存储介质和计算设备,检测方法包括:首先对恶意软件训练集中每个类的所有恶意软件训练样本分别进行特征提取,得到对应的多个特征向量;然后,将多个特征向量分别转换为特征图像,根据特征图像生成图像对,构建孪生网络模型和利用图像对对模型进行训练;从恶意软件测试集中取出待测样本,利用训练好的孪生网络模型统计每个待测样本与恶意软件训练样本的相似度得分;计算阈值,并根据阈值区分待测样本为已知恶意软件家族或者为新恶意软件家族。该方案能正确检测恶意软件的所属类别,分类效果良好。但随着恶意软件的变化升级,单以基于动态检测的方式不足以在检测准确率方面达到很好的检测效果,并且单一的卷积孪生网络难以解决长序列特征提取、梯度消失和梯度爆炸等问题。
因此,如何结合动态检测和静态检测两种方式,提高恶意软件检测率,是一件亟待解决的技术问题。
发明内容
为解决如何结合动态检测和静态检测两种方式,提高恶意软件检测率的问题,本发明提出一种基于ViT(Vsion Transformer)孪生神经网络的恶意软件检测方法及系统,可较好地提取恶意软件的特征,提高恶意软件检测的准确率和召回率。
为了达到上述技术效果,本发明的技术方案如下:
一种基于ViT孪生神经网络的恶意软件检测方法,所述方法包括以下步骤:
S1.获取公开的恶意软件PE文件数据集,删除PE恶意软件数据集中未标注的PE文件;
S2.判断当前PE文件是否为加壳文件,若是,进行脱壳处理,执行步骤S3;否则,执行步骤S3;
S3.分别对PE文件进行静态分析和动态分析操作,其中,静态分析时,通过反编译获取PE文件的原始信息;动态分析时,在沙箱环境中运行PE文件,获取运行状态下的PE文件的信息;
S4.将静态分析和动态分析获取的数据合并,将合并后的一维数据转化为二维数据,再转化为灰度图,最后将灰度图分割为训练集和测试集;
S5.构建ViT孪生神经网络模型;
S6.利用训练集训练ViT孪生神经网络模型,不断优化调整ViT孪生神经网络模型中的超参数,并利用测试集对ViT孪生神经网络模型进行评估,得到训练好的ViT孪生神经网络模型,用于恶意软件检测。
优选地,在步骤S2中,通过探测工具PEiD对PE文件进行检测,确认PE文件是否被加壳,在PE文件为加壳文件时,采用UPX脱壳工具进行脱壳处理。对已加壳的PE文件检测并进行脱壳处理,以便后续对PE文件进行静态分析和动态分析。
优选地,在步骤S3中,通过反编译获取PE文件的原始信息包括:DOS头部信息、PE签名、PE文件头部信息、PE节可选信息、节表、idata节、text节、data节,获取PE文件的原始信息后,将获取到的原始信息通过Embedding编码技术全部转换成向量格式,删除无意义的数据并将数据进行标准化,对数据加行添项。
优选地,获取运行状态下的PE文件的信息包括:注册表的读写、主机链接个数、Windows目录和System目录中文件的变化、PE文件运行时的日志信息、函数调用信息、上下文参数信息,将获取到的信息通过Embedding编码技术全部转换成向量格式。
优选地,步骤S4的具体过程为:
S41.将静态分析和动态分析获取的数据合并,使用min-max方式将数据标准化,再将标准化后的结果全部乘以255,使数据全部标准化到[0,255]的区间内;
S42.为原始数据添加特征项,且添加的特征项值全为0;
S43.构建马尔科夫变迁场,利用马尔科夫变迁场将原本的一维数据转换为二维数据,将二维数据转换为灰度图。
优选地,在步骤S43中,构建马尔科夫变迁场的过程为:
S431.将长度为n的序列数据按照其取值范围划分为Q个分位数bins,每个数据点i属于一个唯一的qi;
S432.构建尺寸为[Q,Q]的马尔科夫转移矩阵W,其中W[i,j]由qi中的数据被qj中的数据紧邻的频率决定;
S433.构建尺寸为马尔科夫变迁场M,M[i,j]的值为W[qi,qj]。
优选地,步骤S5所述构建ViT孪生神经网络模型及ViT孪生神经网络模型处理数据的过程为:
S51.搭建patch模块,所述patch模块对S43获取的恶意软件灰度图执行patch操作,将灰度图进行分割,并对每一个已分割的图像进行位置编码,再将图像数据进行拉平成一维数据,并把位置编码与被拉平数据进行组合;
S52.搭建Encoder模块,并使用四个Encoder模块进行组合成TransformerEncoder模块,并且引入多个多头注意力机制模块、残差连接模块,将当前数据流与经过多头注意力机制提取主要特征后的数据流进行残差连接,将二者数据进行逐个相加,灰度图像数据首先经过Transformer Encoder模块的patch embedding层,并把位置编码组合到被拉平的数据上面,再将得到的数据传入到Transformer Encoder模块中进行特征提取;
S53.通过共享损失值搭建ViT孪生网络,并且引入MLP全连接层;在ViT孪生网络中,存在两个输入值,通过ViT孪生网络获得两个预测值,两个预测值与实际值产生的误差为损失值,这个损失值是在ViT孪生网络中共享使用;经过ViT孪生网络进行特征提取之后,再由MLP全连接层的GELU激活函数对数据进行非线性输出的概率值,最终判别是否为恶意软件。
优选地,步骤S6的过程为:
S61.将训练集灰度图输入至ViT孪生神经网络模型中,采用梯度下降法训练,不断调整ViT孪生神经网络模型的dropout、学习率的大小、多头注意力机制的个数和MLP全连接层的激活函数;
S62.基于二分类,使用准确率、召回率作为评价指标,利用测试集对ViT孪生神经网络模型进行评估。
优选地,准确率评价指标的计算公式为:
召回率评价指标的计算公式为:
其中,TP表示一个恶意软件被正确检测为恶意软件;FN表示一个恶意软件被判定为非恶意软件;FP表示一个非恶意软件被判定为恶意软件;TN表示为一个非恶意软件被判定为非恶意软件。
本申请还提出一种基于ViT孪生神经网络的恶意软件检测系统,所述系统包括:
数据获取单元,获取公开的恶意软件PE文件数据集,删除PE恶意软件数据集中未标注的PE文件;
加壳判断单元,判断当前PE文件是否为加壳文件,若是,进行脱壳处理后进入动静态分析单元进行静态分析和动态分析操作,否则,进入动静态分析单元进行静态分析和动态分析操作;
动静态分析单元,分别对PE文件进行静态分析和动态分析操作,其中,静态分析时,通过反编译获取PE文件的原始信息;动态分析时,在沙箱环境中运行PE文件,获取运行状态下的PE文件的信息;
数据处理单元,将静态分析和动态分析获取的数据合并,将合并后的一维数据转化为二维数据,再转化为灰度图,最后将灰度图分割为训练集和测试集;
模型设计构建单元,用于构建ViT孪生神经网络模型;
模型训练评估单元,利用训练集训练ViT孪生神经网络模型,不断优化调整ViT孪生神经网络模型中的超参数,并利用测试集对ViT孪生神经网络模型进行评估,得到训练好的ViT孪生神经网络模型,用于恶意软件检测。
与现有技术相比,本发明技术方案的有益效果是:
本发明提出一种基于ViT孪生神经网络的恶意软件检测方法及系统,首先获取公开的恶意软件PE文件数据集,通过静态分析和动态分析联合获取PE文件的原始信息和运行状态下的信息,将静态分析和动态分析获取的数据合并,将合并后的一维数据转化为二维数据,再转化为灰度图,最后将灰度图分割为训练集和测试集,然后构建ViT孪生神经网络模型,利用训练集和测试集分别训练和测试评估ViT孪生神经网络模型,不断调参优化,得到训练好的ViT孪生神经网络模型用于恶意软件检测,较充分地提取恶意软件的特征,提高恶意软件检测的准确率和召回率。
附图说明
图1表示本发明实施例1中提出的基于ViT孪生神经网络的恶意软件检测方法的流程示意图;
图2表示本发明实施例2中提出的PE文件基本结构图;
图3表示本发明实施例2中提出的Transformer Encoder模块对数据处理的结构图;
图4表示本发明实施例2中提出的Encoder模块对数据处理的示意图;
图5表示本发明实施例2中提出的ViT孪生神经网络模型对数据处理示意图;
图6表示本发明实施例3中提出的基于ViT孪生神经网络的恶意软件检测系统的示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好地说明本实施例,附图某些部位会有省略、放大或缩小,并不代表实际尺寸;
对于本领域技术人员来说,附图中某些公知内容说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
附图中描述位置关系的仅用于示例性说明,不能理解为对本专利的限制;
实施例1
在本实施例中,提出了一种基于ViT孪生神经网络的恶意软件检测方法,该方法的流程示意图如图1所示,参见图1,所述方法包括以下步骤:
S1.获取公开的恶意软件PE文件数据集,删除PE恶意软件数据集中未标注的PE文件;在本实施例中,获取的公开的恶意软件PE文件数据集为BODMAS数据集,BODMAS数据集是由Blue Hexagon和UIUC创建和维护的一个关于恶意软件的开源数据集,可以在网站:https://whyisyoung:github:io/BODMAS/进行下载。BODMAS数据集删除未标注的样本之后剩余57293个恶意软件和77142个良性Windows PE文件。
S2.判断当前PE文件是否为加壳文件,若是,进行脱壳处理,执行步骤S3;否则,执行步骤S3;
S3.分别对PE文件进行静态分析和动态分析操作,其中,静态分析时,通过反编译获取PE文件的原始信息;动态分析时,在沙箱环境中运行PE文件,获取运行状态下的PE文件的信息;
S4.将静态分析和动态分析获取的数据合并,将合并后的一维数据转化为二维数据,再转化为灰度图,最后将灰度图分割为训练集和测试集;
S5.构建ViT孪生神经网络模型;
S6.利用训练集训练ViT孪生神经网络模型,不断优化调整ViT孪生神经网络模型中的超参数,并利用测试集对ViT孪生神经网络模型进行评估,得到训练好的ViT孪生神经网络模型,用于恶意软件检测。
实施例2
对于已经获取的数据集,判断当前PE文件是否为加壳文件,加壳的全称是可执行程序资源压缩,压缩后的程序可以直接运行。一些二进制的程序加壳程序为了防止被破解和反编译,会通过植入代码的方式来优先取得程序的控制权,之后再把控制权交还给原始代码,这样就可以隐藏原始程序真正的入口点。所以需要专业的加壳分析软件对可执行文件进行分析并去壳,才能对可执行文件进行静态分析和动态分析。在本实施例中,通过探测工具PEiD对可执行程序进行检测,可以查看到是否被加壳。如果被加壳,通过UPX脱壳工具对可执行程序进行脱壳操作,把脱壳后的可执行程序和未加壳的程序混合在一起,以便后续对PE文件进行静态分析和动态分析。
在静态分析操作中,通过编译工具JadClipse对训练集和测试集数据进行逆向工程获取可执行程序的原始信息,PE文件的基本结构图如图2所示,通过反编译获取PE文件的原始信息包括:DOS头部信息、PE签名、PE文件头部信息、PE节可选信息、节表、idata节、text节、data节,获取PE文件的原始信息后,将获取到的原始信息通过Embedding编码技术全部转换成向量格式,删除无意义的数据并将数据进行标准化,对数据加行添项。常见的Embedding方法有Word2vec Embedding、neural network embedding和graph embedding。在本实施例中使用的是Word2vec Embeddng,因为word2vec是以无监督的形式作为训练方法,不需要标记可以得到质量还可以的embedding表示。
在动态分析操作中,通过沙箱模拟可执行程序所需要的运行环境,并且调用系统进程监视软件,记录被测程序在运行过程中注册表的读写、主机链接个数、Windows目录和System目录中文件的变化等一系列操作,获取运行状态下的PE文件的信息包括:注册表的读写、主机链接个数、Windows目录和System目录中文件的变化、PE文件运行时的日志信息、函数调用信息、上下文参数信息,将获取到的信息通过Embedding编码技术全部转换成向量格式。
在步骤S4中,将静态分析和动态分析获取的数据合并,将合并后的一维数据转化为二维数据,再转化为灰度图,最后将灰度图分割为训练集和测试集的具体过程为:
S41.将BODMAS数据集通过静态分析和动态分析获取的数据合并,合并在一起总的样本数据维度为2372,使用min-max方式将数据标准化,由于灰度图的灰度是表明图像明暗的数值,即黑白图像中点的颜色深度,范围是0到255,黑色是0,再将标准化后的结果全部乘以255,使数据全部标准化到[0,255]的区间内;数据标准化的公式为:
其中,Yij表示Xij标准化后的值,i表示第几个样本,j表示第几个维度,Xmax为该特征项的最大值,Xmin为该特征项的最小值;
S42.为了保留所有原始特征,且能够将一维数据转换为二维数据,为原始数据添加特征项,且添加的特征项值全为0;将原始的一维2381项添加到一维2401项。
S43.通过构建马尔科夫变迁场,将原本的一维数据2401项转换为二维数据49*49项,再二维数据转换为灰度图,并将所有整体数据集以7:3的比列进行划分为训练集和测试集。
构建马尔科夫变迁场的过程为:
S431.将长度为n的序列数据按照其取值范围划分为Q个分位数bins,每个数据点i属于一个唯一的qi;
S432.构建尺寸为[Q,Q]的马尔科夫转移矩阵W,其中W[i,j]由qi中的数据被qj中的数据紧邻的频率决定;
S433.构建尺寸为马尔科夫变迁场M,M[i,j]的值为W[qi,qj]。
在本实施例中,步骤S5所述构建ViT孪生神经网络模型及ViT孪生神经网络模型处理数据的过程为:
S51.搭建patch模块,所述patch模块对S43获取的恶意软件灰度图执行patch操作,将灰度图进行分割,并对每一个已分割的图像进行位置编码,再将图像数据进行拉平成一维数据,并把位置编码与被拉平数据进行组合;
S52.搭建Encoder模块,使用四个Encoder模块进行组合成Transformer Encoder模块,Transformer Encoder模块对数据处理的示意图如图3所示,并且引入多个多头注意力机制模块、残差连接模块,本实施例使用6个多头注意力机制,将当前数据流与经过多头注意力机制提取主要特征后的数据流进行残差连接,将二者数据进行逐个相加,过程图图4所示,设置batch size为256、patch size为7,epoch为200。初始化dropout为0.01,learnrate设置为一个动态值,初始值为0.05,epoch每增大50,learn rate减小50%。灰度图像数据会先经过VIT模型的patch embedding层,由于patch size设置为7,这层会将原始尺寸为49*49大小的恶意软件灰度图像切割成尺寸为7*7大小的图像,然后再对分割后的灰度图像经行位置编码,再将图像数据经行拉平成一维数据,灰度图像数据首先经过TransformerEncoder模块的patch embedding层,并把位置编码组合到被拉平的数据上面,再将得到的数据传入到Transformer Encoder模块中进行特征提取;Transformer Encoder具体描述如下:
Step1:将输入数据进行LN归一化处理;
Step2:利用多头注意力机制对处理后的数据进行特征提取,并计算特征权重;
Step3:将第一步输入的原始数据与多头注意力机制提取特征后的数据进行残差链接;
Step4:将第三步残差链接后的数据再次进行LN归一化;
Step5:使用MLP将归一化后的数据进行非线性变换;
Step6:将第三步残差链接后的数据与MLP非线性变换后的数据进行残差链接;
Step7:将得到的数据再此进行第一步操作,反复循环四次。
S53.通过共享损失值搭建ViT孪生网络,并且引入MLP全连接层;参见图5,在ViT孪生网络中,存在两个输入值,通过ViT孪生网络获得两个预测值,两个预测值与实际值产生的误差为损失值,这个损失值是在ViT孪生网络中共享使用;经过ViT孪生网络进行特征提取之后,再由MLP全连接层的GELU激活函数对数据进行非线性输出的概率值,最终判别是否为恶意软件。
在本实施例中,利用训练集训练ViT孪生神经网络模型,不断优化调整ViT孪生神经网络模型中的超参数,并利用测试集对ViT孪生神经网络模型进行评估的过程为:
S61.将训练集灰度图输入至ViT孪生神经网络模型中,采用梯度下降法训练,不断调整ViT孪生神经网络模型的dropout、学习率的大小、多头注意力机制的个数和MLP全连接层的激活函数;
S62.基于二分类,使用准确率、召回率作为评价指标,利用测试集对ViT孪生神经网络模型进行评估。
其中,准确率评价指标的计算公式为:
召回率评价指标的计算公式为:
其中,TP表示一个恶意软件被正确检测为恶意软件;FN表示一个恶意软件被判定为非恶意软件;FP表示一个非恶意软件被判定为恶意软件;TN表示为一个非恶意软件被判定为非恶意软件。
实施例3
如图6所示,本申请还提出一种基于ViT孪生神经网络的恶意软件检测系统,所述系统包括:
数据获取单元,获取公开的恶意软件PE文件数据集,删除PE恶意软件数据集中未标注的PE文件;
加壳判断单元,判断当前PE文件是否为加壳文件,若是,进行脱壳处理后进入动静态分析单元进行静态分析和动态分析操作,否则,进入动静态分析单元进行静态分析和动态分析操作;
动静态分析单元,分别对PE文件进行静态分析和动态分析操作,其中,静态分析时,通过反编译获取PE文件的原始信息;动态分析时,在沙箱环境中运行PE文件,获取运行状态下的PE文件的信息;
数据处理单元,将静态分析和动态分析获取的数据合并,将合并后的一维数据转化为二维数据,再转化为灰度图,最后将灰度图分割为训练集和测试集;
模型设计构建单元,用于构建ViT孪生神经网络模型;
模型训练评估单元,利用训练集训练ViT孪生神经网络模型,不断优化调整ViT孪生神经网络模型中的超参数,并利用测试集对ViT孪生神经网络模型进行评估,得到训练好的ViT孪生神经网络模型,用于恶意软件检测。
显然,本发明的上述实施例仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于ViT孪生神经网络的恶意软件检测方法,其特征在于,所述方法包括以下步骤:
S1.获取公开的恶意软件PE文件数据集,删除PE恶意软件数据集中未标注的PE文件;
S2.判断当前PE文件是否为加壳文件,若是,进行脱壳处理,执行步骤S3;否则,执行步骤S3;
S3.分别对PE文件进行静态分析和动态分析操作,其中,静态分析时,通过反编译获取PE文件的原始信息;动态分析时,在沙箱环境中运行PE文件,获取运行状态下的PE文件的信息;
S4.将静态分析和动态分析获取的数据合并,将合并后的一维数据转化为二维数据,再转化为灰度图,最后将灰度图分割为训练集和测试集;
S5.构建ViT孪生神经网络模型;
S6.利用训练集训练ViT孪生神经网络模型,不断优化调整ViT孪生神经网络模型中的超参数,并利用测试集对ViT孪生神经网络模型进行评估,得到训练好的ViT孪生神经网络模型,用于恶意软件检测。
2.根据权利要求1所述的基于ViT孪生神经网络的恶意软件检测方法,其特征在于,在步骤S2中,通过探测工具PEiD对PE文件进行检测,确认PE文件是否被加壳,在PE文件为加壳文件时,采用UPX脱壳工具进行脱壳处理。
3.根据权利要求2所述的基于ViT孪生神经网络的恶意软件检测方法,其特征在于,在步骤S3中,通过反编译获取PE文件的原始信息包括:DOS头部信息、PE签名、PE文件头部信息、PE节可选信息、节表、idata节、text节、data节,获取PE文件的原始信息后,将获取到的原始信息通过Embedding编码技术全部转换成向量格式,删除无意义的数据并将数据进行标准化,对数据加行添项。
4.根据权利要求2所述的基于ViT孪生神经网络的恶意软件检测方法,其特征在于,获取运行状态下的PE文件的信息包括:注册表的读写、主机链接个数、Windows目录和System目录中文件的变化、PE文件运行时的日志信息、函数调用信息、上下文参数信息,将获取到的信息通过Embedding编码技术全部转换成向量格式。
5.根据权利要求1所述的基于ViT孪生神经网络的恶意软件检测方法,其特征在于,步骤S4的具体过程为:
S41.将静态分析和动态分析获取的数据合并,使用min-max方式将数据标准化,再将标准化后的结果全部乘以255,使数据全部标准化到[0,255]的区间内;
S42.为原始数据添加特征项,且添加的特征项值全为0;
S43.构建马尔科夫变迁场,利用马尔科夫变迁场将原本的一维数据转换为二维数据,将二维数据转换为灰度图。
6.根据权利要求5所述的基于ViT孪生神经网络的恶意软件检测方法,其特征在于,在步骤S43中,构建马尔科夫变迁场的过程为:
S431.将长度为n的序列数据按照其取值范围划分为Q个分位数bins,每个数据点i属于一个唯一的qi;
S432.构建尺寸为[Q,Q]的马尔科夫转移矩阵W,其中W[i,j]由qi中的数据被qj中的数据紧邻的频率决定;
S433.构建尺寸为马尔科夫变迁场M,M[i,j]的值为W[qi,qj]。
7.根据权利要求5所述的基于ViT孪生神经网络的恶意软件检测方法,其特征在于,步骤S5所述构建ViT孪生神经网络模型及ViT孪生神经网络模型处理数据的过程为:
S51.搭建patch模块,所述patch模块对S43获取的恶意软件灰度图执行patch操作,将灰度图进行分割,并对每一个已分割的图像进行位置编码,再将图像数据进行拉平成一维数据,并把位置编码与被拉平数据进行组合;
S52.搭建Encoder模块,并使用四个Encoder模块进行组合成Transformer Encoder模块,并且引入多个多头注意力机制模块、残差连接模块,将当前数据流与经过多头注意力机制提取主要特征后的数据流进行残差连接,将二者数据进行逐个相加,灰度图像数据首先经过Transformer Encoder模块的patch embedding层,并把位置编码组合到被拉平的数据上面,再将得到的数据传入到Transformer Encoder模块中进行特征提取;
S53.通过共享损失值搭建ViT孪生网络,并且引入MLP全连接层;在ViT孪生网络中,存在两个输入值,通过ViT孪生网络获得两个预测值,两个预测值与实际值产生的误差为损失值,这个损失值是在ViT孪生网络中共享使用;经过ViT孪生网络进行特征提取之后,再由MLP全连接层的GELU激活函数对数据进行非线性输出的概率值,最终判别是否为恶意软件。
8.根据权利要求6所述的基于ViT孪生神经网络的恶意软件检测方法,其特征在于,步骤S6的过程为:
S61.将训练集灰度图输入至ViT孪生神经网络模型中,采用梯度下降法训练,不断调整ViT孪生神经网络模型的dropout、学习率的大小、多头注意力机制的个数和MLP全连接层的激活函数;
S62.基于二分类,使用准确率、召回率作为评价指标,利用测试集对ViT孪生神经网络模型进行评估。
10.一种基于ViT孪生神经网络的恶意软件检测系统,其特征在于,所述系统包括:
数据获取单元,获取公开的恶意软件PE文件数据集,删除PE恶意软件数据集中未标注的PE文件;
加壳判断单元,判断当前PE文件是否为加壳文件,若是,进行脱壳处理后进入动静态分析单元进行静态分析和动态分析操作,否则,进入动静态分析单元进行静态分析和动态分析操作;
动静态分析单元,分别对PE文件进行静态分析和动态分析操作,其中,静态分析时,通过反编译获取PE文件的原始信息;动态分析时,在沙箱环境中运行PE文件,获取运行状态下的PE文件的信息;
数据处理单元,将静态分析和动态分析获取的数据合并,将合并后的一维数据转化为二维数据,再转化为灰度图,最后将灰度图分割为训练集和测试集;
模型设计构建单元,用于构建ViT孪生神经网络模型;
模型训练评估单元,利用训练集训练ViT孪生神经网络模型,不断优化调整ViT孪生神经网络模型中的超参数,并利用测试集对ViT孪生神经网络模型进行评估,得到训练好的ViT孪生神经网络模型,用于恶意软件检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211664994.8A CN116010950A (zh) | 2022-12-22 | 2022-12-22 | 一种基于ViT孪生神经网络的恶意软件检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211664994.8A CN116010950A (zh) | 2022-12-22 | 2022-12-22 | 一种基于ViT孪生神经网络的恶意软件检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010950A true CN116010950A (zh) | 2023-04-25 |
Family
ID=86034808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211664994.8A Pending CN116010950A (zh) | 2022-12-22 | 2022-12-22 | 一种基于ViT孪生神经网络的恶意软件检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010950A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226854A (zh) * | 2023-05-06 | 2023-06-06 | 江西萤火虫微电子科技有限公司 | 恶意软件检测方法、系统、可读存储介质及计算机 |
CN116910758A (zh) * | 2023-09-13 | 2023-10-20 | 中移(苏州)软件技术有限公司 | 恶意软件检测方法、装置、电子设备、芯片及存储介质 |
-
2022
- 2022-12-22 CN CN202211664994.8A patent/CN116010950A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226854A (zh) * | 2023-05-06 | 2023-06-06 | 江西萤火虫微电子科技有限公司 | 恶意软件检测方法、系统、可读存储介质及计算机 |
CN116910758A (zh) * | 2023-09-13 | 2023-10-20 | 中移(苏州)软件技术有限公司 | 恶意软件检测方法、装置、电子设备、芯片及存储介质 |
CN116910758B (zh) * | 2023-09-13 | 2023-12-08 | 中移(苏州)软件技术有限公司 | 恶意软件检测方法、装置、电子设备、芯片及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aslan et al. | A new malware classification framework based on deep learning algorithms | |
Ni et al. | Malware identification using visualization images and deep learning | |
Aslan et al. | A comprehensive review on malware detection approaches | |
Liu et al. | ATMPA: attacking machine learning-based malware visualization detection methods via adversarial examples | |
JP6736532B2 (ja) | 静的分析の要素を用いた悪質なファイルを検出するためのシステム及び方法 | |
Alazab | Profiling and classifying the behavior of malicious codes | |
Jian et al. | A novel framework for image-based malware detection with a deep neural network | |
CN110704840A (zh) | 一种基于卷积神经网络cnn的恶意软件检测方法 | |
CN116010950A (zh) | 一种基于ViT孪生神经网络的恶意软件检测方法及系统 | |
Sabhadiya et al. | Android malware detection using deep learning | |
Nahmias et al. | Deep feature transfer learning for trusted and automated malware signature generation in private cloud environments | |
RU2708356C1 (ru) | Система и способ двухэтапной классификации файлов | |
CN109271782B (zh) | 检测攻击行为的方法、介质、系统和计算设备 | |
Ficco | Detecting IoT malware by Markov chain behavioral models | |
Zhao et al. | Maldeep: A deep learning classification framework against malware variants based on texture visualization | |
CN113935033A (zh) | 特征融合的恶意代码家族分类方法、装置和存储介质 | |
Li et al. | An adversarial machine learning method based on OpCode N-grams feature in malware detection | |
Sun et al. | Learning fast and slow: Propedeutica for real-time malware detection | |
Azad et al. | DEEPSEL: A novel feature selection for early identification of malware in mobile applications | |
CN110866257A (zh) | 木马检测方法及装置、电子设备、存储介质 | |
Nahhas et al. | Android Malware Detection Using ResNet-50 Stacking. | |
Wolsey | The State-of-the-Art in AI-Based Malware Detection Techniques: A Review | |
Wang et al. | Malware detection using cnn via word embedding in cloud computing infrastructure | |
Alazab et al. | Malicious code detection using penalized splines on OPcode frequency | |
Guo et al. | Classification of malware variant based on ensemble learning |
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 |