基于系统日志和深度学习的APT在线检测方法与流程

未命名 09-17 阅读:108 评论:0

基于系统日志和深度学习的apt在线检测方法
技术领域
1.本发明属于计算机网络技术领域,进一步涉及攻击检测技术,具体为一种基于系统日志和深度学习的高级持续性威胁apt(advanced persistent threat)在线检测方法,可用于对apt攻击进行在线检测与预测。


背景技术:

2.高级持续性威胁apt通常指针对政府和公司进行的高级持续的黑客攻击,其目标通常是在互联网中进行间谍活动,利用各种情报搜集技术来获取敏感信息。但apt同样适用于对诸如传统间谍活动或攻击等其他威胁的描述。apt通常由一个既有能力也有意向持续而有效地进行攻击的团体或组织实现,他们将恶意代码放在一台或多台计算机上执行特定的任务,并保持长时间内不被发现。获得攻击目标信息以后,他们并不是以信息窃取为终结,而是仍对既定的网络结构进行继续侵害,将病毒扩散到更多的信息传输架构内,以获取网络组织中核心价值信息,进而造成整体网络的严重的信息传输瘫痪问题。中国信息安全测评中心牵头编写的《全球高级持续性威胁(apt)研究报告》显示,2022年全球apt活动进入新一轮活跃期,攻击总量增多、攻击烈度增强、攻击形式多样。
3.伴随着5g和物联网技术的迅速发展,攻击活动泛化、常态化、技术手段复杂化的apt攻击,已成为各领域数字化建设的严峻挑战。apt攻击对网络信息结构造成的危害性不容忽视,因此,要想最大限度地规避网络攻击所带来的危害,应对apt攻击特性进行深度分析,并建立多方位特征检测手段,深度挖掘出信息存在的安全隐患,为网络安全运营奠定坚实基础。
4.与传统攻击不同,apt执行多步入侵以实现其特定目标,一般具有攻击方式灵活、攻击技术新颖和隐蔽能力强的特点。因此,预测攻击者的手段对于防范威胁至关重要。然而,由持续的攻击产生的大量数据使得属性分析更加困难,日益复杂的系统也带来了更多可供攻击者利用的系统错误和漏洞。如在构造网络钓鱼页面时,攻击者可以重用原始站点的url中的特定参数作为恶意软件的加载器,或向现有源代码中注入恶意代码执行间谍活动,因此攻击检测和系统维护难以有效进行。攻击形式的多样性也给攻击检测带来了挑战。攻击活动中一般涉及多种恶意程序,如除了负责与其主机进行通用通信的基本库之外,还存在执行文档盗窃,远程控制下载和执行等功能的其他模块。
5.此外,越来越多的apt攻击针对于特定的地区和用户群体,使不同的恶意程序仅对特定网段内的执行特定内容的目标作用,即攻击变得本地化。在这种情况下,用户难以分辨真假,并且本地软件产品一般并不会及时提供漏洞补丁,使得攻击检测更加困难。而且,攻击者擅长隐蔽的特点使得其活动与系统中正常运行的程序几乎没有差别,因此apt一般不会在系统上留下任何可见的痕迹,例如下载的文件。以上问题给攻击检测工作带来了巨大挑战。


技术实现要素:

