Un bug en Ubuntu relativo al reloj del sistema permitiría escalada de privilegios

bugs-everywhere¿Bug o Feature? Esta es la cuestión que se lleva debatiendo en LaunchPad desde hace algo más de año y medio, primero de forma privada y desde hace unas horas ya de forma pública, después de que se reportara que bajo determinadas circunstancias un intruso que accediera a la sesión abierta de un usuario, podría escalar privilegios y hacerse con sudo, sin necesidad de autenticarse como administrador del sistema.

Es un error que afectaría a todos los sistemas Ubuntu existentes desde Ubuntu 12.04 LTS hasta Ubuntu 15.04 (también en OS X) y con diferentes escritorios (Unity, Cinnamon, GNOME, KDE…), el cual se debería a una configuración peculiar en Ubuntu, la cual permite a los usuarios (administradores) cambiar el reloj del sistema, en cualquier momento sin introducir la contraseña de root.

Esta relajación respecto a las políticas de permisos se establece en un archivo del directorio var/lib/polkit.

bugs-everywhere2Y trae como consecuencia que un usuario con malas intenciones podría saltarse la seguridad de sudo, ganando acceso sin necesidad de conocer la contraseña, simplemente lanzando una terminal y accediendo al archivo “/var/log/auth.log”.

cat /var/log/auth.log

Una vez ahí, podría sacar provecho de esa información para ver cuando fue la última vez que se ejecutó SUDO y desde que pseudo-terminal (PTY), para a continuación establecer la hora del sistema y obtener control completo del ordenador ejecutando:

sudo -s

Sin embargo el error no es fácilmente explotable, dado que sería preciso que el intruso accediera de forma local (según Mark Smith, la persona que reportó el bug, en OS X sería posible hacerlo de forma remota) a la sesión de un usuario que hubiera dejado la sesión abierta y sin bloquear su equipo.

Seguramente a nivel de usuario corriente no tenga demasiada importancia, pero podría tenerlo en algunos entornos corporativos en los que prima la seguridad.

Sea como fuere en Reddit hay una interesante discusión al respecto, en la que también participa el desarrollador de Ubuntu encargado del bug, junto al usuario que lo reportó.

En ella se discute sobre si debe primar la seguridad o la facilidad de uso en distribuciones como Ubuntu y nos recuerdan aquella vieja polémica de Linus y la política de seguridad de openSUSE respecto a las impresoras.

En todo caso más que un problema de si un usuario debe o no poder acceder a cambiar la hora del sistema sin poner una contraseña (que vamos, tampoco es tanto trabajo y no es algo que se haga todos los días…), es como configurar eso sin dar lugar a una escalada de privilegios.

Por cierto ninguna versión de Debian ha estado afectada en ningún momento por este bug. De hecho Debian Jessie incluye una versión más moderna (1.8.10p3-1) de sudo que la de Ubuntu, todavía anclada en 1.8.9.5.

Y ya no hablemos de distros rolling release como openSUSE Tumbleweed (1.8.12, aunque ahí somos más de “su”) o Arch Linux (1.8.13)…aunque repito en este caso no parece que el hecho sea imputable a sudo, sino a la configuración de permisos del sistema realizada en Ubuntu.

Imagen | Mark Rain (CC BY 2.0)

6 thoughts on “Un bug en Ubuntu relativo al reloj del sistema permitiría escalada de privilegios”

  1. Anger Pulido says:

    Gracias por la nota amigo jose.

    1. tannhausser says:

      De nada colega!

  2. carlosky77 says:

    No entendí o realmente no es un bug. Porque al fin y al cabo cuando utilizas sudo, dependiendo de la configuración de la distro (o si uno la modificó) tiene una duración en minutos. Si no ejecutaste sudo durante ese lapso de tiempo entonces te volverá a pedirte la contraseña. Es claro que si ejecutaste sudo y te retiras del equipo sin bloquear la sesión, obviamente mi compañero de trabajo puede hacer lo que le dé las ganas. Y no sé cómo lo pueden escalar privilegio por el reloj.

    P.D: Creo que yo no entendí.

    1. tannhausser says:

      supongo que la idea es que puedan ejecutar sudo, más allá de ese tiempo que tu mencionas, simplemente cambiando la hora del sistema.

      Me acabo de pasar por LaunchPad y veo que no le dan demasiada importancia (por aquello de que es responsabilidad del usuario dejar su equipo bloqueado para que no hagan cosas raras en el) y van a solucionarlo en la próxima versión 15.10 actualizando de paso sudo.

      1. Adrià says:

        Pues a mi si me parece grave, me explico. Y si eres un administrador de sistema y has decidido montar tus equipos con Ubuntu? Los usuarios podrían hacerse con el control de las maquinas.

  3. Sudoer says:

    Esto es lo que pasa por “sudar” tanto en Linux. Jaaaaaaaaaaaajajajajaajajja
    Yo tampoco entiendo como “sudando con el reloj del sistema” se pueden escalar privilegios en todo el sistema sin ser root.
    Lo acabo de probar como dicen en Mint 17.1 y no pasa nada.

    A usar más el su.

Deja un comentario