Se advierte a los programadores, administradores de sistemas, investigadores de seguridad y aficionados a la tecnología que copian y pegan comandos de páginas web en una consola o terminal que corren el riesgo de que su sistema se vea comprometido.
Un tecnólogo demuestra un truco simple que lo hará pensar dos veces antes de copiar y pegar texto de páginas web.
¿Puerta trasera en tu portapapeles?
Recientemente, Gabriel Friedlander, fundador de la plataforma de capacitación en concientización sobre seguridad Wizer, demostró un truco obvio pero sorprendente que lo hará cauteloso al copiar y pegar comandos de páginas web.
No es raro que tanto los desarrolladores novatos como los experimentados copien comandos de uso común de una página web (ejem, StackOverflow) y los peguen en sus aplicaciones, un símbolo del sistema de Windows o una terminal de Linux.
Pero Friedlander advierte que una página web podría estar reemplazando de forma encubierta el contenido de lo que está en su portapapeles, y lo que realmente termina siendo copiado en su portapapeles sería muy diferente de lo que pretendía copiar.
Peor aún, sin la diligencia debida necesaria, es posible que el desarrollador solo se dé cuenta de su error después de pegar el texto, momento en el que puede ser demasiado tarde.
En una simple prueba de concepto (PoC) publicada en su blog, Friedlander pide a los lectores que copien un comando simple con el que la mayoría de los administradores de sistemas y desarrolladores estarían familiarizados:
La página HTML de Friedlander con un comando simple que puede copiar al portapapeles
Ahora, pegue lo que copió del blog de Friedlander en un cuadro de texto o Bloc de notas, y es probable que el resultado lo deje sorprendido:
No solo obtiene un comando completamente diferente presente en su portapapeles, sino que, para empeorar las cosas, tiene un carácter de nueva línea (o retorno) al final.
Esto significa que el ejemplo anterior se ejecutaría tan pronto como se pegue directamente en una terminal de Linux.
Aquellos que pegaron el texto pueden haber tenido la impresión de que estaban copiando el comando familiar e inocuo sudo apt update que se usa para obtener información actualizada sobre el software instalado en su sistema.
Pero eso no es exactamente lo que sucedió.
¿Qué causa esto?
La magia está en el código JavaScript oculto detrás de la configuración de la página HTML PoC de Friedlander.
Tan pronto como copie el texto "sudo apt update" contenido en un elemento HTML, se ejecutará el fragmento de código que se muestra a continuación.
Lo que sucede después es un ' detector de eventos ' de JavaScript que captura el evento de copia y reemplaza los datos del portapapeles con el código de prueba malicioso de Friedlander:
Código PoC JavaScript que reemplaza el contenido del portapapeles
Tenga en cuenta que los detectores de eventos tienen una variedad de casos de uso legítimos en JavaScript, pero este es solo un ejemplo de cómo podrían ser mal utilizados.
"Esta es la razón por la que NUNCA debe copiar y pegar comandos directamente en su terminal", advierte Friedlander.
"Crees que estás copiando una cosa, pero se reemplaza por otra, como un código malicioso. Todo lo que se necesita es una sola línea de código inyectada en el código que copiaste para crear una puerta trasera a tu aplicación".
“Este ataque es muy simple pero también muy dañino”.
Un usuario de Reddit también presentó un ejemplo alternativo de este truco que no requiere JavaScript: texto invisible hecho con estilo HTML y CSS que se copia en su portapapeles cuando copia las partes visibles del texto:
El HTML invisible (izquierda) se recoge durante copiar y pegar y tiene una línea adicional (derecha)
Fuente: JsFiddle
"El problema no es solo que el sitio web pueda cambiar el contenido de tu portapapeles usando JavaScript", explica el usuario, SwallowYourDreams .
"También podría simplemente ocultar comandos en el HTML que son invisibles para el ojo humano, pero que la computadora copiará".
Y así, otra razón para nunca confiar ciegamente en lo que copias de una página web: mejor pégalo primero en un editor de texto.
Una lección simple, pero sin embargo, importante en la seguridad cotidiana.
Actualización, 4 de enero, 02:00 a. m. ET: se agregó otro ejemplo de ataque usando HTML/CSS invisible.