¿Desea eliminar los permisos de ejecución en '/ tmp' o montarlo con el indicador 'noexec'?

2

La prueba de seguridad de CIS recomienda montar /tmp y todos los demás directorios de escritura mundial en una partición separada para que pueda montarse con el indicador noexec .

Como ya tengo mi /tmp montado en la misma partición que / y preferiría evitar el ajetreo del reparto, me gustaría saber cuál es la diferencia (en términos de seguridad, es decir, los riesgos) entre chmod -R -x /tmp y montar una partición separada con el indicador noexec .

    
pregunta Tom Klino 25.08.2016 - 16:05
fuente

3 respuestas

2

En realidad estás discutiendo tres técnicas de endurecimiento separadas.

Separar particiones

Las particiones separadas hacen dos cosas por ti. Primero se aísla los sistemas. Esto puede ser beneficioso en muchos aspectos, no solo en la seguridad, como en el caso de problemas de almacenamiento. Desde el punto de vista de la seguridad, se aíslan los directorios a los que se accede globalmente y se pueden eliminar, reconstruir y volver a desplegar fácilmente sin el trabajo de la partición de arranque que necesita una reconstrucción completa.

Segundo, copias de seguridad. No es infrecuente ejecutar sistemas de respaldo en un directorio de inicio de partición y usar una herramienta de administración de configuración como Chef o Puppet en el sistema raíz. Las configuraciones del sistema de raíces rara vez cambian, y en una situación de reconstrucción completa, por lo general se vuelve más beneficioso implementar archivos "/" basados en Chef o Puppet para mantener los estándares, que recuperar archivos de usuarios, aparte de restaurar archivos de configuración desde la copia de seguridad.

Montaje

Ha pasado un tiempo, y no tengo mi sistema Nix delante de mí, pero debería poder ingresar al archivo fstab y editar el directorio / tmp para usar el indicador NOEXEC. Esto no debería requerir una partición separada. La bandera de las páginas de manual:

  

noexec

     

No permita la ejecución directa de ningún archivo binario en el montaje   sistema de archivos. (Hasta hace poco era posible ejecutar binarios de todos modos   usando un comando como /lib/ld*.so / mnt / binary. Este truco falla desde   Linux 2.4.25 / 2.6.0.)

Hace lo que dice.

CHMOD

El modo de cambio se usa para cambiar el permiso en el nivel de archivo / directorio. Si lees la página de manual de chmod, puedes ver que -x otorga derechos de ejecución a Archivos y ACCESO a directorios.

    
respondido por el Shane Andrie 25.08.2016 - 16:54
fuente
1

Algunos archivos, también en temp, realmente necesitan ser ejecutables sin la necesidad de ejecutarse. Marcar la partición con noexec aún le permitirá configurar +x , pero la ejecución (por shell, ld-linux-x86-64.so) está prohibida. Esto conduce a una capa adicional de seguridad como dijiste.

    
respondido por el Yorick de Wid 25.08.2016 - 16:21
fuente
1

Eliminar el bit de ejecución de forma recursiva en / tmp con chmod -R -x /tmp no impide la ejecución de archivos desde / tmp.

Primero, solo se aplica a los archivos actualmente en / tmp. Los nuevos archivos creados después de ejecutar chmod no tendrán restricciones.

Segundo, si elimina el bit de ejecución del archivo de otro usuario, no impedirá que el usuario lo ejecute. El usuario puede agregar el bit de ejecución después de que lo cambie.

En tercer lugar, el bit de ejecución en los directorios se llama "búsqueda" y tiene un significado diferente al de los archivos. Dada esta estructura de directorios:

.:
total 8
drwxrwxr-x 2 root root 4096 ago 25 13:54 dir1
drwxrwxr-x 2 root root 4096 ago 25 13:54 dir2
./dir1:
total 0
-rw-rw-r-- 1 root root 0 ago 25 13:54 file1
-rw-rw-r-- 1 root root 0 ago 25 13:54 file2

./dir2:
total 0
-rw-rw-r-- 1 root root 0 ago 25 13:54 file1
-rw-rw-r-- 1 root root 0 ago 25 13:54 file2

Si elimina el bit de "búsqueda" de dir1 con chmod -x dir1 , obtendrá esto:

$ chmod -x dir1
$ ls -l dir1
ls: no se puede acceder a 'dir1/file2': Permiso denegado
ls: no se puede acceder a 'dir1/file1': Permiso denegado
total 0
-????????? ? ? ? ?            ? file1
-????????? ? ? ? ?            ? file2

$ cat dir1/file1 
cat: dir1/file1: Permiso denegado

Si haces esto en / tmp obtendrás un directorio temporal inutilizable, y varios programas se bloquearán en ti.

Por lo tanto, la opción de montaje noexec no puede ser reemplazada por chmodding.

Si realmente quieres hacerlo sin agregar una nueva partición 1 o usar un archivo tmpfs / loop-mount (como lo sugiere Shane), puedes probar el bind-fu en esta respuesta de SF

1 : También diría que no tendrías este problema si estuvieras usando volúmenes lógicos;)

    
respondido por el GnP 25.08.2016 - 19:10
fuente

Lea otras preguntas en las etiquetas