一种基于终身学习和可疑语义传递的APT异常检测方法

专利查询28天前  14


本发明属于apt检测,具体涉及一种基于终身学习和可疑语义传递的apt异常检测方法。


背景技术:

1、apt(advanced persistent threat,高级持续威胁)攻击是一种针对特定目标的隐蔽、技术先进且持续的网络攻击,旨在长期潜伏并获取敏感信息或资源。随着其复杂性不断增加,现有的研究开始利用起源图中丰富的上下文信息来检测复杂的apt攻击。其中,基于起源图的异常入侵检测方法因其不依赖攻击知识且能够对抗零日漏洞(zero-dayvulnerabilities)的特性而日益受到关注,与离线系统的高延迟和成本相比,能够以流式方式处理动态演变的起源图的检测方式更适合当前基于主机的检测的实时和成本效益要求。

2、然而,当前大多数基于起源图的异常入侵检测方法都回避了一个关键问题:概念漂移。概念漂移描述了随时间不可预见的数据流底层部分的变化,这种变化可能导致模型性能下降,产生高误报(因为训练期间学习到的特征和模式在测试期间不再适用)。在实际情况中,这一普遍现象对应于端点的用户行为变化,例如换到不同的生产环境或部署了新的软件。

3、当前的异常入侵检测方法遵循传统的异常检测范式:在离线收集的、有限大小的数据上进行训练,以识别测试数据中的异常。然而,由于概念漂移现象的存在,这种范式运作不佳。而想要在这个传统范式内对抗概念漂移,往往需要无限扩展训练数据或严格限制用户行为,这两种方法都难以施行,局限性大。因此,提出一种具有新的异常检测范式的方法来缓解概念漂移带来的高误报问题。


技术实现思路

1、本发明的目的在于针对上述问题,提出一种基于终身学习和可疑语义传递的apt异常检测方法,能够提高apt异常检测的准确性和效率。

2、为实现上述目的,本发明所采取的技术方案为:

3、本发明提出的一种基于终身学习和可疑语义传递的apt异常检测方法,包括如下步骤:

4、s1、采集当前时段的系统日志数据作为当前数据并进行预处理,当前时段的系统日志数据为良性系统日志数据,预处理包括:

5、s1.1、特征提取及溯源图构建:提取当前数据的节点和节点间的关系,节点间的关系即事件,并根据提取的节点和节点间的关系构建溯源图,事件即溯源图中的边;

6、s2、建立异常检测模型,异常检测模型执行如下操作:

7、 s2.1、初始化嵌入:对在时间t的节点的特征、节点的状态和节点间的关系分别进行编码,对应获得特征编码、状态编码和节点间的关系编码,t为当前数据的时间点;

8、 s2.2、节点嵌入:对每个节点分别合成在时间t的特征编码、在时间t-1的状态编码和由gru模型生成的在时间t-1的记忆向量为对应的节点嵌入向量,记节点i在时间t的节点嵌入向量为,节点i为当前数据中的节点;

9、s2.3、关系嵌入:根据两个节点在时间t的节点嵌入向量、节点间的关系编码和事件的时间特征获得对应的边嵌入向量,记节点i和节点j在时间t的边嵌入向量为,节点j为当前数据中的节点;

10、s2.4、状态传递:按照预设转移规则进行节点间的可疑状态传递,可疑状态表示节点与apt攻击相关的可疑程度;

11、s2.5、模型输出:利用gru模型更新节点的记忆向量,同时将时间t的边嵌入向量和对应的节点嵌入向量输入gnn模型生成对应的最终边向量,然后将时间t的最终边向量和对应的节点嵌入向量输入mlp模型获得对应的预测关系向量;

12、s3、将提取的良性系统日志数据的节点和节点间的关系作为异常检测模型的输入,获得训练好的异常检测模型;

13、s4、将下一时段的系统日志数据作为当前数据利用训练好的异常检测模型进行检测,并随着新产生的系统日志数据的输入重复步骤s4进行终身学习,获取对应的apt攻击异常检测结果。

14、优选地,节点包括进程、文件和网络;节点间的关系包括进程与进程间的派生关系、进程与文件间的读取关系、进程与文件间的创建关系、进程与网络间的访问关系;

15、对在时间t的节点的特征、节点的状态和节点间的关系分别进行编码,对应获得特征编码、状态编码和节点间的关系编码,具体如下:

16、利用分层特征哈希对节点的特征进行编码以将高维特征映射到预设大小的哈希空间,获得特征编码;

17、利用可疑状态对节点的状态进行编码,获得状态编码;

