Jamf Blog
Noviembre 2, 2018 por Liarna La Porta

¿Qué es Punycode? Falsos dominios que engañan al ojo humano

¿Qué es Punycode?

Punycode
noun
Unicode que convierte palabras que no pueden escribirse en ASCII, como la palabra griega que significa "gracias", ‘ευχαριστώ’ en una codificación ASCII, como ‘xn--mxahn5algcq2e’ para el uso de nombres de dominios.
¡¿Qué significa esto en realidad?!

Escribir con números

Como en todas las cosas relacionadas con la informática, todo se reduce a números. Cada letra, carácter o emoji que tecleamos tiene asociado un número binario único para que nuestras computadoras puedan procesarlos. ASCII, un estándar de codificación de caracteres, utiliza 7 bits para codificar hasta 127 caracteres, suficientes para codificar el alfabeto en mayúsculas y minúsculas, los números del 0 al 9 y algunos caracteres especiales adicionales. Donde falla el ASCII es que no admite idiomas como el griego, el hebreo y el árabe, por ejemplo, y aquí es donde entra Unicode: ¡utiliza 32 bits para codificar hasta 2,147,483,647 caracteres! Unicode nos ofrece suficientes opciones para brindar compatibilidad con cualquier idioma e incluso nuestra creciente colección de emojis.

Entonces, ¿dónde entra en juego Punycode?

Punycode es una forma de convertir palabras que no pueden escribirse en ASCII, en una codificación Unicode ASCII. ¿Por qué alguien desearía hacer esto? El sistema global de nombres de dominio (DNS), que es el sistema de denominación de cualquier recurso conectado a Internet, está limitado a caracteres ASCII. Con Punycode, puede incluir caracteres no ASCII dentro de un nombre de dominio creando una codificación "bootstring" de Unicode como parte de un complicado proceso de codificación.

¿Cómo se produce un ataque Punycode?

Los caracteres Unicode pueden parecer iguales a simple vista pero, en realidad, tener una dirección web diferente. Algunas letras del alfabeto romano, utilizado por la mayoría de las lenguas modernas, tienen la misma forma que las letras griegas, cirílicas y de otros alfabetos, por lo que es fácil que un atacante lance un nombre de dominio que sustituya algunos caracteres ASCII por caracteres Unicode. Por ejemplo, podría cambiar una T normal por una Tau griega: τ, el usuario vería el símbolo T casi idéntico, pero el Punycode que hay detrás, leído por la computadora, en realidad es xn--5xa. Dependiendo de cómo presente esta información el navegador en la barra de direcciones, estos pequeños caracteres furtivos son imposibles de identificar para nosotros los humanos.
Esta técnica se denomina ataque homógrafo, las URL parecerán legítimas y el contenido de la página puede parecer el mismo a primera vista, pero en realidad se trata de un sitio web diferente creado para robar los datos confidenciales de la víctima o infectar el dispositivo del usuario. Estos ataques utilizan técnicas comunes como el phishing, las descargas forzadas y las estafas.

Solo navegaba: ¿Punycode es un problema en todos los navegadores?

De forma predeterminada, muchos navegadores web utilizan el prefijo xn-- conocido como prefijo de codificación compatible con ASCII para indicar al navegador web que el dominio utiliza Punycode para representar caracteres Unicode. Se trata de una medida de defensa contra los ataques homógrafos de phishing. Sin embargo, no todos los navegadores muestran el prefijo Punycode, por lo que los visitantes no se enteran.
Los háckers pueden explotar la vulnerabilidad de los navegadores que no utilizan el prefijo para mostrar sus nombres de dominio falsos como sitios web de servicios legítimos para robar credenciales de inicio de sesión, números de tarjetas de crédito y otra información confidencial de los usuarios.
En este ejemplo, el investigador de seguridad chino Xudong Zheng descubrió una laguna que le permitió registrar el nombre de dominio xn--80ak6aa92e.com y eludir la protección, que aparece como "apple.com" en todos los navegadores web vulnerables, que en aquel momento incluían Chrome, Firefox y Opera. Internet Explorer, Microsoft Edge, Apple Safari, Brave y Vivaldi no eran vulnerables.
Nuestra investigación circulante muestra el siguiente comportamiento en los dos principales navegadores web, Chrome y Safari:

  • Chrome: a menudo muestra el Punycode sin traducir con el prefijo. Cuando Chrome no está seguro si el sitio es sospechoso o no, no lo traducirá a Unicode, pero aún así le permitirá ir al sitio. Cuando se asegura de que el sitio es malicioso, emite una advertencia de "sitio engañoso a la vista".
  • Safari: la mayoría de las veces traduce el Punycode a caracteres Unicode. Cuando está seguro de que el sitio es malicioso, emite una advertencia de "sitio engañoso a la vista", pero sigue traduciendo el Punycode a caracteres Unicode.

