一种名为Quasar Linux的新型Linux恶意软件正在活跃地针对软件开发者和DevOps工程师发起攻击。这款恶意软件展现出在Linux威胁中极为罕见的高复杂度。与大多数依赖磁盘文件存储的恶意软件不同,QLNX几乎完全在内存中运行,使得传统安全工具极难察觉。它之所以引发严重担忧,不仅因为其高超的技术手法,更因为它瞄准的目标——开发者——以及最终意图窃取的资产。

QLNX以一个独立的单二进制文件形式出现,但执行后的行为便打破了常规。一旦运行,它将载荷转移到内存中,不在文件系统上留下任何痕迹,然后扎根于操作系统,开始窃取SSH密钥、云凭证、包注册表令牌以及浏览器中存储的密码。一个被攻陷的开发者工作站不仅仅是一台受感染的机器,它更是一个通往源代码仓库、构建流水线和云环境的后门。研究人员发现,这款恶意软件内置了一个拥有58个命令的远程访问框架,专门设计用来绕过传统的Linux端点防御。其主要攻击目标包括Debian、Ubuntu、RHEL、Fedora和Arch等主流Linux发行版,重点瞄准开发者和CI/CD构建主机。
QLNX的一大独特之处在于它能够适应几乎任何它所感染的Linux系统。它不携带预编译的组件,而是将原始的C源代码嵌入自身,并利用目标机器自带的编译器在运行时构建一个自定义的Rootkit。由于生成的文件对每个主机而言都是唯一的,传统的静态特征检测对其完全失效,恶意软件也因此能够混入看似正常的系统活动中。这种感染造成的后果远不止一个端点那么简单。一次成功的感染意味着攻击者已经潜入了开发供应链,获得了篡改代码、发布恶意软件包或横向移动到云基础设施所需的一切访问权限。如果防御者错过了初始感染,其后果将远远超出最初被攻陷的那台机器。
QLNX的感染链条分为六个精心设计的阶段,每个阶段都旨在避免留下证据。启动时,它会创建一个仅存在于内存中的文件,将真正的载荷写入其中,执行该载荷,然后将原始文件从磁盘上删除。正在运行的进程在文件系统中没有关联文件,因此基于磁盘的杀毒软件根本找不到可扫描的目标。为了不引人注目,QLNX还会重写自身的进程名称,模仿像[kworker/0:0]或[migration/0]这样的合法内核工作线程,而大多数常规系统检查会完全忽略这种伪装。随后,恶意软件利用受害者自己的gcc编译器,针对本地内核头文件编译其嵌入的Rootkit和PAM后门源代码,为每个主机生成一个独特的共享对象文件,从而避开基于签名的检测。编译后的Rootkit通过修改系统文件实现全局加载,强制每一个新生成的进程都加载该恶意库。此外,一个点对点的网状网络连接了所有受感染的主机,这样即使移除一个命令节点也无法切断攻击者的控制。
标准清理手段无法彻底清除QLNX。从经过验证的干净镜像进行全盘擦除和操作系统重装是唯一完全可靠的解决方案。对于无法立即重装系统的团队,应立即将所有可疑主机从网络中隔离出来,因为逐个移除会让幸存的网状节点重新感染已清理的同伴。移除已知的持久化文件、清除预加载库配置,并收集加密的凭证日志以供取证审查,也都是必不可少的步骤。在预防方面,对于不需要C编译器的系统限制其使用,可以有效阻止QLNX构建其Rootkit。同时,将开发人员的工作站彼此隔离,可以破坏点对点网状网络的连接。