导读:
面向系统审计日志的溯源图分析已经是APT攻击调查的主要手段。溯源图节点代表系统实体(包括进程、文件和网络),边代表系统实体之间的依赖关系。攻击调查是在溯源图上追踪攻击源头并构建完整的攻击路径。依赖爆炸导致溯源图规模庞大,将为攻击调查带来巨大的存储开销和时间开销。为解决该问题,本文提出进程重复模式压缩和文件重复模式压缩去减小溯源图规模。其中,进程重复模式代表系统在不同时间调用相同进程执行相同的文件读写任务,而文件重复模式代表多个文件被相同进程处理。这些模式均表示重复的行为,不会带来更多有价值的信息,因此压缩它们不会影响攻击调查。本文在6个真实攻击数据集(约1948万个系统事件)进行实验验证,结果指出溯源图节点和边的压缩率平均分别为56.5%和58.0%。此外,在压缩前和压缩后的溯源图上分别执行攻击调查,结果证明本文的压缩方法不会影响攻击调查结果。
作者信息: 李苍铭, 徐志强:江西理工大学信息工程学院,江西 赣州
正文
高级持续威胁(APT)是一种多步渐进式攻击,具有攻击手段多样、隐蔽性强、持久性高等特点,可以长期潜伏在目标系统中,对系统造成敏感数据泄漏和可用性破坏等危害,已经成为企业和政府机构中主机系统的主要威胁之一。
攻击调查取证是APT防御的重要环节之一。长时进程(如bash,firefox等)的运行通常会产生大量系统事件,导致依赖爆炸,使得溯源图规模庞大(平均50万事件/24小时) 。存储这些溯源图必然导致巨大的开销。最重要的是,在如此庞大的溯源图中分析攻击路径将会带来巨大的时间开销。因此,在不影响攻击调查的情况下减小溯源图规模十分必要。因此,本文提出一套针对冗余子结构的压缩方法。
文本在6个真实场景的攻击数据集进行评估。评估数据共有1948万个系统事件,生成的溯源图平均有5300个节点和1,909,019条边。本文压缩方法的节点压缩率平均56.5%,边压缩率平均58.0%,压缩执行时间平均0.146秒,表现出较高的压缩效率。为了评估压缩后的溯源图对攻击调查的影响,本文采用Nodoze和DepComm攻击调查方法在原始溯源图和压缩后溯源图分别进行分析,检测出的攻击路径均达到100%的相似性,而且在压缩后溯源图上的调查时间分别平均降低了73.9%和64.1%。因此,本文的压缩方法不仅没有影响攻击调查结果,而且降低了调查时间。
一、溯源图生成与预处理
溯源图生成:本文采用Sysdig系统监控工具在主流操作系统(如Windows和Linux)上采集系统审计日志,包括进程事件、文件事件和网络事件。其中每个采集的实体和事件记录了重要的属性信息,如表1所示。利用因果分析技术对采集的日志进行依赖分析,构建依赖关系图,其中每一个节点被赋予唯一的ID号。之后,基于POI事件,通过backtrack算法反向迭代追踪与POI事件存在因果依赖关系的早期事件,将这些事件构成该POI事件的溯源图。

