01 diciembre 2022

Los ataques homograficos y punycode

Punycode es un tipo de codificación que utiliza caracteres de tipo Unicode para su posterior traducción a ASCII.

Este tipo de codificación es parte del IDNA (nombres de dominio internacionalizado), que permite crear dominios multilingües con caracteres no ascii tipo á é í ó ú ü ñ…, letras chinas por ejemplo o incluso emojis.

La sintaxis está publicada en el RFC 3492.1​ y podemos realizar la traducción en páginas como punycoder o punycode. La traducción que se realiza comienza con el prefijo "xn--"

Tenemos que tener en cuenta que los caracteres ASCII que se permiten en los nombres de dominio son las letras minúsculas a-z, números (0-9) y los caracteres especiales guión y punto.

¿Pero presenta problemas de seguridad?

Realmente sí, si no nos fijamos, ya que se pueden realizar ataques homográficos, que consisten en registrar dominios con nombre similares a una web conocida para ejecutar ataques de phishing entre otros.

Imaginad esta web: www.ąmazon.com, si no nos fijamos mucho, podríamos pensar que es la web de compras amazon, o si utilizo este otro dominio www.ѐllisendiado.blogspot.com, quizás no lo pensemos y creamos que estamos enlazando este blog.

Mecanismos de defensa ante punycode

La mayoría de proxies y cortafuegos tienen políticas al respecto, pero si no navegamos a través de uno de estos lo primero que tendremos que hacer es fijarnos en los  nombre de dominio, lo segundo es evaluar siempre el certificado de la Web y que sea https y por último verificar que nuestro navegador muestre la cadena ACE, es decir en www.ąmazon.com muestre www.xn--mazon-2wa.com viendo que esta codificado en punycode. En la mayoría de navegadores ya está configurado por defecto. En el caso de Firefox debemos configurarlo en:

  • Indicamos en la barra de direcciones: about:config.
  • Buscar network.IDN_show_punycode y cambia el valor de false a true.


No hay comentarios: