掌桥专利:专业的专利平台
掌桥专利
首页

基于机器码字节流的端到端的深度学习恶意软件分类方法

文献发布时间:2023-06-19 19:30:30


基于机器码字节流的端到端的深度学习恶意软件分类方法

技术领域

本发明涉及网络安全技术领域,尤其涉及一种基于机器码字节流的端到端的深度学习恶意软件分类方法。

背景技术

在云计算、大数据、无纸化办公盛行的时代,个人隐私数据、公司业务数据等敏感数据量,办公自动化系统、云文档系统、企业资源规划系统等计算机系统已经成为人们工作生活中不可或缺的部分。然而,随着计算机技术的发展,恶意攻击者为了窃取数据资产开发出大量新型恶意软件,网络攻击体量不断扩大、恶意软件变异速度逐渐加快、恶意软件检测难度大幅提升。恶意软件对网络安全态势造成了极大威胁,阻碍工作生产正常进行。在这一背景下,网络安全的重要性越来越凸显,网络安全技术的研究也成了一个非常大的热点。

入侵检测系统(Intrusion Detection System,IDS)是一种用来检测入侵、并对入侵进行主动防御的网络安全技术。在入侵检测系统中,最重要的一环就是监控计算机运行状态,检测出恶意软件,并进行必要的安全处置。传统的恶意软件入侵检测方法主要采用基于指纹库的方法,即将恶意软件的哈希、异常行为等信息建立指纹库,与每一次操作与指纹库内的信息进行匹配,以确定被保护设备是否被恶意软件攻击。但是随着越来越多、越来越新颖的网络攻击出现,该方法存在着检测效果差、泛化性能不足、维护指纹库工作量巨大等缺点。

随着人工智能技术的不断发展,机器学习和深度学习方法被安全研究员应用于恶意软件检测领域。现有的基于机器学习的恶意软件检测方法可以依靠特征向量通过梯度下降算法等优化方式进行训练,对训练及特征进行自动拟合,在新样本出现时有一定的泛化能力。虽然决策树、随机森林、朴素贝叶斯等机器学习算法避免了维护指纹库的工作量,但是特征向量的选择仍然强依赖专家知识,当特征向量不够科学时,模型往往性能较差。并且由于模型根据构造好的特征向量进行分类,误报情况较多,对正常软件存在误伤情况。现有研究表明单一的机器学习算法应用己经难以提高检测系统在复杂数据环境下的检测性能。

近年来,深度学习技术在计算机视觉、自然语言处理等领域取得了突破性进展,展现出比机器学习技术更强大的特征抽取和特征表示能力。因此利用卷积神经网络、深度神经网络等将深度学习技术作为特征选择或特征提取的手段应用于恶意软件检测与分类系统中,以期获得更能反映待检测样本的特征,系统通过这些特征进行模式识别,不仅可以有效检测出未知攻击类型和已知攻击类型的变种,还可以降低特征抽取阶段对专家知识的依赖。虽然深度学习可以有效提取恶意软件的高维向量表示,但是仍存在以下缺点:(1)特征抽取规则不明确,容易被恶意软件经过简单修饰和混淆的变异样本绕过逃避检测或使恶意软件检测器分类出错;(2)模型参数量大,对运行设备的硬件资源有一定要求;(3)对恶意软件的运行原理理解不足,深度学习模型可解释性差,难以向安全人员提供可以解释的分类判断理由。

为了应对日益严峻的网络安全态势,需要开发出一种新的深度学习恶意软件分类方法,不仅要能够提高恶意软件的检测精度、提高模型的泛化能力、降低对专家知识的依赖,还需要提高检测模型的抗干扰能力,使恶意软件即使经过修饰之后也能够被正确检测和分类,保证计算机系统的安全稳定运行。

发明内容

本发明针对现有基于深度学习的恶意软件检测技术的缺点,提出一种基于机器码字节流的端到端的深度学习恶意软件分类方法。

为了实现上述目的,本发明提供如下技术方案:

一种基于机器码字节流的端到端的深度学习恶意软件分类方法,包括以下步骤:

