opción nodev para el directorio / tmp

1

El estándar CIS para Ubuntu 14.04 LTS (01-07-2015) declara que el directorio / tmp se debe montar con una marca nodev - esto está bajo la Configuración del sistema de archivos (Sección 2). Esto evita la creación de dispositivos especiales de bloques y caracteres.

¿Alguien puede confirmar cómo podría explotar un atacante no montando el directorio / tmp con el indicador nodev?

A mi entender, los archivos del dispositivo (que a mi entender permiten la conexión de bajo nivel a dispositivos de hardware conectados) generalmente aparecen en el directorio / dev para conectar dispositivos y, por lo general, no son accesibles a menos que tenga un usuario root o tty. El directorio / dev tampoco es escribible por un usuario que no sea root.

    
pregunta John 12.09.2016 - 05:20
fuente

1 respuesta

1

Con el comando mknod es posible crear archivos de dispositivo que no sean los que ya existen en / dev.

$ sudo mknod /tmp/sda b 8 0 
$ fdisk -l /tmp/sda
Disk sda: 80 GiB, 85899345920 bytes, 167772160 sectors
...

Cuando se monta un sistema de archivos nodev , aún puede crear dichos archivos de dispositivo, pero ya no se pueden utilizar.

Un ataque a los archivos / tmp funciona así. Un programa con privilegios elevados abre un archivo temporal en / tmp y le escribe algo. Un atacante de antemano hará algo en este archivo para que el programa realmente escriba en otro archivo.

  • Los enlaces simbólicos del atacante /tmp/tmp1234 a /etc/passwd .
  • Root ejecuta algún programa que escribe en /tmp/tmp1234 como un archivo temporal.
  • / etc / passwd se sobrescribe.

Puede ver que si /tmp/tmp1234 no es un enlace simbólico sino un archivo de dispositivo, el programa escribiría a /dev/sda , o algún otro dispositivo, que podría tener malos resultados.

    
respondido por el Sjoerd 12.09.2016 - 09:04
fuente

Lea otras preguntas en las etiquetas