Xu Z, Fang P, Liu C, et al. Depcomm: Graph summarization on system audit logs for attack investigation[C]//2022 IEEE Symposium on Security and Privacy (SP). IEEE, 2022: 540-557.
提出了 DEPCOMM,这是一种图摘要方法,通过将大图划分为以进程为中心的社区并为每个社区提供摘要,从依赖图生成摘要图。每个社区都由一组相互协作以完成某些系统活动(例如文件压缩)的亲密进程以及这些进程访问的资源(例如文件)组成。在社区内,DEPCOMM 进一步识别由不太重要和重复的系统活动引起的冗余边,并对这些边进行压缩。
DEPCOMM 为依赖图平均生成 18.4 个社区,比原始图小约 70 倍。与 9 种最先进的社区检测算法相比,DEPCOMM 在检测社区方面平均取得了比这些算法高 2.29 倍的 F1 分数。通过与HOLMES自动化技术配合,DEPCOMM能够以96.2%的召回率识别出与攻击相关的社区。
由于三个主要原因,手动攻击调查仍然是不可或缺的:
动机:开发一种图摘要方法,该方法在依赖图中保留系统活动的语义,同时通过隐藏不太重要的细节来缩小其大小。
挑战及应对:
依赖图是一种异构图,平等对待每个节点的通用汇总技术无法有效地检测代表主要系统活动的社区。
将依赖图划分为以进程为中心的社区,其中每个社区包括一组亲密的进程(父子或兄弟关系)以及这些进程访问的系统资源。
许多不太重要的依赖关系,成为依赖关系图的主要部分,压缩和隐藏这些活动是一项具有挑战性的任务
DEPCOMM 识别基于进程和基于资源的模式,并根据这些模式为每个社区压缩边
在依赖图中,代表系统活动的边序列应该是生成的用于攻击调查的摘要图的核心。如何总结这些优势成为DEPCOMM的另一个挑战
对每个社区内的 InfoPath 进行优先级排序,并将更有可能代表攻击步骤和主要系统活动的 InfoPath(信息流) 排名在顶部
DEPCOMM 提供了新颖的技术来检测以进程为中心的社区,在检测到的社区内执行压缩,并为每个社区生成代表性摘要。实验室+DARPA TC,总共有约 1.5 亿个系统审计事件,生成的依赖图平均由 1, 302.1 个节点和 7, 553.4 个边组成。在我们的评估中,DEPCOMM 为依赖图平均生成 18.4 个社区,比原始图小约 70 倍。这些社区平均包含 43.1 个节点和 248.5 条边。
给定 POI 事件(例如,有关文件下载的警报),DEPCOMM 通过执行向后因果分析来跟踪依赖关系,从而构建依赖关系图。
为何不前后向都分析?
边合并:操作系统通常通过将数据按比例分配给多个系统调用来执行读/写任务,这会导致进程节点和文件/网络节点之间通常有许多平行边,表示短时间内重复的读/写操作,将这些平行边合并为一条边。
只读文件过滤:许多只读文件通常是库、配置文件和资源用于不包含有用的攻击相关信息的进程初始化,因此删去。
分级随机游走
以进程为中心的社区是一个图,它包含(1)一个主进程节点,(2)一组子进程节点,表示主进程派生的子进程的子集,使得这些子进程之间具有数据依赖性,以及(3)主进程和这些子进程访问的一组资源节点。
采用固定的步长根据邻居和全局谱系树进行加权随机游走,然后利用word2vec学习路径的行为表示,并将这些路径聚类到不同的社区中。八种游走规则:
进程节点表示
DEPCOMM采用SkipGram这一广泛使用的词表示学习算法来学习行走路线中过程节点的行为表示。更具体地说,给定进程节点p和上下文窗口大小t, SkipGram从包含p的每个行走路线中提取子序列Wp = {vi−t,···,vi,··,vi+t},该子序列由vi = p及其上下文节点vi+k (k∈(−t, t))组成。然后通过最大化子序列中出现的任何节点的对数概率来学习vi的d维向量Φ(vi)
进程节点聚类
DEPCOMM采用了一种软聚类方法FCM (Fuzzy C-Means),FCM通过最小化目标函数来输出每个集群中每个过程节点的隶属度
J = ∑ i = 1 ∣ V p ∣ ∑ j = 1 ∣ C ∣ u i j 2 ∣ ∣ v i − c j ∣ ∣ 2 J~=~\sum_{i=1}^{|V_{p}|}\sum_{j=1}^{|C|}u_{ij}^{2}||v_{i}~-~c_{j}||^{2} J = i=1∑∣Vp∣j=1∑∣C∣uij2∣∣vi − cj∣∣2,其中uij表示过程节点vi属于共同体cj的程度,如果uij高于给定的阈值,则Vi被分类为cj。
DEPCOMM根据模糊划分系数(FPC) F ( ∣ C ∣ ) = 1 / ∣ V p ∣ ∑ j = 1 ∣ C ˉ ∣ ∑ i = 1 ∣ V p ∣ u i j 2 F(|C|)=1/|V_{p}|\sum_{j=1}^{|\bar{C}|}\sum_{i=1}^{|V_{p}|}u_{ij}^{2} F(∣C∣)=1/∣Vp∣j=1∑∣Cˉ∣i=1∑∣Vp∣uij2来确定社区的数量|C|,用于衡量不同数量的集群的有效性。
资源节点关联
给定一个资源节点r和一个流程节点p,如果它们通过一条边连接,则v与p所属的社区相关联。如果一个资源节点与来自不同社区的多个流程节点连接,则该资源节点是一个重叠节点,我们将创建资源节点的副本,并为每个社区分配一个副本。
跨社区依赖关系
我们将跨社区的依赖关系分为基于边的依赖关系(即,由社区之间的社区间的边表示的依赖关系)和基于节点的依赖关系(即,由重叠节点表示的依赖关系)。创建副本,每个社区一个,中间新建一条边。
基于进程的模式
如图a所示,重复活动合并。包括四个步骤:
基于资源的模式:
DEPCOMM首先将进程与其访问的资源关联起来,然后搜索每个资源以识别重复的访问。根据发现的模式,将资源节点合并为一个节点,合并节点的属性是原始资源节点属性的并集。
DEPCOMM生成一个由三部分组成的摘要:主进程、时间跨度和排名最高的infopath。
信息流抽取
对于一个社区,确定其输入和输出节点,然后使用深度优先搜索找一条最长的路径。
信息流优先级
优先级排序包含四个关键特征:
基于这些特征,我们通过给每个特征赋予相等的权重来计算Pk的优先级得分。根据分配的优先级分数,我们对infathath进行排序,并选择最前面的n条路径作为汇总,安全分析人员可以灵活地选择n的值。
实验室环境的6次攻击和DARPA TC的8次攻击。
提前请专家进行社区划分,与自动检测的做对比。
与NoDoze进行对比