S1、以恶意软件样本机器码字节流为输入,经过恶意软件领域表示向量编码,输出恶意软件邻域信息;所述恶意软件领域表示向量编码利用一维卷积实现对恶意软件向量的纵向降维,利用一维池化实现对恶意软件向量的横向降维;

S2、恶意软件邻域信息经过恶意软件全区信息抽取模块,输出恶意软件全局信息;所述恶意软件全区信息抽取模块使用自注意力机制处理降维后的恶意软件表示向量;

S3、恶意软件邻域信息和全局信息共同输入残差链接模块,输出恶意软件表示向量;

S4、恶意软件表示向量经过分类输出模块的处理,输出恶意软件分类结果。

进一步地,步骤S1字节流输入前先修改机器码字节流的两个标志位来使样本无害化,然后截取前204800字节作为分类依据,将长度为204800的机器码字节流作为输入。

进一步地,所述步骤S1中恶意软件领域表示向量编码的过程为:

(1)首先将Embedding编码结果e经过一个参数独立的卷积层进行高维特征抽取得到两个(400*32)的向量c

其中x为输入向量,kernel为卷积核,i、j、p、q为卷积相对坐标;

(2)对c

(3)然后对其进行一维池化降维,得到(400*1)的恶意软件中间向量表示r

卷积层Sigmoid激活函数计算公式如下所示:

Hadamard运算ReLU激活函数计算公式如下所示:

ReLU(x)=max(0,x)(5)

其中x为输入值。

进一步地,所述步骤S2中恶意软件全区信息抽取模块的过程为:

恶意软件表示向量r

其中words代表恶意软件表示向量r

采用8头注意力模型,最终输出结果r

其中i代表第i个注意力头,W

进一步地,所述步骤S3中残差连接模块,将恶意软件邻域信息r

r=r

进一步地,所述步骤S4中的分类输出模块将恶意软件表示向量输入一个多层感知机并用Softmax函数计算该待测样本的属于每个恶意软件种类的概率。

进一步地,多层感知机的结构包括两个全连接层和一个归一化层,全连接层激活函数Softmax函数的计算方式如下所示:

其中i=1,…,8,z为最后一个全连接层的输出。

进一步地,步骤S4恶意软件表示向量经过分类输出模块的处理后,得到该恶意软件属于每一个恶意软件类别的概率向量输出,将预测概率最大的分类作为该恶意软件的预测分类,最终给出预测结果。

本发明提出的基于机器码字节流的端到端的深度学习恶意软件分类方法,以恶意软件机器码字节流为输入,依次经过恶意软件领域表示向量编码、恶意软件全区信息抽取模块、残差链接模块、分类输出模块的处理,从而给出该恶意软件分类结果。

另一方面,本发明还提供了一种基于机器码字节流的端到端的深度学习恶意软件分类装置,包括以下模块用以实现上述任一项所述的方法:

恶意软件领域表示向量编码,以恶意软件样本机器码字节流为输入,利用一维卷积实现对恶意软件向量的纵向降维,利用一维池化实现对恶意软件向量的横向降维,最终输出恶意软件邻域信息;

恶意软件全区信息抽取模块,以恶意软件邻域信息为输入,使用自注意力机制处理降维后的恶意软件表示向量,输出恶意软件全局信息;

残差链接模块,以恶意软件邻域信息和全局信息为共同输入,输出恶意软件表示向量;

分类输出模块,以恶意软件表示向量为输入,输出恶意软件分类结果。

第三方面,本发明还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一项所述的方法的步骤。

第四方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

第五方面,本发明还提供了一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行上述任一项所述的方法的步骤。

与现有技术相比,本发明的有益效果为:

(1)本发明基于程序运行机制、时间局部性原理、空间局部性原理等技术,提出利用“一维卷积”技术实现对恶意软件向量的纵向降维、利用“一维池化”技术实现对恶意软件向量的横向降维,提取恶意软件高维特征的方案,在准确表征原恶意软件特征的同时尽可能减少特征向量长度,进而减少计算量。