预处理:本文的预处理涵盖了已有的溯源图压缩工作,包括平行边合并、只读文件节点移除和临时文件节点移除。Xu等指出进程节点和文件/网络节点之间存在多条平行边,这些平行边代表重复的读/写操作,并没有提供更多有价值的信息。因此,本文直接将具有相同操作类型的平行边合并为一条。Tang等指出只读文件通常为用于系统初始化的配置文件和库文件。由于这些只读文件没有被写入,所以不含有攻击注入的信息。本文将溯源图中不含入射边的文件节点从溯源图中移除。Lee等指出一个文件如果只被一个进程读取和写入,则该文件被看作是不可达实体,将它移除不会影响溯源分析。本文将只有一个邻居进程节点的文件节点从溯源图中移除。
二、进程重复模式压缩
进程重复模式代表一个进程多次创建相同子进程,由这些子进程对相同文件执行相同操作。本文是在预处理后的溯源图上执行如此模式的识别,之后合并其中相同的节点和边。该过程包括两个阶段:重复模式识别和重复模式压缩。
重复模式识别:这个过程包括如下步骤:
步骤1:建立进程世系树。在预处理后的溯源图上,本文通过遍历进程节点构建进程世系树。具体来说,将没有父进程的进程节点作为根,以根为起点沿着进程事件之间的依赖关系向前遍历溯源图,之后将得到的进程节点添加到树中。进程世系树呈现了进程之间的创建关系。
步骤2:划分层级。本文对构建的进程世系树从根节点开始划分层级。具体地,所有根节点为层级1,根节点的所有子节点为层级2,该子节点的所有子节点为层级3,依次类推,直到树的最底层为层级N。如图1所示,进程cron作为根节点为层级1,其两个子进程sh为层级2,sh的子进程sed为层级3,sed没有子进程,因此最大层级数为3。
步骤3:关联访问的文件和网络。为捕获进程世系树中进程与文件和网络的交互行为,本文将进程在溯源图中直接连接的文件节点、网络节点和边属性信息关联到进程世系树节点中。具体为,将进程名、父进程名和PID、访问的文件名、访问的网络IP、对文件和网络的操作类型作为进程世系树节点的属性信息。如图1(a)所示,进程节点sh (5739)关联的属性包括:sh、cron (112)、xxx.sh、read。

步骤4:提取子树。进程重复模式中的每一次进程调用行为在进程世系树中是一颗满子树。满子树包括一个节点和它的所有后代。具体为,以层级n (n ≥ 2)的进程作为子树的根节点,采用自上向下层次遍历算法遍历所有后代,得到一颗满子树。
步骤5:挖掘重复模式。进程重复模式是一组完全相同的满子树,包括相同的结构和节点属性。首先,对提取的满子树进行前续遍历。之后,根据节点访问次序和关联的节点属性,将子树编码为字符串,并标识相同的字符串,即重复的子树。最后转到下一层级,即n = n + 1,返回步骤4继续搜索,直到最高层级(即n = N)。
重复模式压缩:这里将重复子树中相同位置的节点和边进行合并。为了保留原节点和边属性信息,本文将其整合到压缩后的节点和边中。对于节点属性,压缩后的PID是原节点PID的并集。对于边属性,压缩后的起始时间为原边起始时间的最小值,结束时间为原边结束时间的最大值。
三、压缩效果评估

本文所提的进程重复模式和文件重复模式压缩是在预处理后的溯源图上执行的。预处理包括已有的压缩过程:合并平行边、移除只读文件节点、移除不可达文件节点。本节实验是验证所提压缩方法能否在已有的压缩工作基础上进一步减小溯源图规模。表2给出了在6个攻击溯源图上的压缩结果。针对进程重复模式,压缩后的节点数和边数相比压缩前(预处理后)分别平均减少了121个和296条,平均压缩率为43.84%和41.69%,最大压缩率为86.72%和88.06% (A6)。文件重复模式压缩是在进程重复模式压缩后进行,其压缩后的节点数和边数相比压缩前(进程重复模式压缩后)分别平均减少了35个和116条,平均压缩率为22.59%和28.02%,最大压缩率为32.28%和30.29%。由此可见,进程重复模式压缩和文件重复模式压缩在已有压缩工作基础上再一次减小了溯源图规模。
四、运行时间评估

为评估运行时间,本实验针对6个攻击溯源图统计了每个阶段的运行时间(如表4所示)。具体来说,溯源图构建平均用时978.300秒,预处理平均用时515.440秒,进程重复模式压缩平均用时0.107秒,文件重复模式压缩平均用时0.039秒。由此可见,本文提出的压缩方法总用时(重复模式压缩时间 + 文件重复模式压缩时间)不超过0.2秒,用时较少,不会占用更多攻击调查时间。
结论
本文发现从系统审计日志构建的溯源图存在大量重复的冗余结构,这些冗余结构被分为进程重复模式和文件重复模式,并提出有效的压缩方法。本文通过进程世系树构建,文件和网络信息关联,重复满子树遍历完成进程重复模式压缩。本文通过一阶邻居相似性搜索实现文件重复模式压缩。最后,本文通过实验在真实数据集上进行压缩效果评估、攻击调查影响评估和运行时间评估,证明所提压缩方法的有效性。
基金项目:
国家自然科学基金(62362038)
博士启动基金(205200100654)