¿Es seguro montar Veracrypt sin sudo password de esta manera?

8

¿Tiene esta manera tiene alguna ¿Problemas de seguridad que no sean los mencionados en esa publicación?

Para referencia:

  

Crea un nuevo grupo llamado say veracryptusers y dale los permisos necesarios para utilizar VeraCrypt sin contraseña de root. Cualquier usuario que pertenezca a ese grupo podrá utilizar VeraCrypt.   Nota: esto aumenta ligeramente la superficie de ataque para la elevación de los derechos de los usuarios, así que asegúrese de agregar solo usuarios de confianza a este grupo.

$ groupadd veracryptusers
  

Ahora vamos a darle a este grupo permisos de sudo limitados a VeraCrypt:

$ sudo visudo -f /etc/sudoers.d/veracrypt
GNU nano 2.5.3        File: /etc/sudoers.d/veracrypt.tmp                      
  

Los usuarios del grupo veracryptusers tienen permitido ejecutar veracrypt como   raíz.

%veracryptusers ALL=(root) NOPASSWD:/usr/bin/veracrypt
  

También asegúrese de que veracrypt y / usr / bin tengan la debida   Los permisos y NO se pueden escribir por grupos ni por otros:

$ ls -al /usr/bin/vera*
-rwxr-xr-x 1 root root 6341016 paź 17  2016 /usr/bin/veracrypt
$ ls -ald /usr/bin
drwxr-xr-x 2 root root 69632 lip 25 10:09 /usr/bin
  

De lo contrario, un usuario malintencionado puede reemplazar el ejecutable y obtener el total   raíz a la derecha en su deseo.

     

Ahora reinicie (o reinicie) para que los grupos se revalúen y se vuelvan a activar.   - puedes montar y desmontar tus volúmenes favoritos.

    
pregunta forest 28.01.2018 - 10:17
fuente

1 respuesta

11

Esto es extremadamente inseguro. ¡Me alegra que hayas preguntado en otro lugar antes de ejecutar esta configuración tú mismo! Espero que esas más de 3000 personas en AskUbuntu hayan sido igualmente cautelosas. Entonces, ¿por qué es esto inseguro? ¿Qué puede hacer un atacante si los pones en el grupo? Ese grupo podrá elevar privilegios a root. El motivo es simple: VeraCrypt permite montar un volumen cifrado de permisos de archivos arbitrarios, utilizando un sistema de archivos arbitrario con marcas de montaje arbitrarias. Considere el siguiente escenario:

  1. Un usuario malvado se coloca en tu grupo especial, permitiéndoles ejecutar VeraCrypt como root sin una contraseña. Este usuario desea explotar su configuración para obtener un shell de root, permitiéndole ejecutar comandos que no sean /usr/bin/veracrypt como root. Su objetivo final es simple: omita las restricciones que tiene y ejecute comandos arbitrarios como root.

  2. El usuario malvado crea, administra y graba un volumen cifrado. Se formatea y se copia un binario bash al sistema de archivos. Como el volumen se puede escribir directamente, el bit setuid se puede establecer en el binario. Normalmente esto es imposible, pero nuestro atacante puede modificar el volumen.

  3. El usuario malvado ejecuta VeraCrypt como root y monta el volumen en /mnt (una operación normalmente privilegiada). Ejecutan /mnt/bash y obtienen un shell de root, desde el cual pueden ejecutar cualquier comando como usuario privilegiado. Tienen su shell raíz y pueden ejecutar lo que quieran.

Normalmente, un sistema de archivos que se puede montar por el usuario tendrá varias restricciones. Estos sistemas de archivos se configuran normalmente montando con el indicador user . De acuerdo con la mount(8) página de manual:

user

Allow an ordinary user to mount the filesystem. The name of the mounting
user is written to mtab so that he can unmount the filesystem again. This
option implies the options noexec, nosuid, and nodev (unless overridden
by subsequent options, as in the option line user,exec,dev,suid). 

Cuando un sistema de archivos es montado por un usuario sin privilegios de esta manera, a pesar de que pueden crear un sistema de archivos con un ejecutable setuid, el sistema no respetará el bit setuid cuando se monta el sistema de archivos. VeraCrypt no tiene forma de saber todo esto, y felizmente monta el sistema de archivos de escritura como root, con soporte completo para binarios de setuid. Esta protección se omite y los atacantes obtienen la raíz, a pesar de que solo permita un comando "seguro" a través de sudoers.

Estoy seguro de que también hay otros posibles ataques. ¿Tiene su sistema de archivos algún indicador de montaje que, por sí solo, pueda dar una raíz de atacante? ¿Se pueden escribir archivos de claves o volúmenes nuevos en ubicaciones arbitrarias? Si es así, ¿pueden sus contenidos ser elegidos por el usuario? Cuando omite una salvaguarda importante, repentinamente debe confiar en que los diseñadores de VeraCrypt escriban el programa de tal manera que lo proteja de un modelo de amenaza que nunca consideraron. A diferencia del programa mount , que fue diseñado desde el principio para ser seguro incluso cuando un usuario sin privilegios lo ejecuta como root, VeraCrypt no tenía tales objetivos. Las mismas consideraciones deberían aplicarse a cualquier cosa antes de ejecutarlo como root.

    
respondido por el forest 28.01.2018 - 22:20
fuente

Lea otras preguntas en las etiquetas