
原文标题:UNICORN: Runtime Provenance-Based Detector forAdvanced Persistent Threats
原文作者:Xueyuan Han, Thomas Pasquier, Adam Bates, James Mickens, Margo Seltzer原文链接:https://arxiv.org/pdf/2001.01525发表会议:NDSS’20笔记作者:张琦驹@安全学术圈主编:黄诚@安全学术圈编辑:张贝宁@安全学术圈
1、引言
高级持续威胁(Advanced Persistent Threats, APT)因 “低且慢” 模式和零日漏洞难以检测。传统系统存在不足:签名依赖型对新漏洞无效,异常检测型难以建模长期行为,易被规避。数据溯源以有向无环图(Directed Acyclic Graph, DAG)描述系统信息流,可连接长时因果事件,但现有方法存在局限:规则难测新型 APT、溯源图探索受限、模型难适应系统动态、内存分析扩展性差。应对挑战面临困难:APT 时间跨度长致溯源图规模激增,系统行为随时间变化(概念漂移,Concept Drift),攻击隐蔽性强。
为此,本文提出 UNICORN,基于运行时溯源检测 APT。其采用图草图(Graph Sketching)技术,结合时间加权机制和进化模型,高效处理数据并捕捉系统行为演化。
2、溯源图分析与表示
溯源图分析与表示是 UNICORN 检测高级持续威胁(Advanced Persistent Threats, APT)的基础,通过对系统执行过程的结构化建模,捕捉关键因果关系与上下文信息,为后续异常检测提供依据。
2.1 全系统溯源图的构建
UNICORN 以全系统溯源图作为分析基础,该图由操作系统级别的溯源捕获工具(如 CamFlow)生成,能完整记录系统活动及实体间的交互。
溯源图结构:溯源图被定义为一个 5 元组(V, E, Fv, Fe, C),其中 V 为顶点集(代表系统实体如进程、文件),E 为有向边集(代表实体间的操作流),Fv 和 Fe 分别为顶点和边的标签函数(标注实体类型、操作类型等),C 为边的时间戳记录函数。这种结构能清晰刻画系统主体(如进程)与对象(如文件、套接字)间的信息流,即使事件在时间上相隔较远,也可通过因果关联连接。
优势与实现:采用 CamFlow 作为参考实现,其基于 Linux 安全模块(Linux Security Modules, LSM)框架,避免了系统调用拦截机制中的竞争条件(如 TOCTTOU 漏洞),确保溯源数据的完整性和可靠性。此外,溯源图具有偏序特性,即一个顶点的所有入边先于出边出现,这为流式处理中的增量更新提供了便利(如图 2 所示)。

2.2 图直方图的生成与动态更新
图直方图是溯源图的结构化表示,通过捕捉顶点的邻域特征,实现对图结构的高效总结。
基于 WL 子树核的直方图构建:采用改进的 Weisfeiler-Lehman(WL)子树图核算法(算法 1),通过迭代标签传播生成顶点的 R 跳邻域标签。具体而言,每个顶点从初始标签出发,逐步整合其入边、源顶点的标签及时间戳信息,经排序和哈希后形成独特的邻域标签,最终统计所有标签的出现频率构建直方图。这种方法能捕捉非线性的子结构特征,优于随机游走等线性方法。

时间加权与概念漂移处理:为适应系统行为随时间的变化(概念漂移),UNICORN 对直方图元素采用指数权重衰减机制,动态调整历史数据的影响力。这一机制既能 “遗忘” 无关的历史事件,又能保留与当前执行存在因果关联的关键上下文,避免 APT 攻击通过长期潜伏逃避检测。
2.3 图草图的生成
为解决流式场景下直方图规模动态增长的问题,UNICORN 将直方图转换为固定大小的图草图,实现高效的相似性计算与存储。
基于 HistoSketch 的草图生成:采用 HistoSketch 技术(一种相似性保留哈希方法),通过一致加权采样将高维直方图映射为低维草图。具体而言,为每个直方图元素生成随机变量,通过计算哈希值选取最小特征构建草图(算法 3),确保草图大小固定且保留原始直方图的归一化 Jaccard 相似性。

增量更新机制:草图支持增量更新(算法 4),当新数据流入时,通过指数衰减调整现有元素权重,并根据新元素的哈希值判断是否替换草图中的旧元素,实现高效的流式处理。这一特性使 UNICORN 无需存储完整溯源图,仅通过草图即可追踪系统长期执行状态,解决了内存扩展性问题(L4)。