¿Los ataques Punycode funcionan en apps móviles?

Los ataques Punycode pueden ocurrir tanto en computadoras de escritorio como en dispositivos móviles, ya que los distintos desarrolladores de navegadores tienden a tratar el Punycode de la misma manera en todas las plataformas. En resumen, si muestran Unicode a un usuario en un dispositivo, lo hacen en todas las plataformas. La mayor parte de la investigación actual sobre el Punycode se enfoca en cómo tratan los navegadores estos dominios, pero nuestra investigación va más allá del navegador, para demostrar que la forma en que las apps tratan el Punycode es igual de importante. En nuestras pruebas, observamos que los dominios Punycode engañosos no eran marcados como sospechosos por las herramientas de comunicación y colaboración que utilizan habitualmente los empleados. Probamos las siguientes apps en dispositivos iOS y Android: Gmail, Apple Mail, iMessage, Message+, Whatsapp, Facebook Messenger, Skype e Instagram. Solo Facebook Messenger, Instagram y Skype ofrecieron al usuario la oportunidad de identificar la URL Punycode mostrando una vista previa de la página web con el prefijo xn o, en el caso de Skype, no proporcionando un hipervínculo para los dominios que utilizan Unicode, lo que significa que los usuarios no pueden hacer clic desde el mensaje. Aunque estas apps no proporcionan los mejores métodos de defensa, al menos brindan la oportunidad de evaluar los enlaces sospechosos con mayor detenimiento.

Así que parece que al mostrar el Unicode engañoso la mayoría de las apps están optando por ofrecer una experiencia de usuario mejorada en lugar de proporcionar seguridad para detectar sitios maliciosos. Parte de la responsabilidad debe recaer en los desarrolladores de estas apps para garantizar que se aplican múltiples capas de seguridad para defenderse eficazmente de estos ataques.

¿Por qué los ataques Punycode son un problema mayor en los dispositivos móviles?

Nuestra investigación sobre los ataques Punycode en dispositivos móviles identificó una serie de nuevos dominios maliciosos (que se enumeran a continuación). Estos sitios no solo alojan ataques de phishing en dominios visualmente engañosos para los usuarios, sino que están optimizados para dispositivos móviles, lo que significa que los piratas informáticos están al tanto de las dificultades a las que se enfrentan los usuarios de dispositivos móviles para identificar las URL engañosas. Al dirigirse a los usuarios de dispositivos móviles, estos ataques están dando lugar a campañas de phishing más exitosas.
Los ataques de phishing suelen ser más difíciles de detectar en los dispositivos móviles por varias razones, lo que se vuelve casi imposible cuando se introduce el Punycode y se muestra correctamente.

  • El tamaño reducido de la pantalla deja menos margen para evaluar la legitimidad de un sitio web
  • El diseño del sistema operativo suele ocultar la ya de por sí diminuta barra de direcciones cuando el usuario se desplaza hacia abajo para dejar espacio al contenido de la página
  • Los usuarios distraídos tienden a pasar precipitadamente por varias páginas y notificaciones
  • No existe la función de pasar el ratón por encima ni de previsualización, lo que impide al usuario ver o evaluar el destino del enlace antes de hacer clic.
  • ¿Puede identificar el carácter Unicode en el dominio de abajo?

