banner

QR Code: Seguridad y Amenazas

QR Code: es un código bidimensional que contiene la información tanto en la dirección vertical, como en la horizontal. La información es obtenida, capturando la información mediante una cámara (foto) y analizándola con un lector de códigos (QR).

Los códigos QR pueden contener todo tipo de información, aunque su utilización más extendida es almacenar URL (direcciones de páginas web), teléfonos de contacto, o incluso direcciones postales.

En este artículo vamos a analizar la utilización de los QR codes como un vector de ataque, diferenciando entre ataques automáticos (SQL Injection) o manuales (Phishing).
Introducción

Antes de empezar a plantear la utilización de los QR Code como vectores de ataque,  voy a describir brevemente en que consiste las técnicas de ataque que se van a mencionar a lo largo del artículo.

SQL Injection: método para incluir código "malicioso" explotando la vulnerabilidad de la validación de los datos de entrada para realizar consultas en las bases de datos (ej: los formularios de búsqueda en las páginas web). Este tipo técnica puede ser automatizada.

Phishing: es el termino que se utiliza, cuando un atacante comete un ciberdelito mediante el uso de un tipo de ingeniería social caracterizado por intentar adquirir información confidencial de forma fraudulenta (como puede ser una contraseña o información detallada sobre tarjetas de crédito u otra información bancaria). Este tipo de técnica requiere siempre de la colaboración del usuario, siendo un proceso manual.

Precisamente, las técnicas de phishing se caracterizan por intentar engañar al usuario con correos electrónicos que incitan a pinchar en alguna URL maliciosamente construida. Esta inducción al engaño, basándose en la manipulación de direcciones URL, nos pone sobre la pista y enseña el camino para creer que un código QR puede ser utilizado como vector de ataque.

Ejemplo de un anunciante.

La popularidad de los QR Code, es tal, que se utilizan masivamente en revistas, camisetas, flyer, posters, anuncios de publicidad, etc, para dirigir a los usuarios al anuncios de sus productos on-line. Pero también es utilizado en cadenas de montaje, logística, etc, para automatizar algunos procesos.

Vectores de Ataque

Procesos automátizados

Ejemplo: sistema de paquetería que utiliza los QR Code para seleccionar los paquetes y ordenarlos según destino, para ello el QR Code, lleva la información del destino, y lleva información adicional para introducir en la base de datos.

En este caso, un vector de ataque sería manipular el QR Code para añadir código malicioso que explote la técnica de SQL Injection, es decir, si el proceso que realiza la lectura de QR Code no lleva a cabo una sanitización adecuada de los datos de entrada, podría sufrir un ataque SQL Injection desde un código QR.

O si el código QR es utilizado para introducir parámetros en instrucciones que se ejecutan en la línea de comandos de un Sistema Operativo (terminal de consola), que no estan siendo correctamente sanitizados, un QR manipulado podría explotar esa vulnerabilidad para realizar ejecución arbitraria de comandos, ataques de denegación de servicio (DoS), o incluso la instalación de trojanos (rootkits).

Pero el vector de ataque más inquietante es el que resulta y/o necesita de la interacción humana, es decir, aquellos que necesitan de la intervención del usuario.

Procesos manuales con intervención del usuario

La información contenida en los códigos QR no puede ser leida sin ayuda de un programa (QR reader), es decir, para los usuarios, la información de un QR Code se encuentra totalmente ofuscada (oculta).

Tarjetas de visita con QR code.

Entonces mediante la lectura de un código QR manipulado, una vulnerabilidad en un lector de códigos o en un navegador podría ser explotada.

Ejemplos

1. Phishing: Un atacante podría modificar un QR Code, para llevar a cabo un ataque de phishing, intentando redirigir al usuario a una página web falsa, siendo potencialmente peligrosa si para acceder a dicha página web se necesita introducir las credenciales (usuario / contraeña).

2. Fraude: Incluso, a veces los QR Code son utilizado en campañas promocionales para dirigir al usuario a una oferta determinada y especifica. En ese caso, un atacante podría manipular el QR Code para redirigir al usuario a una página web clonada y obtener beneficios de ello mediante una estafa y/o fraude.

3.  Ataque al lector de QR: la manipulación del código íria orientada a explotar una vulnerabilidad existente en el propio lector del código, de forma que podría ser utilizado para ejecutar código arbitrario. Imaginemos, el escenario de un usuario con una aplicación para leer códigos QR en un telefono móvil con conexión a Internet, un ataque de este tipo podría instalar Malware en el telefono sin que el usuario se diera cuenta.

Incluso podría pensar en utilizar está técnica de manipulación y/o creación de códigos QR para llevar a cabo ataques de ingeniería social, por ejemplo, creando un cartel publicitario que contenga un código QR maliciosamente construido para dirigir al usuario a una página web preparada para explotar una vulnerabilidad del navegador web y ejecutar código arbitrario en su terminal móvil. (ej: infectar al usuario con Malware). O incluso, una combinación de técnicas de ataque.



Conclusiones

La manipulación de los QR Code amplia el ámbito de actuación de las amenazas y abre una interesante vía de estudio, análisis e investigación.

Recomendación: Antes de escanear un código QR debemos de prestar atención al lugar donde se encuentra puesto, la empresa anunciante, las indicaciones del anuncio y/o cartel, etc. Además, verificar si es posible, por otro medio que la empresa existe, que tiene el producto que anuncia, que suele utilizar los códigos QR en sus promociones y páginas web. Por ultimo, si no ten convence demasiado, desconfía y evita realizar la lectura del código.

En el caso de encontrarnos con el código QR publicado en una página web, se me antoja que podría ser interesante, que para evitar manipulaciones y que un atacante consiga mediante alguna técnica sustituir la imagen QR original, que el creador / autor de la imagen QR con el contenido correcto, añada información en su página con un resumen hash para validar la imagen. Esto podría evitar ataques mediante la suplantación de códigos QR en la páginas web.

En otra ocasión hablaré sobre la utilización de códigos de barras para este mismo proposito, es decir, utilizar los códigos de barras (Barcode) para ofuscar técnicas de ataque contra los telefonos móviles con lectores de códigos de barras.

Referencias

[1] Paper: QR Code Security (Peter Kieseberg, Manuel Leithner, Martin Mulazzani, Lindsay Munroe, Sebastian Schrittwieser, Mayank Sinha, Edgar Weippl) - http://www.sba-research.org

[2] QR Tag Can Be Rigged to Attack Smartphones

[3] XSS, SQl Injection, and Fuzzing Barcode Attack

No hay comentarios :

Publicar un comentario en la entrada