俄罗斯APT图谱

俄罗斯在过去30年内发起了一系列的网络监控和攻击活动。从最早的1996年的Moonlight Maze攻击,到2008年的攻破美国国防部五角大楼,再到2016年的干预美国总统大选,以及著名的NotPetya勒索软件,这些都是俄罗斯APT组织的杰作。

然而这些攻击活动和恶意软件家族是由不同的安全厂商和情报架构公开的,比如FBI和爱沙尼亚外国情报局。但是没有一张图将所有的俄罗斯APT组织集合在一起。

图 1: 爱沙尼亚外国情报局发布的关于APT组织的报告

研究人员收集、分类和分析了上千个俄罗斯的APT组织使用的恶意软件原本,找出了其中一些恶意软件家族和恶意软件之间的关系。

研究人员共分析了约2000个恶意软件样本,发现了样本之间的约22000个连接,385万个共享的代码段。研究人员最终将这些样本分为60个恶意软件家族和200个不同的模块。

代码相似度

研究人员在对俄罗斯APT组织样本完成收集和分类后,开始根据不同样本之间共享的恶意代码来进行聚类分析。通过Intezer的恶意软件基因分析技术可以自动将二进制文件分成为上千个小的代码段。然后,对于每个基因(代码段),再分析是否在其他软件或恶意软件中出现过。通过Intezer的恶意软件基因库,可以自动提取出样本,并忽略不相关的二进制部分,比如库代码。

可视化连接

通过分析样本代码的相似性,研究人员将这些样本进行可视化处理。

样本

Sha256, Label, Actor

发现的联系

sha256_sampleA, sha256_sampleB, # of shared genes

研究人员用点来表示样本,用边来表示两个样本之间的联系。研究人员首先使用Python的networkx库来生成.gexf文件,然后用Gephi可视化工具来进行处理。

通过加载生成的 .gexf文件到Gephi中,研究人员看到的是有个复杂的、网状连接。如下图所示,然后研究人员尝试用一些布局算法使恶意软件之间的关系更加清晰。

图 2: Gephi创建的初始化图

研究人员使用了 Force-Directed layout algorithm算法(Fruchterman-Reingold)来优化显示。

图 3: 应用布局算法后的连接图

图 4: 给连接图加上颜色

恶意软件之间的关系

连接分析

研究人员发现这些恶意软件之间有些是特定函数的关联,有些是整个模块的关联。不同APT组织样本的代码相似度很低,很难表明APT组织之间共享了代码或模块。

BlackEnergy Password Stealer <—> PinchDuke

这两款恶意软件都是窃取Outlook和 “The Bat!” 凭证的。PinchDuke 是基于Pinch (LdPinch)凭证窃取器的,而Pinch (LdPinch)在10年前主要活跃于俄语的地下论坛。因此,研究人员相信BlackEnergy和PinchDuke共享的代码都来源于 Pinch的源码。除了函数外,还有一些字符串也是相同的,如下所示:

Pinch Duke [0ce3bfa972ced61884ae7c1d77c7d4c45e17c7d767e669610cf2ef72b636b464]

Black Energy [3cf46c68dccb989fbda3f853cc19025d39d38d9ea5786f4ae6a926677d6c5f62]

BlackEnergy <—> Energetic Bear

McAfee之前的研究表明,2015年的BlackEnergy样本和2017年的新Energetic Bear (Dragonfly) 样本中都存在相同的自删除函数。虽然自删除函数在恶意软件中也很常见,但很少看到二进制文件级1:1匹配的。因此,研究人员判断该函数并非在这些APT组织之间共享,而是来源于公共源。

Black Energy  [11b7b8a7965b52ebb213b023b6772dd2c76c66893fc96a18a9a33c8cf125af80]

Energetic Bear [fc54d8afd2ce5cb6cc53c46783bf91d0dd19de604308d536827320826bc36ed9]

Potao Main Module <—> X-Agent

Potao的主模块和X-Agent样本共享相似的PE加载器实现。由于共享代码比例较低,研究人员无法断定是否来自相同的共享代码库亦或是有个PE加载器函数的通用实现。

Industroyer <—> Exaramel

ESET之前的研究表明连接Exaramel后门的代码与Industroyer的主后门模块有很多相似性,表明Exaramel是该后门的新版本。

俄罗斯APT图谱

俄罗斯 APT图谱是一个基于web的交互式图谱,表明了不同的俄罗斯APT组织和其恶意软件家族之间的关系。

图 5: 俄罗斯APT图谱

交互式俄罗斯APT组织图谱参见:https://apt-ecosystem.com/russia/map/

图 6: 鼠标移动到边上可以看到相关的信息

总结

通过以上分析表明,大多数的APT组织之间是不共享代码的。研究表明并没有代码在2个或2个以上的APT组织之间交流。其中的原因可能是:

· 俄罗斯有最强的网络监控能力,很早就意识到了代码共享的弊端。不同避免代码和工具重用,以防止被溯源和关联分析。

· 另一个可能性是俄罗斯国内政治的原因。研究人员并不了解俄罗斯国内政治,以及俄罗斯情报机构之间的关系。但不同的情报机构之间可能在APT组织、工具之间少有互通,导致了以上的结果。

注:本文参考自research.checkpoint.com