¿Qué es Click-Jacking?
Es una técnica maliciosa, que consiste en engañar al usuario por medio de una capa invisible. El objetivo principal es el de obligar al usuario a pulsar, o introducir información, en lugares donde él no tiene consciencia.
¿Qué impacto puede tener?
- Realizar acciones no deseadas en páginas en las que estemos autenticados.
- Creación de sitios de phishing más creíbles utilizando la página del banco auténtica como fondo.
- Obtención de beneficio económico mediante fraude en publicidad basada en número de clics.
- Fraude en votaciones.
¿Cómo prevenir y cómo mitigarlo?
La principal causa por la cual es factible hacer este ataque es por la presencia de la etiqueta <iframe> de HTML, la cual permite embeber una página web dentro de otra página web. También es posible encontrarte esta técnica en apps para móviles.
Para solucionarlo en Servidores:
Si nuestra aplicación web va a involucrar procesos de autenticación, entradas de datos e interacción activa con los usuarios, la aplicación web puede ser víctima de un clickjacking si permite que se le invoque desde un <iframe>.
Para prevenirnos debemos realizar una serie de acciones:
- Debemos comprobar que nuestra página pueda ser embebida dentro de la etiqueta <iframe>, realizando una comprobación en un documento html que crearemos a continuación; si nuestra página se muestra correctamente significara que se puede usar de manera intencionada para esta técnica, y si sale un recuadro blanco significará que está protegida.
- Especificar el campo X-Frame-Options en los encabezados de respuesta HTTP: X-Frame-Options:
- DENY: Se instruye al navegador que la página web no puede ser mostrada en un <iframe> (X-Frame-Options:DENY).
- SAMEORIGIN: Se instruye al navegador que la página web puede ser mostrada desde un <iframe> igual a su propio dominio (X-Frame-Options: SAMEORIGIN).
- ALLOW-FROM uri: Solo se podrán mostrar dentro de un <iframe> desde las URL especificadas (X-Frame-Options: ALLOW-FROM https://example.com/).
Para incorporar el campo de encabezado X-Frame-Options en las respuestas HTTP podemos aplicar los siguientes métodos:
- Si usamos Apache como servidor de aplicaciones podemos incluir en el .htaccess la siguiente directiva:
Header always append X-Frame-Options SAMEORIGIN
- En el caso de nginx puede introducirse la directiva en el fichero de configuración:
add_header X-Frame-Options SAMEORIGIN;
- En el caso de PHP podemos usar la función header de la siguiente manera:
header( ‘X-Frame-Options: SAMEORIGIN’ );
Para solucionarlo en Usuarios:
Simplemente hay que tener sentido común y no pulsar cualquier botón en cualquier página web en la que te metas, mucho menos fiarte de las ventanas de spam, informándote de que has ganado un IPhone nuevo o cualquier otro premio, y cosas por el estilo.
Hay que comprobar que la pagina a la que estás accediendo es fiable, si no podrías ser víctima de phishing o clickjacking.