通过溯源图的结构化表示、动态直方图及固定大小草图,UNICORN 实现了对大规模、长时间系统执行数据的高效捕捉与总结,为后续的进化模型构建和异常检测奠定了基础。
3、进化模型与异常检测机制
HINTI 框架的核心方法围绕 “多粒度注意力 IOC 提取→异构威胁建模→威胁情报计算” 三个层面展开,针对性解决 IOC 识别精度低、关联刻画不足、知识挖掘有限等问题,具体实现细节如下:
3.1 进化模型的构建
进化模型旨在刻画系统长期运行中的行为变化,解决静态模型无法适应系统动态的问题(L3)。
时序草图序列的生成:在训练阶段,UNICORN 对持续流入的溯源图数据定期生成图草图(如每 3000 条边生成一个草图),形成时序化的草图序列 S (t)(t=0,1,...,T)。这些草图通过保留溯源图的关键特征,反映不同时刻的系统状态。
基于 K-medoids 的聚类与元状态划分:采用 K-medoids 算法对草图序列进行聚类,通过轮廓系数(silhouette coefficient)确定最优聚类数 K。每个聚类代表系统的一种 “元状态”(如启动、初始化、稳定运行等),捕捉特定阶段的行为模式。聚类过程基于草图间的归一化 Jaccard 相似性,确保同类状态具有相似的系统行为特征。
演化轨迹的学习:通过算法 2 将时序草图序列映射为聚类索引的有序列表(进化轨迹 E),记录系统状态的转换过程。例如,系统可能从 “启动” 状态过渡到 “初始化” 状态,最终稳定在 “服务请求” 状态。这种轨迹学习使模型能够理解正常的状态转换逻辑,为异常检测提供基准。

3.2 异常检测的实现
异常检测通过对比实时生成的草图与进化模型,识别偏离正常行为的活动,包括两类异常:不符合现有聚类的草图和无效的状态转换。
实时草图的生成与匹配:部署阶段,UNICORN 按照与训练阶段相同的频率生成实时图草图,并将其与进化模型中的所有子模型进行匹配。对于每个子模型,判断草图是否属于当前状态或合理的下一状态。
异常判断规则:
若草图无法匹配任何聚类,判定为异常(对应未知行为);
若草图匹配的聚类不符合进化轨迹中的状态转换逻辑),判定为异常(对应不合理的行为切换)。
对抗模型污染的设计:与动态更新模型的方法不同,UNICORN 在部署时不修改训练阶段构建的进化模型,避免攻击者通过长期潜伏逐步污染模型(L3)。同时,结合图草图的增量更新机制和时间加权策略,确保模型对系统正常行为的变化具有一定适应性,减少误报。
3.3 关键参数对检测性能的影响
实验表明,多个参数会影响检测效果(如图 3 所示):

跳数(Hop Count, R):定义顶点邻域的探索范围,R=3 时检测性能最优(准确率 0.96),过小(R=1)会因上下文不足导致误报增加,过大(R>3)可能引入冗余信息(表 II、III)。
GCN 嵌入与特征融合:
草图大小(Sketch Size, |S|):影响特征保留的完整性,|S|=2000 时在精度与计算效率间取得平衡,过小会丢失关键特征,过大则可能引发维度灾难(图 3b)。
权重衰减因子(λ):制历史数据的遗忘速率,λ=0.02 时能较好平衡长期行为跟踪与短期变化适应,λ=0(永不遗忘)或 λ=1(快速遗忘)均会降低检测精度(图 3d)。
这些参数的优化使 UNICORN 能够在复杂系统环境中高效识别 APT 攻击,尤其在攻击早期阶段(如供应链攻击中的恶意包交付环节)即可触发警报,减少攻击造成的损失。
4、实验评估
为验证 UNICORN 在高级持续威胁(Advanced Persistent Threats, APT)检测中的有效性,研究基于多源溯源数据开展系列实验,重点评估其检测精度、核心设计的作用及系统性能,具体如下:
4.1 数据集与实验设置
数据来源:
StreamSpot 数据集:包含 6 种场景的信息流图(5 种良性活动如 YouTube 浏览、Gmail 使用,1 种 APT 攻击场景),每种场景 100 个图,由 Linux SystemTap 捕获系统调用生成(表 I)。

