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
目录
- 0. 摘要
- 1. 引言
- 2. 背景与动机
- A.动机实例
- B. 现有方案的挑战
- C. 推荐系统用于威胁检测
- 3. 问题定义
- 4. overview
- 5. 推荐模型
- A.一阶信息建模
- B. 高阶信息建模
- C. 威胁检测学习
- D. 模型适应
- 5. 实现
- 6. 评估
- 7. 附录
0. 摘要
现有方法局限:误报、依赖专家知识、粗粒度检测信号
在本文中,我们认识到网络安全中的威胁检测与信息检索中的推荐之间的结构相似性。通过将系统实体交互的安全概念映射到用户-项目交互的推荐概念,我们通过预测系统实体对其交互实体的偏好来识别网络威胁。受推荐系统中的 “通过项目辅助信息建模高阶连接” 的启发,定制了一个自动检测系统 SHADEWATCHER。
- 它通过图神经网络发挥审计记录中高阶信息的潜力,提高检测效率
- 配备动态更新,以更好地泛化错误警报
- 现实生活和模拟网络攻击场景评估
- 几秒钟内查明来自近百万系统实体交互的威胁
1. 引言
现有的溯源图检测器:
- 基于统计的检测:通过审计记录在溯源图中的稀有性来量化审计记录的可疑程度。容易对罕见但正常的系统活动产生大量误报。
- 基于规范的检测:将审计记录与已知攻击模式相关的安全策略知识库进行匹配 。这种启发式方法的开发既耗时又容易出错。
- 基于学习的检测:扩展了机器学习技术来模拟良性行为并检测它们的偏差。当前的学习方法会在粗粒度级别(例如行为级别)产生检测信号。
通过将系统实体交互和实体上下文信息的网络安全概念映射到用户-项目交互和项目辅助信息的推荐概念,我们可以将网络威胁检测制定为推荐任务。特别是,我们观察到语义相似的系统实体会表现出相似的交互偏好。例如,敏感文件(例如 /etc/passwd 和 /etc/shadow)通常不与公共网络交互,否则表明数据泄露。基于这一观察,威胁检测可以进一步指定为预测系统实体不 “喜欢” 其交互实体的可能性。威胁检测的目标是系统实体不太可能喜欢的交互,因为此类交互通常是强烈的攻击指标。
在本文中,我们介绍了 SHADEWATCHER,这是第一个通过系统实体交互建议来分析网络威胁的系统。
- 上下文感知嵌入模型提取系统实体的辅助信息
- 基于图神经网络的推荐模型,该模型通过递归传播来自相邻实体的信息来利用高阶连通性
- 根据分析师对检测信号的反馈动态更新模型。这允许将错误推荐作为附加监督来集成,以提高其检测能力
- 半监督,接受了未标记的良性系统实体交互与标记的分析师对误报反馈的组合训练
考虑 Linux /proc 文件系统。由于 /proc/25/stat 和 /proc/27/stat 属于不同的进程,它们在来源图中通常是断开连接的,被直接连接视为因果无关。但是,它们都提供有关进程的状态信息,这些信息可以在考虑它们周围的边界上下文时反映出来。
推荐领域探索了类似的问题,早期的推荐系统 [27]、[28] 假设行为相似的用户会共享对项目的偏好,以便他们通过历史用户项目交互找到相似的用户来理解用户偏好。然而,用户和项目之间的直接连接,称为一阶连接,不足以比较不同项目之间的语义相似性。为了解决这个问题,研究人员进一步考虑了项目的辅助信息,例如电影的类型,以捕获项目语义。其核心是辅助信息可以形成高阶连接,以链接在用户-项目交互中断开连接的相似项目。
这些设计使得shadewatcher在以下方面优于现有检测器:
- 不是将历史频率作为衡量怀疑程度的指标,而是推断系统实体的内在语义以发现异常交互
- 提供了一种端到端的解决方案,可以在事先不知道攻击的情况下检测威胁
- 产生细粒度的检测信号,突出攻击的关键指标
使用DARPA TC评估,高精度和召回率。
2. 背景与动机
A.动机实例
一个例子,25和27号进程虽然在溯源图上是没有直接关系的,但是根据后继信息是可以推出相关性的。
B. 现有方案的挑战
基于异常的检测——误报高。良性的稀有事件逐渐泛化的过程会出现很多误报。
基于规范的检测——耗时、依赖专家知识、主观性太强、质量参差不齐。
基于学习的检测——可解释性差、只能定位,响应则需要人工进一步分析
C. 推荐系统用于威胁检测
低可能性的交互视为潜在的网络威胁。
如图1b所示,爱丽丝→钢铁侠和鲍勃→钢铁侠,表明爱丽丝和鲍勃之间的行为相似性。早期的推荐系统预测爱丽丝喜欢雷神,因为鲍勃喜欢它。然而,考虑到向特定用户推荐相关项目,用户-项目交互是不够的,因为它们无法比较项目语义相似性。为了解决这个问题,最近提出的方法利用项目辅助信息(side information,例如电影类型和工作室)来形成链接语义相似项目的高阶连接。例如,钢铁侠→动作→复仇者联盟和钢铁侠→漫威工作室→复仇者联盟的二阶连接表明爱丽丝可能更喜欢复仇者联盟,因为它的额外信息与钢铁侠的相同。
类似地,更好地理解系统实体交互的一种直观方法是识别系统实体的辅助信息以形成高阶连接。例如,如果 /proc/27/stat 通过辅助信息(例如,图 1c 中的进程状态信息)与 /proc/25/stat 相关联,我们将确定它们共享与其他系统实体交互的概率(例如,缓存)。我们将上下文信息视为描述系统实体的辅助知识。因此,系统实体的因果关系形成了推荐中的用户-项目交互,而系统上下文提供了辅助信息以形成高阶连接。由于系统实体的上下文信息反映在起源图中的邻居中,因此我们将高阶连接捕获为关联相邻实体的多跳路径。例如,检测图 1a 中的扩展后门攻击变成推荐系统实体,gtcache 在图 1c 中不太可能与之交互。
3. 问题定义
一阶信息:单跳路径
高阶信息:多跳路径
二分图:
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视为无交互
4. overview
四个主要阶段:构建知识图(KG)、生成推荐模型、检测网络威胁和调整模型
首先将系统审计记录转换为来源图(PG),并将系统实体交互提取为二分图(BG)。然后,将PG和BG组合成KG,然后使用KG学习推荐模型,该模型的目标是预测系统实体对其交互实体的偏好。
5. 推荐模型
主要由三个部分组成:1)对一阶信息进行建模,通过使用上下文将系统实体参数化为嵌入(即向量化表示);2)建模高阶信息,通过递归传播来自多跳相邻实体的信息来更新系统实体表示;3)学习检测威胁,在两个系统实体表示的顶部预测交互的对抗性概率。
A.一阶信息建模
为了优化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′)+γ)
我们通过用随机实体替换有效元组中的一个系统实体来生成损坏的元组。总之,最小化一阶建模的损失使我们能够将语义和行为相似性编码到系统实体表示中。
B. 高阶信息建模
一个例子: / 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))
C. 威胁检测学习
经过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+λ∥Θ∥
D. 模型适应
我们为分析师提供了一个选项,可以在假阳性相互作用上给出新的标签,允许SHADEWATCHER使用假警报作为额外的监督修改其推荐模型。
5. 实现
6. 评估
TC-e3-trace+仿真数据集
对比试验:Poirot和Morse
shadewatcher无需先验知识,粒度更细
模型适应性
耗时
7. 附录
- 学习的方法如果推广到在线检测,会产生概念漂移。一个潜在的解决方案是考虑系统实体的形态学知识(例如,文件路径、所有者和特权),以概括和捕获以前未观察到的实体的语义。
- 减少噪声:不会改变数据来源的冗余活动,如多次接收数据包;临时文件;与库文件的交互
- 学习行为的可视化