Defcon 2015: ¿Qué pasaría si un atacante consiguiera controlar el reloj de tu sistema?

Tras BlackHat viene Defcon, la veterana conferencia de seguridad que aún mantiene, 23 años después, buena parte del espíritu hacker con el que se inició. Durante tres días hemos visto charlas de lo más interesante ofrecidas por ponentes internacionales, pero también otro tipo de eventos, ya clásicos, como el Capture the Flag, los cursos sobre lockpicking o las charlas ofrecidas sobre seguridad en redes WiFi o acerca del Internet de las cosas.

Reloj de oficina

En los próximos días y semanas iremos publicando artículos hablando de lo que vimos durante tres intensos días en Las Vegas pero, como ya es tradición en este blog, queremos hablar primero de investigaciones realizadas por nuestros compatriotas, representados en este caso por el gran José Selvi.

Sincronizando la fecha en sistemas modernos

La charla de Selvi hablaba de cómo interceptar conexiones seguras HTTP en capas SSL/TLS aprovechándose de una característica de HSTS. Este protocolo tiene como peculiaridad que solo permite conexiones seguras, rechazando aquellas que no lo sean, pero también especifica un periodo de tiempo límite para realizar esa conexión segura. Además, HSTS no acepta certificados auto-firmados ni certificados sopechosos de haber sido comprometidos.

Traducido de forma que todos nos entendamos, si HSTS está activado, podremos garantizar que se creará una conexión segura durante un periodo de tiempo lo suficientemente largo cuando accedamos a una página web que lo soporte. En caso contrario, la conexión será rechazada y no podremos acceder a esa web insegura.

Actualmente los sistemas para obtener fecha y hora de forma correcta funcionan, una vez se dispone de conexión a Internet, sin necesidad de especificarlas manualmente. Esto es debido al uso de NTP, un servicio que permite sincronizar nuestros sistemas de forma automática y evita que se use una fecha errónea. Este protocolo viene instalado por defecto en la mayoría de servicios operativos actuales pero, lamentablemente, ni está debidamente protegido ni es invulnerable a ataques, aunque, dependiendo del sistema operativo usado estos serán más o menos difíciles de ejecutar.

selvi1

Selvi destacó en su charla cómo en sistemas Linux como Ubuntu o Fedora estos ataques a NTP resultaban más fáciles puesto que solicitaban conectarse a un servidor NTP cada minuto en el caso de Fedora o cada vez que se conectase a una red (incluyendo durante el arranque del sistema) en el caso de Ubuntu.

Por su parte, Mac OS X, incorpora desde Mavericks un nuevo servicio de sincronización ya que, a pesar de existir anteriormente un proceso con esta finalidad, no funciona correctamente. Entre las características de este nuevo servicio está la de consultar con el servidor NTP para actualizar la fecha en el caso que proceda cuando se abre el panel de preferencias “Fecha y hora”.

Windows incorpora el servicio de sincronización más seguro, ya que tan solo se conecta al servidor NTP cada 7 días y solo permite realizar cambios de 15 horas como máximo (aunque también explicó la posibilidad de cambiar la fecha dando saltos de 15 horas cada vez). Además, la sincronización manual no está tan a mano como en otros sistemas y se debe aprobar pulsando sobre un botón. Sin embargo, los miembros de un dominio funcionan de otra manera diferente.
Presentamos el ataque DeLorean

a que estamos hablando de un ataque en el que el manejo del tiempo es un factor fundamental, qué mejor nombre que el del mítico automóvil transformado en máquina del tiempo de la trilogía “Regreso al futuro”. Este ataque es en realidad un conjunto de ellos y permite realizar ataques Man-in-the-middle para interceptar y modificar comunicaciones NTP entre el sistema operativo y el servidor NTP.

Tal y como hemos mencionado antes, el protocolo HSTS establece una cantidad de tiempo máxima para la conexión segura que queremos realizar. Si excedieramos este tiempo, la conexión dejaría de ser segura y podríamos ver lo que se está transmitiendo por ella. Sin embargo, el tiempo necesario para que esto suceda es muy elevado, estando el límite en 3.153.600 segundos (o lo que es lo mismo, 36.5 días), aunque normalmente se utilizan periodos menores.