(2)通过一维卷积、Hadamard、一维池化、注意力机制、多层感知机等基础结构来实现恶意软件分类的模型结构,既使用恶意软件片段领域信息,也依赖恶意软件全文信息,解决恶意软件检测时对专家知识强依赖的问题,提高恶意软件分类模型的泛化能力,降低人力消耗,提高安全应急响应速度,给出了实现的技术细节,同时解决了现有技术对恶意软件的运行原理理解不足,深度学习模型可解释性差的问题,向安全人员提供了可以解释的分类判断理由,提高了恶意软件分类准确率。

(3)本发明将恶意软件全文信息建模为自然语言处理领域的概要抽取问题,使用自注意力机制处理降维后的恶意软件表示向量,提取恶意软件的全文信息,解决现有技术特征抽取规则不明确,容易被恶意软件经过简单修饰和混淆的变异样本绕过逃避检测或使恶意软件检测器分类出错的问题。使恶意软件即使经过修饰之后也能够被正确检测和分类,保证计算机系统的安全稳定运行,满足日益严峻的网络安全态势。

(4)通过残差结构结合恶意软件邻域信息和全局信息,使卷积模块专注于提取恶意软件邻域信息,自注意力模块专注于提取恶意软件全局信息,最终提高了模型分类精度。

(5)采用随机采样技术应对恶意软件各个种类存在样本不均衡现象,加快恶意软件分类模型收敛速度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的基于机器码字节流的端到端的恶意软件分类方法概览图。

图2为本发明实施例提供的基于机器码字节流的端到端的恶意软件分类模型详细结构图。

具体实施方式

本发明提供的一种基于机器码字节流的端到端的深度学习恶意软件分类方法,如图1所示,包括以下步骤:

S1、以恶意软件样本机器码字节流为输入,经过恶意软件领域表示向量编码,输出恶意软件邻域信息;

S2、恶意软件邻域信息经过恶意软件全区信息抽取模块,输出恶意软件全局信息;

S3、恶意软件邻域信息和全局信息共同输入残差链接模块,输出恶意软件表示向量;

S4、恶意软件表示向量经过分类输出模块的处理,输出恶意软件分类结果。

为了更好地理解本技术方案,下面结合附图对本发明的方法做详细的说明。

本方法采用的是打好标签的恶意软件数据集BODMAS,本数据集标签分别是病毒Virus、蠕虫Worm、特洛伊木马Trojan、勒索软件Ransomware、间谍软件InformationStealer、恶意软件下载器Downloader、恶意软件释放器Dropper、后门软件Backdoor八种(如表1所示)。

表1恶意软件样本数据集信息

本发明的基于机器码字节流的端到端的恶意软件分类方法,以恶意软件机器码字节流为输入,经过恶意软件领域表示向量编码、恶意软件全区信息抽取模块、残差链接模块、分类输出模块的处理,从而给出该恶意软件属于表1所示的八个类别中每一个类别的概率。

具体地,基于机器码字节流的端到端的恶意软件分类方法的流程如算法1所示,通过从磁盘直接读取机器码字节流,修改机器码字节流的两个标志位来使样本无害化(使我们的设备免受攻击),然后截取前204800字节作为分类依据,将长度为204800的机器码字节流输入如图2所示的模型中,得到该恶意软件属于每一个恶意软件类别的概率向量输出,将预测概率最大的分类作为该恶意软件的预测分类,最终给出预测结果label。

基于机器码字节流的端到端的恶意软件分类方法模型详细结构如图2所示,接下来我们对各个模块进行深入介绍。

1、恶意软件领域表示向量编码

步骤S1中字节流输入前先修改机器码字节流的两个标志位来使样本无害化,然后截取前204800字节作为分类依据,将长度为204800的机器码字节流作为输入,经过Embedding编码为(204800*8)的向量e。

程序在执行期间有两个规律分别是时间局部性原理(如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某块数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型原因,是由于在程序中存在着大量的循环操作)和空间局部性原理(一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。)。基于时间局部性原理和空间局部性原理,恶意软件样本邻域内会存在共性的信息,因此我们可以通过卷积运算和池化运算可以在抽取该待测样本邻域的信息的同时降低特征向量的维度,从向量e抽取出包含恶意软件样本邻域信息的向量r

