Menú principal

martes, 20 de septiembre de 2011

Mac OS X Lion: Gravísimo fallo de seguridad permite a cualquier usuario cambiar la password de cualquier usuario

A Apple se le acumulan los parches de seguridad que debe solucionar en Mac OS X Lion. Mientras aún están sin resolver los problemas con la revocación de confianza para entidades de certificación y el problema de autenticarse sin contraseña en árboles OpenLDAP, el domingo saltó la noticia de un problema aún más serio. Cualquier usuario de un sistema Mac OS X Lion puede ver y cambiar la contraseña de cualquier usuario del mismo sistema.

La noticia la publica Patrick Dunstan en su blog Defence in Depht en un artículo en el que explicaba que, mientras analizaba el almacenamiento de las contraseñas en los ficheros shadow, descubrio que haciendo uso de los servicios de directorio era posible saltarse la restricción que prohibe el acceso a los datos almacenados en los ficheros shadow.

Los ficheros shadow

En los sistemas UNIX se ha utilizado antiguamente un fichero para almacenar los datos relativos a cada usuario llamado passwd. Este fichero contenía, entre otras cosas, el identificador de usuario, el identificador de grupo, la shell que estaba utilizando y el hash de la contraseña para autenticarse en el sistema. Como había información que era necesario poder leer por muchos componentes del sistema, como por ejemplo el identificador de usuario o el de grupo, ese fichero podía, incialmente, ser leido por todo el mundo, lo que dejaba la seguridad de la cuenta del usuario a la fortaleza del hash y de la password.

Así, si dos usuarios tenían la misma password, entonces tenían el mismo hash, lo que hacía que fuera fácil descubrir contraseñas inseguras. Para evitar esto, se añadió el SALT, una cadena de caracteres aleatorios que se añade a la password antes de generar el hash para evitar que dos contraseñas iguales generen el mismo password. Sin embargo, debido al aumento de la potencia de cálculo y al estudio continuado de técnicas de crackeo de passwords hicieron que este mecanismo fuera insuficiente para proteger las cuentas de usuario, por lo que se optó por hacer una copia "en la sombra" del salt y el hash resultante de la password, que solo debía ser accesible por los servicios que corren como root.

Ficheros shadow en Mac OS X Lion y la vulnerabilidad con los servicios de directorio

En la versión Mac OS X Lion 10.7.1 cada usuario tiene su propio archivo shadow almacenado en formato .plist en la ruta /var/db/dslocal/nodes/Default/users/ y a este fichero solo tiene acceso root.

Sin embargo, los servicios de directorio, que permiten consultar la información relativa a un perfil de usuario, por algún grave fallo de seguridad, permiten acceder a los datos de este archivo sin privilegios de root. Así, con un sencillo comando como:

$ dscl localhost -read /Search/Users/bob

Permite acceder a todos los datos del perfil del usuario consultado, en este caso bob, entre los que se encuentra el hash de la password y el valor de salt utilizado, tal y como se puede ver en la imagen siguiente:

Figura 1: Resultado con el hash y el SALT de la password del usuario

Sin embargo, lo peor es que con este servicio no solo se puede consultar información, sino que se puede invocar un cambio de contraseña sin ni tan siquiera conocer la password anterior. Para ello bastaría con utilizar el comando siguiente:

$ dscl localhost -passwd /Search/Users/bob

Lo que permitiría al atacante cambiar la password al usuario bob.

Contramedidas temporales

Como era de esperar, la comunidad ha clamado en contra de Apple por este grave fallo de seguridad, y se espera una solución pronto al problema. Sin embargo, mientras que Apple aprieta para sacar un parche de este serio problema, os recomendamos tener mucho control con el acceso local a las máquinas. Esperamos que años de concienciación con el ataque David Hasselhoff os hayan hecho ya bloquear la sesión de usuario nada más levantaros de vuestro Mac para evitar que David te mire desde tu Mac, dejar mensajes disuasorios, e incluso configurar sistemas de alerta cuando alguien se acerque al equipo, pero a parte de ello, os recomendamos que entréis en las preferencias del sistema y reviséis cuántos usuarios tenéis creados y las contraseñas de ellos. Si uno solo de esos usuarios tiene una password insegura o por defecto, estará poniendo en riesgo la seguridad de todos los demás usuarios.

2 comentarios:

  1. Lo acabo de probar y me pide la contraseña antigua del usuario.

    ResponderEliminar
  2. Buenas tardes, acabo de probarlo en mi mac os x 10.7.1 y si que puedo cambiar el passwd sin saber la contraseña de otro usuario

    Saludos, Andriy

    ResponderEliminar

Artículos relacionados

Otras historias relacionadas

Entradas populares