18、利用独热编码对节点间的关系进行编码,获得节点间的关系编码。

19、优选地,预设转移规则,满足如下公式:

20、       (1);

21、式中,是节点i在时间t的可疑状态,是节点i在时间t-1的可疑状态,是节点j在时间t-1的可疑状态,是与节点i的所有邻居节点,为衰减因子。

22、优选地,可疑状态的初始状态值为介于0到1之间的实数,并规定所有套接字对象的节点的初始状态值均为1,其他均为0,其中,0表示完全良性,1表示高度可疑。

23、优选地,利用gru模型更新节点的记忆向量,具体如下:

24、        (2);

25、       (3);

26、       (4);

27、       (5);

28、式中,是节点i在时间t的重置门,是节点i在时间t的更新门,是节点i在时间t的候选记忆向量,是节点i在时间t的记忆向量,是节点i在时间t的节点嵌入向量,即为gru模型中节点i在时间t的输入,是节点i在时间t-1的记忆向量,是更新门中节点i在时间t的节点嵌入向量的权重矩阵,是更新门中节点i在时间t-1的记忆向量的权重矩阵,是重置门中节点i在时间t的节点嵌入向量的权重矩阵,是重置门中节点i在时间t-1的记忆向量的权重矩阵,是计算候选记忆向量时节点i在时间t的节点嵌入向量的权重矩阵,是计算候选记忆向量时节点i在时间t-1的记忆向量的权重矩阵,是重置门的偏置项,是更新门的偏置项,是候选记忆向量的偏置项,是sigmoid激活函数,是hadamard乘积,tanh是双曲正切激活函数,gru模型的新节点对应的记忆向量初始时为零向量。

29、优选地,节点i和节点j在时间t的边嵌入向量,公式如下:

30、       (6);

31、式中,是节点i在时间t的节点嵌入向量,是节点j在时间t的节点嵌入向量,是节点i和节点j在时间t的节点间的关系编码,tanh是双曲正切激活函数;

32、将时间t的边嵌入向量和对应的节点嵌入向量输入gnn模型生成对应的最终边向量,然后将时间t的最终边向量和对应的节点嵌入向量输入mlp模型获得对应的预测关系向量,具体如下:

33、利用gnn模型生成最终边向量,公式如下:

34、       (7);

35、式中,是gnn模型;

36、获取节点i和节点j在时间t的预测关系向量,公式如下:

37、       (8);

38、式中,h(·)是mlp模型的可学习函数。

39、优选地,预处理还包括:

40、s1.2、排练节点池初始化:创建排练节点池并初始化,排练节点池用于放置若干个排练节点和排练节点的边,排练节点为当前数据中的节点;

41、将提取的良性系统日志数据的节点和节点间的关系作为异常检测模型的输入,获得训练好的异常检测模型时,通过计算输出的预测关系向量与实际关系的边嵌入向量的交叉熵损失作为重构损失,并通过梯度下降法更新模型参数;

42、将下一时段的系统日志数据作为当前数据利用训练好的异常检测模型进行检测,并随着新产生的系统日志数据的输入重复步骤s4进行终身学习,获取对应的apt攻击异常检测结果,具体如下:

43、s4.1、数据预处理:在当前数据中有新节点出现时对新节点进行节点嵌入、有新事件发生时对新事件进行关系嵌入,重新生成对应的边嵌入向量和记忆向量,并更新相关节点的可疑状态和溯源图;

44、s4.2、关系匹配:将更新后的溯源图中的新边的节点与排练节点池中的边的节点进行配对,得到对应的关系对;

45、s4.3、伪边连接:评估每条新边的节点与排练节点池中的排练节点之间的可达性,若新边存在节点与任一排练节点是可达的,则连接该新边的节点和对应排练节点以形成伪边;

46、s4.4、异常节点识别:利用训练好的异常检测模型识别出排练节点和新边的节点的预测关系向量,根据关系对计算预测关系向量和实际关系的边嵌入向量之间的重构损失,并用重构损失来评估当前伪边的边嵌入向量与对应实际关系的匹配程度,筛选出重构损失超过第一预设阈值α的伪边连接的新边的节点作为异常节点,异常节点即为apt攻击异常检测结果;

47、s4.5、根据异常节点和排练节点池中的排练节点更新排练节点池和模型参数,并随着新产生的系统日志数据的输入重复步骤s4进行终身学习以实现apt攻击异常检测,获取对应的apt攻击异常检测结果。

48、优选地,根据异常节点和排练节点池中的排练节点更新排练节点池和模型参数,具体如下:

