可绕过 Elastic EDR 的 Linux rootkit:Singularity 暴露

  • 研究人员推出了 Singularity,这是一款 Linux rootkit,能够利用先进技术绕过 Elastic EDR。
  • 关键策略:字符串混淆、符号随机化、碎片化和内存加载,以及直接系统调用。
  • 恶意功能:隐藏进程、文件和连接,ICMP 后门和权限提升。
  • 对欧洲和西班牙的影响:迫切需要监控内核完整性并应用内存取证进行深度防御。

Linux rootkit 绕过 Elastic EDR

一组研究人员已经证明 Linux rootkit 名为 Singularity 它成功躲过了 Elastic Security EDR 的检测,凸显了内核级检测的重大局限性。这一概念验证并非仅仅是理论上的: 它结合了混淆视听和回避的技巧。 将通常会暴露恶意模块的信号降至零。

这一发现令包括西班牙在内的欧洲安全团队感到担忧,因为 Elastic通常会触发超过26个警报 针对传统的rootkit,该方案并未触发。这项由0xMatheuZ出于教育目的发表的研究表明, 基于特征和模式的方法 他们无法与那些不断改进工程技术的对手抗衡。

如何破解 Elastic EDR:密钥规避技巧

Linux 中的 EDR 规避

奇点的第一个优势是 编译时字符串混淆将敏感字面量(例如“GPL”或“kallsyms_lookup_name”)分割成 C 编译器可以理解的连续块。 自动重组防止 YARA 等扫描器发现连续的恶意字符串,同时又不牺牲功能。

同时适用 符号名称随机化它不使用像 hook_getdents 或 hide_module 这样可预测的标识符,而是采用带有前缀的通用标签, 它们模仿内核本身。 (sys、kern、dev),模糊了可疑函数的踪迹,并解除了基于名称的检测规则。

下一步是 模块碎片化 数据被分成加密片段,这些片段仅在内存中重新组装。这些片段使用异或(XOR)编码,加载器使用 memfd_create 来避免在磁盘上留下残留信息;插入数据时,它使用 直接系统调用 (包括 finit_module)使用内联汇编器,绕过了许多 EDR 监控的 libc 包装器。

它还会伪装 ftrace 辅助函数:通常受监控的函数(例如 fh_install_hook 或 fh_remove_hook) 以确定性的方式重命名 使用随机标识符,保持其行为但打破 针对通用rootkit的弹性签名.

在行为层面,研究人员通过先将有效载荷写入磁盘,然后再执行它来规避反向 shell 规则。 “清理”命令行此外,rootkit 会立即使用特定信号隐藏正在运行的进程,从而使关联分析变得复杂。 事件与实际活动之间.

欧洲环境中的Rootkit功能和风险

Linux 系统中 rootkit 的风险

除了规避之外,“奇点”还包含进攻功能:它可以 隐藏 /proc 中的进程隐藏与“奇点”或“matheuz”等模式关联的文件和目录,以及 伪装 TCP 连接 (例如,在 8081 端口上)。它还允许通过以下方式提升权限: 自定义信号或环境变量并提供能够激活远程 shell 的 ICMP 后门。

该项目增加了反分析防御措施,阻止追踪和 记录清理 为了减少取证噪声。加载器采用静态编译,可以在监控较少的环境中运行,从而加强执行链,其中 整个模块从未接触过磁盘。 因此,静态分析就失去了研究素材。

对于西班牙和欧洲其他地区依赖 Elastic Defend 的组织而言,此案迫使他们: 审查检测规则 并加强底层监控。混淆、内存加载和直接系统调用相结合,暴露出一个基于行为的控制手段受限的层面。 它们无法捕获内核上下文.

SOC团队应优先考虑 内核完整性监控 (例如,LKM验证和防止未经授权加载的保护),整合内存取证和 eBPF信号相关性 利用系统遥测技术,并应用纵深防御策略,该策略结合了启发式方法、白名单、加固等手段。 签名持续更新.

在关键环境中,建议加强策略以减少攻击面:限制或禁用模块加载功能,强化安全策略,以及 功能(CAP_SYS_MODULE)监控 memfd_create 的使用情况并验证符号名称中的异常。所有这些操作并非完全依赖 EDR,而是通过结合多种方式完成的。 多层控制 并进行交叉核对。

奇点事件表明,面对那些不断完善混淆技术的对手,防御者必须朝着……方向发展。 更深入的分析技术 并经过精心策划。可靠的内核威胁检测需要在EDR中加入完整性、内存和高级关联分析,以减少盲点并提高弹性标准。