¿Qué vulnerabilidades específicas estoy creando al deshabilitar la contraseña de sudo?

Aquí hay algunas instrucciones sobre cómo deshabilitar su contraseña de sudo . Estos llevan la siguiente advertencia

Si deshabilita la contraseña de sudo para su count, comprometerá seriamente la security de su computadora. Cualquier persona que se encuentre en su count desatendida e ingresada tendrá acceso completo a la root , y los exploits remotos serán mucho más fáciles para los crackers maliciosos.

No me preocupa que las personas obtengan acceso físico a mi máquina. ¿Qué exploits remotos son posibles o más fáciles si ignoro esta advertencia y desactivo la contraseña?

Si permite sudo sin contraseña, cualquier persona que logre ejecutar código en su máquina como usuario puede ejecutar trivialmente el código como raíz. Podría ser alguien que use la console mientras está conectado, pero no frente a su computadora, lo cual no le preocupa (de todos modos, alguien con acceso físico puede hacer prácticamente lo que quiera). También podría ser alguien que accede a su count en otra máquina en la que ha ssh'ed a su propia máquina. Pero también podría ser alguien explotando un agujero de security remoto, por ejemplo, un website que explota una falla del browser para inyectar código en la instancia de su browser.

¿Qué tan grande es eso? No mucho, por varias razones:

  • Un atacante que haya encontrado un agujero remoto probablemente también pueda encontrar un agujero de raíz local.
  • A varios atacantes no les importan los privilegios de root. Todo lo que quieren es enviar spam e infectar otras máquinas, y pueden hacerlo como su usuario.
  • Un atacante que tenga acceso a su count puede descartar un troyano que capture sus pulsaciones de teclas (incluida su contraseña) o que se adhiera a cualquier medio que utilice a continuación para get la raíz para ejecutar el command por su count.
  • Si usted es el único usuario en su máquina, no hay mucho que proteger que no sea accesible para su usuario.

Por otra parte:

  • Si está actualizado con las actualizaciones de security, es probable que el atacante no encuentre un agujero local para explotar.
  • Un atacante no root no puede borrar sus pistas muy bien.
  • Tener que escribir una contraseña de vez en cuando no es una gran carga.
  • Tener que escribir una contraseña le restring que está haciendo algo peligroso (como en: puede perder datos o inutilizar su computadora). (Como usuario no root, el único peligro real es borrar datos por error, y generalmente es obvio cuando borras algo y debes tener mucho cuidado).

Creo que la contraseña de sudo podría protegerte solo de dos cosas:

  1. daño accidental de su propio sistema (por ejemplo, ejecutando algunos rm -rf con una ruta relativa desde el historial del shell en un directory diferente que anteriormente, o algo como esto)
  2. ejecutando script (malicioso) que invoca sudo e intenta dañar su sistema (pero no creo que este tipo de software malicioso sea muy popular)

Si lo desea, podría usar la opción NOPASSWD solo para los commands seleccionados que no dañarán su sistema (para editores o para reiniciar services) y mantendrá la contraseña para otros commands.

Vale la pena señalar que algunas organizaciones competentes en realidad prefieren sudo sin contraseña cuando tienen usuarios que necesitan iniciar session en muchos hosts remotos diferentes, especialmente si eso incluye hosts con distintos niveles de security.

El problema al ingresar su contraseña es que está dando su contraseña a sistemas remotos de manera regular. Una de las razones por las que usamos SSH es evitar exactamente ese tipo de agujero de security. Es una cuestión de concesiones: aumenta la probabilidad de que la contraseña de un usuario se vea comprometida a fin de disminuir la probabilidad de que un atacante que haya comprometido una session o key pueda lograr el acceso raíz. En particular, imagine el siguiente escenario:

  • gran organización
  • muchos anfitriones
  • los hosts tienen diferentes niveles de security
  • el acceso no root ya es dañino
  • las passwords de los usuarios desbloquean muchas cosas

En el escenario que describí, sudo sin contraseña puede boost su security al proteger la contraseña del usuario. Esto es similar a los ataques de reutilización de passwords que se han vuelto comunes en Internet, excepto que la vulnerabilidad proviene de un sistema de authentication unificado en lugar de la reutilización real de las passwords.

A less que esté en una empresa gigante, sudo aprobado probablemente boostá su security, pero no necesariamente por una gran cantidad. A less que sea realmente un profesional en security de sistemas, o un host sin nada particularmente valioso, le recomendaría que lo deje.

Si no tienes sshd instalado, entonces es bastante seguro, a less que rompas algo tú mismo.