49、s4.5.1、排练节点筛选:在识别出的异常节点中选择可疑状态超过第二预设阈值的节点视为恶意节点进行告警,选择可疑状态不超过第二预设阈值的节点作为新的排练节点,新的排练节点即为异常但非恶意节点;

50、s4.5.2、伪边连接:将新的排练节点和排练节点池中的排练节点进行伪边连接,同时将新的排练节点加入排练节点池中以更新排练节点池;

51、s4.5.3、模型更新:利用新的排练节点池对训练好的异常检测模型进行重新训练,更新模型参数。

52、优选地,实际关系即当前数据中提取的对应的节点间的关系,关系对获取如下:

53、将新节点与排练节点池中的节点进行配对,计算出配对的两个节点之间的曼哈顿距离,筛选出距离最近的节点对(np,rnq);

54、为筛选出的新节点np的邻居节点nu在排练节点rnq的邻居节点中选出距离最近的节点rnv,得到以四元组(np,nu,rnq,rnv)表示的关系对,关系对由实际关系与排练节点池中对应关系组成,其中,np、nu为当前数据中的节点,p,u为当前数据中的节点编号,rnq、rnv为排练节点池中的节点,q,v为排练节点池中的节点编号。

55、优选地,排练节点池的初始化,具体如下:

56、基于k-means算法将由良性系统日志数据构成的溯源图的节点中行为相似的节点分为一簇,行为相似即为同一类型事件;

57、对各簇中的每个节点计算对应katz centrality得分,选出katz centrality得分最高的一个节点作为该簇的良性关键节点;

58、在由良性系统日志数据构成的溯源图中找出连接良性关键节点的最短边,将良性关键节点、良性关键节点的最短边对应的邻居节点作为排练节点,并将排练节点和排练节点的边一起放入排练节点池。

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

60、本发明通过对采集到的良性系统日志数据进行预处理并训练异常检测模型,所建立的异常检测模型能够获得预测关系向量,当有新的系统日志数据产生时,用训练好的异常检测模型进行异常检测,识别异常节点的同时进行可疑语义传递,并将完全不可疑的异常节点合并到排练节点池,用于帮助异常检测模型记住关键场景,更新模型参数,通过模型持续的学习,能够缓解概念漂移的问题,且通过在排练节点池中应用伪边连接,能够有效解决模型持续的学习导致的灾难性遗忘问题,并通过可疑状态的预设转移规则避免再重新训练时选择恶意数据,解决了识别悖论的问题,能够提高apt异常检测的准确性和效率。


技术特征:

1.一种基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述基于终身学习和可疑语义传递的apt异常检测方法包括如下步骤:

2.如权利要求1所述的基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述节点包括进程、文件和网络;所述节点间的关系包括进程与进程间的派生关系、进程与文件间的读取关系、进程与文件间的创建关系、进程与网络间的访问关系;

3.如权利要求1所述的基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述预设转移规则,满足如下公式:

4.如权利要求2或3所述的基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述可疑状态的初始状态值为介于0到1之间的实数,并规定所有套接字对象的节点的初始状态值均为1,其他均为0,其中,0表示完全良性,1表示高度可疑。

5.如权利要求1所述的基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述利用gru模型更新节点的记忆向量,具体如下:

6.如权利要求1所述的基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述节点i和节点j在时间t的边嵌入向量,公式如下:

7.如权利要求1所述的基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述预处理还包括:

8.如权利要求7所述的基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述根据异常节点和排练节点池中的排练节点更新排练节点池和模型参数,具体如下:

9.如权利要求7所述的基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述实际关系即当前数据中提取的对应的节点间的关系,所述关系对获取如下:

10.如权利要求7所述的基于终身学习和可疑语义传递的apt异常检测方法,其特征在于:所述排练节点池的初始化,具体如下:


技术总结
本发明公开了一种基于终身学习和可疑语义传递的APT异常检测方法,包括:S1、采集当前时段的系统日志数据作为当前数据并预处理;S2、建立异常检测模型;S3、将提取的良性系统日志数据的节点和节点间的关系作为异常检测模型的输入,计算重构损失并通过梯度下降法更新模型参数获得训练好的异常检测模型;S4、将下一时段的系统日志数据作为当前数据利用训练好的异常检测模型进行检测,并随着新产生的系统日志数据的输入重复步骤S4进行终身学习,获取对应的APT攻击异常检测结果。该方法能够提高APT异常检测的准确性和效率。

技术研发人员:朱添田,郑奥涵,陈铁明,吕明琪
受保护的技术使用者:浙江工业大学
技术研发日:
技术公布日:2024/12/5

最新回复(0)