6.本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于系统日志和深度学习的apt在线检测方法,用于解决现有技术中存在的apt攻击检测延迟、异常点定位的准确性低、难以适应新型攻击模式、难以直观展示攻击策略的技术问题。
7.为实现上述目的,本发明采取的技术方案为:
8.(1)对系统日志进行预处理并获取词向量模型:
9.(1a)收集系统日志,选取小部分系统日志进行日志解析,通过提取日志模板来表示日志,得到日志索引序列;
10.(1b)对提取日志模板后的日志进行分词,通过分词后的日志构建词汇表,将系统日志序列转换为词汇索引序列后输入到fasttext神经网络中进行训练,得到词向量模型;
11.(2)构建transformer模型并对其进行训练:
12.(2a)搭建编码器包括多头注意力层、前馈神经网络层、平均池化层、二分类器的transformer模型,其中前馈神经网络层是使用relu激活函数的两个线性层组合而成;设置最大迭代次数为t,令当前迭代次数t=0,进行初始化;;
13.(2b)通过训练好的词向量模型将每组日志序列转换为向量数据集x;
14.(2c)在向量数据集x中随机选取一部分xi输入到transformer编码器的多头注意力层,其中i=t,x∈r
n*d
,n表示序列长度,d表示每个日志向量的维度;
15.(2d)将多头注意力层的输出通过前馈神经网络层进行传递;
16.(2e)将前馈神经网络层的输出输入到平均池化层,得到日志序列的向量表示,并将其输入二分类器进行分类;
17.(2f)判断t是否等于t,若是得到训练后的transformer模型,执行步骤(3),否则,令t=t+1然后返回步骤(2c);
18.(3)搭建bilstm模型并对其进行迭代训练:
19.(3a)获取日志索引序列并进行滞后扩充,得到扩充后的数据集;
20.(3b)构建bilstm模型,其包括词嵌入层、两层双向lstm层、全连接层;设置最大迭代次数为t',令当前迭代次数t'=0,初始化损失函数与优化器;
21.(3c)在扩充后的数据集中随机选取一部分输入到词嵌入层,得到词向量;
22.(3d)将词向量输入到两层双向lstm层中,并将其输出输入到全连接层;
23.(3e)判断t'是否等于t',若是则得到训练后的bilstm模型,执行步骤(4),否则,令t'=t'+1,并返回执行步骤(3c);
24.(4)利用训练后的transformer和bilstm模型在线检测及预测apt攻击:
25.通过fasttext模型将新产生的日志转换为日志向量矩阵,对未见过的单词使用fasttext模型进行增量更新,之后使用训练好的transformer模型进行在线检测,在检测到新产生的日志包含apt攻击时,通过训练后的bilstm模型对其进行异常点定位并预测下一个异常点。
附图说明
26.图1为本发明方法的整体实现流程图;
27.图2为本发明中transformer编码器迭代训练的实现过程示意图;
28.图3为本发明中bilstm模型的构建过程示意图。
具体实施方式
29.下面结合附图和具体实施例,对本发明作进一步详细描述。
30.参照附图1,本发明提出的基于系统日志和深度学习的apt在线检测方法,通过提取日志模板来表示日志,然后将其分别转换为索引和向量,在训练阶段,先用日志向量序列来表示系统日志,并将这些序列输入到图卷积神经网络中,对其进行训练以进行apt序列检测;然后,通过向双向模型输入固定窗口长度的日志索引序列,并将该序列之后的下一个事件视为输出对该模型训练以进行apt序列预测,定位攻击点。具体包括如下步骤:
31.步骤1.对系统日志进行预处理并获取词向量模型:
32.(1a)收集系统日志,选取小部分系统日志进行日志解析,通过提取日志模板来表示日志,得到日志索引序列。所述日志解析,采用的解析方法包括spell、drain和slct等,本实施例采用spell方法提取日志模板来表示日志,并得到日志对应的索引序列。
33.(1b)对提取日志模板后的日志进行分词,通过分词后的日志构建词汇表,将系统日志序列转换为词汇索引序列后输入到fasttext神经网络中进行训练,得到词向量模型。所述通过分词后的日志构建词汇表,具体是将每个词用一个作为索引的整数来代替,并预留“未知词”索引为0,训练时令每个单词的词向量维度为32维。
34.步骤2.参照图2,构建transformer模型并对其进行训练:
35.(2a)搭建编码器包括多头注意力层、前馈神经网络层、平均池化层、二分类器的transformer模型,其中前馈神经网络层是使用relu激活函数的两个线性层组合而成;设置最大迭代次数为t,令当前迭代次数t=0,进行初始化;
36.(2b)通过训练好的词向量模型将每组日志序列转换为向量数据集x;
37.(2c)在向量数据集x中随机选取一部分xi输入到transformer编码器的多头注意力层,其中i=t,x∈r
n*d
,n表示序列长度,d表示每个日志向量的维度;
38.(2d)将多头注意力层的输出通过前馈神经网络层进行传递;
39.(2e)将前馈神经网络层的输出输入到平均池化层,得到日志序列的向量表示,并将其输入二分类器进行分类;
40.(2f)判断t是否等于t,若是得到训练后的transformer模型,执行步骤(3),否则,令t=t+1然后返回步骤(2c);
41.步骤3.参照图3,搭建bilstm模型并对其进行迭代训练:
42.(3a)获取日志索引序列进行滞后扩充,得到扩充后的数据集;本实施例中将滞后扩充数据的时间步长设置为10,例如有一日志索引序列为{15,2,6,12,4,3,1,9,8,7,14},滞后扩充数据指将其扩充为{15,2,6,12,4,3,1,9,8,7},{2,6,12,4,3,1,9,8,7,14};
43.(3b)构建bilstm模型,其包括词嵌入层、两层双向lstm层、全连接层;设置最大迭代次数为t',令当前迭代次数t'=0,初始化损失函数与优化器;
44.(3c)在扩充后的数据集中随机选取一部分输入到词嵌入层,得到词向量;
45.(3d)将词向量输入到两层双向lstm层中,并将其输出输入到全连接层;
46.(3e)判断t'是否等于t',若是则得到训练后的bilstm模型,执行步骤(4),否则,令t'=t'+1,并返回执行步骤(3c);
47.步骤4.利用训练后的transformer和bilstm模型在线检测及预测apt攻击:
48.通过fasttext模型将新产生的日志转换为日志向量矩阵,对未见过的单词使用fasttext模型进行增量更新,之后使用训练好的transformer模型进行在线检测,在检测到新产生的日志包含apt攻击时,通过训练后的bilstm模型对其进行异常点定位并预测下一个异常点。所述增量更新,指已得到的fasttext模型仅保存历史数据的统计信息,不对历史数据本身进行保存,在新增样本数据后,只增量式地更新fasttext模型中的参数矩阵。
49.在线检测及预测apt攻击之后,通过对非线形依赖关系建模实现攻击图构建,该攻击图包括单线程任务的执行、并发引起的派生任务以及循环结构,用于直观展示攻击阶段;其中,对并发事件的判断标准定义如下:a)同一序列中的并发事件必须分别出现在后续w步预测的每个步骤中;b)当序列中某一个时间步预测索引的上一个时间步的索引与其本身相同时,在计算条件概率时应将该索引在该时间步的预测中的概率视为0;c)在下一个预测中计算出的某个索引条件概率应不小于其在当前步骤中的条件概率;d)被判定为并发事件的索引在该序列中的前驱也应该被判断为并发事件;e)经a)~d)标准过滤后的事件数必须至少为两个;f)符合以上五个步骤的这些索引在各自所在序列向后预测的同一个时间步的结果需要收敛到同一事件。
50.实施例二:本实施例提出的apt在线检测方法整体实现步骤同实施例一,现参照图2,现对其中训练transformer编码器的具体实现过程,作出如下进一步描述:
51.在训练transformer模型时,本实施例采用的损失函数为focalloss,使用随机梯度下降的优化算法计算损失。
52.首先,在向量数据集x中随机选取一部分xi输入到transformer编码器的多头注意力层,其中i=t,x∈r
n*d
,n表示序列长度,d表示每个日志向量的维度。所述的多头注意力层,本实施例中采用十二个注意力头,按照如下方式获取该多头注意层的输出:
53.(2c1)创建三个向量,即查询向量q=xi*wq、键向量k=xi*wk、值向量v=xi*wv,其中分别代表查询向量、键向量和值向量的参数矩阵,dq、dk、dv分别表示查询向量、键向量和值向量的维度;
54.(2c2)根据下式计算向量xi第h个注意力头headh:
[0055][0056]
其中,k
t
表示键向量的转置。
[0057]
对于向量xi(i=1,2,3...,n),本发明通过k和q的点积给xi打分来确定xi的重要程度,用zi表示,zi=qi*k
t
;接着,我们将zi除以并使用softmax函数对所有分数进行归一化。
[0058]
(2c3)由于采用了多头机制,我们具有多组查询权重矩阵、键权重矩阵和值权重矩阵。取h=1,2,...12,按照步骤(2c2)的公式计算得到每个注意力头,将其串接后乘以wo作为多头注意层的输出,其中wo表示用于串接操作的可训练参数。
[0059]
其次,将多头注意力层的输出通过前馈神经网络层进行传递;该网络在每一层的不同时间步长共享参数,但在不同层相互独立;前馈神经网络层输出具体函数表示如下:
[0060]fi
=max(0,ziw1+b1)w2+b2,
[0061]
其中,zi=q*k
t
表示xi的重要程度;w1、w2、b1和b2为前馈网络层中4个不同的可训练参数,分别表示第一权重参数、第二权重参数、第一偏置参数和第二偏置参数。
[0062]
然后,将前馈神经网络层的输出输入到平均池化层,得到日志序列的向量表示,并将其输入二分类器进行分类。所述的日志序列表示,具体为:日志序列长度为10,将每个日志语句向量平均用作该日志序列的向量表示,日志语句向量维度为(10,32),代表每个日志语句包含10个单词,每个单词以1*32维向量表示;当日志单词足10时以占位符补充,超过10时取前10个单词。单词向量进行拼接得到日志语句向量,日志语句向量平均得到日志序列向量。
[0063]
最后,本实施例中设定t=100,判断t是否等于t,若是得到训练后的transformer模型,否则,令t=t+1然后返回步骤最开始继续训练。
[0064]
随着互联网时代的不断发展,为我们带来了前所未有的便利,但与此同时,网络空间也存在各种各样的安全问题,如信息盗取、系统破坏、勒索软件、间谍活动等等,致力于长期监控与控制的apt攻击组织也愈发活跃;而随着技术的更新换代,apt攻击越来越隐蔽,攻击过程往往隐藏在看似正常的数据、操作之中。在基于系统日志的检测方面除了传统的人工分析、特征匹配,最近常用的方式是基于深度学习对日志序列进行检测,但对越来越隐蔽的通讯行为检测效果不够理想。本发明提出的apt在线检测方法,通过对系统日志进行解析提取、利用图卷积神经网络模型中进行异常检测,双向模型进行更为精确的异常点定位,并通过构建攻击图进一步展示攻击的路径。该方案基于系统日志检测攻击序列并通过预测定位序列中的异常点,利用fasttext模型处理oov单词和在线更新机制适应新的日志中出现的模式,对更复杂的情况进行建模,展示攻击路径以帮助用户减轻分析负担,具有良好的研究价值和应用前景。
[0065]
本发明未详细说明部分属于本领域技术人员公知常识。
[0066]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。

