首页/安全/安全加固速查/罕见文件系统模块禁用(cramfs/hfs 等)
主机加固基线90 条

罕见文件系统模块禁用(cramfs/hfs 等)

攻击者常利用内核自带但无人使用的文件系统模块(配合 loop 挂载恶意镜像)辅助提权;按 CIS 清单裁剪本机用不到的文件系统模块。

安全加固速查安全更新于 2026-10-13

为什么要裁剪文件系统模块

内核自带大量文件系统驱动,其中相当一部分在本机永远不会用到,例如 cramfs、hfsplus。攻击者拿到普通权限后常利用这些模块挂载精心构造的镜像来触发内核漏洞完成提权:把用不到的模块列入黑名单,等于先一步撤掉这条路径。

基本信息

适用平台Linux(各主流发行版)
实现方式/etc/modprobe.d 中写 install <模块> /bin/true
配套动作卸载已加载模块,防止黑名单只对后续加载生效
基线按实际使用裁剪,不照抄清单

典型使用场景

  • 最小化加固:只在用途明确的服务器上裁剪,减少可被利用的内核代码路径
  • CIS 基线落地:相关条目是最常被检查的模块裁剪要求之一
  • 容器宿主:宿主上减少无用模块对容器逃逸类攻击同样有意义
  • 介质业务流程核查:确认机器是否真的需要读光盘或 UDF 介质

黑名单写法(按实际使用裁剪)

黑名单写法(按实际使用裁剪)
# 逐个模块声明为不可加载
cat > /etc/modprobe.d/99-blacklist-fs.conf <<'EOF'
install cramfs /bin/true
install freevxfs /bin/true
install jffs2 /bin/true
install hfs /bin/true
install hfsplus /bin/true
install udf /bin/true
EOF
# 卸载已经加载的模块
modprobe -r cramfs freevxfs jffs2 hfs hfsplus udf 2>/dev/null || true
# 核查是否仍在加载
lsmod | grep -E 'cramfs|hfs|udf|jffs2' || echo '未加载'

模块与场景对照

模块典型用途处置建议
cramfs老式只读压缩文件系统一般机器可禁用
hfs / hfsplus苹果文件系统无跨平台介质需求时禁用
udf光盘与部分大容量介质有光驱或介质流程的机器不要禁
squashfssnap 包与容器镜像常用多数发行版不能禁,需按环境判断
jffs2 / freevxfs嵌入式与老式文件系统服务器上通常可禁用
CIS 清单常包含 squashfs,但 Ubuntu 的 snap 与部分容器工具依赖它:照抄标准会直接把系统弄坏,必须按发行版与实际用途裁剪。
黑名单对早期引导阶段加载的模块可能不生效:敏感环境要同步检查 initramfs 配置,避免加固被引导阶段绕过。
裁剪前先盘点真实使用情况:用 findmnt 查当前挂载类型与历史操作记录,比按清单猜测更可靠。

易错点

  • 照抄 CIS 清单:连 squashfs 一起禁,容器与 snap 直接不可用
  • 只写黑名单不卸载:已加载模块继续可用,限制从下次启动才算数
  • 不盘点实际挂载类型:有光盘介质业务流程的机器禁掉 udf 后业务中断
  • 忽略 initramfs:早期加载路径未覆盖,加固被绕过而不自知

数据来源与参考

  • CIS Linux Benchmark:Ensure mounting of cramfs/hfs/udf etc is disabled
  • modprobe.d(5) 手册

相关工具

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