“攻击者以图的方式来思考”——微软著名威胁情报研究员 John Lambert 曾经这么说过。展现图真正的力量不在于构建图而在于如何使用图,为此需要反思数据的性质以及如何使用图来理解数据。

在 McAfee Advanced Threat Research(ATR)团队,威胁情报都经过整理和标准化存储在高度冗余、可扩展的关系数据库中。威胁情报中包括但不限于涉及的 ATT&CK 技术、使用的工具、攻击者与攻击组织以及归属国家和地区。通过查看历史数据可以发现很多东西,但是将信息整合在一起识别威胁和攻击之间的关系是一个极大的挑战。

最近 McAfee 在尝试使用图来对威胁情报进行分析,也尝试使用图算法来发挥数据更大的价值。

数据集构建

所有的威胁情报会整合进内部 MISP 系统并共享给相关方,相关数据用于建立对谁、在哪、做了什么、怎么做的基本了解。例如 MuddyWater 攻击组织对中东国家利用鱼叉式网络钓鱼瞄准的石油、天然气和电信行业的多家公司。

研究目标

McAfee 拥有的数据量极大,且分散在数据库的不同位置,将所有数据串起来是一件很难的事情。McAfee 用图来快速连接和可视化相关信息,识别数据中的模式来揭示攻击行动。通过这种方式,可以发现以下问题的答案:

  • 攻击的频率如何?

  • 最常用的攻击技术是什么?

  • 那些攻击者最活跃?

  • 是否可以使用相同的技术来识别攻击组织?

  • 攻击者是否以相同的方式使用攻击技术?

方法论

如果构建的图过于密集且过度连接,则构建图不会产生任何意义,所以构建图之前必须要确定数据集是可构建图的。接着就是要定义节点与边,McAfee 定义了以事件为中心和以攻击者为中心的两种视图。

McAfee 内部开发了名为 Graph Playground 的图研究工具,可以在浏览器中基于 CSV/JSON 文件构建可视化的无向图,也可以在图上进行分析和算法执行。

数据集验证

查看数据集是否合适构建图,可以查看一些通用的指标,比如每个节点的平均边数:

该平均值可以大概表现每个节点大概有多少边。另一个指标是图的密度,用总边数除以无向图可能存在边的总数:

尽管这两个指标非常简单,但是已经可以在一定程度上反应图的特征。高密度图极有可能超级连通,每个节点都以某种方式互相关联。可视化时可能看起来很好,但是想从图中识别模式或者不同部分时没有任何帮助。

构建图

将事件作为中心节点,将与事件相关的 ATT&CK 技术项、攻击者、攻击工具、国家和部门连接起来。

上图展示了每个事件和在 MISP 中相关的元数据的图表示,每个事件都有与某些攻击者相关的技术和攻击工具,他们针对某些国家和行业进行攻击。

在数据集中,节点数为 1359,边为 12327 条。其中事件节点有 705 个,计算每个节点的平均边数为:

图的密度为:

故而每个事件节点平均有 18 条边,图密度为 0.053 应该是相对稀疏的。

事与愿违,图比预期中密集的多,且存在一个明显的、由 ATT&CK 技术项节点组成的聚集集群。去掉 ATT&CK 技术项节点后,可以降低图的密度:

删除 ATT&CK 技术项节点将使图密度大降,表明某些事件和 ATT&CK 技术项节点之间高度互联,事件和技术之间可能存在很多重叠。

仅保留 ATT&CK 技术项节点和事件节点就可以证明此事,很多事件都在使用相同的技术。通常来说,攻击与国家和行业无关,我们选择在图分析时忽略此类信息。进一步折叠事件节点,将使用的攻击工具和 ATT&CK 技术项的焦点切换到攻击者节点。可以得到两个不同的视角:

事件中心视角

去掉国家和行业节点,剩下的事件节点连接着其他节点:

这是以事件为中心的视角,可以帮助回答有关攻击者的问题:

这张图与原始的图非常相似,但是消除了影响分析的噪音,可以专注于与攻击事件有关的攻击者、攻击技术和攻击工具。

攻击者中心视角

以攻击者节点为中心是图的另一种视角:

其结果如下所示:

使用图进行分析

频率分析

查看与最多的事件节点连接的 ATT&CK 技术项节点,就可以发现最常见的攻击技术:

可以发现,鱼叉式邮件附件和混淆文件是最常见的攻击技术。

使用相同的方式可以发现哪些攻击者最为活跃:

在数据集上,Sofacy、Lazarus 和 COVELITE 是最为活跃的攻击者。

流行度分析

可以在图上利用集中度算法(centrality algorithms)衡量某个节点对图的控制程度,换句话说是某个节点的受欢迎程度。

可以看到,混淆文件和用户执行是在攻击者间最常见的两种技术。

模式识别

以攻击者为视角,可以尝试使用聚类的算法来查看哪些攻击者行为方式相同。当然,如此密集的点可能会使图的聚类变得很困难。

使用的社群发现算法是 Louvain,基于边的密度发现聚类。上图显示了一些发现的群落,看上去所有节点都互相关联,也无法验证准确性。

其实许多攻击者都会使用相同的攻击技术,想要拆分密集的节点集合,就需要额外引入其他信息。

根据已有的信息,无法评估攻击者是否使用相同的方式使用某种攻击技术,接下来会引入附加信息,在更细粒度上区分攻击者。

KillChain

将 KillChain 攻击链引入,更好地区分攻击者。

以攻击者为中心的视角进行微小的改动:

结果实际并不理想。

限制

尽管 MISP 为 ATT&CK 提供了子技术项的粒度,但在 KillChain 的步骤中没有特别指明。目前无法在 killChain 的多个步骤中确切指明使用了哪种技术,这又使粒度变粗了。以攻击者为中心的视角就变成了这样:

也许 ATT&CK 技术项用来区分攻击者不太容易,也许可以裁剪掉一些明显不同的攻击者会不会好一些?

受限于使用工具的局限,Graph Playground 只适合非常快速的分析,更多的操作需要使用更强的引擎来支持。

结论

构建正确的图可以帮助可视化分析大型数据集、帮助研究人员更好地理解数据。数千个节点的图需要很长时间才能完成渲染,Graph Playground 根据浏览器的客户端文件生成图加快了这块的速度。

研究不一定都以攻击事件为中心,也许有时也需要以攻击者为中心的视角。而密度过高、关联过强的数据可能会导致无法进行分析。当然,尽管缺乏进一步的细粒度的数据,这种研究仍然是卓有成效的。

正如 John Lambert 所说:“防御者以列表的方式思考,攻击者以图的方式思考,分析人员可以构建适当的图来对攻击者进行分析”。

未来的工作

细粒度的数据可以提供更深入的见解,后续也许可以引入 EDR 的分析结果来更好的区分攻击者。

业界也有很多类似的工作在利用图进行思考,比如 Intezer 的 OST Map 针对知名攻击者的攻击工具进行关联分析。

查看更多细节:https://www.mcafee.com/blogs/other-blogs/mcafee-labs/mcafee-atr-thinks-in-graphs

声明:本文来自威胁棱镜,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。