Actualizado dramáticamente después de 69 votos a favor, vea el historial de respuestas para la respuesta original. Gracias a @JimmyJames por el debate.
Primero, hablemos del modelo de amenaza:¿qué intenta evitar que haga el atacante potencial?
Modelo de amenaza:robo de identidad/ransomeware en un sistema de un solo usuario
En general, para los sistemas de usuario final, el de facto modelo de amenaza es el robo de identidad / ransomware. Si el atacante tiene acceso a sus documentos y/o puede ejecutar comandos de shell como usted, se acabó el juego. Desde esa perspectiva, el acceso de root no gana nada para el atacante; pueden conseguir lo que quieren sin él.
Si el robo de identidad/malware es lo único que le preocupa, entonces no parece que importe mucho si su usuario tiene sudo
poderes, o si el navegador se está ejecutando como root.
(También debo señalar que el malware / conectarlo a una red de bots puede ocurrir sin acceso de root, ya que los scripts de inicio de sesión / la programación de un trabajo cron no requiere root).
Randall Munroe de XKCD parece estar de acuerdo con esta opinión:
Por último, agregaré este descargo de responsabilidad:Sí, soy consciente de que esto va en contra de la opinión pública general de que "más seguridad siempre es mejor". Simplemente no es cierto. A veces, más seguridad es peor, como políticas de contraseñas demasiado complejas que terminan obligando a las personas a escribir sus contraseñas. Siempre hay que mirar los riesgos y decidir cuánta seguridad es realmente apropiada. En este caso, no hay nada de malo en bloquear el acceso raíz, pero te complicas la vida y no está claro que estés ganando algo con ello.
Modelo de amenaza:acceso raíz o sistema multiusuario
Si tiene un modelo de amenaza en el que el atacante quiere algo a lo que solo tiene acceso root, o si hay más de una cuenta de usuario en la máquina, entonces la respuesta depende de qué *nix esté hablando. Esto se está alejando rápidamente de los casos de computadoras personales y en casos de servidores, pero lo discutiré de todos modos. Para Linux, debido a un error (*ejem característica*) en el sistema de ventanas Xorg, su cuenta diaria probablemente no debería tener sudo
potestades. Para sistemas operativos que no usan X, probablemente esté bien.
Linux (ejecutando el sistema de ventanas X.org)
Aquí hay un excelente artículo que le muestra cómo registrar todas las pulsaciones de teclas en una máquina gui linux usando un simple comando de shell de usuario (no root). En resumen:
$ xinput list
te muestra todos los dispositivos de entrada humana conectados
$ xinput test <id>
comienza a hacer eco de todas las pulsaciones de teclas en el dispositivo seleccionado.
Probé y obtengo registros de la contraseña que escribo en sudo
en una ventana de terminal diferente. Si bloqueo mi computadora, cuando vuelvo a iniciar sesión, veo registros de la contraseña que ingresé en la pantalla de bloqueo. Aparentemente esto no es un error en X, es una característica. Bien, me voy a esconder debajo de mi cama ahora.
Entonces, sí, esto respalda la idea de que cualquier usuario con el que inicie sesión en la interfaz gráfica de usuario no debe tener sudo
poderes porque es trivial registrar su contraseña y luego convertirse en root. Supongo que deberías tener una cuenta dedicada para sudo
ing y cambiar a un terminal TTY (ctrl+alt+#
) cuando quieras usar sudo
. Si vale la pena preocuparse por esto o no, depende de usted:personalmente, todos los datos que me importan ya están en mi cuenta de usuario, pero probablemente cambiaré la configuración de mi computadora portátil porque soy un nerd de la seguridad.
Tenga en cuenta que en mis pruebas no pude registrar teclas entre usuarios. Hacer "Cambiar cuenta" en la interfaz gráfica de usuario, o startx
en una nueva terminal tty parece lanzar una instancia aislada de X.
Gracias a @MichaelKjörling por esta observación:
Esa es una de las cosas que Wayland [sistema de ventanas diseñado para reemplazar a X] en realidad trata de arreglar (vea la viñeta sobre seguridad). Recuerde que X11 se originó en un momento en que el modelo de amenazas era muy diferente al actual.
Para administradores de sistemas :esto refuerza el hábito de interactuar solo con sus cajas de Linux a través de ssh, nunca use la GUI.
MacOSX
No soy un experto en OSX, pero sé que no usa el servidor Xorg, por lo que asumiría que la GUI de Apple maneja esto correctamente, pero me encantaría que alguien más experto que yo interviniera.
Ventanas
Tampoco soy un experto en Windows, pero creo que la función de Control de cuentas de usuario (UAC) introducida en Windows 7 solucionó este problema haciendo que las indicaciones del administrador se muestren en un escritorio seguro cuyos buses de entrada están aislados de su escritorio normal.
En la mayoría de las situaciones, solicitar una contraseña con sudo es suficiente protección.
La principal diferencia entre su
ing a otra cuenta y sudo
La clave para obtener privilegios es que con sudo ingrese la misma contraseña que usó para iniciar sesión. Si su modelo de amenaza asume que un atacante tiene la contraseña de su cuenta, entonces ya está en un problema bastante serio, más que otra contraseña en la cuenta raíz te protegerá de.
Descubrí que tener dos cuentas en mis sistemas Unix es esencial por la siguiente razón:
Si alguna vez estropeo mi .bashrc u otros archivos de configuración de inicio de sesión/terminal, puedo llegar a una situación en la que ni siquiera puedo iniciar sesión. Así que estoy totalmente borracho. Esta es la peor situación imaginable ya que no puedes hacer mucho si no puedes iniciar sesión.
La única forma en que pude arreglar esto en un par de computadoras fue tener el otro inicio de sesión que me permite ingresar y usar sudo, arreglar los archivos de inicio para mi cuenta principal. Luego salgo de mi cuenta '2' y regreso a mi cuenta normal.
A veces podría poder usar la opción de arranque desde USB pero, para ser honesto, creo que puedo iniciar sesión en otra cuenta, usar sudo y arreglar mi .bashrc, luego cerrar sesión y volver a la otra cuenta se puede hacer en unos segundos con el segundo inicio de sesión y mucho menos aterrador / desconocido que el arranque USB para arreglar la opción para mí. Por supuesto YMMV (su millaje puede ser muy)