原文标题:THREATRACE: Detecting and Tracing Host-Based Threats in Node Level Through Provenance Graph Learning

原文作者:Su Wang, Zhiliang Wang, Tao Zhou, Hongbin Sun, Xia Yin, Dongqi Han , Han Zhang, Xingang Shi, and Jiahai Yang

原文链接:https://doi.org/10.1109/TIFS.2022.3208815

发表期刊:IEEE Transactions on Information Forensics and Security

主题类型:攻击检测

笔记作者:时真好@Web攻击检测与追踪

主编:黄诚@安全学术圈

1、研究概述

包括APT攻击、恶意软件植入和程序攻击等在内的基于主机的威胁成为如今攻击者们炙手可热的利用对象。在此背景下,本文实现了一个能够在节点级别上自动检测并定位基于主机威胁的开源系统,并将其命名为TREATRACE。该系统采用来源图对主机内的活动进行建模:图节点表示主机内的进程或文件等实体,有向边表示节点之间信息流的关系,如读操作、写操作或系统调用等。将建模所得的拓扑图通过图神经网络GraphSAGE进行训练和检测,并维护一份节点白名单,即该系统是一个基于误用检测的威胁检测系统。

整个模型由如图1所示的两个过程和四个模块构成:

图1 THREATRACE 组件概述

两个过程指的是图神经网络的训练过程和测试过程;四个部分则分别是来源图生成模块、数据存储模块、GraphSAGE模型和警报与追踪模块。接下来将逐一概述这四个模块。

  • (1)、来源图生成模块:该模块以流方式收集主机的审计数据,使用外部工具Camflow将其转换为来源图以供后续分析。

  • (2)、数据存储模块:该模块将前一模块生成的图存储在磁盘上,仅仅将其中的部分活动节点及其连边调入内存中执行训练或检测操作;这样保证了模型的执行效率,使其在不同系统和不同规模的检测任务中更具有可拓展性。

  • (3)、GraphSAGE模块:此模块是整个模型的核心,主要通过构建多层图神经网络模型,在没有关于攻击的先验知识的条件下,实现基于异常的威胁检测。通过用不同整数标识来源图中不同类型的节点和边,给每一个节点赋予与其连边性质相关的初始特征向量,再经过跳数为2的两层图神经网络,该网络为每一个节点分配一个标签。在训练阶段,将不能被正确的节点放入和主模型参数不同的子模型中进行进一步分类,直到所有训练节点均被正确分类。在执行过程中,在经过了主模型和所有子模型后仍然不能被划分到指定类别中的节点视为不在白名单内,即为异常节点。在构成了一套完整的基于GraphSAGE的多层威胁检测模型后,根据其运行中可能出现的假阳性率偏高和假阴性率偏高的问题,文章创意性地在模型的训练阶段和检测阶段均引入了概率矩阵:矩阵的横坐标是不同的待分类节点,纵坐标是节点可能对应的类别,即矩阵的第i行第j列中的值表示将节点i判别为类型j所对应的概率。在引入概率矩阵判别规则之前,直接将第i行中最大值的列坐标作为节点i的类别;引入概率矩阵判别规则后,第i行的最大值要在满足其值与第i行的次大值之差大于指定阈值后才能将i节点分类。通俗来说,即将节点判别为正常节点的条件更为严苛。通过实验证明,改机制的引入有效地提升了模型的性能。

  • (4)、警报与追踪模块:由于每次训练或检测均取整图的部分子图,所以单个节点可能被多次调入模型进行执行,因此其状态判别可能会改变。基于此,模型将所有异常节点存储在异常节点队列中,并设置时间阈值,在指定的时间阈值内,该节点状态一直为异常,则再报告该节点为异常节点,并通过其邻居信息直接在图中定位该节点位置,实现追踪功能。

2、贡献分析

a) 贡献点1:论文针对基于误用的威胁检测需要不断更新黑名单,使得其难以防范0-day漏洞的问题,提出了基于异常的威胁检测方法,实现了基于图卷积神经网络的,不需要攻击行为的先验知识的威胁检测系统。并且通过实现节点级别的检测,解决了通常基于异常检测的系统只能发出警报而难以追踪定位威胁的问题。

b) 贡献点2:论文针对使用图核方法检测威胁只能针对整张图发出警报且在面对异常节点数量较少的图时性能不佳的问题,使用了图卷积神经网络学习图结构中丰富的上下文信息,作为检测异常的依据。使用系统来源图作为对主机活动的建模,通过基于节点的检测使得该方案对于边密集即节点活动复杂的网络具有很好的性能。并且通过非直推式的GraphSASE网络,实现了训练和执行过程不需要将整图调入内存,保证了模型良好的开销。

c) 贡献点3:论文针对异常节点和正常节点区别过小而难以被识别所造成的隐性攻击问题,提出了多层模型训练的方法,在主模型挖掘节点分类标签的基础上,实现了进一步使用子模型挖掘节点的隐性标签,使得具有复杂活动的节点被更加精准地判别分类;

