近日,ESET研究人员发现了一个专门攻击超级计算机的恶意软件——Kobalos,该恶意软件2019年以来一直在攻击全球各地的超级计算机——高性能计算机(HPC)集群,目标包括亚洲的大型互联网ISP、欧洲大学高性能计算网络、北美终端安全厂商、私有服务器和政府机构。
研究者指出,Kobalos是一个很“小巧”但很复杂的程序,可以在其他UNIX平台(FreeBSD、Solaris)上执行。在分析过程中发现AIX和Windows操作系统也可能存在Kobalos的变体。
过去的一年中发生了多起涉及HPC集群的安全事件,其中最受媒体关注的莫过于去年5月安全牛报道过的席卷全球的超级计算机感染门罗币挖矿软件事件,根据欧洲网格基础设施(EGI)CSIRT公布的报告,包括波兰、加拿大、德国、西班牙和中国的多个超算重心都受到了影响。同样在5月,英国ARCHER超级计算机被入侵窃取SSH凭证。
与已经报告的超级计算机网络的攻击事件不同,被感染系统的管理员没有发现Kobalos有任何尝试挖掘加密货币或运行计算量大的任务的尝试。
事实上,最新曝光的Kobalos恶意软件比去年的其他重大超算中心安全事件发生得更早(始于2019年)。
“人小鬼大”
ESET在周二发布的一份分析报告中表示,研究人员之所以用Kobalos命名该恶意软件,是因为“其代码量虽小但高度复杂,包含很多高级技巧”。Kobalos的名字源于希腊神话。Kobalos是狄俄尼索斯(Dionysus)的同伴,狄俄尼索斯是一堆调皮的精灵,以欺骗和恫吓凡人而闻名。
“我们之所以称这种恶意软件为Kobalos,是因为它的代码量很小且有许多技巧。”调查该恶意软件的Marc-EtienneLéveillé解释说:“必须承认,这种复杂程度在Linux恶意软件中很少见。”
Kobalos的32/64位样本的大小只有24KB,但是采用了高度定制化的混淆和检测逃避技术,此外在小小“身躯”中整合了很多其他功能,例如,由于C2服务器IP地址和端口被硬编码到可执行文件中,恶意软件操作员只需要发送一条命令,就可以把任何感染Kobalos的服务器变为C2服务器。
此外,Kobalos还可以用作连接其他受感染服务器的代理,这意味着攻击者可以利用多台感染Kobalos的机器来达到目的。
如上所述攻击者,可通过三种方式与后门和被感染机器互动(直接、通过代理和C2服务器):
Kobalos还有一个“出彩”的功能是:根据分析,Kobalos代码紧密绑定在一个函数中,该函数采用非线性控制流程“递归调用自身以执行多达37个子任务”,其中一个子任务是将所有被感染机器变成C2服务器。
这种紧凑的体系结构与其他恶意软件特性相结合,使其难以被分析和发现。
报告还指出,所有字符串均已加密,“因此,与静态查看样本相比,查找恶意代码更加困难”。操作后门需要一个私有的512位RSA密钥和一个32字节长的密码。一旦两个都通过验证,Kobalos将使用RSA-512公共密钥生成并加密两个16字节密钥,并将其发送给攻击者。这两个密钥用于RC4加密后续的入站和出站流量。
最后,ESET研究人员对这种小而复杂的恶意软件进行了反向工程,发现它可移植到许多操作系统(包括Linux、BSD、Solaris,甚至可能是AIX和Windows)中。
种种迹象表明,Kobalos背后的攻击者“知识渊博,显然是个高级攻击者”。
窃取SSH凭据
Kobalos后门程序包含广泛的指令,且没有特定的有效载荷,因此无法确定攻击者的真实意图。
但是,在大多数感染Kobalos的系统中,用于安全通信(SSH)的客户端被窃取了凭据。
研究者在调查中发现了不同的账户窃取程序变体,包括Linux和FreeBSD实例。所有变体的主要功能包括从受感染的主机窃取用于建立SSH连接的主机名、端口、用户名和密码,这些主机名、端口、用户名和密码均保存在加密文件中。
“找到的所有样本都使用相同的简单密码来存储文件的内容。它只会在要保存的每个字节数据中加上123。对于FreeBSD版本,将使用相同的格式和密码。但是,在实现上还存在一些细微的差异,例如使用单字节XOR加密恶意软件中的文件路径。”研究人员解释说。
根据变体的不同,保存被盗的SSH凭据的文件位置也会有所不同,但是所有示例都会在/var/run下创建一个看起来合法的“.pid”扩展名的文件。
较新版本的凭证窃取器包含加密的配置,并添加了通过UDP将凭证泄漏到配置中指定的远程主机的功能。
“使用受感染计算机的SSH客户端的任何人的凭据都会被窃取。然后,攻击者可以使用这些凭据在新发现的服务器上安装Kobalos。”Léveillé补充说。
这也可以解释为什么许多学术网络在这次攻击中遭到破坏,因为超算系统的SSH客户端往往被来自多所大学的学生或研究人员使用。
威胁缓解
连接到SSH服务器时启用双因素身份验证可以缓解威胁,因为使用被盗凭据似乎是Kobalos传播到不同系统的主要方法。
对Kobalos的检测并不困难,可以通过在归属于SSH服务器的端口上查找非SSH流量来检测Kobalos。
参考资料:
ESET的白皮书中提供了有关Kobalos恶意软件IoC和YARA规则的更多技术详细信息:
https://www.welivesecurity.com/wp-content/uploads/2021/01/ESET_Kobalos.pdf
【本文是51CTO专栏作者“安全牛”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】