基于异常节点识别的无监督的apt攻击检测方法和系统
技术领域
1.本发明涉及一网络安全和深度学习技术,特别涉及基于异常节点识别的无监督的apt攻击检测方法和系统。
背景技术:2.apt攻击是针对重要基础设施、重要行业等发动的有计划、持续性的网络攻击。与传统的网络攻击相比,apt攻击具有隐蔽性高、潜伏期长、攻击手段多样等特点,导致传统的基于网络流量的检测手段难以应对。
3.最近的研究表明操作系统内核数据可很好地用于apt攻击检测。操作系统内核数据可表征为一个有向无环图(成为溯源图),表示操作系统中的实体(如进程、文件)之间的交互事件(如文件读写),包含用于apt攻击检测的丰富上下文信息。apt攻击检测分为基于滥用和基于异常两种方法。基于滥用的方法通过学习已知的攻击模式来检测apt攻击行为。基于异常的方法通过学习正常系统行为,并根据实际系统行为与正常系统行为的偏差来检测异常。
4.另一方面,深度学习催生了许多智能化应用,从图像分类、到语音识别和自然语言处理。然而,现有的深度学习技术与apt攻击检测任务仍然存在诸多不适应的方面。首先,现有深度学习技术主要面向欧式空间中的非结构化数据,而溯源图中节点之间的关系是非欧式的。其次,现有深度学习技术主要面向分类任务,而由于apt攻击的复杂性和稀有性,收集和标注足够用于模型训练的apt攻击样本成本过高。
5.针对上述问题,如何基于溯源图实现无监督的apt攻击检测,是亟待解决的一个问题。
技术实现要素:6.本发明解决的技术问题是提供一种基于异常节点识别的无监督的apt攻击检测方法,其一方面可以大大降低人工标注工作量和系统部署的成本,另一方面可以大大降低模型的误报率。
7.本发明解决其技术问题所采用的技术方案是:一种基于异常节点识别的无监督的apt攻击检测方法,步骤为:
8.步骤一、溯源图构建和子图采样:基于操作系统内核事件数据构造全局溯源图,并从中采集子溯源图放入内存中用于训练和检测;
9.步骤二、节点特征抽取:通过聚合节点的邻居节点和边的信息,得到节点的特征向量;
10.步骤三、节点异常检测模型训练:通过特征向量,基于集成学习的思想训练获得多个节点分类子模型;
11.步骤四、节点异常实时检测:基于多个节点分类子模型对节点分类结果的正确性程度,进行节点的异常检测。
12.进一步的是:所述步骤一中具体为:
13.1.1、溯源图构建:采用操作系统内核日志采集工具采集系统内核事件数据,根据系统内核事件数据构建全局溯源图,其中,全局溯源图中的节点代表系统实体,全局溯源图中的边代表系统实体之间的交互事件;
14.1.2、子溯源图采样:将全局溯源图保存,并从全局溯源图中采集能够放入内存的子溯源图,作为训练和检测的单元,
15.所述子溯源图采样的方法为:首先,从全局溯源图中随机采集一个节点作为活动节点,并采集活动节点2跳内可以达到的邻居节点一同构成子溯源图g,然后,从g中随机采集另一个节点作为活动节点,并采集活动节点2跳内可以达到的邻居节点并入g。重复n次,得到最终的子溯源图g。
16.进一步的是:所述步骤二中具体为:
17.2.1、原始特征抽取:假定节点类型的数量为nn,边类型的数量为ne,节点v的原始特征向量为其中ai为v在g中的入边集合中第i类边的数量,bj为节点v在g中的出边集合中第j类边的数量;
18.2.2、语义特征抽取:采用graphsage算法对g进行处理,将每个节点v的2跳可达的邻居节点的信息聚合到v中,得到v的语义特征向量yv。
19.进一步的是:所述步骤三中具体为:
20.3.1、单一节点异常检测模型构建:首先,以步骤2.2中抽取的节点语义特征向量yv作为输入,采用softmax层构建分类模型,分类目标为每个节点的类型,然后,以节点类型的分类结果作为异常检测的依据,当节点类型分类结果错误,则将该节点作为候选异常节点。
21.进一步的是:所述步骤三中具体为:
22.3.2、多层节点异常检测模型训练,具体步骤如下:
23.3.2.1、构建一个训练样本集x,每个样本为xi=(vi,gi,ci),其中vi为一个活动节点,gi为vi对应的子溯源图,ci为vi的真实节点类型;
24.3.2.2、基于步骤2和3.1在x上训练一个节点类型分类子模型m0;
25.3.2.3、基于x对m0进行测试,具体方法为:对于x中的每个验证样本xi,假定m0对 xi的分类结果为分类置信度为λi,如果且λi》δ,说明m0可以较为确信地将xi 正确分类,则将xi从x中删除,其中:δ为指定的置信度阈值,δ=0.7~0.9。
26.3.2.4、如果x不为空,则返回步骤3.2.2,继续迭代,直到x为空或迭代次数超过指定次数上限,最终得到子模型集合ms={m0,m1,
…
,mn}。
27.进一步的是:所述步骤四中,节点异常实时检测的详细步骤如下:
28.4.1、实时子溯源图维护:在内存中维护一个实时子溯源图g,每当系统内核日志采集工具采集到了一个新的系统内核事件,则将该系统内核事件对应的节点作为活动节点加入g,并将这些活动节点和对应的边,以及其在全局溯源图中的2跳可达的邻居节点和相应的边也加入g。
29.4.2、节点异常检测:当加入g中的系统内核事件数量达到指定阈值,则对g中的每个活动节点vi进行节点异常检测,检测步骤如下:
30.4.2.1、使用ms={m0,m1,
…
,mn}中的每个子模型对vi进行分类,得到一系列的分类
结果和分类置信度其中,和为mk对vi的分类结果和分类置信度;
31.4.2.2、只要存在一个子模型mk满足且则判定vi为正常节点,反之,则判定vi为异常节点;
32.其中,ci为vi的真实节点类型,δ为指定的置信度阈值;
33.4.2.3、当检测完g中的所有的活动节点之后,删除g中的所有节点,重新开始步骤4.1;
34.4.3、apt攻击报警:当判定异常的节点的数量超过指定阈值时,则触发apt攻击报警。
35.本发明还公开了一种基于异常节点识别的无监督的apt攻击检测系统,包括上述所述的基于异常节点识别的无监督的apt攻击检测方法,包括:
36.数据获取单元,所述数据获取单元用于获取操作系统内核事件数据;
37.数据处理单元,所述数据处理单元用于根据操作系统内核事件数据进行处理,最终获得多个节点分类子模型并进行节点异常检测。
38.本发明还公开了一种计算机装置,包括:处理器、存储器、通信接口和通信总线,所述处理器、存储器和通信接口通过所述通信总线完成相互间的通信,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述的基于异常节点识别的无监督的apt 攻击检测方法对应的操作。
39.本发明还公开了一种计算机存储介质,所述计算机存储介质中存储有至少一个可执行指令,所述可执行指令使处理器执行如上述所述的基于异常节点识别的无监督的apt攻击检测方法对应的操作。
40.本发明的有益效果是:
41.(1)不需要提供apt攻击样本的标注,模型以无监督的方式训练和检测,大大降低了人工标注工作量和系统部署的成本。
42.(2)通过集成学习和集成检测的思想来实现异常检测,大大降低了模型的误报率。
附图说明
43.图1为本技术实施例的一种基于异常节点识别的无监督的apt攻击检测方法流程图
44.图2为本技术实施例的一种基于异常节点识别的无监督的apt攻击检测方法的子溯源图示意图。
45.图3为本技术实施例的一种基于异常节点识别的无监督的apt攻击检测方法的子模型结构图。
具体实施方式
46.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。
47.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
48.如图1所示,本技术的实施例公开了一种基于异常节点识别的无监督的apt攻击检测方法,其具体步骤为:
49.步骤一、溯源图构建和子图采样:基于操作系统内核事件数据构造全局溯源图,并从中采集子溯源图放入内存中用于训练和检测;
50.步骤二、节点特征抽取:通过聚合节点的邻居节点和边的信息,得到节点的特征向量;
51.步骤三、节点异常检测模型训练:通过特征向量,基于集成学习的思想训练获得多个节点分类子模型;
52.步骤四、节点异常实时检测:基于多个节点分类子模型对节点分类结果的正确性程度,进行节点的异常检测。
53.本实施例中,上述步骤一的具体方法为:
54.1.1、溯源图构建:采用操作系统内核日志采集工具采集系统内核事件数据,根据系统内核事件数据构建全局溯源图,其中,全局溯源图中的节点代表系统实体,全局溯源图中的边代表系统实体之间的交互事件;
55.上述采集工具可为etw(etw提供了一种对用户层应用程序和内核层驱动创建的事件对象的跟踪记录机制)、auditd-linux等,上述系统实体指的是进程、文件等,上述交互事件指的是创建进程、读写文件等;
56.1.2、子溯源图采样:将全局溯源图保存在硬盘,并从全局溯源图中采集能够放入内存的子溯源图,作为训练和检测的单元,
57.所述子溯源图采样的方法为:首先,从全局溯源图中随机采集一个节点作为活动节点,并采集活动节点2跳内可以达到的邻居节点一同构成子溯源图g。然后,从g中随机采集另一个节点作为活动节点,并采集活动节点2跳内可以达到的邻居节点并入g。重复n次,得到最终的子溯源图g。
58.上述所述的活动节点指代的是待检测的系统实体,具体的子溯源图例如图2所示。
59.本实施例中,上述步骤二中的具体方法为:
60.2.1、原始特征抽取:假定节点类型的数量为nn,边类型的数量为ne,节点v的原始特征向量为其中ai为v在子溯源图g中的入边集合中第i类边的数量,bj为节点v在g中的出边集合中第j类边的数量;
61.上述所述的节点v的入边指其它节点指向v的边,节点v的出边指v指向其它节点的边。
62.2.2、语义特征抽取:采用graphsage算法对子溯源图g进行处理,将每个节点v的2 跳可达的邻居节点的信息聚合到v中,得到v的语义特征向量yv(yv的维度为nn)。
63.本实施例中,所述步骤三中具体的节点异常检测方法为:
64.3.1、单一节点异常检测模型构建:首先,以步骤2.2中抽取的节点语义特征向量yv作为输入,采用softmax层构建分类模型,分类目标为每个节点的类型,分类模型的网络结构如图3所示,然后,以节点类型的分类结果作为异常检测的依据,当节点类型分类结果错误,则将该节点作为候选异常节点。
65.具体的,由于单一节点异常检测模型极易产生误报,因此基于集成学习的思想训练多个子模型。具体步骤如下:
66.3.2、多层节点异常检测模型训练,具体步骤如下:
67.3.2.1、构建一个训练样本集x,每个样本为xi=(vi,gi,ci),其中vi为一个活动节点,gi为vi对应的子溯源图,ci为vi的真实节点类型;
68.3.2.2、基于步骤2和3.1在x上训练一个节点类型分类子模型m0;
69.3.2.3、基于x对m0进行测试,具体方法为:对于x中的每个验证样本xi,假定m0对xi的分类结果为分类置信度为λi,如果且λi》δ,说明m0可以较为确信地将xi正确分类,则将xi从x中删除,其中:δ为指定的置信度阈值,例如:δ可以设置为0.8;
70.3.2.4、如果x不为空,则返回步骤3.2.2,继续迭代,直到x为空或迭代次数超过指定次数上限,最终得到子模型集合ms={m0,m1,
…
,mn}。
71.本实施例中,所述步骤四中,节点异常实时检测的详细步骤如下:
72.4.1、实时子溯源图维护:在内存中维护一个实时子溯源图g,每当系统内核日志采集工具采集到了一个新的系统内核事件,则将该系统内核事件对应的节点作为活动节点加入g,并将这些活动节点和对应的边,以及其在全局溯源图中的2跳可达的邻居节点和相应的边也加入g。
73.4.2、节点异常检测:当加入g中的系统内核事件数量达到指定阈值,则对g中的每个活动节点vi进行节点异常检测,检测步骤如下:
74.4.2.1、使用ms={m0,m1,
…
,mn}中的每个子模型对vi进行分类,得到一系列的分类结果和分类置信度其中,和为mk对vi的分类结果和分类置信度;
75.4.2.2、只要存在一个子模型mk满足且则判定vi为正常节点,反之,则判定vi为异常节点;
76.其中,ci为vi的真实节点类型,δ为指定的置信度阈值;
77.4.2.3、当检测完g中的所有的活动节点之后,删除g中的所有节点,重新开始步骤4.1;
78.4.3、apt攻击报警:当判定异常的节点的数量超过指定阈值时,则触发apt攻击报警。
79.本方法在进行检测时不需要提供apt攻击样本的标注,模型以无监督的方式训练和检测,从而大大降低了人工标注工作量和系统部署的成本,同时本方法通过集成学习和集成检测的思想来实现异常检测,大大降低了模型的误报率。
80.此外,本发明还公开了一种基于异常节点识别的无监督的apt攻击检测系统,包括上述所述的基于异常节点识别的无监督的apt攻击检测方法,包括:
81.数据获取单元,所述数据获取单元用于获取操作系统内核事件数据;
82.数据处理单元,所述数据处理单元用于根据操作系统内核事件数据进行处理,最终获得多个节点分类子模型并进行节点异常检测。
83.本发明还公开了一种计算机装置,包括:处理器、存储器、通信接口和通信总线,所述处理器、存储器和通信接口通过所述通信总线完成相互间的通信,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述的基于异常节点识别的无监督的apt 攻击检测方法对应的操作。
84.本发明还公开了一种计算机存储介质,所述计算机存储介质中存储有至少一个可执行指令,所述可执行指令使处理器执行如上述所述的基于异常节点识别的无监督的apt攻击检测方法对应的操作。
85.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:1.一种基于异常节点识别的无监督的apt攻击检测方法,其特征在于:步骤一、溯源图构建和子图采样:基于操作系统内核事件数据构造全局溯源图,并从中采集子溯源图放入内存中用于训练和检测;步骤二、节点特征抽取:通过聚合节点的邻居节点和边的信息,得到节点的特征向量;步骤三、节点异常检测模型训练:通过特征向量,基于集成学习的思想训练获得多个节点分类子模型;步骤四、节点异常实时检测:基于多个节点分类子模型进行节点的异常检测。2.如权利要求1所述的一种基于异常节点识别的无监督的apt攻击检测方法,其特征在于:所述步骤一中具体为:1.1、溯源图构建:采用操作系统内核日志采集工具采集系统内核事件数据,根据系统内核事件数据构建全局溯源图,其中,全局溯源图中的节点代表系统实体,全局溯源图中的边代表系统实体之间的交互事件;1.2、子溯源图采样:将全局溯源图保存,并从全局溯源图中采集能够放入内存的子溯源图,作为训练和检测的单元,所述子溯源图采样的方法为:首先,从全局溯源图中随机采集一个节点作为活动节点,并采集活动节点2跳内可以达到的邻居节点一同构成子溯源图g,然后,从g中随机采集另一个节点作为活动节点,并采集活动节点2跳内可以达到的邻居节点并入g,重复n次,得到最终的子溯源图g。3.如权利要求1所述的一种基于异常节点识别的无监督的apt攻击检测方法,其特征在于:所述步骤二中具体为:2.1、原始特征抽取:假定节点类型的数量为nn,边类型的数量为ne,节点v的原始特征向量为其中a
i
为v在子溯源图g中的入边集合中第i类边的数量,b
j
为节点v在g中的出边集合中第j类边的数量;2.2、语义特征抽取:采用graphsage算法对子溯源图g进行处理,将每个节点v的2跳可达的邻居节点的信息聚合到v中,得到v的语义特征向量y
v
。4.如权利要求1所述的一种基于异常节点识别的无监督的apt攻击检测方法,其特征在于:所述步骤三中具体为:3.1、单一节点异常检测模型构建:首先,以步骤2.2中抽取的节点语义特征向量y
v
作为输入,采用softmax层构建分类模型,分类目标为每个节点的类型,然后,以节点类型的分类结果作为异常检测的依据,当节点类型分类结果错误,则将该节点作为候选异常节点。5.如权利要求4所述的一种基于异常节点识别的无监督的apt攻击检测方法,其特征在于:所述步骤三中具体为:3.2、多层节点异常检测模型训练,具体步骤如下:3.2.1、构建一个训练样本集x,每个样本为x
i
=(v
i
,g
i
,c
i
),其中v
i
为一个活动节点,g
i
为v
i
对应的子溯源图,c
i
为v
i
的真实节点类型;3.2.2、基于步骤2和3.1在x上训练一个节点类型分类子模型m0;3.2.3、基于x对m0进行测试,具体方法为:对于x中的每个验证样本x
i
,假定m0对x
i
的分类结果为分类置信度为λ
i
,如果且λ
i
>δ,说明m0可以较为确信地将x
i
正确分类,则将
x
i
从x中删除,其中:δ为指定的置信度阈值;3.2.4、如果x不为空,则返回步骤3.2.2,继续迭代,直到x为空或迭代次数超过指定次数上限,最终得到子模型集合ms={m0,m1,
…
,m
n
}。6.如权利要求5所述的一种基于异常节点识别的无监督的apt攻击检测方法,其特征在于:所述步骤四中,节点异常实时检测的详细步骤如下:4.1、实时子溯源图维护:在内存中维护一个实时子溯源图g,每当系统内核日志采集工具采集到了一个新的系统内核事件,则将该系统内核事件对应的节点作为活动节点加入g,并将这些活动节点对应的边,以及其在全局溯源图中的2跳可达的邻居节点和相应的边也加入g。4.2、节点异常检测:当加入g中的系统内核事件数量达到指定阈值,则对g中的每个活动节点v
i
进行节点异常检测,检测步骤如下:4.2.1、使用ms={m0,m1,
…
,m
n
}中的每个子模型对v
i
进行分类,得到一系列的分类结果和分类置信度其中,和为m
k
对v
i
的分类结果和分类置信度;4.2.2、只要存在一个子模型m
k
满足且则判定v
i
为正常节点,反之,则判定v
i
为异常节点;其中,c
i
为v
i
的真实节点类型,δ为指定的置信度阈值;4.2.3、当检测完g中的所有的活动节点之后,删除g中的所有节点,重新开始步骤4.1;4.3、apt攻击报警:当判定异常的节点的数量超过指定阈值时,则触发apt攻击报警。7.一种基于异常节点识别的无监督的apt攻击检测系统,包括权利要求1至6中任意一项所述的基于异常节点识别的无监督的apt攻击检测方法,其特征在于:包括:数据获取单元,所述数据获取单元用于获取操作系统内核事件数据;数据处理单元,所述数据处理单元用于根据操作系统内核事件数据进行处理,最终获得多个节点分类子模型并进行节点异常检测。8.一种计算机装置,包括:处理器、存储器、通信接口和通信总线,所述处理器、存储器和通信接口通过所述通信总线完成相互间的通信,所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1至6中任意一项所述的基于异常节点识别的无监督的apt攻击检测方法对应的操作。9.一种计算机存储介质,所述计算机存储介质中存储有至少一个可执行指令,所述可执行指令使处理器执行如权利要求1至6中任意一项所述的基于异常节点识别的无监督的apt攻击检测方法对应的操作。
技术总结本发明公开了基于异常节点识别的无监督的APT攻击检测方法和系统,步骤为:步骤一、溯源图构建和子图采样:基于操作系统内核事件数据构造全局溯源图,并从中采集子溯源图放入内存中用于训练和检测;步骤二、节点特征抽取:通过聚合节点的邻居节点和边的信息,得到节点的特征向量;步骤三、节点异常检测模型训练:基于集成学习的思想训练多个节点分类子模型;步骤四、节点异常实时检测:基于多个节点分类子模型对节点分类结果的正确性程度,进行节点的异常检测,本方法在进行检测时不需要提供APT攻击样本的标注,模型以无监督的方式训练和检测,从而大大降低了人工标注工作量和系统部署的成本,同时本方法也可大大降低模型的误报率。率。率。
技术研发人员:吕明琪 欧阳明
受保护的技术使用者:苏州卓联优智能科技有限公司
技术研发日:2022.07.25
技术公布日:2022/11/1