Hoy en día existen muchas formas diferentes para iniciar sesión en las diferentes plataformas web, por ejemplo, con usuario y contraseña, mediante tokens de inicio de sesión únicos e incluso autenticándonos escaneando un código QR con otro dispositivo. Esta última forma es utilizada por plataformas como WhatsApp de manera que utilizando simplemente un smartphone podamos identificarnos sin necesidad de introducir ningún dato personal, sin embargo, aunque aparentemente era un sistema imposible de romper, recientemente se ha demostrado que no es así.
Hace alrededor de una semana, un experto de seguridad hizo pública una nueva técnica de ataque, llamada QRLJacking, capaz de evadir los sistemas de seguridad e inicio de sesión SQRLs (Secure QR Logins). Esta técnica de ataque se basa principalmente en la ingeniería social, ya que es necesario suplantar la identidad de las páginas web reales de manera que la víctima escanee un código QR malicioso, modificado por el propio atacante.
Para que este tipo de ataque pueda tener lugar, es necesario que tanto el atacante como la víctima estén conectados al mismo tiempo. Además, también es necesario que el ataque tenga conocimientos sobre programación web, scripting y sobre cómo se generan los códigos QR de inicio de sesión de la página y cómo funciona todo el algoritmo de inicio de sesión.
Aunque en un principio se pensaba que el sistema de inicio de sesión a través de códigos QR era muy seguro, e incluso irrompible, este investigador de seguridad ha demostrado que, en realidad, no es así, y que este sistema de inicio de sesión es igual de vulnerable al phishing que cualquier otro. Además, tras descubrir este primer sencillo vector de ataque, es probable que otros investigadores de seguridad o piratas informáticos comiencen a buscar nuevas debilidades en el protocolo de inicio de sesión.
Cómo funcionan los ataques QRLJacking
Este tipo de ataque debe llevarse a la vez tanto del lado del servidor, para mostrar a la víctima la página desde la que atacaremos, como del lado del cliente, del que clonaremos el QR y lo llevaremos a la web de la estafa. De esta manera, cuando la víctima intenta acceder a la web, por ejemplo, de WhatsApp, en realidad estará cargando nuestra web modificada y el script oculto en el servidor nos enviará el token de acceso a nuestro servidor, a través del cual podremos acceder a la cuenta de la víctima.
Para proteger nuestras cuentas de estos ataques es necesario hacer uso de sistemas de autenticación adicionales, como la f2a, de manera que si un usuario intenta acceder a nuestra cuenta mediante esta técnica, no pueda conseguirlo sin el código único y aleatorio de la doble autenticación. Además, si el usuario se da cuenta de que la web a la que accede no es la oficial, sino que es una falsa, obviamente saldrá de ella, mitigando así el ataque. Acceder al Wi-Fi por QR es una opción disponible.
En GitHub tenemos una prueba del concepto de estos ataques. Este tipo de ataques ha sido demostrado por el investigador de seguridad en diferentes plataformas como WhatsApp, WeChat, Line, Alibaba y otros servicios online, sin embargo, es muy complicado de llevar a cabo, especialmente a través de Internet, por lo que probablemente QRLJacking quede solo como un vector de ataque dentro de redes locales.
¿Qué opinas sobre la seguridad de los inicios de sesión basados en QR? ¿Crees que QRLJacking abre la puerta a nuevos vectores de ataque?