Haciendo que un archivo sea inmutable (contra las vulnerabilidades del kernel)

3

Me gustaría saber cómo hacer que los archivos sean completamente inmutables. "Completamente" se refiere en este caso a: inmutable mientras el sistema se está ejecutando. Podría vivir con algo como acceso físico en el que alguien, por ejemplo, use un CD en vivo para cambiar los archivos inmutables en un disco duro. No me preocupa mucho el acceso físico.

Sé que hay chattr -i que hace que un archivo sea inmutable. Por supuesto, algún hacker podría cambiar el atributo de nuevo. De acuerdo con el manual de seguridad de Debian ( enlace en 4.17 .2) puede evitar esto eliminando la capacidad CAP_LINUX_IMMUTABLE y haciendo que lcap sea inmutable. Según este sitio: enlace también tienes que eliminar CAP_SYS_RAWIO porque permite parchear el código del kernel en ejecución. Esto no se menciona en el manual de Debian.

También de la lectura cruzada de algunos otros sitios con respecto al sandboxing en linux, seccomp, etc., obtuve que, en principio, las vulnerabilidades del kernel pueden evitar estos sistemas con capacidades reducidas. Pero no estoy seguro de si esto también es válido para mi caso.

Supongo que el atacante tiene acceso completo (excepto físico) a mi sistema. ¿El enfoque basado en la capacidad anterior evitará que él cambie el archivo inmutable X en mi sistema? Si no, ¿hay algo que pueda hacer para lograr esto?

    
pregunta rover01 12.02.2016 - 18:57
fuente

2 respuestas

4

Si se explota el kernel, se pueden omitir las restricciones basadas en el software de cualquier para el acceso a los archivos. El uso de un sistema de archivos encriptado evitará que alguien arranque desde una llave USB o un medio extraíble, monte el sistema de archivos y cambie el archivo, pero no contra un módulo de kernel cargable insertado en el sistema en ejecución.

Recuerdo cuando la mayoría de los discos duros tenían configuraciones de puente para hacer que se leyeran solo a nivel de hardware, pero hace mucho tiempo que no veo un dispositivo así. Tal vez algunos discos todavía lo hacen, pero es posible que tenga que hacer un poco de excavación.

Puede obtener unidades USB con un interruptor físico . Pero no son baratos, de hecho, podría ser más fácil configurar algo como una frambuesa pi con acceso de solo lectura NFS.

    
respondido por el symcbean 12.02.2016 - 23:21
fuente
0

Con el código ejecutándose en el kernel, las llamadas al archivo de lectura podrían engancharse para devolver datos definidos por el atacante sin importar el contenido real del archivo. O el proceso podría terminar y reiniciarse en un chroot, o, o, o.

La respuesta corta es que no se puede hacer.

    
respondido por el wireghoul 14.02.2016 - 04:06
fuente

Lea otras preguntas en las etiquetas