abstract

1
Advanced Persistent Threats (APTs) are difficult todetect due to their “low-and-slow” attack patterns and frequent use of zero-day exploits. We present UNICORN, an anomaly- based APT detector that effectively leverages data provenance analysis. From modeling to detection, UNICORN tailors its design specifically for the unique characteristics of APTs. Through extensive yet time-efficient graph analysis, UNICORN explores provenance graphs that provide rich contextual and historical information to identify stealthy anomalous activities without pre- defined attack signatures. Using a graph sketching technique, it summarizes long-running system execution with space efficiency to combat slow-acting attacks that take place over a long time span. UNICORN further improves its detection capability using a novel modeling approach to understand long-term behavior as the system evolves. Our evaluation shows that UNICORN outperforms an existing state-of-the-art APT detection system and detects real- life APT scenarios with high accuracy.

abstract中主要介绍了:

  • APT 攻击的特点是 “低且慢” 的攻击模型和 zero-day 漏洞的频繁使用
  • 文中提出的 UNICORN 是一种基于异常的 APT 检测工具
  • UNICORN 使用起源图,起源图中提供了丰富的上下文和历史信息,以识别没有预定义攻击特征的异常活动
  • 采用了图形绘制技术,有效地总结了长时间运行的系统执行,以对抗在长时间跨度内发生的慢动作攻击

威胁模型

APT 场景的假设是,攻击者可以非法地获取系统访问权限并且计划长期潜伏不被发现。攻击者可能在不同的阶段使用不同的攻击技术,UNICORN 的目的是检测出主机生成的起源图上的任何阶段的攻击行为。我们假设,相比攻击,UNICORN 会优先检测主机全局异常操作,并且在模型初始阶段没有攻击发生。

数据收集框架的完整性是 UNICORN 正确性的核心,我们假设 Linux security modules 可以正确地为 CamFlow 提供参考监控器的保证。同样对其他数据收集框架进行了类似的假设。

虽然作者假设 UNICORN 为端点上的安全监控器,但是其流式传输来源数据的能力使得他也能够检测主机之外的攻击。

设计

起源信息输入

UNICORN 接受运行在一个或多个系统上运行的数据收集系统生成的数据流,该流由属性标记的边。

数据收集系统构建了一个关系整个系统起源并且具有偏序保证的 DAG,该 DAG 允许高仿的流式计算和完全的上下文分析。

即使使用其他的系统也同样可以获取起源信息,文中使用了 CamFlow 获取起源信息。

构建实时运行的内存直方图

UNICORN 可以构建一个表示整个系统执行历史的流式图形直方图,当新边到达图形数据流时更新直方图元素的计数。

通过迭代探索较大的图邻域,它可以发现带执行上下文的系统实体之间的因果关系。

这是UNICORN构建高效数据结构的第一步,有助于上下文化图形分析。具体而言,直方图中的每个元素描述了图的唯一子结构,同时考虑了附加到子结构中的顶点和边的异构标签,以及这些边的时间顺序。直方图中的每一个元素都描述了图的唯一子结构,即带上下文的图分析。其中考虑到了直方图中附加的异构标签/附加到子结构中的顶点和边的异构标签/以及附加到子结构内顶点和边的异构标签/以及这些边的时间顺序。

为了适应正常系统执行过程中的预期行为变化,UNICORN 定期对与最近事件没有因果关系的直方图元素的影响进行权重衰减。慢慢忘记不相关的过去事件使我们能够在整个系统正常运行期间有效地建模元状态。这并不意味着 UNICORN 忘记了信息丰富的执行历史,相反他可以使用图中的信息流依赖项来保持最新的/重要的/上下文相关的信息。攻击者可以在 APT 攻击中缓慢渗透受害者系统,希望基于时间的 IDS 最终忘记初始攻击,但是此类攻击无法打破对于最终成功攻击的信息流依赖。

对于构建内存直方图有两个要求:

  • 能够表示长时间跨度的因果关系
  • 必须能够实时地实现基于实时图数据流的算法,阻止攻击的发生,而不是仅仅检测攻击的发生