恶意软件领域表示向量编码的过程为:

(1)首先将Embedding编码结果e经过一个参数独立的卷积层进行高维特征抽取得到两个(400*32)的向量c

其中x为输入向量,kernel为卷积核,i、j、p、q为卷积相对坐标;

(2)对c

(3)然后对其进行一维池化降维,得到(400*1)的恶意软件中间向量表示r

恶意软件领域表示向量编码采用的卷积计算模块详细结构如表2所示。

表2卷积模块结构

卷积层Sigmoid激活函数计算公式如下所示:

Hadamard运算ReLU激活函数计算公式如下所示:

ReLU(x)=max(0,x)(5)

其中x为输入值。更低的维度可以降低后续的计算量。

2、恶意软件全区信息抽取模块

程序运行时除了具有局部性特征,还具有全局性特征(如代码段内的代码运行时需要访问数据段中的某些常量)。因此我们还需要抽取恶意软件的全局特征,而自注意力机制(Transformer/Attention)在自然语言处理领域(尤其是翻译领域)展现出卓越的全文信息获取能力。

恶意软件表示向量r

其中words代表恶意软件表示向量r

本发明采用8头注意力模型,用于应对恶意软件的混淆、加密等绕过安全检测的恶意软件开发技术,最终输出结果r

其中i代表第i个注意力头,W

通过该矩阵我们可以将多头注意力结果转化为(25*16)的概要信息向量,最后将其重排成(400*1)的恶意软件概要信息向量r

3、残差连接模块

为避免模型随着结构逐渐复杂而出现梯度消失或梯度爆炸问题,我们在自注意力模块之后添加了一个残差链接,将恶意软件邻域信息r

r=r

4、分类输出模块

将恶意软件表示向量r输入一个多层感知机(MLP层)并用Softmax函数计算该待测样本的属于每个恶意软件种类的概率。该向量输出的大小为(8*1),每个元素值∈[0,1]。

MLP模块详细结构如表3所示。

表3MLP模块详细结构

全连接层激活函数Softmax函数的计算方式如下所示:

其中i=1,…,8,z为最后一个全连接层的输出。

恶意软件表示向量经过分类输出模块的处理后,得到该恶意软件属于每一个恶意软件类别的概率向量输出,将预测概率最大的分类作为该恶意软件的预测分类,最终给出预测结果。

本发明通过以交叉熵损失函数为损失函数,以随机梯度下降算法为优化器,采用随机采样技术解决样本数量不平衡问题,训练该模型10轮,指标达到了91.6%的macro-Precision和90.0%的macro-F1,超过了目前的DNN、MalConv、2D-CNN等模型,证明了本端到端的深度学习恶意软件分类器的有效性和合理性。

另一方面,本发明还提供了一种基于机器码字节流的端到端的深度学习恶意软件分类装置,如图1所示,包括以下模块用以实现上述任一项所述的方法:

恶意软件领域表示向量编码,以恶意软件样本机器码字节流为输入,利用一维卷积实现对恶意软件向量的纵向降维,利用一维池化实现对恶意软件向量的横向降维,最终输出恶意软件邻域信息;

恶意软件全区信息抽取模块,以恶意软件邻域信息为输入,使用自注意力机制处理降维后的恶意软件表示向量,输出恶意软件全局信息;

残差链接模块,以恶意软件邻域信息和全局信息为共同输入,输出恶意软件表示向量;

分类输出模块,以恶意软件表示向量为输入,输出恶意软件分类结果。

相应于上述本发明实施例提供的一种基于机器码字节流的端到端的深度学习恶意软件分类方法,本发明还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一项所述的方法的步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述本发明实施例提供的任一基于机器码字节流的端到端的深度学习恶意软件分类方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述本发明实施例提供的任一基于机器码字节流的端到端的深度学习恶意软件分类方法的步骤。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,但这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 一种基于深度学习的端到端说话人分割方法及系统
  • 基于DRS-VGG的端到端深度学习拉曼光谱数据分类方法
  • 基于多级深度学习网络的单航过InSAR系统端对端分类方法
技术分类

06120115934847