一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

恶意进程检测方法、装置、系统及计算机可读存储介质与流程

2022-03-26 12:17:36 来源:中国专利 TAG:


1.本发明涉及人工智能领域,尤其涉及一种恶意进程检测方法、装置、系统及计算机可读存储介质。


背景技术:

2.进程在运行过程中会对需要的资源进行访问,这些访问是进程行为特征的一部分,其中恶意进程与正常进程的访问行为是存在一定差异的,通过对进程访问行为的分析有可能实现对进程恶意与否的判断。
3.windows系统中存在日志记录功能,其中在安装了微软官方的一款软件sysmon之后可以实现对进程访问行为的检测,这为我们提供了数据的来源。
4.进程访问日志的日志量非常庞大,一个进程在短时间内就可以产生数百条日志,很难用人工进行分析,同时也难以使用固有的规则进行匹配。
5.针对现有技术中无法根据进程访问日志准确检测的问题,目前还没有一个有效的解决方法。


技术实现要素:

6.为解决上述问题,本发明提供一种恶意进程检测方法、装置、系统及计算机可读存储介质,将调用内容中的绝对路径存储为路径列表,将源进程合并入路径列表,通过列表项内容将列表项进行编号,得到样本二维矩阵,使用样本二维矩阵训练恶意进程检测模型,再使用该恶意进程检测模型对进程访问日志进行恶意检测,得到目标进程的检测结果,以解决恶意进程难以准确检测的问题。
7.为达到上述目的,本发明提供了一种恶意进程检测方法,包括:获取多个进程访问日志,提取所述进程访问日志中的源进程、目标进程、调用内容以及目标进程恶意标识字段,并将源进程、目标进程、调用内容以及目标进程恶意标识字段以二维矩阵形式存储,得到第一二维矩阵;提取所述调用内容中的绝对路径,将所述绝对路径存储为路径列表,删除所述调用内容,并将对应的源进程合并入所述路径列表中,得到第二二维矩阵;将相同目标进程的进程访问日志进行归并;将路径列表中的列表项根据列表项内容进行编号,得到样本二维矩阵;将所述样本二维矩阵中的目标进程作为行索引、编号后的路径列表以及目标进程恶意标识字段作为列索引,输入至神经网络中进行训练,得到恶意进程检测模型;将待检测进程输入至所述恶意进程检测模型中,判断所述待检测进程是否为恶意进程。
8.进一步可选的,所述将相同目标进程的进程访问日志进行归并,并将路径列表中的列表项根据列表项内容进行编号,得到样本二维矩阵,包括:将所有目标进程对应的路径列表合并,得到二维列表;将所述二维列表中的列表项作为词,采用词向量生成算法生成词向量词典以及每个词向量对应的序号;根据词向量词典以及每个词向量对应的序号,将每个列表项进行序号转换,得到所述样本二维矩阵。
9.进一步可选的,所述根据词向量词典以及每个向量对应的序号,将每个列表项进
行序号转换之后,还包括:当目标路径列表的列表长度大于预设长度时,删除多余列表项;当目标路径列表的列表长度小于预设长度时,不足列表项用0补齐。
10.进一步可选的,所述提取所述调用内容中的绝对路径,将所述绝对路径存储为路径列表,包括:以短字符串拼接符为分割符,将所述调用内容分割为多个短字符串;以绝对路径拼接符为分割符,将所述短字符串中的绝对路径以及写入目标进程的地址进行分割;删除所述写入目标进程的地址,以每个绝对路径作为列表项,将所有绝对路径转化为路径列表。
11.进一步可选的,所述将相同目标进程的进程访问日志进行归并,包括:将相同目标进程对应的路径列表首尾相连,得到该目标进程对应的路径列表;取相同目标进程中第一条进程访问日志的目标进程恶意标识字段,作为该目标进程对应的目标进程恶意标识字段。
12.另一方面,本发明还提供了一种恶意进程检测装置,包括:数据获取模块,用于获取多个进程访问日志,提取所述进程访问日志中的源进程、目标进程、调用内容以及目标进程恶意标识字段,并将源进程、目标进程、调用内容以及目标进程恶意标识字段以二维矩阵形式存储,得到第一二维矩阵;第二二维矩阵生成模块,用于提取所述调用内容中的绝对路径,将所述绝对路径存储为路径列表,删除所述调用内容,并将对应的源进程合并入所述路径列表中,得到第二二维矩阵;数据归并模块,用于将相同目标进程的进程访问日志进行归并;样本二维矩阵生成模块,用于将路径列表中的列表项根据列表项内容进行编号,得到样本二维矩阵;恶意进程检测模型生成模块,用于将所述样本二维矩阵中的目标进程作为行索引、编号后的路径列表以及目标进程恶意标识字段作为列索引,输入至神经网络中进行训练,得到恶意进程检测模型;恶意进程判断模块,用于将待检测进程输入至所述恶意进程检测模型中,判断所述待检测进程是否为恶意进程。
13.进一步可选的,所述样本二维矩阵生成模块包括:二维列表生成子模块,用于将所有目标进程对应的路径列表合并,得到二维列表;词向量生成子模块,用于将所述二维列表中的列表项作为词,采用词向量生成算法生成词向量词典以及每个词向量对应的序号;编号子模块,用于根据词向量词典以及每个词向量对应的序号,将每个列表项进行序号转换,得到所述样本二维矩阵。
14.进一步可选的,该装置还包括:删除模块,用于当目标路径列表的列表长度大于预设长度时,删除多余列表项;补充模块,用于当目标路径列表的列表长度小于预设长度时,不足列表项用0补齐。
15.进一步可选的,所述第二二维矩阵生成模块包括:调用内容串分割子模块,用于以短字符串拼接符为分割符,将所述调用内容分割为多个短字符串;短字符串分割子模块,用于以绝对路径拼接符为分割符,将所述短字符串中的绝对路径以及写入目标进程的地址进行分割;列表转化子模块,用于删除所述写入目标进程的地址,以每个绝对路径作为列表项,将所有绝对路径转化为路径列表。
16.进一步可选的,所述数据归并模块包括:数据连接子模块,用于将相同目标进程对应的路径列表首尾相连,得到该目标进程对应的路径列表;目标进程恶意标识字段合并子模块,用于取相同目标进程中第一条进程访问日志的目标进程恶意标识字段,作为该目标进程对应的目标进程恶意标识字段。
17.另一方面,本发明还提供了一种恶意进程检测装置,包括上述的恶意进程检测模块。
18.另一方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的恶意进程检测方法。
19.上述技术方案具有如下有益效果:本发明通过建立以源进程以及绝对路径为特征的样本集,并以该样本集为输入训练恶意进程检测模型,使恶意进程的检测与源进程以及绝对路径联系起来,方便了恶意进程的检测;由于恶意进程中的源进程和绝对路径与正常进程的源进程以及绝对路径内容有差别,因此通过将源进程和绝对路径与其文本内容相关联,赋予源进程和绝对路径判断进程是否为恶意的意义,进而提高恶意进程检测的准确性。
附图说明
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明实施例提供的恶意进程检测方法的流程图;
22.图2是本发明实施例提供的样本二维矩阵生成方法的流程图;
23.图3是本发明实施例提供的路径列表长度统一方法的流程图;
24.图4是本发明实施例提供的路径列表生成方法的流程图;
25.图5是本发明实施例提供的进程访问日志归并方法的流程图;
26.图6是本发明实施例提供的恶意进程检测装置的结构示意图;
27.图7是本发明实施例提供的样本二维矩阵生成模块的结构示意图;
28.图8是本发明实施例提供的删除模块与补充模块的结构示意图;
29.图9是本发明实施例提供的第二二维矩阵生成模块的结构示意图;
30.图10是本发明实施例提供的数据归并模块的结构示意图。
31.附图标记:100-数据获取模块200-第二二维矩阵生成模块2001-调用内容串分割子模块2002-短字符串分割子模块2003-列表转化子模块300-数据归并模块3001-数据连接子模块3002-目标进程恶意标识字段合并子模块400-样本二维矩阵生成模块4001-二维列表生成子模块4002-词向量生成子模块4003-编号子模块500-恶意进程检测模型生成模块600-恶意进程判断模块700-删除模块800-补充模块
具体实施方式
32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.为解决上述无法根据进程访问日志准确检测恶意进程的问题,本发明实施例提供了一种恶意进程检测方法,图1是本发明实施例提供的恶意进程检测方法的流程图,如图1所示,该方法包括:
34.s101、获取多个进程访问日志,提取进程访问日志中的源进程、目标进程、调用内容以及目标进程恶意标识字段,并将源进程、目标进程、调用内容以及目标进程恶意标识字段以二维矩阵形式存储,得到第一二维矩阵;
35.进程访问日志由进程在运行过程中对目标资源进行访问时生成,可使用sysmon生成进程访问日志。日志记录源进程启动目标进程的过程,日志字段包含“源进程”、“目标进程”、“调用内容”、“生成时间”等字段。手动生成大量该种日志,并对目标进程是否为恶意进程进行标注,形成目标进程恶意标识字段。使用nxlog对日志进行采集,并筛选出“源进程”、“目标进程”、“调用内容”与“目标进程恶意标识字段”,并将数据转换为json格式,并以二维矩阵形式进行存储,方便后续的数据处理。
36.s102、提取调用内容中的绝对路径,将绝对路径存储为路径列表,删除调用内容,并将对应的源进程合并入路径列表中,得到第二二维矩阵;
37.调用内容中存在多个绝对路径,将这些绝对路径提取出来并存储为路径列表,同时,将调用内容字段删除,只留下与调用内容相关的路径列表。对于每一进程访问日志,将“源进程”字段对应的字符串作为新的列表项添加至路径列表的头部形成新的列表,同时删除“源进程”字段,从而得到最新的二维矩阵。
38.作为一种可选的实施方式,在对调用内容中的绝对路径提取前,对全部数据进行预处理,以方便后续的数据处理。其中,预处理方法包括:
39.(1)对数据中可能存在的大小写不一致问题进行手工批量转换,如“c://”和“c://”同转换为后者;对带有空值的数据项做删除处理。
40.(2)将json数据的name作为首行index,value作为值,转换为csv格式并存储,index包含“源进程”、“目标进程”、“调用内容”与“目标进程恶意标识字段”。
41.(3)将“目标进程恶意标识字段”的值转换为数值,这一字段的值有两种取值:“malicious”和
“‑”
,前者转换为1,后者转换为0。
42.s103、将相同目标进程的进程访问日志进行归并;
43.由于最终的检测主体为目标进程,因此需将相同目标进程的访问日志进行归并。
44.s104、将路径列表中的列表项根据列表项内容进行编号,得到样本二维矩阵;
45.将相同目标进程的访问日志合并后,其路径列表中的每一列表项均为字符串形式,且字符串之间没有相应的联系,难以将路径列表作为训练样本集进行模型训练。因此,本实施例根据每个列表项的内容对每个列表项的内容进行编号,方便后续模型训练。此时,样本二维矩阵中存在目标进程、编号后的路径列表、目标进程恶意标识字段三部分内容。
46.s105、将样本二维矩阵中的目标进程作为行索引、编号后的路径列表以及目标进程恶意标识字段作为列索引,输入至神经网络中进行训练,得到恶意进程检测模型;
47.样本二维矩阵中,目标进程作为检测主体,编号后的路径列表为特征项,目标进程恶意标识字段为标签,将样本二维矩阵输入至神经网络中进行训练,从而得到恶意进程检测模型。在模型训练时,将样本二维矩阵采用随机分割的方式将数据分为训练集和测试集,让恶意与非恶意样本能够均匀地出现在训练集与测试集中,分割比例为4:1。
48.作为一种优选的实施方式,采用bilstm神经网络对样本二维矩阵中的数据进行训练。
49.神经网络的结构的搭建主要使用开源的keras库进行搭建。搭建流程如下:
50.(1)创建序列化网络结构,添加embedding层。
51.(2)添加bilstm层,单元数设为64。lstm即长短时记忆神经网络,其特点在于以一个序列作为输入,每一单元在得到一个输入后的输出会与下一个输入相组合作为新的输入,也就是短时记忆;同时输入通过部分运算会作为当前状态输出,并与每一次的输入进行运算更新状态,作为长时记忆。而bilstm则是将输入序列以正向和反向分别输入一次,得到两个最终输出,并将其拼接得到该层最终的输出。
52.(3)添加全连接隐藏层,使用relu作为激活函数。作用是初步压缩输出维度,有利于最终输出层的线性划分。
53.(4)添加全连接输出层,使用sigmoid作为激活函数,得到输出值。输出值为浮点数,范围从0到1,其中大于0.5表示预测结果为1,小于0.5表示预测结果为0,在这里分别对应目标进程的预测结果的恶意与否。
54.(5)编译网络,损失函数为二值交叉熵,优化函数为adam,评价函数为accuracy。
55.s106、将待检测进程输入至恶意进程检测模型中,判断待检测进程是否为恶意进程。
56.用恶意进程检测模型对待检测进程进行是否为恶意的检测,检测时,恶意进程检测模型通过识别待检测进程中的源进程以及绝对路径来对待检测进程是否为恶意进行判断,以实现对恶意进程的快速准确判断。
57.作为一种可选的实施方式,图2是本发明实施例提供的样本二维矩阵生成方法的流程图,如图2所示,将路径列表中的列表项根据列表项内容进行编号,得到样本二维矩阵,包括:
58.s1041、将所有目标进程对应的路径列表合并,得到二维列表;
59.此时,每个目标进程只对应一个路径列表以及目标进程恶意标识字段,路径列表这一字段的值为一个不定长的以字符串为元素的列表,其中字符串之间的顺序包含了重要的信息,这与自然语言具有很高的相似性,因此使用自然语言处理能够很好地从中提取出用于分类的特征。
60.为实现对路径列表中列表项内容的编号,首先将所有目标进程对应的路径列表合并为一个二维列表,这一个二维列表类似于一段由多个句子组成的文本。
61.s1042、将二维列表中的列表项作为词,采用词向量生成算法生成词向量词典以及每个词向量对应的序号;
62.将上述二维列表作为输入,其中每个列表项的内容被认定为一个词。使用gensim的word2vec词向量生成算法来生成词向量词典,经过该算法后整个输入中每个出现次数超过设定阈值的词会被转换为设定长度的词向量。架构选用cbow模型,该模型通过某一词周围一定窗口范围内的词来预测该词,通过预测结果的好坏来调整每一词向量的参数,最终得到的词向量参数能很好地反映词之间的相似程度,该过程又被称为预训练。除了词向量词典,该算法还会对每个词向量生成对应的序号,根据该序号采用相应方法既可以得到词也可以得到词对应的词向量。
63.s1043、根据词向量词典以及每个词向量对应的序号,将每个列表项进行序号转换,得到样本二维矩阵。
64.此时,每个词对应一个词向量与一个序号,本实施例依照对应关系将每个列表项
进行编号。
65.作为一种可选的实施方式,图3是本发明实施例提供的路径列表长度统一方法的流程图,如图3所示,根据词向量词典以及每个向量对应的序号,将每个列表项进行序号转换之后,还包括:
66.s107、当目标路径列表的列表长度大于预设长度时,删除多余列表项;
67.s108、当目标路径列表的列表长度小于预设长度时,不足列表项用0补齐。
68.设定路径列表的预设长度,将所有数据的预设长度统一,以方便进行神经网络的搭建。
69.在进行神经网络搭建时,根据词向量词典生成嵌入层参数矩阵,矩阵行数为词典项数,矩阵列数为词向量设定长度,将词典中的每个词向量作为行填入嵌入层参数矩阵中。而该嵌入层参数矩阵可作为创建序列化网络结构时的参数进行神经网络的搭建。具体的,以生成的嵌入层参数矩阵作为weights参数,使得预训练的成果能够作用于最终模型的训练过程。embedding层的输入为batch_size乘输入序列长度的二维张量,输出为batch_size乘输入序列长度乘词向量长度的三维张量,其中batch_size为训练过程中设定的一次性输入的数据项的数量的参数,输入序列长度为路径列表的预设长度。预设长度可根据具体情况进行确定,本实施例优选的将所有路径列表按长度降序排列,选择位于1/20位置处的路径列表的列表长度作为预设长度,尽量多的囊括列表项。优选的,batch_size的值选为32。
70.作为一种可选的实施方式,图4是本发明实施例提供的路径列表生成方法的流程图,如图4所示,提取调用内容中的绝对路径,将绝对路径存储为路径列表,包括:
71.s1021、以短字符串拼接符为分割符,将调用内容分割为多个短字符串;
72.调用内容这一字段的格式为字符串,这些字符串具有固定结构,即多个短字符串为以“|”字符拼接而成的结构,该“|”为短字符串拼接符。这里采用“|”作为分割符进行分割,得到许多由短字符串作为元素构成的列表。
73.作为一种可选的实施方式,在进行短字符串分割之前,为减少数据处理量,将调用内容读取为pandas.dataframe格式,进行去重处理,得到新的无重复项的dataframe格式数据。
74.s1022、以绝对路径拼接符为分割符,将短字符串中的绝对路径以及写入目标进程的地址进行分割;
75.用于拼接的短字符串又具有固定结构,即被调用文件的绝对路径与写入目标进程的地址以“ ”字符拼接而成的结构,符号“ ”即为绝对路径分隔符。对上述列表中的元素每一项又以“ ”为分割符进行分割,仅保留第一项即被调用文件的绝对路径。
76.作为一种可选的实施方式,在此步骤之后进行去重处理,以删除数据中绝对路径的组合重复的情况。
77.s1023、删除写入目标进程的地址,以每个绝对路径作为列表项,将所有绝对路径转化为路径列表。
78.最终对于每一数据的“调用内容”这一字段的值变为由调用文件的绝对路径作为元素构成的列表。这里之所以抛弃写入目标进程的地址,是因为这些地址是某一时刻分配的十六进制值,并不具有分析意义。
79.作为一种可选的实施方式,图5是本发明实施例提供的进程访问日志归并方法的
流程图,如图5所示,将相同目标进程的进程访问日志进行归并,包括:
80.s1031、将相同目标进程对应的路径列表首尾相连,得到该目标进程对应的路径列表;
81.s1032、取相同目标进程中第一条进程访问日志的目标进程恶意标识字段,作为该目标进程对应的目标进程恶意标识字段。
82.在数据归并阶段,将同一目标进程的路径列表进行首尾相接,将多个路径列表转化为一个新的路径列表。另外,由于目标进程恶意标识字段是根据目标进程确定的,所以相同目标进程对应的目标进程恶意标识字段是相同的,只需从中随机选取一个目标进程恶意标识字段作为该目标进程的目标进程恶意标识字段即可,本实施例选取第一个目标进程恶意标识字段作为该目标进程的目标进程恶意标识字段。
83.本发明实施例还提供了一种恶意进程检测装置,图6是本发明实施例提供的恶意进程检测装置的结构示意图,如图6所示,该装置包括:
84.数据获取模块100,用于获取多个进程访问日志,提取进程访问日志中的源进程、目标进程、调用内容以及目标进程恶意标识字段,并将源进程、目标进程、调用内容以及目标进程恶意标识字段以二维矩阵形式存储,得到第一二维矩阵;
85.进程访问日志由进程在运行过程中对目标资源进行访问时生成,可使用sysmon生成进程访问日志。日志记录源进程启动目标进程的过程,日志字段包含“源进程”、“目标进程”、“调用内容”、“生成时间”等字段。手动生成大量该种日志,并对目标进程是否为恶意进程进行标注,形成目标进程恶意标识字段。使用nxlog对日志进行采集,并筛选出“源进程”、“目标进程”、“调用内容”与“目标进程恶意标识字段”,并将数据转换为json格式,并以二维矩阵形式进行存储,方便后续的数据处理。
86.第二二维矩阵生成模块200,用于提取调用内容中的绝对路径,将绝对路径存储为路径列表,删除调用内容,并将对应的源进程合并入路径列表中,得到第二二维矩阵;
87.调用内容中存在多个绝对路径,将这些绝对路径提取出来并存储为路径列表,同时,将调用内容字段删除,只留下与调用内容相关的路径列表。对于每一进程访问日志,将“源进程”字段对应的字符串作为新的列表项添加至路径列表的头部形成新的列表,同时删除“源进程”字段,从而得到最新的二维矩阵。
88.作为一种可选的实施方式,在对调用内容中的绝对路径提取前,对全部数据进行预处理,以方便后续的数据处理。其中,预处理方法包括:
89.(1)对数据中可能存在的大小写不一致问题进行手工批量转换,如“c://”和“c://”同转换为后者;对带有空值的数据项做删除处理。
90.(2)将json数据的name作为首行index,value作为值,转换为csv格式并存储,index包含“源进程”、“目标进程”、“调用内容”与“目标进程恶意标识字段”。
91.(3)将“目标进程恶意标识字段”的值转换为数值,这一字段的值有两种取值:“malicious”和
“‑”
,前者转换为1,后者转换为0。
92.数据归并模块300,用于将相同目标进程的进程访问日志进行归并;
93.由于最终的检测主体为目标进程,因此需将相同目标进程的访问日志进行归并。
94.样本二维矩阵生成模块400,用于将路径列表中的列表项根据列表项内容进行编号,得到样本二维矩阵;
95.将相同目标进程的访问日志合并后,其路径列表中的每一列表项均为字符串形式,且字符串之间没有相应的联系,难以将路径列表作为训练样本集进行模型训练。因此,本实施例根据每个列表项的内容对每个列表项的内容进行编号,方便后续模型训练。此时,样本二维矩阵中存在目标进程、编号后的路径列表、目标进程恶意标识字段三部分内容。
96.恶意进程检测模型生成模块500,用于将样本二维矩阵中的目标进程作为行索引、编号后的路径列表以及目标进程恶意标识字段作为列索引,输入至神经网络中进行训练,得到恶意进程检测模型;
97.样本二维矩阵中,目标进程作为检测主体,编号后的路径列表为特征项,目标进程恶意标识字段为标签,将样本二维矩阵输入至神经网络中进行训练,从而得到恶意进程检测模型。在模型训练时,将样本二维矩阵采用随机分割的方式将数据分为训练集和测试集,让恶意与非恶意样本能够均匀地出现在训练集与测试集中,分割比例为4:1。
98.作为一种优选的实施方式,采用bilstm神经网络对样本二维矩阵中的数据进行训练。
99.神经网络的结构的搭建主要使用开源的keras库进行搭建。搭建流程如下:
100.(1)创建序列化网络结构,添加embedding层。
101.(2)添加bilstm层,单元数设为64。lstm即长短时记忆神经网络,其特点在于以一个序列作为输入,每一单元在得到一个输入后的输出会与下一个输入相组合作为新的输入,也就是短时记忆;同时输入通过部分运算会作为当前状态输出,并与每一次的输入进行运算更新状态,作为长时记忆。而bilstm则是将输入序列以正向和反向分别输入一次,得到两个最终输出,并将其拼接得到该层最终的输出。
102.(3)添加全连接隐藏层,使用relu作为激活函数。作用是初步压缩输出维度,有利于最终输出层的线性划分。
103.(4)添加全连接输出层,使用sigmoid作为激活函数,得到输出值。输出值为浮点数,范围从0到1,其中大于0.5表示预测结果为1,小于0.5表示预测结果为0,在这里分别对应目标进程的预测结果的恶意与否。
104.(5)编译网络,损失函数为二值交叉熵,优化函数为adam,评价函数为accuracy。
105.恶意进程判断模块600,用于将待检测进程输入至恶意进程检测模型中,判断待检测进程是否为恶意进程。
106.用恶意进程检测模型对待检测进程进行是否为恶意的检测,检测时,恶意进程检测模型通过识别待检测进程中的源进程以及绝对路径来对待检测进程是否为恶意进行判断,以实现对恶意进程的快速准确判断。
107.作为一种可选的实施方式,图7是本发明实施例提供的样本二维矩阵生成模块的结构示意图,如图7所示,样本二维矩阵生成模块400包括:
108.二维列表生成子模块4001,用于将所有目标进程对应的路径列表合并,得到二维列表;
109.此时,每个目标进程只对应一个路径列表以及目标进程恶意标识字段,路径列表这一字段的值为一个不定长的以字符串为元素的列表,其中字符串之间的顺序包含了重要的信息,这与自然语言具有很高的相似性,因此使用自然语言处理能够很好地从中提取出用于分类的特征。
110.为实现对路径列表中列表项内容的编号,首先将所有目标进程对应的路径列表合并为一个二维列表,这一个二维列表类似于一段由多个句子组成的文本。
111.词向量生成子模块4002,用于将二维列表中的列表项作为词,采用词向量生成算法生成词向量词典以及每个词向量对应的序号;
112.将上述二维列表作为输入,其中每个列表项的内容被认定为一个词。使用gensim的word2vec词向量生成算法来生成词向量词典,经过该算法后整个输入中每个出现次数超过设定阈值的词会被转换为设定长度的词向量。架构选用cbow模型,该模型通过某一词周围一定窗口范围内的词来预测该词,通过预测结果的好坏来调整每一词向量的参数,最终得到的词向量参数能很好地反映词之间的相似程度,该过程又被称为预训练。除了词向量词典,该算法还会对每个词向量生成对应的序号,根据该序号采用相应方法既可以得到词也可以得到词对应的词向量。
113.编号子模块4003,用于根据词向量词典以及每个词向量对应的序号,将每个列表项进行序号转换,得到样本二维矩阵。
114.此时,每个词对应一个词向量与一个序号,本实施例依照对应关系将每个列表项进行编号。
115.作为一种可选的实施方式,图8是本发明实施例提供的删除模块与补充模块的结构示意图,如图8所示,该装置还包括:
116.删除模块700,用于当目标路径列表的列表长度大于预设长度时,删除多余列表项;
117.补充模块800,用于当目标路径列表的列表长度小于预设长度时,不足列表项用0补齐。
118.设定路径列表的预设长度,将所有数据的预设长度统一,以方便进行神经网络的搭建。
119.在进行神经网络搭建时,根据词向量词典生成嵌入层参数矩阵,矩阵行数为词典项数,矩阵列数为词向量设定长度,将词典中的每个词向量作为行填入嵌入层参数矩阵中。而该嵌入层参数矩阵可作为创建序列化网络结构时的参数进行神经网络的搭建。具体的,以生成的嵌入层参数矩阵作为weights参数,使得预训练的成果能够作用于最终模型的训练过程。embedding层的输入为batch_size乘输入序列长度的二维张量,输出为batch_size乘输入序列长度乘词向量长度的三维张量,其中batch_size为训练过程中设定的一次性输入的数据项的数量的参数,输入序列长度为路径列表的预设长度。预设长度可根据具体情况进行确定,本实施例优选的将所有路径列表按长度降序排列,选择位于1/20位置处的路径列表的列表长度作为预设长度,尽量多的囊括列表项。优选的,batch_size的值选为32。
120.作为一种可选的实施方式,图9是本发明实施例提供的第二二维矩阵生成模块的结构示意图,如图9所示,第二二维矩阵生成模块200包括:
121.调用内容串分割子模块2001,用于以短字符串拼接符为分割符,将调用内容分割为多个短字符串;
122.调用内容这一字段的格式为字符串,这些字符串具有固定结构,即多个短字符串为以“|”字符拼接而成的结构,该“|”为短字符串拼接符。这里采用“|”作为分割符进行分割,得到许多由短字符串作为元素构成的列表。
123.作为一种可选的实施方式,在进行短字符串分割之前,为减少数据处理量,将调用内容读取为pandas.dataframe格式,进行去重处理,得到新的无重复项的dataframe格式数据。
124.短字符串分割子模块2002,用于以绝对路径拼接符为分割符,将短字符串中的绝对路径以及写入目标进程的地址进行分割;
125.用于拼接的短字符串又具有固定结构,即被调用文件的绝对路径与写入目标进程的地址以“ ”字符拼接而成的结构,符号“ ”即为绝对路径分隔符。对上述列表中的元素每一项又以“ ”为分割符进行分割,仅保留第一项即被调用文件的绝对路径。
126.作为一种可选的实施方式,在此步骤之后进行去重处理,以删除数据中绝对路径的组合重复的情况。
127.列表转化子模块2003,用于删除写入目标进程的地址,以每个绝对路径作为列表项,将所有绝对路径转化为路径列表。
128.最终对于每一数据的“调用内容”这一字段的值变为由调用文件的绝对路径作为元素构成的列表。这里之所以抛弃写入目标进程的地址,是因为这些地址是某一时刻分配的十六进制值,并不具有分析意义。
129.作为一种可选的实施方式,图10是本发明实施例提供的数据归并模块的结构示意图,如图10所示,数据归并模块300包括:
130.数据连接子模块3001,用于将相同目标进程对应的路径列表首尾相连,得到该目标进程对应的路径列表;
131.目标进程恶意标识字段合并子模块3002,用于取相同目标进程中第一条进程访问日志的目标进程恶意标识字段,作为该目标进程对应的目标进程恶意标识字段。
132.在数据归并阶段,将同一目标进程的路径列表进行首尾相接,将多个路径列表转化为一个新的路径列表。另外,由于目标进程恶意标识字段是根据目标进程确定的,所以相同目标进程对应的目标进程恶意标识字段是相同的,只需从中随机选取一个目标进程恶意标识字段作为该目标进程的目标进程恶意标识字段即可,本实施例选取第一个目标进程恶意标识字段作为该目标进程的目标进程恶意标识字段。
133.本发明实施例还提供了一种恶意进程检测装置,包括上述的恶意进程检测模块。
134.本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现上述的恶意进程检测方法。
135.上述存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
136.上述技术方案具有如下有益效果:本发明通过建立以源进程以及绝对路径为特征的样本集,并以该样本集为输入训练恶意进程检测模型,使恶意进程的检测与源进程以及绝对路径联系起来,方便了恶意进程的检测;由于恶意进程中的源进程和绝对路径与正常进程的源进程以及绝对路径内容有差别,因此通过将源进程以及绝对路径与其文本内容相关联,赋予源进程和绝对路径判断进程是否为恶意的意义,进而提高恶意进程检测的准确性。
137.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明
的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献