CN113568836A - 多时间序列的样本特征提取方法以应用其的软件检测方法 - Google Patents
多时间序列的样本特征提取方法以应用其的软件检测方法 Download PDFInfo
- Publication number
- CN113568836A CN113568836A CN202110871552.XA CN202110871552A CN113568836A CN 113568836 A CN113568836 A CN 113568836A CN 202110871552 A CN202110871552 A CN 202110871552A CN 113568836 A CN113568836 A CN 113568836A
- Authority
- CN
- China
- Prior art keywords
- instruction
- software
- sequence
- calling
- sample
- 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.)
- Granted
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 52
- 239000011159 matrix material Substances 0.000 claims abstract description 42
- 238000012549 training Methods 0.000 claims abstract description 39
- 238000013528 artificial neural network Methods 0.000 claims description 19
- 238000013527 convolutional neural network Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000306 recurrent effect Effects 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000000295 complement effect Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract description 6
- 230000006399 behavior Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 14
- 244000035744 Hura crepitans Species 0.000 description 8
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 241000544061 Cuculus canorus Species 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- 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
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Debugging And Monitoring (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本申请提出了一种多时间序列的样本特征提取方法以应用其的软件检测方法,其中,样本特征提取方法包括以下步骤:运行软件样本,获取软件样本在操作系统中调用指令生成的多条指令调用记录;根据所属线程对每条指令调用记录分组,对分组内所有指令调用记录按照调用顺序正序排列,并提取每组前连续多条指令调用记录生成指令序列;计算每一线程调用的指令序列的特征值总和,按照特征值总和的大小正序排列,提取每组前连续多列指令序列且合并生成特征矩阵。通过本发明,确保同一软件样本在训练时的传入时间序列顺序与检测时的传入时间序列一致,从而提高检测结果的可靠性。
Description
技术领域
本申请涉及模式识别领域,特别是涉及多时间序列的样本特征提取方法以应用其的软件检测方法。
背景技术
在模式识别领域,对机器的行为进行记录分析并根据分析结果将其分类是一种常见的需求,所谓机器行为通常指计算机软件运行后产生的一系列对操作系统指令的调用。
在各类分析方法中,通过神经网络对机器产生的行为样本进行训练生成模型,使用模型预测产生该行为的机器的类型是目前主流的做法。在各种神经网络中最常用的两种分别是循环神经网络和卷积神经网络,其中循环神经网络适合处理和时间维度无关的样本,卷积神经网络更适合处理和时间维度相关的样本。
在对机器行为特征的提取中,基于时间维度的采样提取其特征是重要的一个环节,早期通常认为机器产生的行为都是顺序执行的,即同一个机器产生的多个行为之间有严格的时间现后顺序,即使软件支持多线程执行也被认为不存在真正的并行而被当成单线程处理。但随着多CPU以及多核CPU的流行,机器产生的行为已经存在真正的并发及并行,也就是同一台机器会出现真正的多个行为同时运作的情况。
处理训练具有时间相关性的样本最合适的是卷积神经网络,但卷积神经网络在设计之初并没有考虑处理存在多个时间线的样本,即用卷积神经网络训练的样本如果存在多条时间线,那训练后模型预测的准确性必然会下降。
而现在大多数机器产生的行为都是并发或并行的,例如一个软件运行后可以有数个线程同时运行,每个线程产生数十次或数百次不同的指令调用,同一线程上执行的指令有严格的时间现后顺序,但不同线程间的指令并没有时间现后顺序,意味着对于同一个软件每次执行后各个线程间的指令集执行顺序是随机的,这种情况下单纯采用卷积神经网络训练模型是不合适的。
通常处理这种情况的方法是,根据一定的规则将多条时间序列的指令串行拼接后再传入卷积神经网络,例如按每条时间序列上指令的数量倒序排列,这样就将多条时间序列拼接成了一条序列,可以适用于卷积神经网络处理。
还有一种做法是,将每条时间序列均分配一条卷积神经网络来处理,处理后的结果传入全连接密度层或循环神经网络再进行融合处理。
针对上述第一种按规则拼接多条时间序列的方法存在问题在于,大多数软件运行后执行指令的数量会非常庞大,例如单线程指令次数会数以万计,针对这种情况的惯用做法是将指令序列截断只取前N个指令参与训练,这种做法会使多条时间序列长度变的相同从而无法按指令数量大小排序,那么多条时间序列的顺序无法按固定,这种情况下训练的卷积神经网络模型的精度会大幅下降。
针对上述第二种用多个卷积神经网络来处理多条时间序列的方法,同样存在着在卷积神经网络处理后融合时顺序无法确定的情况,那么当使用模型时如果传入的待检测样本中时间序列的顺序和训练时传入的顺序不一致,那么预测结果显然是不可信的。
综上,针对目前无论是上述哪种方式在处理多条时间序列样本时都无法保证其固定顺序,导致训练样本的顺序与检测时的顺序不一致,降低预测结果的可信度的问题,目前尚未得到有效的解决方案。
发明内容
本申请实施例提供了一种多时间序列的样本特征提取方法以应用其的软件检测方法,能够解决目前多条时间序列传入顺序不一致的问题,确保同一软件样本在训练时的传入时间序列顺序与检测时的传入时间序列一致,从而提高检测结果的可靠性。
第一方面,本申请实施例提供了一种多时间序列的样本特征提取方法,所述方法包括:运行软件样本,获取软件样本在操作系统中调用指令生成的多条指令调用记录;根据所属线程对每条指令调用记录分组,对分组内所有指令调用记录按照调用顺序正序排列,并提取每组前连续多条指令调用记录生成指令序列;计算每一线程调用的指令序列的特征值总和,按照特征值总和的大小正序排列,提取每组前连续多列指令序列且合并生成特征矩阵。
在其中一些实施例中,“获取软件样本在操作系统中调用指令生成的多条指令调用记录”包括:将软件样本在虚拟终端上运行,捕获预设时段内软件样本对虚拟终端上的操作系统指令调用的调用列表,其中,每一软件样本运行时对应生成一调用列表,调用列表中包括多条指令调用记录。
在其中一些实施例中,调用列表中每一指令调用记录包括以下属性:软件名、软件分类标签、指令名称,指令所属线程编号,调用顺序,基于指令所属线程编号确定指令所属线程。
在其中一些实施例中,设定每列指令序列的目标指令数;在每个分组内的指令调用记录的个数小于目标记录的情况下,采用随机字符串补齐分组记录,否则,丢弃分组内目标指令数以外的指令调用记录;生成指令序列,将指令序列中的每行指令调用记录的指令名称数值化。
在其中一些实施例中,设定目标线程数;在分组的个数小于目标线程数的情况下,采用随机数值补齐分组个数,否则,丢弃目标线程数以外的分组。
在其中一些实施例中,所述方法应用于训练预测模型中,其中,所述预测模型的训练方法包括:获取多个特征矩阵以构造训练数据集,其中,每个特征矩阵以线程编号为列,以指令编号为行,指令编号由用数值化后的指令名称表示;根据训练数据集对预测模型进行训练,得到已训练的预测模型,其中,预测模型包括卷积神经网络或全连接层的其中一种以及多个循环神经网络,将每个特征矩阵作为循环神经网络的输入,将软件分类标签作为卷积神经网络或者全连接层的输出,训练预测网络。
在其中一些实施例中,“将每个特征矩阵作为循环神经网络的输入”包括:对特征矩阵中的每列指令序列进行词嵌入运算,将词嵌入运算后特征矩阵作为循环神经网络的输入。
第二方面,本申请实施例提供了一种多时间序列的软件检测方法,所述方法包括:获取待分类软件,将待分类软件输入已训练的预测模型中,得到已训练的预测模型输出的软件分类标签,其中,已训练的预测模型由权利要求6至7任一所述的预测模型的训练方法训练得到。
第三方面,本申请实施例提供了一种多时间序列的样本特征提取装置,包括:软件运行模块,用于运行软件样本,获取软件样本在操作系统中调用指令生成的多条指令调用记录;序列生成模块,用于根据所属线程对每条指令调用记录分组,对分组内所有指令调用记录按照调用顺序正序排列,并提取每组前连续多条指令调用记录生成指令序列;计算模块,用于计算每一线程调用的指令序列的特征值总和,按照特征值总和的大小正序排列,提取每组前连续多列指令序列且合并生成特征矩阵。
第四方面,本申请实施例提供了一种计算机程序产品,包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述代码软件部分用于执行根据第一方面所述的多时间序列的样本特征提取方法或者根据权利要求8所述的多时间序列的软件检测方法。
本发明的主要贡献和创新点如下:
本申请实施例通过获取软件样本对操作系统指令调用的列表,根据指令调用的列表中的线程编号对被调用的所有指令进行分组,并按照调用顺序排序,对每个线程中的指令序列以特征值总和排序,合并生成特征矩阵,通过调用顺序以及特征值总和的排序最终计算出多条时间序列固定顺序。
本申请实施例以固定顺序的多条时间序列构造训练数据集对预测网络进行训练,保证预测网络的样本以及待检测软件的顺序一致,因此已训练的预测网络输出的待检测软件的分类结果的可靠性更高。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例一的多时间序列的样本特征提取方法的流程图;
图2是根据本申请实施例的多时间序列的样本特征提取方法的机器调用指令行为的示意图;
图3是根据本申请实施例二的预测模型的训练方法的流程图;
图4是根据本申请实施例二的预测模型的架构图;
图5是根据本申请实施例三的多时间序列的样本特征提取装置的结构框图;
图6是根据本申请实施例四的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
实施例一
在本申请的应用场景中,软件样本本身不具有时间戳或者其他时间有关的标识,因此在对模型进行训练时,输入的每个软件样本对应的时间序列往往不是以统一、固定的顺序进行排序的,例如,第一个软件样本对应的时间顺序为a,第二个软件样本对应的时间顺序为b,对模型进行训练。当使用已训练的模型对待检测样本进行检测时,待检测样本对应的时间顺序为c,由于样本集的顺序和检测时的顺序不一致,导致模型输出的分类结果可信度低。
因此,为解决上述问题,本申请旨在提出一种通过指令的调用顺序以及每一线程的特征值总和来对多条时间序列进行排序的计算方法,通过该方法计算出多条时间序列顺序固定的特征矩阵后对模型进行训练,并且能采用循环神经网络以分别处理多个待检测软件的特征矩阵,并用卷积神经网络或全连接层做归约的方式得到待检测软件的分类结果。
本申请实施例提供了一种多时间序列的样本特征提取方法,具体地,参考图1,所述方法包括:
步骤S101、运行软件样本,获取软件样本在操作系统中调用指令生成的多条指令调用记录。
在本步骤中,软件样本运行后产生的对操作系统指令的调用称为机器行为,图2示例性地展示了一个典型的机器调用指令行为,如图2所示,软件运行时,在不同线程中的产生多条记录,例如GetMessagePos、GetMessageTime指的是不同的两个指令名称,即,机器的不同行为。机器产生的行为并不是顺序执行的,因此在对机器产生的行为样本进行训练时,需要基于时间维度提取其特征。
需要说明的是,图2的目的在于解释软件运行时机器调用指令行为,在本步骤中生成的多条指令调用记录与图2所展示的不同,本步骤中一个软件样本运行时产生的多条指令调用记录都在一个列表中,可以通过指令所属线程编号确定指令所在线程。
在其中一个实施例中,“获取软件样本在操作系统中调用指令生成的多条指令调用记录”包括:将软件样本在虚拟终端上运行,捕获预设时段内软件样本对虚拟终端上的操作系统指令调用的调用列表,其中,每一软件样本运行时对应生成一调用列表,调用列表中包括多条指令调用记录。
在本实施例中,虚拟终端为运行中的软件样本提供隔离的环境,保证运行过程中不运行其他无关程序,从而更方便获取到与软件样本相关的指令调用记录。示例性地,软件样本可以在沙盒中调用操作系统的指令。沙盒技术相当于操作系统之上的技术,因此能获取到最高权限的信息,通过沙盒可以更好的捕捉到指令调用记录。通过虚拟化手段构建沙盒,让沙盒中安装好所需操作系统,如Windows7、Windows10、Linux等虚拟终端。在本实施例中可以采用现有的软件平台构建沙盒,例如cuckoo沙盒。构建沙盒软件的具体方式在此处不进行累赘说明。
通过沙盒提供的功能可以捕获预设时间内软件样本对操作系统指令调用的列表,该列表的每一条记录都包括了软件、指令的基本信息。具体地,调用列表中每一指令调用记录包括以下属性:软件名、软件分类标签、指令名称,指令所属线程编号,调用顺序。
其中,软件名指的是软件样本的样本名称,同一个软件产生的调用列表的软件名称都相同。
软件分类标签指的是软件所属类别,相同软件样本产生的调用列表的软件分类标签都相同,在本方案的其中一个应用实施例中需要通过预测模型对待检测软件的分类标签进行预测,因此在本步骤中,获取到的软件样本除了数量上要达到训练数据集的要求,每种软件类型的数量也应尽量均衡,以确保在训练预测模型时能达到准确度高的目的。
指令名称指的是每条指令的名称,再次参阅图2,指令名称一般以字符串表示,相同的指令其指令名称也相同,如最左边的线程调用的列表中包括了三个GetMessagePos指令,一个GetMessageTime指令,一个PostMessage指令等等。
指令所属线程编号指的是指令所在线程的标识,通过该标识可以知道指令在哪一线程中被调用。
调用顺序指的是指令被调用的先后顺序。
针对上述S101,本申请实施例将软件样本在虚拟终端上运行,以捕获预设时段内软件样本对虚拟终端上的操作系统指令调用的调用列表,在调用列表中包含了多条指令调用记录,每一指令调用记录包括了软件名、软件分类标签、指令名称,指令所属线程编号,调用顺序等属性。本步骤通过虚拟终端捕获软件样本在运行时产生的上述指令调用记录,以便于后续对指令调用记录进行处理。
步骤S102、根据所属线程对每条指令调用记录分组,对分组内所有指令调用记录按照调用顺序正序排列,并提取每组前连续多条指令调用记录生成指令序列。
在本步骤中,每个指令调用记录都包括了调用顺序,因此多条指令调用记录形成了多时间序列,由于一个软件样本在两次运行时的各个线程间的指令集执行顺序是随机的,因此不同线程间的指令并没有严格的时间先后的固定顺序。因此,对所有的指令调用记录都按线程编号进行分组,在同一线程上执行的指令有严格的时间先后顺序,针对调用顺序正序排列,提取预设条数的指令调用记录并生成指令序列。例如,设定阈值M,即M为每个分组调用的指令列表的车行度,取M个连续的指令调用记录。
在其中一些实施例中,所述方法包括:设定每列指令序列的目标指令数;在每个分组内的指令调用记录的个数小于目标记录的情况下,采用随机字符串补齐分组记录,否则,丢弃分组内目标指令数以外的指令调用记录;生成指令序列,将指令序列中的每行指令调用记录的指令名称数值化。
在本实施例中,建立M*1矩阵,其中M指的是以预设的阈值做行数,1指的是一列,将每个分组内的指令调用记录按调用顺序填到M*1矩阵中,若超过M行,则将剩余的记录丢弃,若小于M行,则补齐。需要说明的是,在矩阵中填写的是指令调用记录的指令名,在填写时指令名以仍字符串表示,因此对于矩阵中的缺少值,以随机字符串补齐。在补齐后,对矩阵中的字符串数值化,使其在后续步骤中能够以矩阵的方式输入到预测模型中。
针对上述步骤S102,本申请实施例通过将指令调用记录按线程编号分组,构建了多个M*1矩阵,并对矩阵中的字符串进行数值化,通过本步骤,每一分组间的指令调用记录之间有着严格的调用顺序,即每一个M*1矩阵中的时间序列都是固定不变的。
步骤S103,计算每一线程调用的指令序列的特征值总和,按照特征值总和的大小正序排列,提取每组前连续多列指令序列且合并生成特征矩阵。
在本步骤中通过提取多个特征的方式给每列序列赋值,通过特征值总和排序可以获得一个绝对稳定的序列,也就是说,通过该值进行多列序列的排序能使同一软件运行多次都获取到同样的排序。这样在后续的预测时能够最大程度保证预测时输入的序列顺序和训练时的顺序尽可能的一致,以提高预测准确性。
在本步骤中,每个特征可以表示该序列一个评价维度上的抽象特征,例如,
指令间的转移概率矩阵每一列的均值:该值通过每列序列中的两两指令间的转移概率构成转移矩阵,在转移矩阵中求出每一列所有概率的均值,从而构成以列数为长度的概率均值向量得到。
相邻多个指令的N-GRAM的概率均值:该值通过计算相邻N个指令的N-GRAM的概率均值生成,例如。N=3,则计算相邻3个指令的3-GRAM的概率均值。
指令序列的最大熵:该值将每列指令序列当做整体,根据所有指令序列计算出该指令序列的最大熵。
指令序列中存在最长周期性的子序列的长度值:表示该序列存在的最长周期性的子序列的长度值。
按指令首字母分组序列中的指令并计算各个首字母的比例。
计算上述一个或多个特征后转换成特征向量并计算向量中特征值的总和,即每个线程调用的指令序列都对应一个特征值总和,根据特征值总和进行排序,得到一个多个指令序列间的绝对顺序。在此基础上训练出的模型在用作预测时和待检测的输入样本的顺序会最大程度保持一致,提高预测的准确性。
在其中一些实施例中,设定目标线程数;在分组的个数小于目标线程数的情况下,采用随机数值补齐分组个数,否则,丢弃目标线程数以外的分组。
在本实施例中,设定目标线程数N,表示N个M*1矩阵。因为在上述步骤中采用线程编号对指令调用记录进行分组,所以N也表示分组个数。同样的,采用多弃少补的方式得到前N个分组,将N个M*1矩阵合并得到M*N矩阵,其中M表示指令调用个数,N表示线程个数,在矩阵中的内容为数值化后的指令名称。该特征矩阵在每一列上都具有严格的调用顺序,因此可以作为输入样本输入至神经网络中对网络进行训练,该输入样本与现有技术的样本区别在于,对于多个时间序列的指令调用记录能得到绝对稳定的顺序。即,不同线程执行的顺序很可能是并发的,没有顺序的,这种情况就导致模型训练时数据源输入不稳定,导致模型可靠性下降,所以本申请实施例的目的在于通过特征提取给这些没有顺序的序列计算出可靠的固定顺序,软件每次运行产生的指令都按照该上述操作进行排序,输入模型的数据源的顺序都是固定的,因此训练模型时能提高模型的可靠性。
实施例二
本申请实施例提供了一种预测模型的训练方法,采用由实施例一所述的特征矩阵作为模型的输入。具体地,如图3所示,所述预测模型的训练方法包括:
S201、获取多个特征矩阵以构造训练数据集,其中,每个特征矩阵以线程编号为列,以指令编号为行,指令编号由用数值化后的指令名称表示;
S202、根据训练数据集对预测模型进行训练,得到已训练的预测模型,其中,预测模型包括卷积神经网络或全连接层的其中一种以及多个循环神经网络,将每个特征矩阵作为循环神经网络的输入,将软件分类标签作为卷积神经网络或者全连接层的输出,训练预测模型。
在本实施例中,将每个特征矩阵作为输入样本输入至预测网络中,如图4所示,将每个输入样本分别分配一个循环神经网络来处理,并将结果用卷积神经网络或者全连接密度层来融合训练模型。本模型的训练方式以及得到的已训练的预测模型与现有技术的区别在于,对于多条时间序列的样本可以获取到绝对稳定的顺序,保证和待检测样本的时间序列顺序一致,提高预测准确性。
在其中一些实施例中,“将每个特征矩阵作为循环神经网络的输入”包括:对特征矩阵中的每列指令序列进行词嵌入运算,将词嵌入运算后特征矩阵作为循环神经网络的输入。
在本实施例中,将所有的指令序列执行词嵌入运算,词嵌入的目的是可以减少过大的指令序列维度,大幅降低训练模型的运算量,例如原始序列长度是1000即输入维度是1000维,可以通过词嵌入降成100维,训练速度会提升100倍。在本步骤中采用现有的词嵌入技术对指令序列进行处理,并未改进词嵌入技术本身,因此对于词嵌入的处理过程在此不做累赘说明。
基于相同的构思,本申请实施例提供了一种多时间序列的软件检测方法,包括:获取待分类软件,将待分类软件输入已训练的预测模型中,得到已训练的预测模型输出的软件分类标签,其中,已训练的预测模型由实施例二所述的预测模型的训练方法训练得到。
在本实施例中,由于待分类软件与软件样本中的指令调用记录都具有绝对稳定的顺序,因此采用软件样本训练得到的预测模型对待分类软件进行检测时,能大大提高最后输出的分类结果。
综上,本申请实施例提供了一种多时间序列的软件样本特征提取方法,通过对软件运行时产生的指令调用记录按线程编号进行分组,得到以每线程下的行等于记录个数,列等于1的序列,每一分组下的序列有严格的时间先后顺序。由于不同线程间的指令并没有时间先后顺序,因此再采用计算特征值总和的方式对每个分组进行排序,最终得到M*N的特征矩阵,在该特征矩阵中,每个软件样本产生的调用记录具有严格的时间先后顺序,及,无论该软件运行多少次,其最后得到的特征矩阵都是不变的。因此将该特征矩阵作为样本输入至模型中进行训练时,能够大大提高模型的可靠性。
实施例三
基于相同的构思,参考图5,本申请还提出了一种多时间序列的样本特征提取装置,包括:
软件运行模块301,用于运行软件样本,获取软件样本在操作系统中调用指令生成的多条指令调用记录;
序列生成模块302,用于根据所属线程对每条指令调用记录分组,对分组内所有指令调用记录按照调用顺序正序排列,并提取每组前连续多条指令调用记录生成指令序列;
计算模块303,用于计算每一线程调用的指令序列的特征值总和,按照特征值总和的大小正序排列,提取每组前连续多列指令序列且合并生成特征矩阵。
实施例四
本实施例还提供了一种电子装置,参考图6,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种多时间序列的样本特征提取方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是软件样本,待分类软件等,输出的信息可以是已训练的预测模型、特征矩阵、分类结果等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
S101、运行软件样本,获取软件样本在操作系统中调用指令生成的多条指令调用记录。
S102、根据所属线程对每条指令调用记录分组,对分组内所有指令调用记录按照调用顺序正序排列,并提取每组前连续多条指令调用记录生成指令序列。
S103、计算每一线程调用的指令序列的特征值总和,按照特征值总和的大小正序排列,提取每组前连续多列指令序列且合并生成特征矩阵。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种多时间序列的样本特征提取方法,其特征在于,包括以下步骤:
运行软件样本,获取软件样本在操作系统中调用指令生成的多条指令调用记录;
根据所属线程对每条指令调用记录分组,对分组内所有指令调用记录按照调用顺序正序排列,并提取每组前连续多条指令调用记录生成指令序列;
计算每一线程调用的指令序列的特征值总和,按照特征值总和的大小正序排列,提取每组前连续多列指令序列且合并生成特征矩阵。
2.根据权利要求1所述的多时间序列的样本特征提取方法,其特征在于,“获取软件样本在操作系统中调用指令生成的多条指令调用记录”包括:
将软件样本在虚拟终端上运行,捕获预设时段内软件样本对虚拟终端上的操作系统指令调用的调用列表,其中,每一软件样本运行时对应生成一调用列表,调用列表中包括多条指令调用记录。
3.根据权利要求2所述的多时间序列的样本特征提取方法,其特征在于,调用列表中每一指令调用记录包括以下属性:软件名、软件分类标签、指令名称,指令所属线程编号,调用顺序,基于指令所属线程编号确定指令所属线程。
4.根据权利要求1所述的多时间序列的样本特征提取方法,其特征在于,包括:
设定每列指令序列的目标指令数;
在每个分组内的指令调用记录的个数小于目标记录的情况下,采用随机字符串补齐分组记录,否则,丢弃分组内目标指令数以外的指令调用记录;
生成指令序列,将指令序列中的每行指令调用记录的指令名称数值化。
5.根据权利要求4所述的多时间序列的样本特征提取方法,其特征在于,包括:
设定目标线程数;在分组的个数小于目标线程数的情况下,采用随机数值补齐分组个数,否则,丢弃目标线程数以外的分组。
6.根据权利要求1所述的多时间序列的样本特征提取方法,其特征在于,应用于训练预测模型中,其中,所述预测模型的训练方法包括:
获取多个特征矩阵以构造训练数据集,其中,每个特征矩阵以线程编号为列,以指令编号为行,指令编号由用数值化后的指令名称表示;
根据训练数据集对预测模型进行训练,得到已训练的预测模型,其中,预测模型包括卷积神经网络或全连接层的其中一种以及多个循环神经网络,将每个特征矩阵作为循环神经网络的输入,将软件分类标签作为卷积神经网络或者全连接层的输出,训练预测网络。
7.根据权利要求6所述的多时间序列的样本特征提取方法,其特征在于,“将每个特征矩阵作为循环神经网络的输入”包括:对特征矩阵中的每列指令序列进行词嵌入运算,将词嵌入运算后特征矩阵作为循环神经网络的输入。
8.一种多时间序列的软件检测方法,其特征在于,所述方法包括:
获取待分类软件,将待分类软件输入已训练的预测模型中,得到已训练的预测模型输出的软件分类标签,其中,已训练的预测模型由权利要求6至7任一所述的预测模型的训练方法训练得到。
9.一种多时间序列的样本特征提取装置,其特征在于,包括:
软件运行模块,用于运行软件样本,获取软件样本在操作系统中调用指令生成的多条指令调用记录;
序列生成模块,用于根据所属线程对每条指令调用记录分组,对分组内所有指令调用记录按照调用顺序正序排列,并提取每组前连续多条指令调用记录生成指令序列;
计算模块,用于计算每一线程调用的指令序列的特征值总和,按照特征值总和的大小正序排列,提取每组前连续多列指令序列且合并生成特征矩阵。
10.一种计算机程序产品,其特征在于,包括软件代码部分,当所述计算机程序产品在计算机上被运行时,所述代码软件部分用于执行根据权利要求1-7任一项所述的多时间序列的样本特征提取方法或者根据权利要求8所述的多时间序列的软件检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110871552.XA CN113568836B (zh) | 2021-07-30 | 2021-07-30 | 多时间序列的样本特征提取方法以应用其的软件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110871552.XA CN113568836B (zh) | 2021-07-30 | 2021-07-30 | 多时间序列的样本特征提取方法以应用其的软件检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113568836A true CN113568836A (zh) | 2021-10-29 |
CN113568836B CN113568836B (zh) | 2022-09-13 |
Family
ID=78169496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110871552.XA Active CN113568836B (zh) | 2021-07-30 | 2021-07-30 | 多时间序列的样本特征提取方法以应用其的软件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568836B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116089955A (zh) * | 2022-12-01 | 2023-05-09 | 之江实验室 | 一种基于windows操作系统的系统调用去噪方法及装置 |
WO2024055814A1 (zh) * | 2022-09-16 | 2024-03-21 | 中兴通讯股份有限公司 | 时序信令生成方法、系统、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677572A (zh) * | 2016-02-04 | 2016-06-15 | 华中科技大学 | 基于自组织映射模型云软件性能异常错误诊断方法与系统 |
US20170329660A1 (en) * | 2016-05-16 | 2017-11-16 | Oracle International Corporation | Correlation-based analytic for time-series data |
US20180276102A1 (en) * | 2017-03-22 | 2018-09-27 | International Business Machines Corporation | Multi-thread sequencing |
CN108965340A (zh) * | 2018-09-25 | 2018-12-07 | 网御安全技术(深圳)有限公司 | 一种工业控制系统入侵检测方法及系统 |
CN109753801A (zh) * | 2019-01-29 | 2019-05-14 | 重庆邮电大学 | 基于系统调用的智能终端恶意软件动态检测方法 |
US10437999B1 (en) * | 2016-08-31 | 2019-10-08 | Symantec Corporation | Runtime malware detection |
CN110414618A (zh) * | 2019-08-05 | 2019-11-05 | 上海图趣信息科技有限公司 | 一种动态平衡分类数据的神经网络训练系统、方法及存储介质 |
CN111259388A (zh) * | 2020-01-09 | 2020-06-09 | 中山大学 | 一种基于图卷积的恶意软件api调用序列检测方法 |
CN111428236A (zh) * | 2020-03-06 | 2020-07-17 | 苏州浪潮智能科技有限公司 | 一种恶意软件的检测方法、装置、设备及可读介质 |
CN111651767A (zh) * | 2020-06-05 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种异常行为检测方法、装置、设备及存储介质 |
-
2021
- 2021-07-30 CN CN202110871552.XA patent/CN113568836B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677572A (zh) * | 2016-02-04 | 2016-06-15 | 华中科技大学 | 基于自组织映射模型云软件性能异常错误诊断方法与系统 |
US20170329660A1 (en) * | 2016-05-16 | 2017-11-16 | Oracle International Corporation | Correlation-based analytic for time-series data |
US10437999B1 (en) * | 2016-08-31 | 2019-10-08 | Symantec Corporation | Runtime malware detection |
US20180276102A1 (en) * | 2017-03-22 | 2018-09-27 | International Business Machines Corporation | Multi-thread sequencing |
CN108965340A (zh) * | 2018-09-25 | 2018-12-07 | 网御安全技术(深圳)有限公司 | 一种工业控制系统入侵检测方法及系统 |
CN109753801A (zh) * | 2019-01-29 | 2019-05-14 | 重庆邮电大学 | 基于系统调用的智能终端恶意软件动态检测方法 |
CN110414618A (zh) * | 2019-08-05 | 2019-11-05 | 上海图趣信息科技有限公司 | 一种动态平衡分类数据的神经网络训练系统、方法及存储介质 |
CN111259388A (zh) * | 2020-01-09 | 2020-06-09 | 中山大学 | 一种基于图卷积的恶意软件api调用序列检测方法 |
CN111428236A (zh) * | 2020-03-06 | 2020-07-17 | 苏州浪潮智能科技有限公司 | 一种恶意软件的检测方法、装置、设备及可读介质 |
CN111651767A (zh) * | 2020-06-05 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种异常行为检测方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024055814A1 (zh) * | 2022-09-16 | 2024-03-21 | 中兴通讯股份有限公司 | 时序信令生成方法、系统、电子设备及存储介质 |
CN116089955A (zh) * | 2022-12-01 | 2023-05-09 | 之江实验室 | 一种基于windows操作系统的系统调用去噪方法及装置 |
CN116089955B (zh) * | 2022-12-01 | 2023-09-26 | 之江实验室 | 一种基于windows操作系统的系统调用去噪方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113568836B (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388675B (zh) | 数据分析方法、装置、计算机设备及存储介质 | |
US20230289828A1 (en) | Data processing method, computer device, and readable storage medium | |
CN113568836B (zh) | 多时间序列的样本特征提取方法以应用其的软件检测方法 | |
CN111506498A (zh) | 测试用例的自动生成方法、装置、计算机设备及存储介质 | |
CN108563951B (zh) | 病毒检测方法及装置 | |
CN113672375B (zh) | 资源分配预测方法、装置、设备及存储介质 | |
CN113535399A (zh) | 一种nfv资源调度方法、装置以及系统 | |
CN112818032A (zh) | 服务于大数据挖掘分析的数据筛选方法及数据分析服务器 | |
CN114661686A (zh) | 日志文件的报文提取方法、装置、设备、介质和程序产品 | |
CN114220479B (zh) | 一种蛋白质结构预测方法、蛋白质结构预测装置及介质 | |
CN113656797B (zh) | 行为特征提取方法以及行为特征提取装置 | |
CN114237911A (zh) | 基于cuda的基因数据处理方法、装置和cuda构架 | |
CN112395880B (zh) | 结构化三元组的纠错方法、装置、计算机设备及存储介质 | |
CN110177006B (zh) | 基于接口预测模型的节点测试方法及装置 | |
CN110716778A (zh) | 应用兼容性测试方法、装置及系统 | |
WO2023139510A1 (en) | Systems and methods for detecting drift | |
CN112486935B (zh) | 日志记录处理方法、装置、设备及机器可读存储介质 | |
CN110414228B (zh) | 计算机病毒的检测方法、装置、存储介质和计算机设备 | |
CN111143456B (zh) | 基于Spark的Cassandra数据导入方法、装置、设备及介质 | |
CN114328171A (zh) | 测试用例库的生成方法、装置、设备及存储介质 | |
CN113742208A (zh) | 一种软件检测方法、装置、设备及计算机可读存储介质 | |
CN112988558A (zh) | 测试执行方法、装置、电子设备及存储介质 | |
CN117688564B (zh) | 一种用于智能合约事件日志的检测方法、装置和存储介质 | |
CN113535594B (zh) | 业务场景测试用例的生成方法、装置、设备和存储介质 | |
CN112380203B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Software Detection Method for Extracting Sample Features from Multiple Time Series Samples Effective date of registration: 20231215 Granted publication date: 20220913 Pledgee: Zheshang Bank Co.,Ltd. Nanjing Branch Pledgor: JIANGSU YIANLIAN NETWORK TECHNOLOGY Co.,Ltd. Registration number: Y2023980071528 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |