基于SolarWinds 开发的 DarkHalo:Tomiris 连接
2021-10-20
来源:嘶吼专业版
2020 年 12 月,SolarWinds 攻击席卷全球。虽然供应链攻击已经成为许多 APT 攻击者利用的有记录的攻击媒介,但由于攻击者的极端谨慎和受害者的高价值性,这一特定活动脱颖而出。据信,当 FireEye 发现该活动的第一个攻击样本时,攻击者(DarkHalo又名Nobelium)已经为使用它一年多了。迄今为止收集到的证据表明,DarkHalo 在 OrionIT 的网络中花了六个月的时间来完善他们的攻击,并确保他们对供应链链的篡改不会造成任何不利影响,从而降低被发现的概率。
第一个恶意更新于 2020 年 3 月被传播给 SolarWinds 用户,其中包含名为 Sunburst 的恶意软件。研究人员只能假设 DarkHalo 利用这种访问权限来收集情报,直到他们被发现的那一天。恶意活动的时间表如下:
卡巴斯基的 GReAT 团队也调查了这次供应链攻击,并发布了两篇关于它的博文:
1.2020 年 12 月,研究人员分析了恶意植入的基于 DNS 的协议,并确定它泄露了被 DarkHalo 选择用于进一步利用的受害者的身份。
2.一个月后,研究人员发现了 Sunburst 和 Kazuar 之间有趣的相似之处,这是另一个与 Palo Alto 的 Turla 相关联的恶意软件家族。
2021 年 3 月,FireEye 和微软发布了有关活动期间使用的第二阶段恶意软件 Sunshuttle(又名 GoldMax)的更多信息。2021 年 5 月下旬,微软还将冒充美国组织的鱼叉式网络钓鱼活动归因于 Nobelium。但到那时,线索已经消失了:DarkHalo 早就停止行动了,后续的攻击也没有与他们联系在一起。
DNS劫持
今年晚些时候,也就是 6 月,研究人员的内部系统发现了 一个DNS 劫持成功的样本,影响了一个独联体成员国的多个政府区域。这些事件发生在 2020 年 12 月和 2021 年 1 月之间,时间很短,允许攻击者将流量从政府邮件服务器重定向到他们控制的设备。
在这各时间范围内,上述区域的权威 DNS 服务器被切换到攻击者控制的解析器。这些劫持大部分时间相对较短,似乎主要针对受影响组织的邮件服务器。虽然研究人员不知道攻击者是如何做到这一点的,但可以假设他们以某种方式获得了受害者使用的注册商控制面板的凭据。
当恶意重定向处于活动状态时,访问者被定向到模仿原始页面的网络邮件登录页面。由于攻击者控制了他们劫持的各种域名,因此他们能够从证书加密中获取所有这些虚假页面的合法 SSL 证书,这使得未受过安全教育的访问者很难注意到攻击。毕竟,他们通常连接到URL并降落在一个安全的页面。
攻击者设置的恶意网络邮件登录页面
十有八九,在这些网页中输入的任何凭据都会被攻击者获取,并在随后的攻击阶段被重复使用。在某些情况下,他们还会在页面上添加一条信息,诱使用户安装恶意的“安全更新”。在上面的截图中,信息是这样写的:“为了继续使用电子邮件服务,你需要安装一个安全更新:下载更新”。
该链接指向一个可执行文件,该文件是一个以前未知的恶意软件家族的下载程序,研究人员现在将其称为 Tomiris。
Tomiris
Tomiris 是一个用 Go 编写的后门程序,其作用是不断查询其 C2 服务器以获取可执行文件,以便在受害系统上下载和执行。在执行任何操作之前,它会休眠至少 9 分钟,以试图击败基于沙箱的分析系统。它通过创建和运行包含以下命令的批处理文件来建立计划任务的持久性:
SCHTASKS /CREATE /SC DAILY /TN StartDVL /TR “[path to self]” /ST 10:00
C2 服务器地址没有直接嵌入 Tomiris 内部:相反,它连接到信号服务器,该服务器提供后门应连接到的 URL 和端口。然后 Tomiris 向该 URL 发送 GET 请求,直到 C2 服务器使用以下结构的 JSON 对象响应,其结构如下:
{“filename”: “[filename]”, “args”: “[arguments]”, “file”: “[base64-encoded executable]”}
这个对象描述了一个可执行文件,它被下载到在受害设备上并使用提供的参数运行。此功能以及 Tomiris 除了下载更多工具之外没有其他功能的事实表明此工具集还有其他部分,但不幸的是,研究人员迄今为止无法恢复它们。
研究人员还发现了一个 Tomiris 变体(内部命名为“SBZ”,MD5 51AA89452A9E57F646AB64BE6217788E),它充当一个文件窃取程序,并将任何与硬编码扩展名集(。doc、。docx、。pdf、。rar 等)匹配的最新文件上传到C2。
最后,在这次调查中发现的一些线索表明,Tomiris的开发者可能会说俄语,但这一点不太可靠。
Tomiris连接
在分析 Tomiris 时,研究人员注意到它与上面讨论的 Sunshuttle 恶意软件有许多相似之处:
1.这两种恶意软件都是在Go中开发的,带有可选的UPX包。
2.配置文件中使用了相同的分隔符(“ | ”)来分隔元素。
3.在这两个家族中,使用相同的加密/混淆方案对配置文件进行编码并与C2服务器通信。
4.根据微软的报告,Sunshuttle也依赖于预定的任务来保持持久性。
5.两个家族都比较依赖随机性:
5.1 Sunshuttle 将其引荐来源网址和诱饵网址随机化,用于生成良性流量,它还在每个请求之间休眠 5-10 秒(默认情况下)。
5.2 Tomiris 在执行过程中的不同时间将随机延迟(0-2 秒或 0-30 秒,具体取决于上下文)添加到它休眠的基本时间。它还包含一个目标文件夹的列表,以删除下载的可执行文件,从其中程序随机选择。
5.3 Tomiris和Sunshuttle都在每次调用之前免费地用Now()的输出重新播种RNG。
6.这两种恶意软件家族经常在执行过程中休眠,以避免产生太多的网络活动被发现。
7.这两个程序的一般工作流程,特别是将功能分配到函数中的方式,感觉非常相似,以至于这位分析师认为它们可能是一起被开发的。比如当准备步骤完成时,程序的主循环如何转移到一个新的 goroutine,而主线程几乎永远处于非活动状态。
8.在Tomiris(“isRunned”)和Sunshuttle(“EXECED”而不是“executed”)字符串中都发现了英文拼写错误。
单独来看,都不足以将Tomiris和 Sunshuttle 联系起来。虽然证据还不足,但把这些证据放研究人员想提供的最后一个间接证据是发现网络中感染了 Tomiris 的其他设备也感染了 Kazuar 后门。不幸的是,现有的数据不能让我们确定是否其中一个恶意程序导致了另一个程序的部署,或者它们是否起源于两个独立的事件。
下图总结了研究人员能够在本文提到的三个恶意软件家族之间发现的薄弱环节:
最后,许多线索暗示了 Sunburst、Kazuar 和 Tomiris 之间有着非常紧密地联系,但感觉仍然缺少最为直接的证据,可以让研究人员将它们全部归因于一个攻击者。目前的证据推测如下,由于 Sunshuttle 的高调性质,其他攻击者可能故意试图复制其设计以误导分析师。研究人员所知的最早的 Tomiris 样本出现在 2021 年 2 月,也就是 Sunshuttle 向被发现的一个月前。虽然此时其他 APT 可能已经意识到该工具的存在,但研究人员认为他们不太可能在它被披露之前尝试模仿它。一个更可能(但尚未证实)的假设是,Sunshuttle 的开发者早在 2020 年 12 月左右开始开发 Tomiri。
总结
如果研究人员对Tomiris和Sunshuttle之间联系的猜测是正确的,那就能让研究人员更好地了解攻击者被发现后是如何重新构建新攻击的。