DARPA TC 数据集:来自 DARPA 透明计算项目的红蓝对抗实验,包含 CADETS(FreeBSD)、ClearScope(Android)、THEIA(Ubuntu)三种溯源系统捕获的数据,涵盖企业级服务(web 服务器、SSH 服务器等)及多种 APT 攻击(如 Firefox 后门、钓鱼邮件)。
供应链攻击模拟数据集(SC-1、SC-2):在受控实验室环境中,通过 CamFlow 捕获 CI 服务器遭受供应链攻击的全系统溯源数据,攻击利用 GNU wget(CVE-2016-4971)和 GNU Bash(CVE-2014-6271)漏洞,包含良性活动与攻击场景各 125、25 个图(表 VI)。

对比方法: 与 StreamSpot( state-of-the-art 的流式异构图异常检测器)进行对比,评估检测精度差异。
评估指标: 采用精确率(Precision)、召回率(Recall)、准确率(Accuracy)、F 分数(F-score),其中精确率衡量检测结果的准确性,召回率衡量对攻击的覆盖能力,F 分数为两者的调和平均。
实验环境:Amazon EC2 i3.2xlarge Linux 机器(8 vCPUs、61GiB 内存),基于 GraphChi 框架实现图处理,Python 实现建模与评估。
4.2 核心实验结果
4.2.1 与现有技术的对比(StreamSpot 数据集)
检测性能优势:UNICORN 在不同邻域范围(R=1、R=3)下的表现均优于 StreamSpot(表 II):

当 R=3 时,精确率达 0.98、准确率 0.96、F 分数 0.94,显著高于 StreamSpot 的精确率 0.74、准确率 0.66;
扩大邻域范围(R=3)相比 R=1(与 StreamSpot 相当),误报率大幅降低(表 III),如 YouTube 场景的误报从 14 降至 0,验证了多跳上下文分析的价值。

4.2.2 真实 APT 场景检测(DARPA TC 数据集)
跨系统适用性:UNICORN 在不同溯源系统(CADETS、ClearScope、THEIA)的数据集上均实现高精度检测,能识别占审计数据量不足 0.001% 的隐蔽攻击(表 V),性能与 Holmes、Poirot 等规则 - based 系统相当,但无需依赖专家知识。

4.2.3 供应链攻击检测(SC-1、SC-2 数据集)
攻击识别能力:在模拟的供应链攻击中,UNICORN 对 SC-1 的检测准确率达 0.90,SC-2 达 0.77(表 VIII),且能在攻击早期(如恶意包交付、安装阶段)触发警报,避免攻击扩散。

参数影响分析:
邻域跳数(R=3)、草图大小(|S|=2000)、权重衰减因子(λ=0.02)时性能最优;
草图生成间隔(SG=3000)平衡了检测灵敏度与稳定性,过小(SG=500)会导致漏报,过大则降低精度。
4.3 系统性能评估
处理速度:UNICORN 能实时处理流式溯源数据,批处理大小为 6000 时,处理速度接近 CamFlow 的数据流生成速度(图 4a),且对草图大小、跳数等参数不敏感(图 4b、4c),满足 APT 实时监测需求。



资源开销:
CPU 利用率稳定在 12.3%(图 5a),显著低于商用安全产品(26%-90%);

内存占用可控,R=3、|S|=2000 时约 687MB(表 IX),支持长期运行。

这些实验表明,UNICORN 在检测精度、系统适应性和性能开销上均表现优异,能有效应对 APT 的 “低且慢” 特性及复杂系统环境。
5、总结
本文提出的 UNICORN,是一种基于运行时溯源的高级持续威胁(APT)检测器,旨在解决传统检测系统对 APT 检测能力不足、现有溯源分析方法存在静态模型无法捕捉长期行为、动态模型易被破坏、扩展性差等问题。
它通过全系统溯源图分析、图直方图构建、图草图生成、进化模型构建与异常检测等流程,结合针对 APT 的溯源异常检测设计、基于草图的时间加权溯源编码等方法,实现对大规模系统执行数据的高效处理与 APT 精准识别。
实验表明,UNICORN 表现优异,相比现有系统,精确率和准确率分别显著提高 24% 和 30%,能在真实和模拟 APT 场景中高准确率检测攻击,且实时性好、资源开销低。其为 APT 防御提供了高效解决方案。
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com
声明:本文来自安全学术圈,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。