原文标题:APT-KGL: An Intelligent APT Detection System Based on Threat Knowledge and Heterogeneous Provenance Graph Learning
原文作者:Tieming Chen, Chengyu Dong, Mingqi Lv, Qijie Song, Haiwen Liu, Tiantian Zhu, Kang Xu, Ling Chen, and Shouling Ji, Yuan Fan
发表会议/期刊:IEEE Transactions on Dependable and Secure Computing
主题类型:攻击检测
笔记作者:zq@Web攻击检测与追踪
编辑:黄诚@安全学术圈
1、研究概述
APT攻击在全球范围内造成了严重的安全威胁。现有的APT攻击检测系统要么基于复杂的分析规则,要么基于深度学习模型。然而,基于规则的方法需要深入的领域知识,并且缺乏泛化能力;基于学习的方法难以应对样本的动态演变,并且缺乏训练数据。针对这些问题,本文提出了APT-KGL,一个基于溯源数据和图神经网络的APT攻击检测系统。APT-KGL通过HPG(异质溯源图)建模溯源数据中系统实体及其上下文信息,并以离线方式为HPG中的系统实体学习语义向量表征。然后,APT-KGL通过从HPG中抽取局部图,将关键实体分类为恶意或良性来进行在线APT攻击检测。此外,为了克服APT攻击训练数据收集难度大的问题,APT-KGL以半自动化的方式从公开威胁情报中创建虚拟APT攻击训练数据。
图1 APT-KGL系统框架图
APT-KGL的架构图如图1所示,由以下四个模块组成。
-
溯源图构造器:APT-KGL使用操作系统审计日志作为数据源,审计日志记录了系统执行期间发生的所有事件的历史,通过拦截系统调用来收集系统级审计日志信息。然后通过溯源图构造器,将系统日志解析成溯源图的形式。溯源图通过将系统实体之间的信息流描述成一个有向图无环图,来表征系统行为,其中系统主体包括进程和线程,客体包括文件和Sockets。在溯源图中,用节点表征系统实体,边表征实体间行为。
-
异质图学习器:APT-KGL定义了节点类型集合和边类型集合,将溯源图转化为HPG(异质溯源图)。异质图学习器通过基于元路径采样策略和基于分层注意力的嵌入技术,保留各类型节点之间语义、结构的相关性,为每个节点学习一个低维向量表征(异质图嵌入)。
-
APT检测器:为支持连续不断地审计日志流,对于一个新的系统实体v_n,APT-KGL将v_n链接到现有的异质图中,并以v_n为中心节点,对局部图进行采样。APT-KGL将APT检测视为一个节点分类任务,采用图卷积网络,探索更远的图邻域以发现系统实体之间的因果关系和上下文关联。
-
威胁情报提取器:以半自动的方式从开源威胁情报中提取代表APT攻击链的HPGs,添加噪声边和节点进行数据增强后,创建补充的APT训练样本。
2、贡献分析
a) 贡献点1:论文针对GNN很难从异质溯源图的低级实例中学习到高级模式的问题,提出使用异质图来表示溯源图中复杂的系统实体和事件,实现了基于元路径的采样策略来提取系统实体之间更高层次的语义互动。
b) 贡献点2:论文针对溯源图随时间推移持续增长所面临的内存和效率问题,提出使用图嵌入技术来学习异质图中每个节点的低维矢量表示,实现了以图嵌入作为预训练步骤,快速初始化检测模型。
c) 贡献点3:论文针对GNN不能处理连续到来的数据增量学习的问题,提出了局部图采样方法,实现了当出现新实体后,将其和最相关的节点纳入一个小而紧凑的局部图,基于局部图建立检测模型。
d) 贡献点4:论文针对APT攻击训练样本获取难度大的问题,提出了从开源威胁情报中提取代表APT攻击链的HPGs,实现了可以创建补充训练APT攻击样本的威胁情报提取器。
3、代码分析
代码链接:https://github.com/hwwzrzr/APT-KGL
a) 代码使用类库分析,是否全为开源类库的集成?
使用了常用的图表征学习相关的库,比如说 DGL/PyTorch;也用 numpy和pandas做了一点数据预处理的工作。总的来说,本系统只使用了通用的开源库,核心逻辑都是作者自己实现。
b) 代码实现难度及工作量评估;
只计算有效代码,共2500行左右Python代码,其中,数据预处理和元路径定义占了将近一半。构图和图表征模型加起来不过寥寥500行。工作量适中,主要工作量集中在数据处理上。构图和模型都能找到可以参考的代码,实现难度不大。
c) 代码关键实现的功能(模块)
关键功能包括以下四个模块:
-
数据预处理,data_prepare_*.py -
构图,create_graph_*.py -
异质图嵌入模型,model_hetero_*.py -
元路径定义,meta_*.py
4、论文点评
存在问题:
-
精度低(警报疲劳问题):尽管本文在实验中取得了不俗的召回率,但精度不够高,在实验室数据集和DARPA数据集中分别只有0.836和0.5294的精度。可见,本模型为了追求高召回率,分类结果中存在大量误报。在真实企业场景中,当一段时间内警报数量超出安全专家所承载的上限,就会出现警报疲劳的问题,即:安全专家花费大量时间去验证模型的误报结果,而真正的恶意行为却来不及去分析,最终导致恶意行为没有及时被处理。 -
局部图采样机制可以被绕过:本文虽然提供了局部图采样机制来应对新出现的节点,但对于已存在的进程节点一旦生成嵌入向量便不会改变。一旦恶意进程在刚入侵系统的时候保持善良,超过一段时间生成良性嵌入后再执行攻击行为,此时便可以绕过局部图采样机制。 -
灾难性遗忘问题:系统中实体的行为模式随时间的推进而改变,但是本文所提出的模型却假设系统的良性行为模式一成不变,这就使得模型准确率随着时间推移而越来越低。灾难性遗忘问题也是系统精度低的原因之一。
改进措施:
-
解决灾难性遗忘问题:在图嵌入和最终分类的过程中,考虑到终身学习的模式,让模型随时间的推移而不断演进。此方案亦可提高模型精度。 -
解决局部图采样机制被绕过的问题:定期重新为系统中现存实体生成新的嵌入。
5、论文文献
[1] Chen T, Dong C, Lv M, Song Q, Liu H, Zhu T, et al. APT-KGL: An Intelligent APT Detection System Based on Threat Knowledge and Heterogeneous Provenance Graph Learning. IEEE Trans Dependable and Secure Comput 2022:1–15 (TDSC 中科院2区 CCF-A).
团队信息
第一作者:陈铁明,现为浙江工业大学健行特聘教授、博士生导师,计算机科学与技术学院副院长,浙江省特支计划科技创新领军人才,浙江省网络空间安全创新研究中心主任、复杂网络攻击智能检测浙江省工程研究中心主任。
通讯作者:吕明琪,现任浙江工业大学计算机科学与技术学院副教授、博士生导师,曾在新加坡南洋理工大学访问研究。长期从事时空数据挖掘及其在网络安全、普适计算等领域的应用研究。
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com
原文始发于微信公众号(安全学术圈):浙江工业大学 | APT-KGL:基于威胁知识和异构溯源图学习的智能APT检测系统