FlipSwitch新型钩子技术突破Linux内核防御体系
Linux内核出现新型rootkit FlipSwitch,利用系统调用分发机制的最新变更,在内核中植入隐蔽钩子。该技术通过扫描x64_syscall函数字节码,禁用内存写保护并重定向系统调用至恶意函数,在几乎不留痕迹的情况下实现持久化。 2025-10-1 08:19:13 Author: www.freebuf.com(查看原文) 阅读量:9 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

image

网络安全领域近期出现了一种针对现代Linux内核的高级rootkit变种FlipSwitch。该技术于2025年9月下旬首次现身,通过利用系统调用(syscall)分发机制的最新变更,直接将隐蔽钩子植入内核代码。

技术原理分析

FlipSwitch的出现正值Linux内核6.9版本采用新架构之际,该版本在x64_syscall函数中用switch语句分派机制取代了传统的syscall_table数组查找方式。虽然这项改进阻断了传统的指针覆写攻击途径,却意外创造了新的攻击面。

Elastic安全团队发现,FlipSwitch正是利用这一架构转变,在更新后的防御体系中开辟了新路径,使攻击者重新获得了随意重定向系统调用的能力。研究人员在加固环境中观察到异常系统调用后,最终在一个合法内核模块内隐藏的PoC模块中发现了该rootkit。

创新性攻击手法

与传统rootkit依赖数据结构破坏不同,FlipSwitch采用了极为精确的新方法:

  1. 扫描x64_syscall函数的原始字节码,定位调用目标系统调用的特定操作码模式
  2. 通过清除CR0寄存器中的WP位,在CPU层面禁用内存写保护
  3. 覆写调用指令的相对偏移量,将执行流重定向至恶意回调函数
  4. 恶意代码执行后恢复原始偏移量并重新启用写保护,几乎不留取证痕迹

感染机制与持久化

FlipSwitch通过嵌入看似良性的内核模块中的两阶段加载器实现内核空间驻留:

  1. 模块加载时,加载器利用受信任内核函数的kprobe获取未导出的kallsyms_lookup_name地址
  2. 通过该地址获取目标系统调用(如sys_kill)和x64_syscall分发器的指针
  3. 调用辅助函数定位精确的调用指令位置
static inline void disable_write_protection(void) {
  unsigned long cr0 = read_cr0();
  write_cr0(cr0 & ~X86_CR0_WP);
}
static inline void enable_write_protection(void) {
  unsigned long cr0 = read_cr0();
  write_cr0(cr0 | X86_CR0_WP);
}
void apply_flipswitch_hook(void *dispatcher, unsigned long target) {
  disable_write_protection();
  // 在hook_offset处覆写4字节偏移量指向fake_kill
  *(int32_t *)(dispatcher + hook_offset + 1) = calc_relative(target, hook_offset);
  enable_write_protection();
}

完成修补后,FlipSwitch会卸载其加载器,恢复内核写保护设置,仅保留内存中被修改的指令。这种两阶段过程确保了隐蔽性和持久性——加载器在执行后不留痕迹,而钩子在内核模块卸载或系统重启前将保持活跃。

FlipSwitch的出现凸显了高级内存完整性监控的必要性,也预示着内核安全机制需要持续演进。随着防御措施的改进,rootkit开发者必将寻找新的突破途径,这进一步强化了分层检测和主动威胁狩猎的重要性。

参考来源:

New FlipSwitch Hooking Technique Bypasses Linux Kernel Defenses

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/system/451287.html
如有侵权请联系:admin#unsafe.sh