CN114692156B - 内存片段恶意代码入侵检测方法、系统、存储介质及设备 - Google Patents
内存片段恶意代码入侵检测方法、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN114692156B CN114692156B CN202210603899.0A CN202210603899A CN114692156B CN 114692156 B CN114692156 B CN 114692156B CN 202210603899 A CN202210603899 A CN 202210603899A CN 114692156 B CN114692156 B CN 114692156B
- Authority
- CN
- China
- Prior art keywords
- layer
- memory
- file
- neural network
- network model
- 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
- 238000001514 detection method Methods 0.000 title claims description 20
- 239000012634 fragment Substances 0.000 claims abstract description 82
- 238000003062 neural network model Methods 0.000 claims abstract description 69
- 238000011176 pooling Methods 0.000 claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 claims abstract description 24
- 230000011218 segmentation Effects 0.000 claims abstract description 18
- 238000012549 training Methods 0.000 claims description 70
- 238000012360 testing method Methods 0.000 claims description 60
- 238000004590 computer program Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 14
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000001502 supplementing effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 28
- 241000700605 Viruses Species 0.000 abstract description 10
- 210000002569 neuron Anatomy 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000009189 diving Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- 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/045—Combinations of 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Virology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于计算机恶意软件检测技术领域,提供了内存片段恶意代码入侵检测方法、系统、存储介质及设备,包括:获取待检测内存文件;对待检测内存文件依次进行二进制转化和分词预处理后,基于最优的片段位置和长度组合进行片段截取,得到预测片段;将预测片段输入最优的神经网络模型,对预测片段进行检测,得到待检测内存文件是否被植入恶意代码的结果;其中,神经网络模型采用嵌入层对输入预测片段进行升维后,通过卷积核大小不同的卷积层卷积后进行池化,最后通过展平层和全连接层转化后输入分类器。通过学习恶意代码的潜在的规则和特征,从而检测出尚未发现的病毒以及对现有的病毒进行检测。
Description
技术领域
本发明属于计算机恶意软件检测技术领域,尤其涉及内存片段恶意代码入侵检测方法、系统、存储介质及设备。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
随着计算机和互联网技术的蓬勃发展,恶意软件的数量呈指数级的增长,恶意程序呈现出变种多、抗检测技术更新更快的发展特点,并通过无文件恶意软件攻击方式来突破安全防护系统的检测,对企业安全防御者构成严重威胁和挑战。无文件恶意软件攻击是一种潜入受害组织从内存中执行代码的方法,它没有在计算机磁盘上使用恶意文件或文件片段,隐匿了自身及其攻击痕迹。然而,他们无法将其在内存中的痕迹完全删除。因此,内存分析是系统性分析无源码、恶意性未知的程序的最好方法之一。
另外,内存的分页和置换机制使得内存中的大部分信息变的不完整,而且程序在执行时不会把全部的信息调入内存,只会先把部分信息调入内存,因此无法获取完整的文件,很难通过专业的分析方式对于获取到的文件进行检测是否为恶意的程序或者文件。
现有的杀毒软件对于文件进行检测基本上是对比病毒库中所存在的一些特征,从而进行判断该文件是否为恶意文件,这种方式显而易见的优点是准确率高,比较方便,误报率低的特征,但是内存中由于文件的不完整检测相对困难,并且对于新产生的病毒无法进行检测。
发明内容
为了解决上述背景技术中存在的技术问题,本发明提供内存片段恶意代码入侵检测方法、系统、存储介质及设备,利用神经网络模型,通过学习恶意代码的潜在的规则和特征,从而检测出尚未发现的病毒以及对现有的病毒进行检测。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供内存片段恶意代码入侵检测方法,其包括:
获取待检测内存文件;
对待检测内存文件依次进行二进制转化和分词预处理后,基于最优的片段位置和长度组合进行片段截取,得到预测片段;
将预测片段输入最优的神经网络模型,对预测片段进行检测,得到待检测内存文件是否被植入恶意代码的结果;
其中,神经网络模型采用嵌入层对输入预测片段进行升维后,通过卷积核大小不同的卷积层卷积后进行池化,最后通过展平层和全连接层转化后输入分类器。
进一步地,所述分词预处理的具体步骤为:
将二进制转化后得到的二进制文件转化为十进制,得到十进制文件;
判断十进制文件是否达到预设长度,若没有,则将十进制文件中的数据整体加1后,用0来补齐。
进一步地,所述片段位置和长度组合为:
对内存文件从头部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件从尾部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件选取多个非连续的子片段,将多个非连续的子片段进行组合后作为预测片段。
进一步地,所述最优的神经网络模型和最优的片段位置和长度组合的获取步骤为:
获取恶意样本集和良性样本集,并对恶意样本集和良性样本集中的每个内存文件均进行二进制转化和分词预处理后,得到初始训练测试集;
对初始训练测试集中的每个内存文件均基于若干种片段位置和长度组合进行片段截取,得到若干种训练测试集;
采用每种训练测试集分别对神经网络模型进行训练和测试,将准确率最高的神经网络模型作为最优神经网络模型,其用的训练测试集在进行片段截取时采用的片段位置和长度组合作为最优的片段位置和长度组合。
进一步地,采用训练测试集对神经网络模型进行训练和测试的步骤为:
(a)将训练测试集划分为训练集和测试集;
(b)基于训练集对神经网络模型更新权值,经过若干次迭代,直到损失函数达到最小,输出神经网络模型;
(c)用输出的神经网络模型对测试集中的样本进行分类,当分类的准确率小于阈值时,返回步骤(b)对神经网络模型继续进行调参训练,直至输出的神经网络模型对测试集中的样本进行分类的准确率大于等于阈值为止。
本发明的第二个方面提供内存片段恶意代码入侵检测系统,其包括:
文件获取模块,其被配置为:获取待检测内存文件;
片段截取模块,其被配置为:对待检测内存文件依次进行二进制转化和分词预处理后,基于最优的片段位置和长度组合进行片段截取,得到预测片段;
预测模块,其被配置为:将预测片段输入最优的神经网络模型,对预测片段进行检测,得到待检测内存文件是否被植入恶意代码的结果;
其中,神经网络模型采用嵌入层对输入预测片段进行升维后,通过卷积核大小不同的卷积层卷积后进行池化,最后通过展平层和全连接层转化后输入分类器。
进一步地,所述片段位置和长度组合为:
对内存文件从头部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件从尾部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件选取多个非连续的子片段,将多个非连续的子片段进行组合后作为预测片段。
进一步地,还包括训练模块,其被配置为:
获取恶意样本集和良性样本集,并对恶意样本集和良性样本集中的每个内存文件均进行二进制转化和分词预处理后,得到初始训练测试集;
对初始训练测试集中的每个内存文件均基于若干种片段位置和长度组合进行片段截取,得到若干种训练测试集;
采用每种训练测试集分别对神经网络模型进行训练和测试,将准确率最高的神经网络模型作为最优神经网络模型,其用的训练测试集在进行片段截取时采用的片段位置和长度组合作为最优的片段位置和长度组合。
本发明的第三个方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的内存片段恶意代码入侵检测方法中的步骤。
本发明的第四个方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的内存片段恶意代码入侵检测方法中的步骤。
与现有技术相比,本发明的有益效果是:
本发明提供了内存片段恶意代码入侵检测方法,其利用神经网络模型,通过学习恶意代码的潜在的规则和特征,从而检测出尚未发现的病毒以及对现有的病毒进行检测。
本发明提供了内存片段恶意代码入侵检测方法,其针对内存分析出的动态文件进行检测,一方面可以检测出在静态文件下检测不出,只有在运行时才能检测出的恶意代码;另一方面对于内存取证人员能够更加有效率的固定内存证据。
本发明提供了内存片段恶意代码入侵检测方法,其对于转储到磁盘上的正在运行的内存文件具有有效的检测,以及对于内存取证人员具有很强的参考性和实用性。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例一的最优的神经网络模型获取方法流程图;
图2是本发明实施例一的二进制转化和十进制转化示意图;
图3是本发明实施例一的神经网络模型结构图;
图4是本发明实施例一的神经网络模型的隐藏层结构图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
术语解释:
卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络。
实施例一
本实施例提供了内存片段恶意代码入侵检测方法,具体包括如下步骤:
步骤1、获取待检测内存文件。获取待检测内存文件的具体过程可分为沙箱运行、转储和提取这三个阶段。
其中,沙箱运行具体为:在虚拟机中运行不受信任的程序,这样有效控制了不会对真实的设备进行破坏。转储具体为:利用快照的形式对于虚拟机中的内存文件进行转储。提取具体为:利用取证工具对转储得到的内存文件提取出待检测内存文件,待检测内存文件为可执行文件(.exe)、动态链接库文件(.dll)或系统文件(.sys)。
步骤2、对待检测内存文件依次进行二进制转化、分词预处理后,基于最优的片段位置和长度(大小)组合进行片段截取,得到预测片段。
步骤3、将预测片段输入最优的神经网络模型,对预测片段进行检测,得到待检测内存文件是否被植入恶意代码的结果。如果检测出待检测内存文件属于被恶意代码入侵的内存文件,则可以判断被检测内存文件植入了恶意代码,否则属于未被植入恶意代码的内存文件,从而在静态文件中找出在静态时没有被检测到,而在动态文件中被检测出恶意代码的文件。
具体的,如图1所示,最优的神经网络模型和最优的片段位置和长度组合的获取步骤为:
(1)获取恶意样本集和良性样本集,并对恶意样本集和良性样本集中的每个内存文件均进行二进制转化,得到二进制文件数据集,并对二进制文件数据集中的每个二进制文件进行分词预处理后,得到初始训练测试集。
本实施例中,恶意样本集中的每个样本(即每个内存文件)的标签均为被恶意代码入侵;良性样本集中的每个样本的标签均为未被植入恶意代码。获取恶意样本集和良性样本集的具体方法为:下载恶意样本集,在本实施例中,在Virus Share网站(https://virusshare.com/)中下载600个静态恶意样本;在虚拟机中运行不受信任的程序,获取内存镜像,通过内存取证工具提取恶意样本集;运性windows系统,获取内存镜像,通过内存取证工具提取良性样本集,本实施例中,良性样本集中包含300个样本。
其中,分词预处理的具体步骤为:将二进制转化后得到的二进制文件转化为十进制,得到十进制文件,其取值范围为0-255,这是为了使内存文件更加接近图像,一个图像的像素点是0-255这个区间,这样可以使得二进制文件转化为一张灰度图,从而更加适应神经网络模型的性能;为了使输入神经网络模型的内存文件的长度保持一致,判断十进制文件是否达到预设长度,若没有,则将十进制文件中的数据整体加1后,用0来补齐,为了能够使得原数据中的0变得有意义,故将十进制文件中的数据整体加1,如图2所示。
(2)对初始训练测试集中的每个内存文件均基于若干种片段位置和长度组合进行片段截取,得到若干种训练测试集。一种训练测试集对应一种片段位置和长度组合对初始训练测试集进行片段截取得到的结果。
片段位置和长度组合为:对内存文件从头部取1024的整数倍(1024字节或2048字节等)的长度的数据作为预测片段;或者,对内存文件从尾部取1024的整数倍的长度的数据作为预测片段;或者,对内存文件选取多个非连续的子片段,将多个非连续的子片段进行组合后作为预测片段,对子片段进行组合时可以按照子片段在内存文件中的顺序进行组合,也可以打乱顺序后进行组合。
其中,子片段的数量和长度的计算方法为:
data_len=file_len/k;
如果train_len<data_len,则data_len= 256;
NN = train_len/data_len;
其中,k为根据样本的平均长度设定的参数,可以取值为60;file_len为样本长度;data_len为不同位置采样的长度(即一个子片段的长度);train_len为设定的预测片段的长度;NN代表子片段的数量。
(3)采用每种训练测试集分别对神经网络模型进行训练和测试,将准确率最高的神经网络模型作为最优神经网络模型,其训练和测试用的训练测试集在进行片段截取时采用的片段位置和长度组合作为最优的片段位置和长度组合。
采用一种训练测试集对神经网络模型进行训练和测试的步骤为:
(a)将训练测试集按照2:1的方式划分为训练集和测试集;
(b)基于训练集对神经网络模型更新权值,经过若干次迭代,直到损失函数达到最小,训练结果稳定不变时,输出神经网络模型;
(c)采用测试集对于输出的神经网络模型进行测试,即用输出的神经网络模型对测试集中的样本进行分类,当分类的准确率小于阈值80%时,则返回步骤(b)对神经网络模型继续进行调参训练,直至输出的神经网络模型对测试集中的样本进行分类的准确率大于等于阈值80%为止。
具体的,神经网络模型为CNN神经网络模型。如图3所示,神经网络模型包括输入层、隐藏层和输出层。输入层中神经元的个数为输入的预测片段中数据的个数,本实施例中,输入层中神经元的个数为256,每个神经元xi代表预测片段中的一个数据,输入层的通道数为1;输出层中神经元的个数为2,代表类别:被恶意代码入侵或未被植入恶意代码。神经网络模型采用嵌入层对输入预测片段进行升维后,通过卷积核大小不同的卷积层卷积后进行池化,最后通过展平层和全连接层转化后输入分类器。具体的,如图4所示,隐藏层共有12层,包括依次连接的嵌入层(embeding)、第一一维卷积层、第一池化层、第二一维卷积层、第一Dropout层、第三一维卷积层、第二池化层、第二Dropout层、第三池化层、展平层(flatten)、全连接层和softmax层。本发明的神经网络模型卷积层并没有与一般的自然语言处理分类任务一样采取较大的卷积核(一般设置为10以上),而是采取了较小的卷积核,以及较多的卷积层。用于捕获更多的数据特征。虽然增加了卷积层的计算次数,但是并没有增加太多的训练时长,这是由于内存数据稀疏的特性,数据中具有至少四分一的0分布在数据中,使得卷积计算变得简单。
嵌入层利用了升维的方式,将输入层的每个神经元的向量转化为多维(100维)的向量,这样可以更好的学习不同数值间的差异,升维后的的数据(100维)进行二次拼接,作为第一一维卷积层的输入。第一一维卷积层输入的通道数则为200个。
对于给定的接收场,使用堆叠的小卷积核要优于使用大卷积核,因为多个非线性层可以增加网络深度。因此,采用了多个一维卷积层以及较小的卷积核进行训练,其中,第一一维卷积层、第二一维卷积层和第三一维卷积层的卷积核的大小分别设置为3,4和5;第一一维卷积层、第二一维卷积层和第三一维卷积层的步长均为1;第一一维卷积层输入及输出通道分别是200和100;第二一维卷积层的输入通道为100,输出通道为50;第三一维卷积层输入通道设置为50,输出通道设置为25。
第一一维卷积层、第二一维卷积层和第三一维卷积层的输出特征均可以表示为:
其中,N是batch大小,C为通道大小,L为序列的长度,bias为神经网络中的偏置值(偏置值默认为1),batch为批量处理的样本的个数,也即将整个数据集(可以为训练集、测试集或使用时的单个待检测内存文件)中的所有样本分为若干组,每组有多少个样本,就是batch的大小,i表示为第几组,j为第i组中第j个样本,k表示为输入通道的索引,第i组的第j个样本输入的是第k个神经元节点,outj表示第j个样本的输出通道,Cin表示输入通道的总数,weight表示第一一维卷积层、第二一维卷积层或第三一维卷积层的权重向量,input表示第一一维卷积层、第二一维卷积层或第三一维卷积层的输入特征。
第一一维卷积层、第二一维卷积层和第三一维卷积层的输出序列的长度均通过下式计算:
其中,L out 为输出序列长度,L in 为输入序列长度,padding为填充长度,dilation为空洞卷积的大小,此处设置为0,kernel_size为卷积核大小,stride为步长大小。
第一Dropout层和第二Dropout层,不仅防止了训练数据过拟合的问题,而且没有降低训练的精度。第一Dropout层和第二Dropout层的掩码(mask)值(随机隐藏神经元节点的大小)均设置为0.5。Dropout是一种随机隐藏正则化技术,Dropout层用于随机隐藏真实神经元节点,默认是用零来随机填充神经元节点,这样卷积神经网络就会认为这是一条新的数据,重新进行学习,更新权重,抑制了训练时过拟合问题。
由于内存数据的稀疏性,使用平均池化会弱化提取的特征,第一池化层、第二池化层和第三池化层均采用最大池化(maxpool),在此模型中比平均池化性能更加优良。第一池化层、第二池化层和第三池化层的大小均设置为4,这是动态数据二进制文件数据的稀疏特点所决定的。
第三池化层输出的数据特征经过展平层展平后,结合第三一维卷积层的输出序列长度,求得展平层的输入参数。
利用展平层将序列展平,然后通过全连接层转化为两个神经元节点,最后通过softmax层实现分类。
隐藏层的最后一层softmax层也即分类器,采用归一化指数函数:
其中,exp(x)表示ex的指数函数(e是纳皮尔常数2.7182...),n表示输出层共有n的神经元,yk表示输出层的第k个神经元的输出,ak表示输出层的第k个神经元的输入;分子是第k个神经元的输入信号ak的指数函数,分母是所有输入信号的指数函数的和。
神经网络模型中的优化器,是在通过大量数据的验证下,选取最适于本模型的优化器。
神经网络模型的损失函数采用min-batch交叉熵损失函数:
其中,M表示训练集中预测片段的个数,tmk表示第m个预测片段的第k个元素(数据)的值,ymk是神经网络对第m个预测片段的第k个元素(数据)的输出,tmk是监督数据。把单个数据的损失函数扩大到了M份数据,不过最后还要除以M,可以求得单个预测片段的平均损失函数,通过这样的平均化,可以通过获得和训练数据无关的统一指标,比如,即使训练数据(训练集中预测片段)有1000或者10000个,也可以求得单个预测片段的平均损失函数。
本发明基于以上分析提出利用机器学习对内存提取到的文件进行二分类,通过该方法对内存提取到的文件进行检测,可以有效的发现内存中是否有被恶意代码植入。
实施例二
本实施例提供了内存片段恶意代码入侵检测系统,其具体包括如下模块:
文件获取模块,其被配置为:获取待检测内存文件;
片段截取模块,其被配置为:对待检测内存文件依次进行二进制转化和分词预处理后,基于最优的片段位置和长度组合进行片段截取,得到预测片段;
预测模块,其被配置为:将预测片段输入最优的神经网络模型,对预测片段进行检测,得到待检测内存文件是否被植入恶意代码的结果;
其中,神经网络模型采用嵌入层对输入预测片段进行升维后,通过卷积核大小不同的卷积层卷积后进行池化,最后通过展平层和全连接层转化后输入分类器。
其中,片段位置和长度组合为:
对内存文件从头部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件从尾部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件选取多个非连续的子片段,将多个非连续的子片段进行组合后作为预测片段。
训练模块,其被配置为:
获取恶意样本集和良性样本集,并对恶意样本集和良性样本集中的每个内存文件均进行二进制转化和分词预处理后,得到初始训练测试集;
对初始训练测试集中的每个内存文件均基于若干种片段位置和长度组合进行片段截取,得到若干种训练测试集;
采用每种训练测试集分别对神经网络模型进行训练和测试,将准确率最高的神经网络模型作为最优神经网络模型,其用的训练测试集在进行片段截取时采用的片段位置和长度组合作为最优的片段位置和长度组合。
此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的内存片段恶意代码入侵检测方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的内存片段恶意代码入侵检测方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.内存片段恶意代码入侵检测方法,其特征在于,包括:
获取待检测内存文件;
对待检测内存文件依次进行二进制转化和分词预处理后,基于最优的片段位置和长度组合进行片段截取,得到预测片段;
将预测片段输入最优的神经网络模型,对预测片段进行检测,得到待检测内存文件是否被植入恶意代码的结果;
其中,神经网络模型包括输入层、隐藏层和输出层,隐藏层包括依次连接的嵌入层、第一一维卷积层、第一池化层、第二一维卷积层、第一Dropout层、第三一维卷积层、第二池化层、第二Dropout层、第三池化层、展平层、全连接层和softmax层;神经网络模型采用嵌入层对输入预测片段进行升维后,通过卷积核大小不同的卷积层卷积后进行池化,最后通过展平层和全连接层转化后输入分类器;
所述分词预处理的具体步骤包括:将二进制转化后得到的二进制文件转化为十进制,得到十进制文件,其取值范围为0-255。
2.如权利要求1所述的内存片段恶意代码入侵检测方法,其特征在于,所述分词预处理的具体步骤还包括:
判断十进制文件是否达到预设长度,若没有,则将十进制文件中的数据整体加1后,用0来补齐。
3.如权利要求1所述的内存片段恶意代码入侵检测方法,其特征在于,所述片段位置和长度组合为:
对内存文件从头部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件从尾部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件选取多个非连续的子片段,将多个非连续的子片段进行组合后作为预测片段。
4.如权利要求1所述的内存片段恶意代码入侵检测方法,其特征在于,所述最优的神经网络模型和最优的片段位置和长度组合的获取步骤为:
获取恶意样本集和良性样本集,并对恶意样本集和良性样本集中的每个内存文件均进行二进制转化和分词预处理后,得到初始训练测试集;
对初始训练测试集中的每个内存文件均基于若干种片段位置和长度组合进行片段截取,得到若干种训练测试集;
采用每种训练测试集分别对神经网络模型进行训练和测试,将准确率最高的神经网络模型作为最优神经网络模型,其用的训练测试集在进行片段截取时采用的片段位置和长度组合作为最优的片段位置和长度组合。
5.如权利要求4所述的内存片段恶意代码入侵检测方法,其特征在于,采用训练测试集对神经网络模型进行训练和测试的步骤为:
(a)将训练测试集划分为训练集和测试集;
(b)基于训练集对神经网络模型更新权值,经过若干次迭代,直到损失函数达到最小,输出神经网络模型;
(c)用输出的神经网络模型对测试集中的样本进行分类,当分类的准确率小于阈值时,返回步骤(b)对神经网络模型继续进行调参训练,直至输出的神经网络模型对测试集中的样本进行分类的准确率大于等于阈值为止。
6.内存片段恶意代码入侵检测系统,其特征在于,包括:
文件获取模块,其被配置为:获取待检测内存文件;
片段截取模块,其被配置为:对待检测内存文件依次进行二进制转化和分词预处理后,基于最优的片段位置和长度组合进行片段截取,得到预测片段;
预测模块,其被配置为:将预测片段输入最优的神经网络模型,对预测片段进行检测,得到待检测内存文件是否被植入恶意代码的结果;
其中,神经网络模型包括输入层、隐藏层和输出层,隐藏层包括依次连接的嵌入层、第一一维卷积层、第一池化层、第二一维卷积层、第一Dropout层、第三一维卷积层、第二池化层、第二Dropout层、第三池化层、展平层、全连接层和softmax层;神经网络模型采用嵌入层对输入预测片段进行升维后,通过卷积核大小不同的卷积层卷积后进行池化,最后通过展平层和全连接层转化后输入分类器;
所述分词预处理的具体步骤包括:将二进制转化后得到的二进制文件转化为十进制,得到十进制文件,其取值范围为0-255。
7.如权利要求6所述的内存片段恶意代码入侵检测系统,其特征在于,所述片段位置和长度组合为:
对内存文件从头部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件从尾部取1024的整数倍的长度的数据作为预测片段;
或者,对内存文件选取多个非连续的子片段,将多个非连续的子片段进行组合后作为预测片段。
8.如权利要求6所述的内存片段恶意代码入侵检测系统,其特征在于,还包括训练模块,其被配置为:
获取恶意样本集和良性样本集,并对恶意样本集和良性样本集中的每个内存文件均进行二进制转化和分词预处理后,得到初始训练测试集;
对初始训练测试集中的每个内存文件均基于若干种片段位置和长度组合进行片段截取,得到若干种训练测试集;
采用每种训练测试集分别对神经网络模型进行训练和测试,将准确率最高的神经网络模型作为最优神经网络模型,其用的训练测试集在进行片段截取时采用的片段位置和长度组合作为最优的片段位置和长度组合。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的内存片段恶意代码入侵检测方法中的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一项所述的内存片段恶意代码入侵检测方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210603899.0A CN114692156B (zh) | 2022-05-31 | 2022-05-31 | 内存片段恶意代码入侵检测方法、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210603899.0A CN114692156B (zh) | 2022-05-31 | 2022-05-31 | 内存片段恶意代码入侵检测方法、系统、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114692156A CN114692156A (zh) | 2022-07-01 |
CN114692156B true CN114692156B (zh) | 2022-08-30 |
Family
ID=82131254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210603899.0A Active CN114692156B (zh) | 2022-05-31 | 2022-05-31 | 内存片段恶意代码入侵检测方法、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114692156B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115455416A (zh) * | 2022-09-09 | 2022-12-09 | 上海派拉软件股份有限公司 | 一种恶意代码检测方法、装置、电子设备及存储介质 |
CN115859290B (zh) * | 2023-02-01 | 2023-05-16 | 中国人民解放军61660部队 | 一种基于静态特征的恶意代码检测方法和存储介质 |
CN116861420B (zh) * | 2023-05-26 | 2024-05-28 | 广州天懋信息系统股份有限公司 | 一种基于内存特征的恶意软件检测系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3227820A1 (en) * | 2014-12-05 | 2017-10-11 | Permissionbit | Methods and systems for encoding computer processes for malware deteection |
CN110704840A (zh) * | 2019-09-10 | 2020-01-17 | 中国人民公安大学 | 一种基于卷积神经网络cnn的恶意软件检测方法 |
CN111881447A (zh) * | 2020-06-28 | 2020-11-03 | 中国人民解放军战略支援部队信息工程大学 | 恶意代码片段智能取证方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382438B (zh) * | 2020-03-27 | 2024-04-23 | 玉溪师范学院 | 基于多尺度卷积神经网络的恶意软件检测方法 |
CN113420294A (zh) * | 2021-06-25 | 2021-09-21 | 杭州电子科技大学 | 基于多尺度卷积神经网络的恶意代码检测方法 |
-
2022
- 2022-05-31 CN CN202210603899.0A patent/CN114692156B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3227820A1 (en) * | 2014-12-05 | 2017-10-11 | Permissionbit | Methods and systems for encoding computer processes for malware deteection |
CN110704840A (zh) * | 2019-09-10 | 2020-01-17 | 中国人民公安大学 | 一种基于卷积神经网络cnn的恶意软件检测方法 |
CN111881447A (zh) * | 2020-06-28 | 2020-11-03 | 中国人民解放军战略支援部队信息工程大学 | 恶意代码片段智能取证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114692156A (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12069087B2 (en) | System and method for analyzing binary code for malware classification using artificial neural network techniques | |
CN114692156B (zh) | 内存片段恶意代码入侵检测方法、系统、存储介质及设备 | |
Kalash et al. | Malware classification with deep convolutional neural networks | |
CN110704840A (zh) | 一种基于卷积神经网络cnn的恶意软件检测方法 | |
US20240220617A1 (en) | Deep learning based detection of malicious shell scripts | |
CN111753290B (zh) | 软件类型的检测方法及相关设备 | |
CN110874471B (zh) | 保护隐私安全的神经网络模型的训练方法和装置 | |
Masabo et al. | Big data: deep learning for detecting malware | |
CN109656818B (zh) | 一种软件密集系统故障预测方法 | |
Abijah Roseline et al. | Vision-based malware detection and classification using lightweight deep learning paradigm | |
US11977633B2 (en) | Augmented machine learning malware detection based on static and dynamic analysis | |
Jere et al. | Principal component properties of adversarial samples | |
Aditya et al. | Deep learning for malware classification platform using windows api call sequence | |
CN113222053A (zh) | 基于RGB图像和Stacking多模型融合的恶意软件家族分类方法、系统和介质 | |
CN111581640A (zh) | 一种恶意软件检测方法、装置及设备、存储介质 | |
Waghmare et al. | A review on malware detection methods | |
Balega et al. | IoT Anomaly Detection Using a Multitude of Machine Learning Algorithms | |
Jiang et al. | A pyramid stripe pooling-based convolutional neural network for malware detection and classification | |
Onoja et al. | Exploring the effectiveness and efficiency of LightGBM algorithm for windows malware detection | |
Turnip et al. | Android malware classification based on permission categories using extreme gradient boosting | |
Baghirov | Malware detection based on opcode frequency | |
Ch et al. | Advancing Malware Detection Using Memory Analysis and Explainable AI Approach | |
Yılmaz | Malware classification with using deep learning | |
Hossain et al. | Malware Detection Using Neural Networks | |
Banumathi et al. | Hybridized Least Absolute Shrinkage Selection Operator and Cross-Validation Algorithm for Classification of Malware. |
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 |