Esto se pone emotivo: ¿Cómo influyen los dominios Emoji?

Del mismo modo que los caracteres especiales de los distintos idiomas se codifican como Punycode, también puede hacerlo la biblioteca de emojis, cada vez mayor. Un dominio emoji es literalmente un dominio con un emoji en él, por ejemplo www.��.com, donde el Punycode es esencial para esto.
He aquí un ejemplo reciente identificado por la máquina inteligente de aprendizaje de Jamf, MI:RIAM:

20 ejemplos reales de Punycode con grandes marcas

La investigación sobre phishing de día cero de Wandera lleva identificando ataques Punycode desde 2017. Hemos visto un aumento del 250% en el número de dominios Punycode en los últimos 12 meses:

En algunos de los ejemplos que hemos visto, las páginas muestran concursos que ofrecen premios a cambio de compartir un enlace a través de WhatsApp, y a veces redirigen al usuario a otras páginas fraudulentas cuando éste pulsa varias veces el botón de retroceso. En otros casos, las páginas redirigen inmediatamente a otros sitios que muestran anuncios de descarga de apps de actualizaciones de software.

Poco después de su descubrimiento y documentación, se eliminó el contenido de la mayoría de estos sitios. Esto es una prueba de lo rápido que se mueven los háckers y es congruente con otras formas de ataques de phishing que estamos viendo.

Nuestras investigaciones muestran que cada 20 segundos se crea un nuevo sitio de phishing y que solo suelen estar activos durante cuatro horas antes de que los piratas informáticos los retiren y pasen a crear otro dominio engañoso. Una forma inteligente de cubrir sus huellas y eludir la detección.

7 formas de evitar un ataque Punycode

  1. Proceda con cautela si el sitio le presiona para que haga algo rápidamente. Se trata de una estrategia clásica de los háckers para apresurar a sus víctimas potenciales de modo que sea menos probable que noten algo sospechoso. A menudo ofrecerán una oferta "solo por tiempo limitado" y dificultarán la salida de la página con ventanas emergentes del tipo "¿Está seguro de que quiere salir?": todas estas son tácticas para que permanezca más tiempo en su sitio y les facilite sus datos.
  2. Si le ofrecen una oferta, vaya al sitio original de la empresa y compruebe si también está disponible allí, si no es así, lo más probable es que se trate de una estafa que hace todo lo posible por imitar a la marca establecida y engañar a los visitantes para que proporcionen sus datos.
  3. Si algunas de las letras de la barra de direcciones tienen un aspecto extraño, o el diseño del sitio web parece diferente, vuelva a escribirlo o visite la URL original de la empresa en una nueva pestaña para poder compararlo. El hecho de que las letras de la barra de direcciones tengan un aspecto extraño es un indicador clave de que se está utilizando Punycode para engañarle y hacerle creer que está visitando un sitio de una marca bien establecida, cuando en realidad se le está llevando a un sitio malicioso.
  4. Utilice un administrador de contraseñas; esto reduce el riesgo de pegar contraseñas en sitios dudosos.
  5. Obligue a su navegador a mostrar los nombres Punycode, esta opción está disponible en Firefox.
  6. Haga clic en el candado para ver e inspeccionar el certificado HTTPS.
  7. Utilice una solución de seguridad para dispositivos móviles ; Jamf, por ejemplo, utiliza el aprendizaje automático y la inteligencia artificial de MI:RIAM para monitorear todo el tráfico de datos y detectar y bloquear enlaces de phishing como éstos.

No deje que sus usuarios caigan en estos ataques engañosos implementando los productos de seguridad de Jamf en su flota de dispositivos móviles y proteja sus dispositivos, usuarios y datos.

Photo of Liarna La Porta
Liarna La Porta
Jamf
Liarna La Porta, Manager, Corporate Communications
Suscríbase al blog de Jamf

Acceda a las tendencias del mercado, las actualizaciones de Apple y las noticias de Jamf recibidas directamente en su bandeja de entrada.

Para saber más sobre cómo recopilamos, usamos, compartimos, transferimos y almacenamos su información, consulte nuestra Política de privacidad.