Es casi imposible que una conexión segura dure tanto tiempo pero el ataque DeLorean de Selvi permite dar saltos en la fecha del sistema y engañarlo para hacerle creer que ha pasado más tiempo del que dura la conexión segura. De esta forma, toda la información que se estuviese transmitiendo pasaría a ser susceptible de ser espiada puesto que la capa de seguridad ya no existiría.

Si a la dependencia total de HSTS del tiempo para proporcionar seguridad le añadimos que se fía plenamente del reloj del sistema tenemos un ataque con muchas posibilidades de resultar exitoso. Además, tal y como confirmó Selvi tras consultarlo con investigadores de Google, un montón de cosas malas suceden o se rompen cuando el reloj del sistema no funciona como debería.

Navegadores y actualizaciones de Windows

Siendo los navegadores un elemento crucial en nuestro uso diario de Internet, Selvi se preocupó de conocer cómo implementaban HSTS diferentes navegadores. Tanto Google como Mozilla incorporan una serie de lista precargada en sus navegadores Chrome y Firefox de sitios webs (Google, Paypal, Twitter, etc.) en los que se fuerza una comunicación segura.

No obstante, si se consiguiera realizar un ataque DeLorean con éxito, se podría forzar a un usuario a que se conectase a ese tipo de webs usando un protocolo inseguro por lo que se podrían robar las credenciales de acceso y ser usadas posteriormente por un atacante.

Existe también la posibilidad de utilizar este ataque también contra el programador de tareas de Windows para, por ejemplo, no realizar actualizaciones de seguridad de forma automática y dejar a un sistema más vulnerable. El usuario, no obstante, podría poder seguir ejecutando la actualización manual.

Certificados obsoletos que vuelven a la carga

Si tenemos en cuenta que casi todos los mecanismos de confianza se siguen basando en certificados emitidos por entidades de todo el mundo, el uso de certificados obsoletos o que fueron descartados por inseguros supondría un riesgo en el caso de que nuestro navegador y sistema los siguiese aceptando.

Actualmente, los sistemas no permiten el uso de certificados revocados con una fecha de expiración emitida pero, ¿y si usando una ataque DeLorean cambiamos la fecha del sistema a una en la que estos certificados aún siguen siendo válidos?

selvi3

En este escenario tendríamos la posibilidad de utilizar certificados emitidos por Autoridades de Certificación como Diginotar que fueron comprometidas en su día y sus certificados emitidos para suplantar webs muy conocidas sin que los usuarios pudieran sospechar nada puesto que su navegador le indicaba que se encontraba en un sitio legítimo. También se podría usar para utilizar vulnerabilidades corregidas como Heartbleed en servidores, por ejemplo.

Conclusiones y recomendaciones

Jose Selvi no quiso concluir la charla sin dar una serie de conclusiones y recomendaciones para mitigar ataques de este tipo. Quedó demostrado que la sincronización de la fecha y hora deja mucho que desear, al menos en el apartado de seguridad, en la mayoría de sistemas operativos. Además, muchas protecciones de seguridad dependen de la fecha del sistema. Si un atacante consiguiera controlar el reloj de un sistema, un montón de cosas podrían ir mal.

Para evitar este tipo de situaciones Selvi recomienda configurar la sincronización NTP de forma segura, tal y como hace Microsoft en Windows. También recomienda aplicar el tiempo máximo en las conexiones bajo HSTS y bloquear aquellos certificados SSL con fecha de expiración anterior a la fecha de la versión del navegador utilizado o de la última actualización, tal y como hace Chrome.

Sin duda, una manera ingeniosa de interceptar comunicaciones seguras con la que Selvi demostró ante una audiencia exigente que en España hay mucho talento.

Josep Albors

Windows 10, ¿Privacidad 0?