El “secuestro” del portapapeles

Seguridad

Desde finales del mes pasado, muchos usuarios están detectando un comportamiento extraño en su portapapeles.

A la hora de copiar y pegar cualquier dato, encuentran que siempre aparece almacenada en este memoria una misma dirección de Internet, que no recuerdan haber copiado nunca. Copian algún dato en su “clipboard”, y cuando van a pegarlo esa información ya ha sido modificada y en su lugar se memoriza una URL. No parecen estar infectados por malware, en cuanto se visita alguna web el problema reaparece… es solo que su portapapeles ha sido secuestrado.

Según se admite en una nota publicada por el Equipo de Respuesta ante Incidentes de Seguridad en Productos de Adobe (Adobe Product Security Incident Response Team) el problema está causado por una funcionalidad en Flash Player que podría ser aprovechada por un atacante remoto para “secuestrar” el portapapeles del sistema, forzando a que devuelva siempre una misma cadena.

El problema se debe a que por medio de la función “setClipboard” de ActionScript (el lenguaje de programación de Adobe Flash) se puede modificar (pero no acceder) el contenido del portapapeles. La descripción se puede leer en la documentación de Adobe Flash citada a continuación: “El método System.setClipboard() permite a un archivo SWF reemplazar el contenido del portapapeles con una cadena de caracteres en texto claro. Esto no supone un riesgo de seguridad. Para proteger contra los riesgos que supone que contraseñas y otra información sensible sea cortada o copiada de los portapapeles, el método “getClipboard” de lectura desde el portapapeles no existe”.

Si se crea un archivo SWF modificado que invoque a esta función repetidamente en bucle, cada cierto tiempo se actualizará el contenido del portapapeles para forzar que contenga la cadena elegida.

Independientemente de la aplicación con la que se trabaje, siempre que se intente copiar y pegar algún dato, dará como resultado la misma cadena una y otra vez mientras el flash esté activo en una web que está siendo visitada.

El ataque (más molesto que peligroso) se está usando para secuestrar el portapapeles, pegando una URL que lleva a una página de un falso antivirus que resulta ser malware. En el caso concreto detectado en los últimos días, el código ActionScript malicioso venía incrustado en anuncios flash alojados en sitios legítimos que tienen un gran tráfico de visitas diarias, como Newsweek, Digg y MSNBC.

Este fallo no es realmente grave. Desde hace muchos años revive de vez en cuando la polémica (es una funcionalidad vs. es una vulnerabilidad) con respecto a un problema mucho más serio: El acceso al portapapeles por parte de funciones de Internet Explorer. Aunque este ataque flash en concreto es independiente del navegador, aun hoy día la configuración por defecto de la mayoría de sistemas con Internet Explorer 6 permite de forma transparente no solo modificar sino tener acceso al portapapeles. El objeto clipboardData (incorporado en la versión 5 de Internet Explorer) admite tres métodos para interactuar con los datos del clipboard, “getData” para capturar la información, “setData” para escribir, y “clearData” para borrar. Ya en 2005 Hispasec publicó una prueba de concepto disponible en el apartado de más información.

También este ataque a través de flash recuerda al que se puso de moda hace años, lo que se dio en llamar “secuestro del navegador” que consistía en la modificación persistente de la página de inicio de Internet Explorer. Mucho malware del momento era capaz de secuestrarla con más o menos destreza. Hoy en día es una práctica en desuso.

Para “liberar” el portapapeles y que vuelva a funcionar de forma normal, tan solo hace falta cerrar la pestaña del navegador con la que se está visitando en el sitio web susceptible de contener el flash especialmente manipulado.

Aviv Raff ha desarrollado una prueba de concepto que carga de forma persistente la cadena http://www.evil.com en el portapapeles, disponible desde http://raffon.net/research/flash/cb/test.html