首页/安全/应急响应速查/ld.so.preload 后门清理

ld.so.preload 后门清理

预加载后门通过 /etc/ld.so.preload 注入所有进程;清理要同时处理配置与恶意 .so,并核验系统库完整性。

应急响应速查安全更新于 2026-10-13

ld.so.preload 后门是什么

/etc/ld.so.preload 指定了一批「所有程序启动前先加载」的动态库,本是合法的优化机制,却也是经典的 Linux 用户态后门:把恶意 .so 的路径写进去,就能劫持 glibc 调用,隐藏文件、进程与网络连接。清理时必须同时处理配置行与恶意库文件,并核验系统库本身是否也被替换。

基本信息

配置位置/etc/ld.so.preload
关联目录/etc/ld.so.conf.d/
核验手段ldd 观察注入、debsums / rpm -Va 校验库完整性
清理顺序先备份配置,再移除引用行与恶意 .so
复验方式重启受影响服务,确认注入消失
注意空文件或指向不存在的库都会影响加载行为

典型使用场景

  • 排查文件被隐藏、命令输出异常(例如 ls 看不到某个目录)
  • 事件处置中清理用户态后门
  • 处置后核验系统库完整性是否恢复
  • 加固巡检:确认没有意外的预加载配置存在
  • 与 rootkit 检查工具的结论互相印证
  • 确认干净后再重启服务,进入观察期
  • 给同类主机做横向排查,确认同一手法没有扩散到其他机器

检查预加载与库完整性

检查预加载与库完整性
cat /etc/ld.so.preload 2>/dev/null           # 是否有预加载项
ls -la /etc/ld.so.preload 2>/dev/null        # 多数发行版默认没有这个文件
ldd /bin/ls | head -n 20                     # 看是否多出非系统库
sudo debsums -c 2>/dev/null | head -n 20     # Debian 系:列出被改动的文件
sudo rpm -Va 2>/dev/null | head -n 20        # RHEL 系:包内容校验
sudo cp -a /etc/ld.so.preload /evidence/ld.so.preload.bak 2>/dev/null   # 清理前备份

检查项与结论

检查项命令命中结论
配置存在性cat /etc/ld.so.preload有内容就需逐行解释来源
注入痕迹ldd <二进制>出现不在 /lib、/usr/lib 的库
库完整性debsums -c / rpm -Va校验失败说明文件被替换
文件时间ls -lamtime 与系统安装时间不符
进程映射/proc/<PID>/maps运行中进程仍映射着恶意库
多数发行版默认不带 /etc/ld.so.preload:它存在本身就是需要解释的信号。但也有安全 agent 或性能工具会正常使用它,要按厂商文档核实后再定性。
移除后必须重启相关服务:已经运行的进程仍映射着恶意库,只改配置不动进程,隐藏效果会继续存在。
恶意库常被放在 /usr/lib、/lib 之外的地方(如 /usr/local/lib、/lib/x86_64-linux-gnu 旁的随机命名目录):先看 preload 指向的绝对路径,再按路径去 /proc 里找打开它的进程。

易错点

  • 只删恶意 .so 不改 preload:残留引用会导致命令报错,后门也可能被重新落地
  • 不查包完整性:系统库被替换的情况只有 debsums / rpm -Va 才看得出来
  • 清理后不重启进程:内存里还是旧映射,现象照旧,误以为没清干净
  • 备份之前就动手编辑:丢失原始 preload 内容这一关键证据

数据来源与参考

  • ld.so(8):ld.so.preload 行为说明
  • Linux 预加载类后门排查实践

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