¿Por qué visudo desalienta a otros editores?

¿Por qué visudo desalienta a otros editores?

man visudoexplica que visudo no utilizará (por defecto) variables EDITORde VISUALentorno.

Se afirma que

"No existe una manera fácil de evitar que un usuario obtenga un shell raíz si el editor utilizado por visudo permite escapes del shell".

Ahora estoy confundido sobre dónde reside el riesgo para la seguridad. Creo que

  • Sólo el root puede usar visudo para editar./etc/sudoers
  • sólo root puede cambiar las variables de entorno de root
  • root ya tiene un shell raíz

Probablemente exista un caso de uso en el que esto no sea válido, pero no se me ocurre.

Respuesta1

No creo que exista un riesgo de seguridad adicional al ejecutar un editor arbitrario estrictamente visudohablando. Claramente, el usuario que lo ejecuta visudoya tiene permisos para editar /etc/sudoersy, por lo tanto, tiene la capacidad de agregar reglas que permitirán la ejecución de cualquier otro comando en el sistema. Entonces, independientemente del editor que se ejecute, un usuario que pueda visudoya puede ejecutar lo que quiera indirectamente agregando una nueva regla sudo.

Creo que el aviso en la documentación sobre las variables de entorno EDITORy VISUALtrata sobre la ejecución de un shell raíz (o comando arbitrario) sin pasar por el registro estándar de Sudo. De forma predeterminada, sudo registra todas las autenticaciones exitosas y fallidas en syslog. Esto le brinda al administrador del sistema un seguimiento de auditoría sobre qué usuarios están ejecutando qué comandos a través de sudo. Si un usuario cambia /etc/sudoerscon visudo, eso se puede ver sumando o revisando el archivo. Sin embargo, si un usuario puede obtener un shell raíz a través de visudo, puede ejecutar comandos arbitrarios sin ningún seguimiento de auditoría.

Entonces, el riesgo de seguridad es el mismo que otorgar permiso para ejecutar sudo bash, es decir, que un usuario con ese privilegio puede obtener un shell raíz y ejecutar código arbitrario sin ninguna restricción o registro de los comandos que se ejecutan.

información relacionada