技术特征:
1.一种基于系统日志和深度学习的apt在线检测方法,其特征在于,包括如下步骤:(1)对系统日志进行预处理并获取词向量模型:(1a)收集系统日志,选取小部分系统日志进行日志解析,通过提取日志模板来表示日志,得到日志索引序列;(1b)对提取日志模板后的日志进行分词,通过分词后的日志构建词汇表,将系统日志序列转换为词汇索引序列后输入到fasttext神经网络中进行训练,得到词向量模型;(2)构建transformer模型并对其进行训练:(2a)搭建编码器包括多头注意力层、前馈神经网络层、平均池化层、二分类器的transformer模型,其中前馈神经网络层是使用relu激活函数的两个线性层组合而成;设置最大迭代次数为t,令当前迭代次数t=0,进行初始化;;(2b)通过训练好的词向量模型将每组日志序列转换为向量数据集x;(2c)在向量数据集x中随机选取一部分x
i
输入到transformer编码器的多头注意力层,其中i=t,x∈r
n*d
,n表示序列长度,d表示每个日志向量的维度;(2d)将多头注意力层的输出通过前馈神经网络层进行传递;(2e)将前馈神经网络层的输出输入到平均池化层,得到日志序列的向量表示,并将其输入二分类器进行分类;(2f)判断t是否等于t,若是得到训练后的transformer模型,执行步骤(3),否则,令t=t+1然后返回步骤(2c);(3)搭建bilstm模型并对其进行迭代训练:(3a)获取日志索引序列并进行滞后扩充,得到扩充后的数据集;(3b)构建bilstm模型,其包括词嵌入层、两层双向lstm层、全连接层;设置最大迭代次数为t',令当前迭代次数t'=0,初始化损失函数与优化器;(3c)在扩充后的数据集中随机选取一部分输入到词嵌入层,得到词向量;(3d)将词向量输入到两层双向lstm层中,并将其输出输入到全连接层;(3e)判断t'是否等于t',若是则得到训练后的bilstm模型,执行步骤(4),否则,令t'=t'+1,并返回执行步骤(3c);(4)利用训练后的transformer和bilstm模型在线检测及预测apt攻击:通过fasttext模型将新产生的日志转换为日志向量矩阵,对未见过的单词使用fasttext模型进行增量更新,之后使用训练好的transformer模型进行在线检测,在检测到新产生的日志包含apt攻击时,通过训练后的bilstm模型对其进行异常点定位并预测下一个异常点。2.根据权利要求1所述的方法,其特征在于:步骤(1a)中所述的日志解析,采用的解析方法包括spell、drain和slct。3.根据权利要求1所述的方法,其特征在于:步骤(1b)中所述通过分词后的日志构建词汇表,具体是将每个词用一个作为索引的整数来代替,并预留“未知词”索引为0,训练时令每个单词的词向量维度为32维。4.根据权利要求1所述的方法,其特征在于:步骤(2c)中所述的多头注意力层,采用十二个注意力头,按照如下方式获取该多头注意层的输出:(2c1)创建三个向量,即查询向量q=x
i
*w
q
、键向量k=x
i
*w
k
、值向量v=x
i
*wv,其中
分别代表查询向量、键向量和值向量的参数矩阵,d
q
、d
k
、d
v
分别表示查询向量、键向量和值向量的维度;(2c2)根据下式计算向量x
i
第h个注意力头head
h
:其中,k
t
表示键向量的转置;(2c3)取h=1,2,...12,按照步骤(2c2)的公式计算得到每个注意力头,将其串接后乘以w
o
作为多头注意层的输出,其中w
o
表示用于串接操作的可训练参数。5.根据权利要求1所述的方法,其特征在于:步骤(2d)中所述的前馈神经网络层,该网络在每一层的不同时间步长共享参数,但在不同层相互独立;前馈神经网络层输出具体函数表示如下:f
i
=max(0,z
i
w1+b1)w2+b2,其中,z
i
=q*k
t
表示x
i
的重要程度;w1、w2、b1和b2为前馈网络层中4个不同的可训练参数,分别表示第一权重参数、第二权重参数、第一偏置参数和第二偏置参数。6.根据权利要求1所述的方法,其特征在于:步骤(2e)中所述的日志序列表示,具体为:日志序列长度为10,将每个日志语句向量平均用作该日志序列的向量表示,日志语句向量维度为(10,32),代表每个日志语句包含10个单词,每个单词以1*32维向量表示;当日志单词足10时以占位符补充,超过10时取前10个单词。单词向量进行拼接得到日志语句向量,日志语句向量平均得到日志序列向量。7.根据权利要求1所述的方法,其特征在于:步骤(2f)中所述的transformer模型,训练使用的损失函数为focalloss,使用随机梯度下降的优化算法计算损失。8.根据权利要求1所述的方法,其特征在于:步骤(3a)中所述的滞后扩充数据,时间步长设置为10。9.根据权利要求1所述的方法,其特征在于:步骤(4)中所述增量更新,指已得到的fasttext模型仅保存历史数据的统计信息,不对历史数据本身进行保存,在新增样本数据后,只增量式地更新fasttext模型中的参数矩阵。10.根据权利要求1所述的方法,其特征在于:所述步骤(4)中在线检测及预测apt攻击之后,通过对非线形依赖关系建模实现攻击图构建,该攻击图包括单线程任务的执行、并发引起的派生任务以及循环结构,用于直观展示攻击阶段;其中,对并发事件的判断标准定义如下:a)同一序列中的并发事件必须分别出现在后续w步预测的每个步骤中;b)当序列中某一个时间步预测索引的上一个时间步的索引与其本身相同时,在计算条件概率时应将该索引在该时间步的预测中的概率视为0;c)在下一个预测中计算出的某个索引条件概率应不小于其在当前步骤中的条件概率;d)被判定为并发事件的索引在该序列中的前驱也应该被判断为并发事件;e)经a)~d)标准过滤后的事件数必须至少为两个;f)符合以上五个步骤的这些索引在各自所在序列向后预测的同一个时间步的结果需要收敛到同一事件。

技术总结
本发明提出了一种基于系统日志和深度学习的APT在线检测方法,主要解决现有技术中存在的APT攻击检测延迟、异常点定位准确性低以及难以适应新攻击模式的技术问题。方案包括:1)对系统日志进行预处理并迭代训练词向量模型;2)通过训练好的词向量模型将每组日志序列转换为向量数据集;3)构建Transformer模型并对其利用向量数据集对其进行迭代训练;3)获取日志索引序列并进行滞后扩充;4)搭建BiLSTM模型并利用扩充后的数据集对其进行迭代训练;4)利用训练好的两种模型在线检测及预测APT攻击。本发明提高了攻击检测模型的通用性与预测未知攻击的准确性,有效提升了检测效果,可用于网络攻击检测等场景。于网络攻击检测等场景。于网络攻击检测等场景。


技术研发人员:李腾 崔金玉 李思琦 林炜国 方保坤 马卓 李德彪
受保护的技术使用者:西安联飞智能装备研究院有限责任公司
技术研发日:2023.06.28
技术公布日:2023/9/16
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