近年来,Linux 系统频繁受到各种网络攻击的威胁,其中一种名为 “perfctl” 的恶意软件引起了安全专家的广泛关注。这款恶意软件自三年前首次被发现以来,一直悄然无声地针对 Linux 服务器和工作站进行攻击,掀起了一场持续多年的加密货币挖矿行动。根据 Aqua Nautilus 的研究人员报告,perfctl 的出现可能导致数百万台 Linux 服务器受到攻击,而受影响的服务器可能达到几千台之多。 perfctl 的主要目的显然是为了进行加密货币挖矿。具体来说,它利用被感染的服务器来挖掘难以追踪的门罗币(Monero)。然而,研究人员指出,这款恶意软件也可以被用于更加破坏性的操作。
由于其隐蔽性极高,perfctl 在网络安全防护措施相对薄弱的情况下,能够轻松潜入并维持长期驻留。 perfctl 的感染链始于攻击者利用 Linux 服务器的配置错误或暴露的秘密进行攻击。这类安全漏洞可能包括可公开访问的文件,其中包含明文的凭证,或是暴露的登录界面。研究表明,perfctl 还利用了多个已知的漏洞进行初步攻击,比如影响 Apache RocketMQ 的 CVE-2023-33246 远程命令执行漏洞,以及 Polkit 的 CVE-2021-4034 提权漏洞(俗称 PwnKit)。 一旦实现初步访问,攻击者会下载一个名为 "httpd" 的经过压缩和混淆处理的负载,并将其执行。此负载会将自己复制到 /tmp 目录下,并以 "sh" 的名字保存,然后删除原始二进制文件。
这一操作使得恶意程序能够与正常的 Linux 系统操作混合在一起,难以被察觉。同时,感染者还会在其他系统位置(如 /root/.config、/usr/bin 和 /usr/lib)创建额外的拷贝,以确保在清理过程中的持久性。 perfctl 开始运行后,会打开一个 Unix 套接字,用于内部通信,并通过 TOR 与攻击者的服务器建立加密通道,从而使得数据交换难以被解密。更为隐蔽的是,它会在系统中植入一个名为 “libgcwrap.so” 的根套件(rootkit),该根套件能对多种系统函数进行挂钩,修改认证机制,并在需要的情况下拦截网络流量,以便于进行隐蔽的操作。 为了加强隐蔽性,perfctl 会进一步部署用户空间中的根套件,替换掉 ldd、top、crontab 和 lsof 等系统工具,以防止直接检测到恶意软件的活动。在此之后,恶意程序会在服务器上安装并执行 XMRIG 加密矿工,利用服务器的 CPU 资源进行门罗币的挖矿。
由于这一切活动都是通过 TOR 网络进行的,使得流量变得难以追踪,因此当用户开始注意到 CPU 利用率达到 100% 时,他们往往才意识到自己的服务器可能已经感染了这款恶意软件。然而,由于 perfctl 的高隐蔽性,它能够在用户登录服务器时立即停止挖矿活动,并在用户注销后迅速恢复挖矿进程。这种隐藏行为让许多用户在遭遇攻击时不知所措,往往是等到 CPU 利用率飙升时才引起警觉。 为了从此恶性循环中解脱出来,感染的用户或企业必须采取积极的措施来检测和清除 perfctl。Aqua Nautilus 提出了几种侦测和阻止 perfctl 的方法,主要集中在四个方面:系统监控、网络流量分析、文件和进程完整性监测,以及主动防护措施。 具体的侦测建议包括定期检查 /tmp、/usr 和 /root 目录,寻找伪装成合法系统文件的可疑二进制文件。
此外,用户应密切监控 CPU 使用率的异常峰值,并关注像 httpd 和 sh 等异常位置运行的进程。同时,还需仔细审查 ~/.profile、~/.bashrc 和 /etc/ld.so.preload 等文件,查看是否存在未经授权的修改。 网络流量分析也是关键环节,用户应捕获和分析与外部 IP 的 TOR 基础连接,寻找指向已知加密矿池或代理劫持服务的出站连接。相关研究报告的 IoC(指标)部分提供的 IP 地址可以被列入黑名单,以干扰与恶意主机的通信。 为了阻止此类攻击,系统管理员应确保所有互联网可达的应用程序缺陷,特别是 RocketMQ 服务器的 CVE-2023-33246 和 Polkit/PwnKit(CVE-2021-4034),都得到及时修复。此外,关闭未使用的 HTTP 服务、实施基于角色的访问控制,并对 `/tmp` 和 `/dev/shm` 等关键目录应用 `noexec` 选项,都是切实可行的防护措施。
总之,perfctl 恶意软件的存在不仅给 Linux 系统的安全带来了巨大挑战,也提醒了广大用户和企业注重网络安全防护措施的建立。有鉴于此,及时更新系统、加强监控、提高安全意识,是保护自身免受此类恶意攻击的有效途径。面对日益复杂多变的网络安全环境,守住信息安全的底线仍需全社会的共同努力。