¿Qué es el Clickjacking? Definición, métodos y mejores prácticas de prevención para 2022
El Clickjacking es una técnica de ciberdelincuencia en la que el atacante engaña al usuario haciéndole creer que un hipervínculo falso es real. Una vez que el usuario hace clic en él, se lo dirige a un sitio web diferente, se descarga una aplicación fraudulenta, se exponen datos confidenciales o se produce una actividad fraudulenta similar. Este artículo explica cómo funciona el clickjacking, sus distintos modos de acción y las mejores prácticas para contrarrestar este ciberataque.
¿Qué es el Clickjacking?
El Clickjacking se define como una técnica de delito cibernético en la que un atacante engaña al usuario haciéndole creer que un hipervínculo falso es auténtico. Una vez que el usuario hace clic en él, se lo dirige a un sitio web diferente, se descarga una aplicación fraudulenta, se exponen datos confidenciales o se produce una actividad fraudulenta similar.
El secuestro de clics es una estafa en línea en la que se engaña a la víctima para que haga clic en algo diferente de lo que quería decir sin su consentimiento. Un asalto de reparación de la interfaz de usuario es otro término para clickjacking (ataque de reparación de la interfaz de usuario). El enfoque tradicional de secuestro de clics «repara» la interfaz de usuario visual de la víctima al insertar un sitio malicioso o una extensión de sitio web malicioso en un iframe invisible en la parte superior de la página web anterior.
La víctima no sabe que un iframe oculto se superpone a la página que está viendo. La página oculta tiene componentes en los que se puede hacer clic que corresponden a los botones reales de la página expuesta. Por ejemplo, si el usuario hace clic en un botón que dice «Descargar PDF», inadvertidamente activa un componente iframe oculto. Luego, el componente desencadena una actividad maliciosa, como la instalación de un script dañino, que el navegador ejecuta automáticamente para infectar el sistema.
¿Cómo funciona el Clickjacking?
Un marco dentro de otro marco se conoce como iframe. Los iFrames le permiten incorporar material de otros sitios web al suyo. Cuando va a un sitio web y ve un video de YouTube integrado, el video se muestra en un iframe. Los ataques de secuestro de clics, como muchos otros ataques en línea, a menudo involucran alguna manipulación social para atraer a las víctimas a sitios vulnerables/maliciosos. Esto podría ser en un correo electrónico, un mensaje de texto o una publicación de Facebook.
No se trata simplemente de hacer clic con el mouse. Un agresor podría engañar a un usuario desprevenido haciéndole creer que está ingresando sus credenciales en su sitio de banca por Internet mientras lo envía a un sitio monitoreado por el pirata informático, utilizando una combinación de hojas de estilo, campos de texto e iframes. El término secuestro de clics fue creado por los investigadores de seguridad dual Jeremiah y Grossman a raíz de la vulnerabilidad de Adobe Flash Player al secuestro de clics en 2008. Dado que existen muchos tipos distintos de ataques de secuestro de clics, el término “ataque de reparación de la interfaz de usuario” ha cobrado fuerza en los últimos años. Es una frase amplia que cubre una amplia gama de posibilidades.
La forma más común de secuestro de clics es presentar al usuario una combinación de dos sitios web superpuestos en la misma pestaña del navegador, con un incentivo para hacer clic en ubicaciones específicas. El atacante comienza cargando el servidor vulnerable en un iframe, cambiándolo a visualización completa y colocándolo frente a una página web engañosa para obtener clics en puntos críticos.
Ejemplos de clickjacking
Los enlaces ocultos se pueden encontrar en los medios y se pueden usar para realizar una actividad específica, como dar me gusta a una página en Facebook o comprar un producto en Amazon. Para que la agresión tenga éxito, es posible que la víctima deba cumplir determinadas condiciones, como permanecer conectada a las cuentas de las redes sociales. Si se engaña a una persona para que instale algo en su dispositivo, se enfrentará a una máquina pirateada. En el mejor de los casos, una verificación antivirus eliminará la infección. En el peor de los casos, tendrían que restablecer su dispositivo y reinstalar el sistema operativo en su dispositivo de punto final.
Considere una actividad basada en el navegador que se muestre en una ventana emergente y brinde a los ganadores premios o material atractivo. El juego puede presentarse como la página de fondo, con la aplicación en línea deseada, como un sitio de finanzas o comercio electrónico, colocado en un marco transparente encima. El pirata informático desarrolla el sitio web del juego de tal manera que los elementos en los que se puede hacer clic se ubican en la ubicación exacta como controles deseados. Cuando los usuarios intentan hacer clic en los objetos del juego, accidentalmente activan botones ocultos en una página web vulnerable, lo que puede tener graves consecuencias.
Debido al sitio, el usuario puede ofrecer inadvertidamente calificaciones de cinco estrellas, habilitar el acceso a aplicaciones de Facebook, iniciar sesión con credenciales de inicio de sesión único (SSO) o usar pedidos con un solo clic para enviar productos costosos al atacante. El ataque también puede engañar a la víctima para que complete campos de texto en un formulario en línea o CAPTCHA si se combinó con técnicas de arrastrar y soltar. En esta situación hipotética, el usuario extrae elementos de una pantalla oculta y los deja caer en un campo de entrada debido a encuentros bien planificados con el juego. El usuario no hizo esto a propósito.
Cuando una ventana emergente de JavaScript solicita permiso para ver estos datos, el clickjacking puede activar y desactivar la funcionalidad del sistema, como activar la cámara y el micrófono. Podría acceder a la información de ubicación de su computadora u otra información que los piratas informáticos podrían usar para permitir futuros delitos.
Principales métodos utilizados para el secuestro de clics
Los piratas informáticos pueden utilizar varios métodos para llevar a cabo un ataque de clickjacking. Esto incluye:
1. Cursorjacking
Cursorjacking es una técnica para manipular el cursor en la pantalla de su computadora. Cambia de donde crees que está a una ubicación diferente. Este método se usa más comúnmente para atacar las fallas de Adobe Flash y Firefox. Estos problemas, afortunadamente, se han resuelto. Cursorjacking engaña a los visitantes al mostrar el puntero con un desplazamiento en una imagen de cursor modificada. En comparación con la ubicación real del cursor, el cursor proyectado se desplaza hacia la derecha.
Por ejemplo, cuando el usuario mueve el mouse, el evento activa el oyente, lo que hace que se mueva el puntero falso del mouse (el visible). Cuando seleccione el botón SÍ, será llevado a la página de Tweet. Los piratas informáticos utilizaron inicialmente este método para sortear ClearClick Security de NoScript.
2. Clickjacking sin navegador
El clickjacking sin navegador es un método para replicar el secuestro de clics tradicional en programas que no funcionan en un navegador de Internet. Debido a cómo funcionan las alertas emergentes, el clickjacking sin navegador es común en los teléfonos inteligentes Android. Entre el momento en que se emite el aviso y el momento en que aparece en la pantalla, hay una breve demora con alertas emergentes. Los atacantes aprovechan la breve demora para crear un ícono ficticio que puede tocar debajo de la notificación real.
3. Ataque al administrador de contraseñas
Las características de seguridad específicas autocompletan las credenciales de forma insegura para la edición HTTP de los certificados guardados en HTTPS. Estos administradores de contraseñas también completan la información en iFrames, lo que se conoce como asalto del administrador de contraseñas. Cuando se utilizó la sincronización de contraseñas en varias máquinas, muchos administradores de contraseñas no defendieron contra iFrame y las amenazas basadas en la redirección, exponiendo otras contraseñas.
Los navegadores tradicionales, a diferencia de los administradores de contraseñas, son seguros y no autocompletan la información. Si el protocolo implementado en la página de inicio de sesión existente fuera distinto del protocolo aplicado cuando los usuarios almacenaron contraseñas, los navegadores no compartirían la información de autocompletado. En iFrames, ni los navegadores ni los datos se autocompletan.
4. CookieJacking
CookieJacking es un tipo de clickjacking en el que se toman cookies de la barra de direcciones web del usuario. Esto se hace engañando al usuario para que ejecute una operación aparentemente inofensiva en el sitio malicioso (normalmente arrastrando un elemento). Cuando los usuarios aceptan la actividad, sin saberlo seleccionan y transmiten los datos de la cookie al hacker. Después de eso, el atacante puede emplear un ataque CSRF para hacerse pasar por la víctima en el sitio web. En esta técnica, un hacker roba las cookies de su navegador. Por lo general, se les pide a las víctimas que muevan un elemento inocuo, pero el atacante copia el contenido completo de sus cookies y se lo da.
5. Mousejack
Mousejack es un conjunto de defectos que pueden afectar a la mayoría de los teclados y ratones ergonómicos sin Bluetooth. Se utiliza un transceptor de transmisión, generalmente un pequeño dongle USB, para «vincular» estos dispositivos a un dispositivo host. Debido a que la interfaz es inalámbrica y el cursor y las pulsaciones de teclas se transmiten por el cielo, es factible atacar la computadora de la víctima mediante el envío de ondas de radio especialmente diseñadas con un dispositivo que cuesta menos de $15.
Un atacante puede apuntar a dispositivos desde una distancia de alrededor de 100 metros. Sin estar visualmente al lado de un dispositivo objetivo, el atacante puede tomar el mando y escribir texto arbitrario o ejecutar comandos preestablecidos. Como resultado, es factible llevar a cabo actos hostiles rápidamente sin ser detectado. El ataque mousejack consiste en enviar pulsaciones de teclas descifradas a una máquina de destino.
La mayoría de los movimientos del mouse se envían de forma no segura, pero las pulsaciones de teclas con frecuencia se cifran (para evitar el espionaje que se está ingresando). La falla del mousejack, por otro lado, explota los dongles de los destinatarios afectados y el software que los acompaña, lo que permite que las pulsaciones de teclas descifradas de un atacante se reenvíen al sistema operativo Windows como si el usuario las hubiera escrito correctamente.
6. Filejacking
Filejacking es un método en el que los atacantes aprovechan la capacidad del navegador web para atravesar una máquina y acceder a sus archivos para robar información personal y comprometer la seguridad de los datos. Esto se logra persuadiendo al usuario para que cree un servidor de archivos operativo utilizando la interfaz de selección de carpetas del navegador. Los asaltantes usan esta técnica para acceder a las computadoras de sus objetivos y robar archivos e información privada.
7. Clickjacking
Para que funcione el Clickjacking, se debe insertar una ventana web maliciosa entre dos marcos de la página web benigna original. Estos marcos se conocen como la página adjunta y la página de la ventana superior. Una falla en el encabezado HTTP X-Frame-Options permite que ocurra el secuestro de clics anidado. Cuando la señal X-Frame-Options se establece en SAMEORIGIN, el navegador solo examina las dos capas inocentes. Ignora la capa dañina en el medio, lo que permite a los atacantes aprovechar la falla.
8. Likejacking
El likejacking es un tipo de fraude de clickjacking que utiliza la función «me gusta» de Facebook. Los estafadores usan el botón «Me gusta» para publicar un video atractivo, una imagen o una oferta de cupón. Esto propaga la estafa al publicar el descuento en las páginas de Facebook de todos los conocidos de los usuarios. Cuantos más «me gusta» recibe la publicación, más circula. Aunque se desconoce el impacto de estos fraudes, algunos expertos en seguridad en línea sospechan que los estafadores intentan iniciar sesión en un perfil de Facebook o información privada de las víctimas.
Mejores prácticas de prevención de clickjacking para 2022
En los sitios web falsos que imitan a los de buena reputación, podría haber numerosos ataques de clickjacking. Debido a que el hacker puede copiar el sitio web y modificarlo con conexiones a otros sitios web, asegúrese de que los sitios web no estén incluidos dentro de los componentes FRAME> o IFRAME>. Dado que los atacantes utilizan iFrames fraudulentos para enmarcar la página web de la víctima, la mayoría de los enfoques de mitigación de ataques de secuestro de clics se centran en limitar los iFraming. Las siguientes son algunas estrategias prácticas para protegerse de los ataques de clickjacking:
Estas estrategias se clasifican en dos grupos, a saber, del lado del servidor y del lado del cliente.
Prevención de clickjacking del lado del servidor
1. Elija el comando de política de seguridad de contenido correcto
La mayoría de los navegadores admiten el elemento X-Frame-Options. Sin embargo, es posible que algunos navegadores no lo admitan porque nunca se ha definido. El uso de pautas de política de seguridad de contenido único (CSP) es una técnica estándar alternativa para prevenir ataques de clickjacking. Se encuentra entre las soluciones de seguridad cibernética más efectivas contra la integración de sitios web con el descendiente de marcos, y se utiliza para proteger contra ataques cibernéticos de secuestro de clics. La cobertura de seguridad de contenido protege los sitios web contra el cross-site scripting (XSS), un tipo de ciberataque muy común, que evita que se inserten iframes en la página.
Asegúrese de que su servidor web esté configurado para admitir la política de seguridad para que pueda usar esta capacidad. Cuando se instala CSP en la página web, se puede configurar el chasis de CSP necesario para evitar que se incrusten encabezados de respuesta. El acceso al marco impide que todos los sitios web muestren el sitio web del comando «Ninguno» en un marco determinado. El elemento frame-ancestors en el encabezado de estado HTTP de CSP también se puede usar para identificar si el sitio se puede representar en un marco o en un iframe. Los diseñadores pueden evitar los intentos de secuestro de clics asegurándose de que no se integre material válido en otros sitios web.
2. Especificar para no permitir la directiva x-frame-options
El encabezado X-Frame-Options especifica si un navegador puede o no integrar páginas web dentro de marcos. Dado que el encabezado de respuesta X-Frame-Options está configurado para volverse obsoleto con el tiempo y ser reemplazado por directivas previas al marco, esto no debe emplearse como el mecanismo defensivo principal. Debe establecer la instrucción en «Rechazar» para transmitir la solicitud HTTP correcta de X-Frame-Options de su contenido web.
Por ejemplo, se evitarán los intentos de cargar la página web en una sesión después de asignar las opciones de marco x a la instrucción de rechazo de backend. Esto es similar al autocomando principal del marco de CSP, que restringe la generación de contenido en línea a sitios que comparten fuentes similares.
Prevención de clickjacking del lado del cliente
La protección contra el secuestro de clics del lado del cliente no es tan eficaz en comparación con la mitigación del secuestro de clics del lado del servidor. Estos enfoques solo deben usarse como último recurso.
3. Aproveche el script de ruptura de marcos
El script de eliminación de marcos garantiza que la página web no funcione dentro del marco. El uso del complemento de JavaScript puede alterar el comportamiento del navegador cuando JavaScript se coloca en un marco del sitio. Un método sencillo de eliminación de marcos obliga al navegador a recargar la página de compensación falsa en la sesión superior. La página web se carga sobre la capa iframe no autorizada debido a esto. El iframe que contiene un sitio web no se iniciará sobre la página oculta a menos que se establezca la propiedad allow-top-navigation. El pirata informático puede usar esta función para permitir que el navegador ejecute scripts para completar el formulario. No debe contrarrestar los ataques de secuestro de clics con secuencias de comandos que rompen fotogramas.
4. Instale extensiones de navegador anti-clickjacking
Dado que desactivan todo JavaScript en las páginas cargadas, los complementos de navegador antisecuestro de clics no brindan la experiencia de usuario óptima. Las plataformas más populares, incluidas Facebook, Twitter y YouTube, usan JavaScript, y estos complementos evitan que funcionen. Debe establecer explícitamente una lista de permitidos para implementar la aplicación de JavaScript en fuentes confiables. A continuación, se muestra una colección de complementos de bloqueo de JavaScript para varios navegadores:
- Scriptsafe para Chrome
- NoScript para Mozilla Firefox
- JS Blocker para el navegador Safari
5. Adopta el frame-breaking o “framebusting”
La ruptura de marcos es un enfoque de prevención del lado del cliente en el que se usa código para evitar que un sitio web se cargue dentro de un iframe. Para hacerlo, los programadores agregan un script de ruptura de marcos a su código, que consta de un predicado y una contraacción que elimina la superposición. Debido a que el ajuste se realiza en el código HTML en lugar de en los encabezados HTTP, la eliminación de marcos puede proteger los sitios web cargados en todos los navegadores principales y más antiguos.
6. Usa la misma cookie de origen del sitio
Si su servicio web es susceptible de secuestro de clics debido a las cookies de sesión, puede utilizar el mismo atributo de sitio de las cookies para protegerlo. La respuesta en este escenario es limitar la sesión para que no sea legítima cuando la página web está dentro de un iframe en lugar de romper la funcionalidad del iframe. Tenga en cuenta que esta estrategia no lo ayudará si las acciones de su sitio web no dependen de una sesión en vivo.
7. Usar filtros XSS
Se agregaron filtros reflectantes XSS en Internet Explorer 8 y Google Chrome para defender los sitios web contra ataques XSS. Según Nava y Lindsay (de Blackhat), los usuarios pueden usar estas comprobaciones para eludir la codificación de destrucción de tramas. Para detectar esfuerzos evidentes en la programación entre sitios, el filtro XSS de IE8 analiza los parámetros de consulta en una serie de coincidencias de patrones. El filtro se puede emplear para deshabilitar scripts específicos usando «falsos positivos causados».
Todos los scripts en línea en el sitio web (incluidos los scripts de destrucción de marcos) se pueden desactivar mediante el filtro XSS. Esto se logra identificando el punto de inicio de la etiqueta del script en los parámetros de consulta del sitio. Puede deshabilitar scripts externos haciendo referencia a una inclusión externa. Este enfoque es práctico para el secuestro de clics porque partes del JavaScript inyectado aún están activas (externas o en línea) y las cookies aún son accesibles.
8. Realice un lavado sin contenido
Si bien el ataque requiere la participación del usuario, los piratas informáticos pueden realizar el mismo ataque sin el conocimiento del usuario. Al enviar repetidamente una consulta de navegación a un sitio que responde «204: sin contenido», muchos navegadores (Google Chrome, IE7, IE8 y Firefox) permiten que un atacante rechace la consulta de navegación entrante en un registro de eventos onBeforeUnload. Visitar una página sin contenido es NOP, pero borra la cola de consultas y cancela el primer intento de navegación.
9. Invoca el evento onBeforeUnload
El usuario podrá cancelar expresamente cualquier consulta de navegación que le ofrezca una página enmarcada. El sitio de framing aprovecha esto al registrar un administrador onBeforeUnload que se invoca cuando el sitio de framing está a punto de vaciarse debido a la navegación. El método del controlador recupera lo que ve el usuario debido a un aviso. Suponga que el atacante está intentando defraudar a PayPal. Crea un método de administrador de descarga que pregunta: «¿Desea cancelar PayPal?» Cada vez que se muestra esta cadena al usuario, es probable que haga que el usuario rechace la navegación, evitando el esfuerzo de PayPal por escapar del marco.
10. Utilice una protección Window.confirm()
Una técnica más confiable de defensa contra el secuestro de clics es utilizar un script de ruptura de marcos o X-Frame-Options en situaciones en las que se debe enmarcar la información. Sin embargo, la medida window.confirm () notifica al usuario sobre cualquier acción que esté a punto de realizar, lo que reduce el riesgo de ataques de clickjacking.
Cuando llame a window.confirm(), obtendrá una ventana emergente que no se puede enmarcar. Cuando se obtiene window.confirm() desde dentro de una ventana iframe con un dominio diferente al real, aparecerá un cuadro de diálogo que notifica al usuario sobre el dominio desde el cual se llamó a la función window.confirm().
En este caso, el navegador muestra la fuente del cuadro de diálogo para ayudar a prevenir intentos de secuestro de clics. Vale la pena señalar que solo Internet Explorer no muestra el sitio del que proviene el cuadro de mensaje window.confirm(). Para evitar esto, asegúrese de que la información dentro del chatbox incluya datos de contexto sobre la acción que se está tomando.
Conclusión
Los ataques de Clickjacking prevalecen cuando se utiliza la Internet pública, por lo que los usuarios siempre deben estar atentos. Afortunadamente, la mayoría de los navegadores modernos tienen mecanismos integrados para protegerse contra los ataques de secuestro de clics, ya sea bloqueando sitios web maliciosos (particularmente los que no tienen un certificado HTTP) o advirtiendo a los usuarios que están a punto de ingresar a un sitio potencialmente peligroso. Si se sigue una higiene digital adecuada y se evitan los proveedores de servicios en línea que ofrecen servicios gratuitos o pirateados, uno puede mantenerse seguro contra el “secuestro de clics”.
Fuente: Spiceworks