Guardicore Labs的安全研究人员解释说,一种新发现的,针对SSH服务器的先进对等(P2P)僵尸网络正在使用专有协议。
该僵尸网络被称为FritzFrog,自2020年1月以来一直处于活动状态,并通过用Golang编写的蠕虫破坏了目标。该威胁本质上是模块化的,使用无文件感染,以避免在磁盘上留下痕迹。
FritzFrog被观察到暴力破解数百万个IP地址,并感染了500多个服务器,其中包括美国和欧洲的一些知名大学以及一家铁路公司。威胁还针对政府部门,教育和金融组织,医疗中心,银行和电信公司。
在受感染的服务器上,该恶意软件会以SSH公钥的形式创建后门,以进行持续访问。Guardicore Labs已经发现了将近两个版本的恶意软件可执行文件,并指出,这些机器人不断通过加密通道进行通信。
与其他P2P僵尸网络相比,威胁所具有的独特之处在于无文件感染,不断更新的目标数据库和被破坏机器的数据库,使用广泛词典的蛮力攻击,甚至在节点之间分布目标以及使用完全专有的协议。
感染后,该恶意软件开始在新的受害者系统上以ifconfig和nginx的名称运行,并立即擦除自身。它侦听端口1234上的命令,并使用初始命令确保受害者计算机与网络对等方和目标的数据库同步。
为了隐藏流量,通过netcat客户端通过SSH建立连接,该客户端接收命令作为输入。僵尸网络包括对30多种不同命令的支持。
FritzFrog网络中的节点彼此保持紧密联系。他们不断地相互ping通,以验证连通性,交换对等方和目标并保持彼此同步。这些节点参与了一个聪明的投票过程,这似乎影响了整个网络中暴力目标的分布。” Guardicore Labs解释说。
研究人员说,不仅FritzFrog二进制文件完全在内存中运行,而且目标服务器和对等服务器的整个数据库也在僵尸网络节点的内存中运行。多个线程用于同时执行各种任务。
该恶意软件试图在重启后幸免,并留有后门以确保将来可以访问受害计算机,并且网络中的所有对等方都具有登录凭据。SSH-RSA公用密钥已添加到authorized_keys文件中。
定期执行Shell命令以监视系统状态,包括可用的RAM,正常运行时间等,并与其他节点共享该信息,以确定是否应执行特定操作(例如运行加密矿工)。
基于XMRig的矿工(作为libexec进程执行)用于挖掘Monero虚拟货币。该矿工通过端口5555连接到公共池。
僵尸网络可以通过网络共享文件,并将它们拆分为blob以避免被检测到。这些Blob保留在内存中,FritzFrog映射它们以跟踪每个Blob,同时还存储其哈希值。
“当节点A希望从其对等节点B接收文件时,它可以使用getblobstats命令查询节点B所拥有的Blob。然后,节点A可以通过其哈希(通过P2P命令getbin或通过HTTP使用URL http://:1234 /)获得特定的blob 。当节点A具有所有所需的Blob时,它将使用名为Assemble的特殊模块组装文件并运行该文件。” Guardicore解释说。
尽管FritzFrog是从零开始编写的,并使用了其自己的,以前未曾见过的协议,但安全研究人员发现与Rakos P2P僵尸网络相似,该僵尸网络于2016年进行了详细说明。但是,威胁并未归因于特定的群体。
“ FritzFrog利用了许多网络安全解决方案仅通过端口和协议强制执行流量的事实。为了克服这种隐身技术,基于过程的分段规则可以轻松地防止此类威胁。弱密码是FritzFrog攻击的直接促成因素。我们建议选择强密码,并使用更安全的公共密钥身份验证。” Guardicore指出,并补充说,从authorized_keys文件中删除僵尸网络的密钥应该会删除其访问权限。