事件概述

根据国外安全媒体的最新报道,近期有一款新型后门程序正在针对全球范围内的超级计算机发动网络攻击。而这款恶意软件使用的是木马后门化的OpenSSH软件,可以从安全网络连接中窃取凭证信息。

实际上,在此之前,主要针对高性能计算机(HPC)以及学术研究网络上的服务器的恶意软件攻击并不多见。

这款新型的恶意软件是由网络安全公司ESET的安全研究人员所发现的,并以希腊神话中行为不端的生物科巴洛斯(Kobalos)为之命名。

 

关于恶意软件Kobalos

Kobalos恶意软件的代码库很小,但它瞄准的对象却是全球超级计算机。显然,这是一个此前未被记录的恶意软件,被发现后,该恶意软件被命名为Kobalos——来自希腊神话中的一个小精灵,喜欢恶作剧和欺骗凡人。

本质上来说,Kobalos是一款被挂有木马的 OpenSSH 软件,或被用于从 HPC 高性能计算集群中窃取 SSH 证书。安全研究人员称之“小而复杂”且“诡计多端”。即使攻击规模不大,但 Kobalos 后门还是渗透了一些主要目标,包括美国政府、欧洲大学、以及亚洲某些大型互联网服务提供商(ISP)的系统。

安全研究专家在安全报告中提到,Kobalos拥有一个体积虽小但功能结构极其复杂的代码库,可以在其他基于Unix的操作系统平台上运行,比如说FreeBSD和Solaris扽等。在对其进行分析的过程中,研究人员还发现Kobalos可能存在针对AIX和Windows操作系统的变种版本。

在针对这一新的恶意软件威胁创建了身份指纹之后,来自网络安全公司ESET的安全研究人员进行了一次互联网范围的大规模扫描,并尝试去寻找受到恶意软件Kobalos攻击的目标用户。研究人员发现,很多受到攻击的目标系统都是一些学术和研究部门的超级计算机和服务器。除此之外,还有北美的一家未公开的软件安全供应商、亚洲一家大型互联网服务提供商、营销机构和主机提供商也成为了该恶意软件的受害者。

下图显示的是恶意软件Kobalos的全球攻击范围统计情况:

目前,网络安全公司ESET的安全研究人员还无法建立该恶意软件的初始攻击向量,即无法确定攻击者最初是如何获取到目标设备的管理员访问权并安装恶意软件Kobalos的。不过,一些受到攻击的设备运行的是老旧版本、失去技术支持或未安装最新安全补丁的操作系统或软件,因此攻击者很有可能利用的是一种已知的或未知的安全漏洞。

 

窃取SSH凭证信息

尽管研究人员已经花了好几个月的时间去分析这款恶意软件了,但由于代码中包含了大量通用命令,而且又没有特定的Payload,因此研究人员很难去确定代码中各个部分的确切用途。

恶意软件Kobalos将给攻击者提供针对目标设备文件系统的远程访问权限,并且还能够生成命令行终端会话,从而允许攻击者在目标设备上执行任意命令。不过,研究人员或多或少还是发现了一些“蛛丝马迹”。

来组网络安全公司ESET的安全研究人员在报告中写到:“我们在对受感染的设备进行进一步安全分析和调查的过程中,我们发现了一个SSH凭证窃取程序,而这个凭证窃取程序是以一种木马后门化的OpenSSH客户端的形式存在的。在目标设备上,/usr/bin/sshfile被替换成了一个经过修改的可执行文件,这个文件会记录目标设备上的用户名、密码和目标主机名,随后会将这些收集到的信息写入到一个加密文件之中。”

研究人员认为,由于来自多所大学的学生和研究人员可能拥有超级计算机集群的SSH访问权限,因此窃取凭证之后,应该也就不难解释为什么这款恶意软件能够传播到同一网络或学术领域其他网络上的其他系统了。

 

体格虽小,但五脏俱全!

虽然恶意软件Kobalos的体积非常小,32/64位版本的恶意软件样本大小只有24KB,但这丝毫不影响Kobalos成为一款极其复杂的恶意软件。Kobalos使用了自定义的模糊处理技术和反取证技术,这很大程度上增加了研究人员对其进行分析的难度。虽然Kobalos的体积非常小,但功能非常的丰富。

恶意软件Kobalos与众不同的一个有意思的特性在于,它的代码捆绑在了一个单独的函数之中,合法的OpenSSH代码针对该函数只存在一个调用请求。不过,这款恶意软件中存在一个非线性控制流,即通过递归调用该函数来执行各种子任务,这里总共支持37种不同的操作,而其中一个命令可以将任何受到该恶意软件感染的设备变成其他设备的命令和控制(C2)服务器。

下图显示的是恶意软件Kobalos的控制流:

研究人员通过分析后发现,远程攻击者有三个选项来跟恶意软件Kobalos进行连接:

1、打开一个TCP端口并等待传入的连接(有时也被称为被动后门);

2、连接另一个被配置成以命令控制服务器运行的Kobalos实例;

3、等待一个已运行的合法服务的连接,但需要从特定的TCP源端口传入(对正在运行的OpenSSH服务器进行木马后门化);

恶意软件Kobalos还会对攻击者接受和发送的攻击流量进行加密。为了实现这一点,客户端需要使用一个RSA-512密钥以及密码来进行身份验证。该密钥生成并加密两个16字节的密钥,而这些密钥会使用RC4流密码对通信数据进行加密。

除此之外,后门程序还会将网络通信连接切换至另外一个端口,并以代理服务器的形式来运行以帮助攻击者访问其他受到攻击的服务器。

下图显示的是恶意软件Kobalos的控制流架构:

网络安全公司ESET的安全研究人员在接受采访时表示,恶意软件Kobalos源代码的体积虽然非常小,但功能却特别的强大。而Kobalos作为一款针对Linux的恶意软件来说,其复杂程度是很少见的,这也表明恶意软件Kobalos的开发人员水平技术要比一般的Linux恶意软件开发者要高得多。

尽管这款恶意软件的复杂程度毋庸置疑,但攻击者的主要目的以及恶意软件Kobalos的攻击时间仍然存在很多疑问。比如说,研究人员发现的一些字符串竟然跟Windows 3.11和Windows 95有关,而这两个版本的操作系统都已经是25年多甚至更久之前的事情了。

不过目前可以肯定的是,恶意软件Kobalos目前正在窃取包括高性能计算机集群在内的著名目标用户的SSH凭据,而且自2019年年底以来,这个针对超级计算机的攻击活动一直处于活动状态。

除此之外,跟其他已经报到的涉及超级计算机的网络攻击活动不同,研究人员并没有发现恶意软件Kobalos会试图利用超级计算机的计算资源来进行加密货币挖矿或执行某些需要消耗大量计算资源的行为。

 

后话

目前,网络安全公司ESET已经通知了所有恶意软件Kobalos的受害者,并帮助他们识别和缓解Kobalos的感染。研究人员还专门发布了一份针对恶意软件Kobalos的完整技术分析报告,其中还包括可以帮助潜在受害者发识别恶意软件的入侵威胁指标(IOC)。

文章原文链接:https://www.anquanke.com/post/id/230999