Ataques homográficos: no creas en todo lo que ves

Ataques homográficos: no creas en todo lo que ves

A menudo se recomienda verificar que un sitio use HTTPS y tenga un certificado de seguridad para identificar si es un engaño. Pero, ¿qué pasa cuando los cibercriminales registran dominios que se escriben muy parecido a los originales y obtienen certificados completamente válidos para sus sitios? 

Cada vez son mas los engaños basados en ingeniería social (La Ingeniería social es la práctica de obtener información confidencial a través de la manipulación de usuarios legítimos.)

En esto ultimos años han evolucionado logrando en muchos casos hacerse más efectivos.

En el último tiempo los vimos mutar desde simples sitios de phishing, hasta webs con certificados SSL falsos o gratuitos que explotan el desconocimiento del usuario de cara al funcionamiento del protocolo HTTPS, pasando por los ataques homográficos, que cada vez toman más relevancia suplantando empresas y marcas reconocidas.

Ahora ya no basta con mirar la dirección del remitente de un correo electrónico o SMS, ya que gracias a las técnicas de spoofing un atacante se puede hacer pasar por una entidad distinta, falsificando los datos en una comunicación.

QUE SON LOS ATAQUES HOMOGRÁFICOS

Si bien es cierto que la mayoría de las páginas fraudulentas utilizan HTTP, mientras que los sitios originales que solicitan credenciales (como redes sociales, portales bancarios, etc.) lo hacen a través de HTTPS, esto no significa que un atacante no pueda hacer lo mismo. De hecho, podría fácilmente convertirlo en HTTPS, obteniendo un certificado SSL/TLS completamente válido para su sitio, incluso de manera gratuita.

Ahora bien, para que esto funcione, el atacante debería ser capaz de registrar un dominio que se vea lo más parecido posible al sitio que desea falsificar y luego adquirir el certificado para este nuevo dominio. Una opción es buscar dominios que se escriban similar. Por ejemplo: “twiitter.com” versus el original “twitter.com”, o “rnercadolibre.com” versus el original “mercadolibre.com”.

¿Recuerdas esos experimentos en los que te muestran palabras incompletas o con errores casi imperceptibles, y las lees rápido como si estuviesen completas y bien escritas? Bueno, lo mismo le sucede a muchos con las URL al navegar.

A simple vista y leyendo con rapidez, esos ejemplos podrían engañar a más de uno, pero basta con prestar atención a cómo está escrita la dirección para detectar el engaño. Lo que aún necesita el atacante es poder registrar un sitio que se escriba diferente, pero se vea igual para el usuario, y para esto es que se utilizan los ataques homográficos.

Veamos un ejemplo.¿Puedes decir si este sitio es falso? 

Este ejemplo pertenece a una prueba de concepto realizada por el investigador Xudong Zheng, quien registró el dominio https://www.xn--80ak6aa92e.com/. Puedes ver cómo funciona ingresando al enlace a través del navegador Firefox.

Lo que hace esto posible es la utilización de caracteres Unicode en otros idiomas, como cirílico, griego o ruso. En estos idiomas podemos encontrar caracteres similares o, muchas veces, iguales a los que utilizamos habitualmente en el latín y en las URLs. Gracias a Punycode, que es una sintaxis de codificación que permite que cualquier carácter Unicode pueda ser traducido en una cadena de caracteres más limitada y compatible con las URLs, es que se puede registrar un nombre de dominio utilizando estos caracteres.

Por ejemplo, se puede registrar un dominio como “xn--pple-43d.com”, que es interpretado por el navegador como “apple.com”, pero en realidad está escrito utilizando el caracter cirílico “а” (U+0430) en vez de la “a” en ASCII (U+0041). Si bien ambos caracteres se ven iguales a simple vista, para los navegadores y certificados se seguridad se trata de dos caracteres diferentes y, por lo tanto, forman parte de dominios diferentes.

Existen numerosos ejemplos, como “tωitter.com” (xn--titter-i2e.com en Punycode) o “gmạil.com” (xn--gmil-6q5a.com). Incluso, puedes jugar a crear tus propias combinaciones con un conversor de Unicode a Punycode.

Muchos navegadores actuales tienen mecanismos que intentan evitar este tipo de ataques. Por ejemplo, en Firefox o Chrome, cuando un dominio contiene caracteres en diferentes idiomas, en lugar de mostrar su forma Unicode, mostrará el Punycode correspondiente.

Es decir, en los ejemplos anteriores, en vez de ver “apple.com” (forma Unicode), veríamos “xn--pple-43d.com” (forma Punycode); y en el caso de tωitter.com” sería “xn--titter-i2e.com”.

Sin embargo, en la prueba de concepto, Xudong Zheng logra evitar esta protección registrando el dominio “apple.com” utilizando únicamente caracteres en lenguaje cirílico. De esta forma, “xn--80ak6aa92e.com” se verá como: аррӏе.com.

Además, el investigador va un paso más allá obteniendo a través de Amazon un certificado TLS para su dominio, el cual a simple vista se ve bastante convincente:

Pero si entramos a ver los detalles podemos observar que en realidad pertenece a “xn--80ak6aa92e.com”:

Si bien esta vulnerabilidad ya ha sido corregida en las últimas versiones de Chrome e Internet Explorer, navegadores como Firefox aún sufren este problema. En este último navegador, una alternativa es configurar la opción network.IDN_show_punycode en true, de forma tal que siempre muestre los caracteres en su forma Punycode.

Aun así, el sitio gmạil.com del ejemplo anterior también logra evitar la protección de Chrome, debido a que utiliza únicamente caracteres del latín, inclusive caracteres especiales como “ạ”, los cuales sí son mostrados por el navegador.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

× Chat Whatsapp