SHADEWATCHER: Recommendation-guided CyberThreat Analysis using System Audit Records
S&P-2022
新加坡国立大学、中国科学技术大学
Zengy J, Wang X, Liu J, et al. Shadewatcher: Recommendation-guided cyber threat analysis using system audit records[C]//2022 IEEE Symposium on Security and Privacy (SP). IEEE, 2022: 489-506.
开源:https://github.com/jun-zeng/ShadeWatcher
数据集:TC e3
现有方法局限:误报、依赖专家知识、粗粒度检测信号
在本文中,我们认识到网络安全中的威胁检测与信息检索中的推荐之间的结构相似性。通过将系统实体交互的安全概念映射到用户-项目交互的推荐概念,我们通过预测系统实体对其交互实体的偏好来识别网络威胁。受推荐系统中的 “通过项目辅助信息建模高阶连接” 的启发,定制了一个自动检测系统 SHADEWATCHER。
现有的溯源图检测器:
通过将系统实体交互和实体上下文信息的网络安全概念映射到用户-项目交互和项目辅助信息的推荐概念,我们可以将网络威胁检测制定为推荐任务。特别是,我们观察到语义相似的系统实体会表现出相似的交互偏好。例如,敏感文件(例如 /etc/passwd 和 /etc/shadow)通常不与公共网络交互,否则表明数据泄露。基于这一观察,威胁检测可以进一步指定为预测系统实体不 “喜欢” 其交互实体的可能性。威胁检测的目标是系统实体不太可能喜欢的交互,因为此类交互通常是强烈的攻击指标。
在本文中,我们介绍了 SHADEWATCHER,这是第一个通过系统实体交互建议来分析网络威胁的系统。
考虑 Linux /proc 文件系统。由于 /proc/25/stat 和 /proc/27/stat 属于不同的进程,它们在来源图中通常是断开连接的,被直接连接视为因果无关。但是,它们都提供有关进程的状态信息,这些信息可以在考虑它们周围的边界上下文时反映出来。
推荐领域探索了类似的问题,早期的推荐系统 [27]、[28] 假设行为相似的用户会共享对项目的偏好,以便他们通过历史用户项目交互找到相似的用户来理解用户偏好。然而,用户和项目之间的直接连接,称为一阶连接,不足以比较不同项目之间的语义相似性。为了解决这个问题,研究人员进一步考虑了项目的辅助信息,例如电影的类型,以捕获项目语义。其核心是辅助信息可以形成高阶连接,以链接在用户-项目交互中断开连接的相似项目。
这些设计使得shadewatcher在以下方面优于现有检测器:
使用DARPA TC评估,高精度和召回率。
一个例子,25和27号进程虽然在溯源图上是没有直接关系的,但是根据后继信息是可以推出相关性的。
基于异常的检测——误报高。良性的稀有事件逐渐泛化的过程会出现很多误报。
基于规范的检测——耗时、依赖专家知识、主观性太强、质量参差不齐。
基于学习的检测——可解释性差、只能定位,响应则需要人工进一步分析
低可能性的交互视为潜在的网络威胁。
如图1b所示,爱丽丝→钢铁侠和鲍勃→钢铁侠,表明爱丽丝和鲍勃之间的行为相似性。早期的推荐系统预测爱丽丝喜欢雷神,因为鲍勃喜欢它。然而,考虑到向特定用户推荐相关项目,用户-项目交互是不够的,因为它们无法比较项目语义相似性。为了解决这个问题,最近提出的方法利用项目辅助信息(side information,例如电影类型和工作室)来形成链接语义相似项目的高阶连接。例如,钢铁侠→动作→复仇者联盟和钢铁侠→漫威工作室→复仇者联盟的二阶连接表明爱丽丝可能更喜欢复仇者联盟,因为它的额外信息与钢铁侠的相同。
类似地,更好地理解系统实体交互的一种直观方法是识别系统实体的辅助信息以形成高阶连接。例如,如果 /proc/27/stat 通过辅助信息(例如,图 1c 中的进程状态信息)与 /proc/25/stat 相关联,我们将确定它们共享与其他系统实体交互的概率(例如,缓存)。我们将上下文信息视为描述系统实体的辅助知识。因此,系统实体的因果关系形成了推荐中的用户-项目交互,而系统上下文提供了辅助信息以形成高阶连接。由于系统实体的上下文信息反映在起源图中的邻居中,因此我们将高阶连接捕获为关联相邻实体的多跳路径。例如,检测图 1a 中的扩展后门攻击变成推荐系统实体,gtcache 在图 1c 中不太可能与之交互。
一阶信息:单跳路径
高阶信息:多跳路径
二分图: G B = { ( e , y e e ′ ˙ , e ′ ) ∣ e , e ′ ∈ ˙ E ) } \mathcal{G}_{B}=\{(e,\dot{y_{ee^{\prime}}},e^{\prime})|e,e^{\prime}\dot{\in}\mathcal{E})\} GB={(e,yee′˙,e′)∣e,e′∈˙E)}, y e e ′ = 1 y_{ee^{\prime}}=1 yee′=1意味着有交互,反之为0视为无交互
四个主要阶段:构建知识图(KG)、生成推荐模型、检测网络威胁和调整模型
首先将系统审计记录转换为来源图(PG),并将系统实体交互提取为二分图(BG)。然后,将PG和BG组合成KG,然后使用KG学习推荐模型,该模型的目标是预测系统实体对其交互实体的偏好。
主要由三个部分组成:1)对一阶信息进行建模,通过使用上下文将系统实体参数化为嵌入(即向量化表示);2)建模高阶信息,通过递归传播来自多跳相邻实体的信息来更新系统实体表示;3)学习检测威胁,在两个系统实体表示的顶部预测交互的对抗性概率。
为了优化TransR的表示学习,我们采用了基于边缘的两两排序损失,这使得有效元组(在KG中观察到)的可信性得分低于损坏元组(未观察到)的可信性得分。对于实体 h , t h,t h,t和关系 r r r
L f i r s t = ∑ ( h , r , t ) ∈ G K ∑ ( h ′ , r ′ , t ′ ) ∉ G K σ ( f ( h , r , t ) − f ( h ′ , r ′ , t ′ ) + γ ) \mathcal{L}_{first}=\sum_{(h,r,t)\in\mathcal{G}_K}\sum_{(h^{\prime},r^{\prime},t^{\prime})\notin\mathcal{G}_K}\sigma(f(h,r,t)-f(h^{\prime},r^{\prime},t^{\prime})+\gamma) Lfirst=(h,r,t)∈GK∑(h′,r′,t′)∈/GK∑σ(f(h,r,t)−f(h′,r′,t′)+γ)
我们通过用随机实体替换有效元组中的一个系统实体来生成损坏的元组。总之,最小化一阶建模的损失使我们能够将语义和行为相似性编码到系统实体表示中。
一个例子: / p r o c / 25 / s t a t → r 0 g t c a c h e → r 0 / p r o c / 27 / s t a t /\mathrm{proc}/25/\mathrm{stat}\xrightarrow{r_0}\mathrm{gtcache}\xrightarrow{r_0}/\mathrm{proc}/27/\mathrm{stat} /proc/25/statr0gtcacher0/proc/27/stat 和 l e t c / p a s s w d → r 1 g t c a c h e → r 4 146.153.68.151 : 80 letc/passwd \xrightarrow{r_1}gtcache \xrightarrow{r_4}146.153.68.151:80 letc/passwdr1gtcacher4146.153.68.151:80,同样是多跳链接,前者表现出相似性,而后者表现出具体的信息信息行为。
采用GNN模型将多跳路径集成到系统实体中,对于实体 h h h
z h ( l ) = g ( z h ( l − 1 ) , z N h ( l − 1 ) ) \mathbf{z}_{h}^{(l)}=g(\mathbf{z}_{h}^{(l-1)},\mathbf{z}_{\mathcal{N}_{h}}^{(l-1)}) zh(l)=g(zh(l−1),zNh(l−1)),前者为 h h h 在传播层前一层的表示,后者为邻居传播来的信息。
z N h ( l − 1 ) = ∑ ( h , r , t ) ∈ N h α ( h , r , t ) z t ( l − 1 ) \mathbf{z}_{\mathcal{N}_h}^{(l-1)}=\sum_{(h,r,t)\in\mathcal{N}_h}\alpha(h,r,t)\mathbf{z}_{t}^{(l-1)} zNh(l−1)=(h,r,t)∈Nh∑α(h,r,t)zt(l−1)
为了区分对于当前实体贡献不同的邻居实体,引入注意力机制, α \alpha α为注意力函数。
在信息聚合方面,采用GraphSage Aggregator更新系统实体表示。
g ( z h ( l − 1 ) , z N h ( l − 1 ) ) = L e a k y R e L U ( ( z h ( l − 1 ) ∣ ∣ z N h ( l − 1 ) ) W ( l ) ) g(\mathbf{z}_{h}^{(l-1)},\mathbf{z}_{\mathcal{N}_{h}}^{(l-1)})=\mathrm{LeakyReLU}((\mathbf{z}_{h}^{(l-1)}||\mathbf{z}_{\mathcal{N}_{h}}^{(l-1)})\mathbf{W}^{(l)}) g(zh(l−1),zNh(l−1))=LeakyReLU((zh(l−1)∣∣zNh(l−1))W(l))
经过L次信息传播和聚合迭代,我们得到实体h的一系列表示,进一步聚合,得到最终的表示 z h ∗ = z ( 0 ) ∣ ∣ ⋯ ∣ ∣ z h ( L ) \mathbf{z}_{h}^{*}=\mathbf{z}^{(0)}||\cdots||\mathbf{z}_{h}^{(L)} zh∗=z(0)∣∣⋯∣∣zh(L),对于任意实体 h , t h,t h,t,采用内积来预测交互的可能性。 y ^ h t = z h ∗ ⊤ z t ∗ \hat{y}_{ht}=\mathbf{z}_h^*{}^\top\mathbf{z}_t^* y^ht=zh∗⊤zt∗。
L h i g h e r = ∑ ( h , r 0 , t ) ∈ G K ( h ′ , r 0 , t ′ ) ∉ G K σ ( y ^ h t − y ^ h ′ t ′ ) \mathcal{L}_{higher}=\sum_{(h,r_0,t)\in\mathcal{G}_K(h^{\prime},r_0,t^{\prime})\notin\mathcal{G}_K}\sigma(\hat{y}_{ht}-\hat{y}_{h^{\prime}t^{\prime}}) Lhigher=(h,r0,t)∈GK(h′,r0,t′)∈/GK∑σ(y^ht−y^h′t′) L = L f i r s t + L h i g h e r + λ ∥ Θ ∥ \mathcal{L}=\mathcal{L}_{first}+\mathcal{L}_{higher}+\lambda\left\|\Theta\right\| L=Lfirst+Lhigher+λ∥Θ∥
我们为分析师提供了一个选项,可以在假阳性相互作用上给出新的标签,允许SHADEWATCHER使用假警报作为额外的监督修改其推荐模型。
TC-e3-trace+仿真数据集
对比试验:Poirot和Morse
shadewatcher无需先验知识,粒度更细