¿Podrían los navegadores mejorar la seguridad de las contraseñas almacenadas usando setuid?

5

En sistemas Unix-esque, Mozilla Firefox almacena las preferencias, el historial web y las contraseñas almacenadas de un usuario en un conjunto de archivos que son legibles y grabables por ese usuario en particular.

Esto tiene sentido: cuando el usuario bob está ejecutando Firefox, estos archivos deben ser legibles por bob para que Firefox pueda acceder a ellos. Sin embargo, esto también significa que cualquier aplicación maliciosa que Bob ejecuta accidentalmente también tiene acceso a esta información personal.

Entonces, ¿por qué los navegadores como Firefox no crean un nuevo usuario, con una contraseña aleatoria, llamada algo como firefox-bob , cuál sería el único usuario capaz de acceder a estos archivos?

Posteriormente, el ejecutable principal firefox podría ser propiedad de firefox-bob , ejecutable por bob , y tener su bit setuid activado.

No me sorprendería si un sistema similar también fuera posible en (versiones recientes de) Windows.

Por supuesto, un enfoque de este tipo no sería resistente a que el malware obtenga permisos de root o exploits dentro del propio navegador. Sin embargo, creo que utilizar permisos de archivo como este podría mejorar significativamente la seguridad de las contraseñas almacenadas u otros datos privados.

¿Sería esta una buena idea? ¿O me estoy perdiendo algo? ¿Hay problemas prácticos con este enfoque?

    
pregunta AardvarkSoup 09.09.2012 - 15:53
fuente

3 respuestas

7

Esta idea no es específica para los navegadores web. Podría hacer el mismo argumento de que todas las aplicaciones que ejecuta el usuario merecen tener su propio ID de usuario segregado con el que ejecutar.

Sí, se podría obtener cierta medida de seguridad al hacer esto porque (por ejemplo) el reproductor de música malicioso que se ejecuta en la misma sesión de escritorio no pudo acceder a las contraseñas almacenadas del navegador web. Pero creo que rápidamente te darás cuenta de que el esquema presentado no es práctico. El usuario no podrá acceder a ese archivo que descargó con el navegador web desde su software de correo electrónico para adjuntarlo a un correo electrónico, o al administrador de archivos para eliminar el contenido.

Además del hecho de que cada usuario del sistema ahora requiere N usuarios en /etc/passwd , donde N es el número de aplicaciones diferentes que ejecutan. No solo el sistema no proporciona ninguna forma de administrar esas cuentas y cambiar entre ellas, sino que es simplemente complicado.

Su idea es una desviación bastante significativa del modelo de seguridad de UNIX pero tiene mérito, y con el tipo correcto de ayuda del sistema operativo se puede hacer de manera limpia. Android funciona más o menos exactamente de esta manera. .

    
respondido por el Celada 09.09.2012 - 16:51
fuente
5

Lo que estás pensando es en el control de acceso obligatorio aplicado en las aplicaciones. Esto todavía se está desarrollando en el espacio del sistema operativo del consumidor, pero aquí hay algunos ejemplos de este pensamiento:

Windows tiene un sistema basado en el contexto de Obligatorio Control de integridad , no diferencia el acceso entre aplicaciones de la misma clase.

Una de mis ideas de contexto favoritas es evitar que incluso root lea, / etc / shadow, pero que permita la verificación y el cambio de contraseñas. Aquí está la Guía de SELinux para eso .

    
respondido por el Jeff Ferland 09.09.2012 - 17:08
fuente
4
  

Sin embargo, esto también significa que cualquier aplicación maliciosa que Bob ejecuta accidentalmente también tiene acceso a esta información personal.

Sí, y la falla más obvia de su enfoque de Firefox SUID es que " cualquier aplicación maliciosa que Bob ejecuta accidentalmente " puede enviar eventos al servidor X para usar la GUI de Firefox para leer las contraseñas.

Desordenado, pero factible.

OTOH, creo que un usuario normal de Unix debería tener el derecho de crear muchos "subusuarios", diferentes UID sobre los que tendría control total (incluidos su , chpass y una versión segura de rmuser ). El sub-UID podría tener una relación aritmética obvia con el UID de control. Siempre he deseado algo así.

    
respondido por el curiousguy 09.09.2012 - 17:33
fuente

Lea otras preguntas en las etiquetas