一种新发现的Linux恶意软件,名为Quasar Linux(简称QLNX),正以极高的复杂程度积极针对软件开发者和DevOps工程师,这种复杂程度在Linux相关威胁中极为罕见。
与大多数依赖磁盘文件的恶意软件不同,QLNX几乎完全运行在内存中,这使得传统安全工具很难被检测到。这一威胁因其目标对象及最终目的而引发严重担忧。
QLNX作为一个自包含的二进制出现,但普通行为止于此。执行完成后,它会将有效载荷转移到内存中,在文件系统上不留下任何痕迹,然后植入操作系统以收集SSH密钥、云凭证、包注册表令牌和浏览器存储的密码。
被攻破的开发者工作站不仅仅是一台被感染的机器,它还是进入源代码库、构建流水线和云环境的后门。GuardSix的分析师识别了该恶意软件,并指出它最初是由趋势科技的研究人员发现的。
GuardSix在一份报告中表示,QLNX基于一个58命令的远程访问框架构建,旨在绕过传统的Linux终端防御。
该恶意软件针对运行 Debian、Ubuntu、RHEL、Fedora 和 Arch 的系统,主要关注开发者和 CI/CD 构建主机。
QLNX的独特之处在于它几乎能适应任何被感染的Linux系统。它不携带预构建组件,而是嵌入原始C源代码,并在运行时使用目标机器自有编译器构建自定义rootkit。
由于生成的文件对每个主机来说都是独一无二的,静态签名检测失败,恶意软件会混入正常的活动中。
伤害远不止于单一端点。成功的感染使攻击者进入开发供应链,拥有篡改代码、发布恶意包或转向云基础设施所需的一切权限。
未能完成初步妥协的防御者,可能会面临远超最初被感染机器的后果。
QLNX的感染链分为六个精心排序的阶段,旨在避免留下证据。启动时,它创建一个仅存在于内存中的文件,将其真实有效载荷写入该文件,执行该载荷后从磁盘中移除原始文件。
运行中的进程在文件系统中没有关联文件,因此基于磁盘的杀毒工具找不到任何可扫描的对象。
为了避免引起注意,QLNX 会重写自己的进程名称,模仿像 [kworker/0:0] 或 [migration/0] 这样的合法内核工作线程。
真正的内核线程绝不应维持用户空间网络连接或定期的用户空间父进程。大多数常规系统检查会完全忽略这个伪装。
恶意软件随后会用受害者自身的GCC编译其嵌入的rootkit和PAM后门源,针对本地内核头部,生成一个独特的共享对象文件,绕过基于签名的检测。
编译后的 rootkit 通过修改一个文件来实现系统范围加载,强制每个新生成的进程加载恶意库。点对点网状连接了受感染的主机,因此移除一个命令节点并不会切断攻击者。
QLNX的修复与缓解步骤
GuardSix明确表示,标准清理是不够的。唯一完全可靠的解决办法是彻底清除并从经过验证的干净镜像重装操作系统,因为部分清理会留下残留风险,因为除非在内核层面完全移除,否则 eBPF rootkit 可以存活。
对于无法立即重灌的团队,GuardSix 建议一次性将所有疑似主机与网络隔离,因为逐一移除它们会让幸存的网状节点重新感染已清理的节点。
删除已知的持久化文件、清除预加载库配置以及收集加密凭证日志以供取证审查都是必不可少的。
组织应密切监控低级别系统配置文件,并在任何确认检测后轮换所有凭证。
技术报告:
《Quasar Linux(QLNX):面向开发者的Linux RAT与检测策略》
https://guardsix.com/blog/quasar-linux-qlnx-a-developer-targeted-linux-rat-and-detection-strategy
新闻链接:
https://cybersecuritynews.com/quasar-linux-rat-targets-developers/