具体构建采用了一种基于一维同构WL测试的线性时间快速Weisfeiler-Lehman(WL)子树图核算法,该算法优势是在对图的辨识能力要比许多最先进的图学算法效果更好。

图直方图生成算法

周期地计算一个固定大小的缩略图

在纯流媒体环境中,当 UNICORN 总结整个来源图时,唯一直方图的数量可以任意增长。这种大小上的变化使得有效计算两个直方图之间的相似性具有挑战性,并且设计用于后期建模和检测的算法不切实际。

因此 UNICORN 采用了一种保持相似性的散列技术,将直方图转化为缩略图。缩略图是可增量维护的,这意味着 UNICORN 不需要在内存中保存整个起源图,而且缩略图的大小是恒定的,并且缩略图保留了两个图形直方图之间的标准化 jaccard 相似性。

在后续分析中,这种距离保持特性对于基于相同图相似性度量的聚类算法尤为重要。

UNICORN 使用 HistoSketch 进行缩略图的生成,该算法可以保证 数据相似度 的一致性,并且该算法是固定时间的算法,可以满足实时数据流的计算要求。

将缩略图聚集到模型中

UNICORN 建立了一个正常的系统执行模型,并在没有攻击知识的情况下识别异常活动,然而于传统的集群方式不同,UNICRON 利用其流化能力生成进化模型。该模型通过在其执行的各个阶段对系统活动进行集群来捕获单个执行中的行为变化,但当攻击者可能破坏系统时,UNICORN 不会在运行时动态修改模型,因此他更适合部署在具有潜在 APT 攻击并长期运行的系统中。

流变体和复杂性

在流式环境中,只在新到达的顶点和未来临域受新边影响的顶点上运行算法 1. 在每个起源实体或活动使用多个顶点来表示对应对象的不同版本或状态的起源图中,我们只需要计算/更新每个新边的目标顶点的邻域,因为顶点的所有传入边在任何传出边之前到达。

图与边

如图2,UNICORN 利用这种偏序来最小化计算,这在处理大型图时尤为重要。并在实施时通过批量处理进一步降低了计算量。所以算法 1 实际运行时的复杂度更低,与原始一维Weisfeiler-Lehman算法的运行时复杂度近似相等:使用R-hop邻域,复杂度为O(R | E |)。

对概念漂移的直方图元素进行权重衰减

APT 潜在攻击的持续时间很长,这表明一个好的模型必须能够涵盖系统的长期行为,然后系统行为通常会随着时间的推移而改变,这导致流式起源图的基本统计特征发生变化,这种现象被叫做概念漂移。

UNICORN通过使用直方图元素计数的指数权重衰减来逐渐忘记过时的数据,从而解释了系统行为的这种变化。分配权重与数据的年龄成反比。

对于概念漂移,UNICORN 创建了进化模型来捕捉系统中的正常改变,当然,是在训练的过程中创建该模型,而不是在部署阶段。

生成进化树

入侵检测场景的适用性

通过权重衰减参数 lambda 来维护逐步遗忘的数据,使得 UNICORN 能够关注当前事件和具有因果关系的数据。在部署期间动态演化模型极有可能被长期 APT 攻击所污染。

异常检测

在部署阶段,异常检测将会如上述步骤所中所介绍的周期地生成缩略图,当获得一张缩略图的时候, UNICORN 会将该缩略图与所有建模时学习到的子模型进行比较,将其拟合到每个子模型的簇中。假设 UNICORN 会从系统启动开始监控,并且跟踪每一个子模块内的系统状态转换。要在任何子模型中被视为有效,缩略图图必须适合当前状态或者(其中一个)下一个状态(在缩略图捕获系统执行中的状态转换的情况下);否则,它被认为是异常的。因此我们检测到两种形式的异常行为:不适合现有集群的缩略图和集群之间的无效转换。

以上就是本文设计内容abstract,后续实施与评估不再赘述。