Controles de Hardening del Sistema de Archivos

El dominio de sistema de archivos (sección CIS 1.1.x) contiene 9 controles que reducen la superficie de ataque deshabilitando módulos del kernel de sistemas de archivos no utilizados y endureciendo las opciones de montaje temporales. Los controladores de sistema de archivos no utilizados pueden ser explotados para cargar medios maliciosos o escapar de contenedores; deshabilitarlos elimina una clase de ataques a nivel de kernel.

1.1.1.1 — Deshabilitar cramfs

Qué hace apply: Vallumix comprueba si el módulo del kernel cramfs es cargable. Si está presente, crea o actualiza /etc/modprobe.d/cramfs.conf con install cramfs /bin/true y ejecuta rmmod cramfs si el módulo está actualmente cargado.

Verificación manual:

modprobe -n -v cramfs
lsmod | grep cramfs

Se espera: el primer comando debe mostrar /bin/true, y el segundo no debe devolver nada.

Justificación de seguridad: cramfs es un sistema de archivos de solo lectura comprimido raramente utilizado en servidores modernos. Mantener el módulo disponible permite a un atacante con acceso local montar imágenes manipuladas que podrían contener cargas maliciosas. Deshabilitarlo sigue el principio de mínima funcionalidad.

1.1.1.2 — Deshabilitar freevxfs

Qué hace apply: Crea /etc/modprobe.d/freevxfs.conf con install freevxfs /bin/true y descarga el módulo si está activo.

Verificación manual:

modprobe -n -v freevxfs
lsmod | grep freevxfs

Justificación de seguridad: freevxfs es el controlador de compatibilidad con VxFS de FreeBSD. No tiene uso legítimo en servidores Linux y representa un punto de entrada innecesario en el kernel.

1.1.1.3 — Deshabilitar jffs2

Qué hace apply: Instala una lista negra de modprobe para jffs2 (Journalling Flash File System v2) y lo elimina de la memoria.

Verificación manual:

modprobe -n -v jffs2
lsmod | grep jffs2

Justificación de seguridad: jffs2 está diseñado para dispositivos de memoria flash raw como sistemas embebidos. En un servidor con almacenamiento en bloque, este módulo no tiene propósito y podría ser abusado para interactuar con medios físicos.

1.1.1.4 — Deshabilitar hfs

Qué hace apply: Añade a la lista negra el módulo hfs (Apple Hierarchical File System) mediante modprobe y lo descarga.

Verificación manual:

modprobe -n -v hfs
lsmod | grep hfs

Justificación de seguridad: hfs permite montar volúmenes con formato legado de Apple. Los servidores no necesitan esta capacidad; eliminarlo evita que un atacante introduzca o extraiga datos mediante medios removibles con formato HFS.

1.1.1.5 — Deshabilitar hfsplus

Qué hace apply: Añade a la lista negra el módulo hfsplus y lo descarga si está activo.

Verificación manual:

modprobe -n -v hfsplus
lsmod | grep hfsplus

Justificación de seguridad: hfsplus es el controlador del sistema de archivos moderno de Apple. Se aplica el mismo razonamiento que para hfs: ninguna carga de trabajo de servidor requiere soporte nativo para sistemas de archivos de Apple.

1.1.1.6 — Deshabilitar squashfs

Qué hace apply: Añade a la lista negra el módulo squashfs. Nota: algunos runtimes de contenedores usan squashfs internamente; verifica tu carga de trabajo antes de aplicar este control.

Verificación manual:

modprobe -n -v squashfs
lsmod | grep squashfs

Justificación de seguridad: squashfs es un sistema de archivos comprimido de solo lectura usado en CDs en vivo y algunas capas de contenedores. Si tu servidor no depende de paquetes snap o tecnologías similares, deshabilitarlo elimina otro vector de montaje.

Algunas distribuciones usan squashfs para paquetes snap. Verifica que `snap list` esté vacío o no sea necesario antes de aplicar este control.

1.1.1.7 — Deshabilitar udf

Qué hace apply: Añade a la lista negra el módulo udf (Universal Disk Format, usado por DVD-ROMs).

Verificación manual:

modprobe -n -v udf
lsmod | grep udf

Justificación de seguridad: udf permite leer medios ópticos. Los servidores sin unidades ópticas no tienen uso para este módulo, y podría ser explotado para montar imágenes UDF maliciosas.

1.1.10 — Deshabilitar almacenamiento USB

Qué hace apply: Crea /etc/modprobe.d/usb-storage.conf con install usb-storage /bin/true y elimina el módulo de la memoria.

Verificación manual:

modprobe -n -v usb-storage
lsmod | grep usb-storage

Justificación de seguridad: Este es uno de los controles de sistema de archivos de mayor impacto. Deshabilitar usb-storage evita que el kernel reconozca dispositivos de almacenamiento USB masivo, bloqueando un vector de ataque físico común (por ejemplo, unidades USB maliciosas insertadas en una sala de servidores o un host virtualizado con passthrough USB).

1.1.2.1 — Endurecer opciones de montaje de tmpfs

Qué hace apply: Asegura que /tmp, /var/tmp y /dev/shm estén montados con las opciones noexec, nosuid y nodev. Si aún no están montados mediante fstab o unidades de montaje de systemd, Vallumix actualiza /etc/fstab o crea una unidad de montaje de anulación.

Verificación manual:

findmnt -n -o OPTIONS /tmp
findmnt -n -o OPTIONS /var/tmp
findmnt -n -o OPTIONS /dev/shm

Cada una debe contener noexec, nosuid y nodev.

Justificación de seguridad: Los directorios temporales son frecuentemente utilizados por atacantes para depositar y ejecutar cargas. El flag noexec previene la ejecución de binarios desde estas rutas, nosuid bloquea la escalada mediante setuid, y nodev previene el abuso de archivos de dispositivo. Juntos restringen significativamente la actividad post-explotación.