d) 贡献点4:论文针对模型结果假阳性偏高和假阴性偏高的问题,提出了概率矩阵判别方法,实现了在模型训练阶段和检测阶段分别使用概率矩阵记录节点可能被判别为不同分类的大小,并根据最大值和次大值之间的大小关系进行分类,使得节点被分类在已知良性种类中的条件更加严格,进一步提升了模型的检测准确度。

3、代码分析

代码链接:https://github.com/threaTrace-detector/threaTrace/

a) 代码使用类库分析

  • pytorch 1.9.1:基于Torch的Python开源机器学习库,提供了神经网络功能函数的封装以及强大的GPU加速功能,使得深度学习模型的构建和训练更加简单、快速和灵活。

  • torch-cluster 1.5.9:基于PyTorch的图聚类库,提供了一组用于构建和训练图聚类模型的工具和算法。

  • torch-geometric 1.4.3:基于PyTorch的几何深度学习库,提供了常用的图神经网络模型。

  • torch-scatter 2.0.9:基于PyTorch的张量聚合库,提供了一组对聚合张量的函数,支持GPU运行,保证了函数在大规模图数据上运行时的性能。

  • torch-sparse 0.6.12: Python内置的用于命令项选项与参数解析的模块,提供用户友好的命令行接口,帮助程序员更加方便快捷地定义模型的参数。

  • torch-spline-conv 1.2.1:基于PyTorch的图卷积神经网络库,提供了图池化、图卷积、图上注意力机制等函数,能够很好地处理不规则的图结构,并提高图神经网络的表达能力。

b) 代码实现难度及工作量评估

工作量非常完整,代码模块和逻辑清晰。代码链接里包含对三个数据集进行数据预处理并进行训练和测试、计算精确度、准确率、召回率和F1分数评估以及运行过程内存时间消和CPU占用率计算的子模块。并且通过定位关键字,实现了包括构建子图等图数据集全自动的处理。

在图神经网络模型构建的模块,包含了完整的模型加载代码,并且设计了训练结果展示的交互功能,在测试阶段实时展示每轮训练的准确度和损失值;在训练阶段实时输出准确率、精确率和召回率。将模型运用在不同数据集上时,采用相同层数相同参数的图卷积神经网络。

c) 代码关键实现的功能(模块)

  • 模型中关键函数片段解析(GraphSAGE模型)

  • 展示了采用两层卷积网络,并引入dropout参数防止模型过拟合的GraphSAGE模型;

  • 展示了该论文方案中用于解决假阳性率和假阴性率偏高而引入的概率矩阵判断机制

  • 展示了将分类错误的样本节点加入错误分类的队列,以便后续使用子模型进行隐形标签的挖掘

4、论文点评

[1]. 在论文写作方面,在背景和相关工作叙述中,尽管有详实的文献分析,但是叙述逻辑略显混乱,并且在上下文中多次反复提及,显得冗长且混乱。经过提炼和整理后发现其实可以从使用的系统数据建模方法(来源图或正常程序运行轨迹或日志信息)、检测方式(基于误用的检测或基于异常的检测)、图数据的分析方法(图核分析法或使用图神经网络)、检测粒度(路径级别的威胁检测或节点级别的威胁检测或图级别的威胁检测)、威胁检测和警报(只具备发出威胁警报的系统或能定位威胁的系统)总共五个方面进行相关工作的总结并逐一引出本方案选择方式的优势,以便从各个方面突出本文方案的优越性。

[2]. 在论文的工作方面,首先是采用多个图神经卷积网络逐一对没有正确分类的节点进行分类,直到分类正确,但并没有讨论如何保证多个模型之间如何达到性能的增强而不是性能的无效叠加。以及原文中提及使用多个子模型“直到没有被错误分类的节点”,并未表明子模型数量的上限,怀疑该步骤会对方案效率产生很大的影响。文中也没有针对此步骤进行效率的讨论。其次,在训练阶段和测试阶段均使用概率矩阵进行类型的判别,使用了相同的规则,但是却能保证假阳性和假阴性率同时降低,本处没有进行原理的讨论,只有实验结果的佐证,为阅读理解带来了一定的困难。最后,模型提到了对子图进行训练和测试,但没有给出具体的子图构造方法。

5、论文文献

[1].Wang S, Wang Z, Zhou T, et al. Threatrace: Detecting and tracing host-based threats in node level through provenance graph learning[J]. IEEE Transactions on Information Forensics and Security,2022,17:3972-3987.

6、论文团队

  • 王之梁,清华大学网络科学与网络空间研究院长聘副教授、博士生导师。主要研究方向包括网络测试测量与态势感知、互联网体系结构与协议等。https://www.insc.tsinghua.edu.cn/info/1157/2853.htm

  • 清华大学网络管理与测量实验室:实验室负责人杨家海教授,清华大学信息化技术中心副主任,实验室研究内容包括:互联网管理体系结构的创新基础研究;网络全息测量和网络行为学研究;面向IPv6下一代互联网的网络空间测绘研究;基于测量的网络安全分析研究(暨网络空间安全态势感知研究);面向网络功能虚拟化的云数据中心资源管理调度研究。https://nmgroup.tsinghua.edu.cn/

安全学术圈招募队友-ing

有兴趣加入学术圈的请联系 secdr#qq.com

声明:本文来自安全学术圈,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。