El ataque de homoglifo de nombre de dominio internacionalizado ( IDN ) (a menudo escrito como ataque de homografo ) es un método utilizado por partes malintencionadas para engañar a los usuarios de computadoras sobre con qué sistema remoto se están comunicando, explotando el hecho de que muchos caracteres diferentes se parecen (es decir, se basan en homoglifos para engañar a los visitantes). Por ejemplo, los alfabetos cirílico , griego y latino tienen cada uno una letra ⟨o⟩ que tiene la misma forma pero un significado diferente al de sus contrapartes. [a]
Este tipo de ataque de suplantación de identidad también se conoce como suplantación de script . Unicode incorpora numerosos scripts ( sistemas de escritura ) y, por diversas razones, a caracteres de aspecto similar, como el griego Ο, el latino O y el cirílico О, no se les asignó el mismo código. Su uso incorrecto o malintencionado es una posibilidad para ataques de seguridad. Así, por ejemplo, un usuario habitual de example.com
puede verse tentado a hacer clic en él sin cuestionarlo como un enlace aparentemente familiar, sin saber que la tercera letra no es el carácter latino "a", sino el cirílico "а" y, por lo tanto, es un dominio completamente diferente al deseado.
El registro de nombres de dominio homógrafos es similar al typosquatting , en el sentido de que ambas formas de ataque utilizan un nombre de aspecto similar al de un dominio más establecido para engañar a un usuario. [b] La principal diferencia es que en el typosquatting el perpetrador atrae a las víctimas basándose en errores tipográficos naturales que se cometen comúnmente al ingresar manualmente una URL, mientras que en la suplantación de homógrafos el perpetrador engaña a las víctimas presentando hipervínculos visualmente indistinguibles. De hecho, sería un accidente raro que un usuario web escribiera, por ejemplo, una letra cirílica dentro de una palabra que de otro modo sería inglesa, convirtiendo "b a nk" en "b а nk". Hay casos en los que un registro puede ser tanto typosquatting como suplantación de homógrafos; los pares de l/I
, i/j
, y 0/O
están todos juntos en los teclados y, dependiendo del tipo de letra , pueden ser difíciles o imposibles de distinguir visualmente.
Una de las primeras molestias de este tipo, anterior a Internet e incluso a los terminales de texto , era la confusión entre "l" (letra minúscula "L") / "1" (el número "uno") y "O" (letra mayúscula para la vocal "o") / "0" (el número "cero"). Algunas máquinas de escribir en la era anterior a la informática incluso combinaban la L y el uno ; los usuarios tenían que escribir una L minúscula cuando se necesitaba el número uno. La confusión cero/o dio lugar a la tradición de cruzar ceros , para que un operador de ordenador los escribiera correctamente. [1] Unicode puede contribuir en gran medida a esto con sus caracteres de combinación, acentos, varios tipos de guiones , etc., a menudo debido a un soporte de representación inadecuado , especialmente con tamaños de fuente más pequeños y la amplia variedad de fuentes. [2]
Incluso antes, la escritura a mano ofrecía muchas oportunidades para la confusión. Un ejemplo notable es la etimología de la palabra " zenith ". La traducción del árabe "samt" incluía la confusión por parte de los escribas de la "m" con la "ni". Esto era común en la letra gótica medieval , que no conectaba las columnas verticales de las letras i, m, n o u, lo que dificultaba distinguirlas cuando había varias en fila. Esta última, así como la confusión "rn"/"m"/"rri" ("RN"/"M"/"RRI"), todavía es posible para el ojo humano incluso con la tecnología informática avanzada moderna.
También se ha conocido la sustitución intencional de caracteres similares con diferentes alfabetos en varios contextos. Por ejemplo, el falso cirílico se ha utilizado como una forma de diversión o para captar la atención y la "codificación Volapuk", en la que el alfabeto cirílico se representa con caracteres latinos similares, se utilizó en los primeros tiempos de Internet como una forma de superar la falta de compatibilidad con el alfabeto cirílico. Otro ejemplo es que las placas de matrícula de los vehículos pueden tener tanto cirílico (para uso doméstico en países con alfabeto cirílico) como latín (para conducción internacional) con las mismas letras. Las placas de matrícula que se emiten en Grecia se limitan a utilizar letras del alfabeto griego que tienen homóglifos en el alfabeto latino, ya que las regulaciones de la Unión Europea requieren el uso de letras latinas.
El ASCII tiene varios caracteres o pares de caracteres que se parecen y se conocen como homógrafos (u homoglifos ). Los ataques de suplantación basados en estas similitudes se conocen como ataques de suplantación de homógrafos . Por ejemplo, 0 (el número) y O (la letra), "l" minúscula L, e "I" mayúscula "i".
En un ejemplo típico de un ataque hipotético, alguien podría registrar un nombre de dominio que parezca casi idéntico a un dominio existente pero que vaya a otro lugar. Por ejemplo, el dominio "rnicrosoft.com" comienza con "r" y "n", no con "m". Otros ejemplos son G00GLE.COM , que se parece mucho a GOOGLE.COM en algunas fuentes. Al utilizar una combinación de caracteres en mayúsculas y minúsculas, googIe.com ( i mayúscula , no L minúscula ) se parece mucho a google.com en algunas fuentes. PayPal fue el objetivo de una estafa de phishing que explotó esto, utilizando el dominio PayPaI.com . En ciertas fuentes de espacio estrecho como Tahoma (la predeterminada en la barra de direcciones de Windows XP ), colocar una c delante de una j , l o i producirá homoglifos como cl cj ci (dga).
En sistemas informáticos multilingües , diferentes caracteres lógicos pueden tener apariencias idénticas. Por ejemplo, el carácter Unicode U+0430, letra a minúscula cirílica ("а"), puede parecer idéntico al carácter Unicode U+0061, letra a minúscula latina ("a"), que es la "a" minúscula que se usa en inglés. Por lo tanto, wikipediа.org
( xn--wikipedi-86g.org
; la versión cirílica) en lugar de wikipedia.org
(la versión latina).
El problema surge del diferente tratamiento de los caracteres en la mente del usuario y en la programación del ordenador. Desde el punto de vista del usuario, una "а" cirílica dentro de una cadena latina es una "a" latina; no hay diferencia en los glifos de estos caracteres en la mayoría de las fuentes. Sin embargo, el ordenador los trata de forma diferente al procesar la cadena de caracteres como un identificador. Por tanto, la suposición del usuario de que existe una correspondencia uno a uno entre la apariencia visual de un nombre y la entidad nombrada se desmorona.
Los nombres de dominio internacionalizados ofrecen una forma compatible con versiones anteriores de utilizar el conjunto completo de caracteres Unicode, y este estándar ya cuenta con un amplio respaldo. Sin embargo, este sistema amplió el repertorio de caracteres de unas pocas docenas de caracteres en un solo alfabeto a muchos miles de caracteres en muchos sistemas de escritura, lo que aumentó enormemente el alcance de los ataques homógrafos.
Esto abre un rico filón de oportunidades para el phishing y otras variedades de fraude. Un atacante podría registrar un nombre de dominio que se parezca al de un sitio web legítimo, pero en el que algunas de las letras hayan sido reemplazadas por homógrafos de otro alfabeto. El atacante podría entonces enviar mensajes de correo electrónico que pretendieran provenir del sitio original, pero que dirigieran a los usuarios al sitio falso. El sitio falso podría entonces registrar información como contraseñas o detalles de la cuenta, mientras pasa el tráfico al sitio real. Las víctimas podrían no notar la diferencia hasta que ocurra una actividad sospechosa o delictiva con sus cuentas.
En diciembre de 2001, Evgeniy Gabrilovich y Alex Gontmakher, ambos del Technion de Israel , publicaron un artículo titulado "The Homograph Attack" [1] , en el que describían un ataque que utilizaba direcciones URL Unicode para falsificar la URL de un sitio web. Para demostrar la viabilidad de este tipo de ataque, los investigadores registraron con éxito una variante del nombre de dominio microsoft .com que incorporaba caracteres cirílicos.
Los problemas de este tipo se previeron antes de la introducción de los IDN y se emitieron directrices para los registros con el fin de intentar evitarlos o reducirlos. Por ejemplo, se recomendó que los registros sólo aceptaran caracteres del alfabeto latino y del de su propio país, no todos los caracteres Unicode, pero los principales TLD no hicieron caso de este consejo . [ cita requerida ]
El 7 de febrero de 2005, Slashdot informó que este exploit fue revelado por 3ric Johanson en la conferencia de hackers Shmoocon . [3] Los navegadores web compatibles con IDNA parecían dirigir la URL http://www.pаypal.com/, en la que el primer carácter a se reemplaza por una а cirílica , al sitio del conocido sitio de pagos PayPal , pero en realidad conducían a un sitio web falsificado con contenido diferente. Los navegadores populares siguieron teniendo problemas para mostrar correctamente los nombres de dominio internacionales hasta abril de 2017. [4]
Los siguientes alfabetos tienen caracteres que pueden usarse para ataques de suplantación de identidad (tenga en cuenta que estos son solo los más obvios y comunes, dada la licencia artística y el riesgo que correrá el falsificador de ser atrapado; las posibilidades son mucho más numerosas de las que se pueden enumerar aquí):
El cirílico es, con diferencia, el alfabeto más utilizado para los homoglifos, en gran parte porque contiene 11 glifos minúsculos que son idénticos o casi idénticos a sus homólogos latinos.
Las letras cirílicas а , с , е , о , р , х y у tienen contrapartes ópticas en el alfabeto latino básico y se parecen o son idénticas a a , c , e , o , p , x e y . Las letras cirílicas З , Ч y б se parecen a los numerales 3 , 4 y 6. El tipo cursivo genera más homoglifos: дтпи o дтпи ( д т п и en el tipo estándar), que se asemejan a d m n u (en algunas fuentes se puede usar д , ya que su forma cursiva se asemeja a una g minúscula ; sin embargo, en la mayoría de las fuentes convencionales, д se asemeja a un signo diferencial parcial , ∂ ).
Si se cuentan letras mayúsculas, А В С Е Н І Ј К М О Р Ѕ Т Х puede sustituir a A B C E H I J K M O P S T X , además de las mayúsculas de los homoglifos cirílicos en minúscula.
Las letras cirílicas problemáticas no rusas son і e i , ј y j , ԛ y q , ѕ y s , ԝ y w , Ү e Y , mientras que Ғ y F , Ԍ y G tienen cierta similitud entre sí. El cirílico ғ ё ї ҧ también se puede utilizar si se está falsificando un IDN en sí, para falsificar ä ë ï ö .
Si bien las letras Komi De ( ԁ ), shha ( һ ), palochka ( Ҁ ) e izhitsa ( ѵ ) tienen un gran parecido con las letras latinas d, h, l y v, estas letras son raras o arcaicas y no son ampliamente admitidas en la mayoría de las fuentes estándar (no están incluidas en WGL-4 ). Intentar usarlas podría causar un efecto de nota de rescate .
Del alfabeto griego , solo ómicron ο y, a veces, nu ν parecen idénticos a una letra del alfabeto latino en minúsculas que se utiliza para las URL. Las fuentes que están en cursiva tendrán la letra griega α que parece una a latina .
Esta lista aumenta si también se permiten coincidencias cercanas (como εικηρτυωχγ en griego para eiknptuwxy). Si se usan letras mayúsculas , la lista se expande considerablemente. El griego ΑΒΕΗΙΚΜΝΟΡΤΧΥΖ parece idéntico al latín ABEHIKMNOPTXYZ. El griego ΑΓΒΕΗΚΜΟΠΡΤΦΧ parece similar al cirílico АГВЕНКМОПРТФХ (al igual que el cirílico Л (Л) y el griego Λ en ciertas fuentes sans-serif geométricas), las letras griegas κ y ο parecen similares a las cirílicas к y о. Además de esta τ griega, φ puede ser similar a la т, ф cirílica en algunas fuentes, la δ griega se parece a la б cirílica en el alfabeto serbio , y la а cirílica también se escribe en cursiva igual que su contraparte latina, lo que hace posible sustituirla por alfa o viceversa. La forma semilunar de sigma, Ϲϲ, se parece tanto a la Cc latina como a la Сс cirílica.
Si se está falsificando un IDN, la beta griega β puede ser un sustituto de la eszett ß alemana en algunas fuentes (y, de hecho, la página de códigos 437 las trata como equivalentes), como también lo puede ser la variante griega de final de palabra sigma ς para ç; los sustitutos griegos acentuados όίά generalmente se pueden usar para óíá en muchas fuentes, y la última de estas (alfa) nuevamente solo se asemeja a un tipo en cursiva.
El alfabeto armenio también puede contribuir con caracteres críticos: varios caracteres armenios como օ, ո, ս, así como Տ y Լ mayúsculas son a menudo completamente idénticos a los caracteres latinos en las fuentes modernas, y símbolos que son lo suficientemente similares como para pasar por alto, como ցհոօզս que se parece a ghnoqu, յ que se parece a j (aunque sin punto), y ք, que puede parecerse a p o f dependiendo de la fuente; ա puede parecerse a cirílico ш. Sin embargo, el uso del armenio es, afortunadamente, un poco menos confiable: no todas las fuentes estándar presentan glifos armenios (mientras que las escrituras griega y cirílica sí); Windows antes de Windows 7 renderizaba el armenio en una fuente distinta, Sylfaen , de la cual la mezcla de armenio con latín parecería obviamente diferente si se usa una fuente distinta a Sylfaen o una tipografía Unicode . (Esto se conoce como efecto de nota de rescate ). La versión actual de Tahoma , utilizada en Windows 7, admite el armenio (las versiones anteriores no lo hacían). Además, esta fuente diferencia la g latina de la ց armenia.
Dos letras en armenio (Ձշ) también pueden parecerse al número 2, Յ se parece al 3, mientras que otra (վ) a veces se parece al número 4.
La falsificación del hebreo es poco frecuente. Solo se pueden utilizar de forma fiable tres letras de ese alfabeto: samekh (ס), que a veces se parece a una o, vav con diacrítico (וֹ), que se parece a una i, y heth (ח), que se parece a la letra n. También se pueden encontrar aproximaciones menos precisas para otros alfanuméricos, pero normalmente solo son lo suficientemente precisas como para utilizarlas con fines de marca extranjera y no para sustituirlas. Además, el alfabeto hebreo se escribe de derecha a izquierda y tratar de mezclarlo con glifos de izquierda a derecha puede causar problemas.
Aunque la escritura tailandesa ha tenido históricamente un aspecto distintivo con numerosos bucles y pequeños adornos, la tipografía tailandesa moderna , comenzando con Manoptica en 1973 y continuando con IBM Plex en la era moderna, ha adoptado cada vez más un estilo simplificado en el que los caracteres tailandeses se representan con glifos que se parecen mucho a las letras latinas. ค (A), ท (n), น (u), บ (U), ป (J), พ (W), ร (S) y ล (a) se encuentran entre los glifos tailandeses que pueden parecerse mucho al latín.
El idioma chino puede ser problemático para los homógrafos, ya que muchos caracteres existen tanto en chino tradicional (escritura regular) como en chino simplificado . En el dominio .org , el registro de una variante hace que la otra no esté disponible para nadie; en .biz, un único registro de IDN en chino ofrece ambas variantes como dominios activos (que deben tener el mismo servidor de nombre de dominio y el mismo registrante). .hk (.香港) también adopta esta política.
Otros sistemas de escritura Unicode en los que se pueden encontrar homógrafos incluyen formas numéricas ( números romanos ), compatibilidad CJK y letras y meses CJK incluidos (ciertas abreviaturas), latín (ciertos dígrafos), símbolos monetarios , símbolos alfanuméricos matemáticos y formas de presentación alfabética ( ligaduras tipográficas ).
Dos nombres que difieren sólo en el acento de un carácter pueden parecer muy similares, en particular cuando la sustitución implica la letra i con punto ; el punto de la i puede reemplazarse por un diacrítico (como un acento grave o agudo ; tanto ì como í están incluidos en la mayoría de los conjuntos de caracteres y fuentes estándar) que sólo se pueden detectar con una inspección minuciosa. En la mayoría de los registros de dominios de nivel superior, wíkipedia.tld (xn--wkipedia-c2a.tld) y wikipedia.tld son dos nombres diferentes que pueden estar en manos de diferentes registrantes. [5] Una excepción es .ca , donde reservar la versión ASCII simple del dominio impide que otro registrante reclame una versión acentuada del mismo nombre. [6]
Unicode incluye muchos caracteres que no se muestran de forma predeterminada, como el espacio de ancho cero . En general, la ICANN prohíbe el registro de cualquier dominio que contenga estos caracteres, independientemente del TLD.
En 2011, una fuente desconocida (que se registró bajo el nombre de "Completely Anonymous") registró un nombre de dominio homógrafo al de la cadena de televisión KBOI-TV para crear un sitio web de noticias falsas . El único propósito del sitio era difundir una broma del Día de los Inocentes sobre la supuesta prohibición de la venta de música de Justin Bieber por parte del gobernador de Idaho . [7] [8]
En septiembre de 2017, el investigador de seguridad Ankit Anubhav descubrió un ataque de homógrafo IDN donde los atacantes registraron adoḅe.com para entregar el troyano Betabot . [9]
La defensa más sencilla es que los navegadores web no admitan IDNA u otros mecanismos similares, o que los usuarios desactiven cualquier compatibilidad que tengan sus navegadores. Eso podría significar bloquear el acceso a sitios IDNA, pero por lo general los navegadores permiten el acceso y solo muestran los IDN en Punycode . De cualquier manera, esto equivale a abandonar los nombres de dominio que no sean ASCII.
Como defensa adicional, Internet Explorer 7, Firefox 2.0 y versiones posteriores, y Opera 9.10 incluyen filtros de phishing que intentan alertar a los usuarios cuando visitan sitios web maliciosos. [16] [17] [18] A partir de abril de 2017, varios navegadores (incluidos Chrome, Firefox y Opera) mostraban IDN que consistían puramente en caracteres cirílicos de manera normal (no como punycode), lo que permitía ataques de suplantación de identidad. Chrome endureció las restricciones de IDN en la versión 59 para evitar este ataque. [19] [20]
Existen extensiones de navegador como No Homo-Graphs disponibles para Google Chrome y Firefox que verifican si el usuario está visitando un sitio web que es homógrafo de otro dominio de una lista definida por el usuario. [21]
Estos métodos de defensa sólo se aplican dentro de un navegador. Las URL homográficas que contienen software malicioso pueden distribuirse, sin que se muestren como Punycode, a través del correo electrónico , las redes sociales u otros sitios web sin que se detecten hasta que el usuario haga clic en el enlace. Si bien el enlace falso se mostrará en Punycode cuando se haga clic en él, en este punto la página ya ha comenzado a cargarse en el navegador. [ cita requerida ]
La base de datos de homógrafos IDN es una biblioteca de Python que permite a los desarrolladores defenderse de esto mediante el reconocimiento de caracteres basado en aprendizaje automático . [22]
La ICANN ha implementado una política que prohíbe a cualquier TLD internacionalizado potencial elegir letras que puedan parecerse a un TLD latino existente y, por lo tanto, usarse para ataques homógrafos. Los TLD de IDN propuestos .бг (Bulgaria), .укр (Ucrania) y .ελ (Grecia) han sido rechazados o estancados debido a su aparente semejanza con letras latinas. Los tres (y el .срб serbio y el .мон mongol ) han sido aceptados posteriormente. [23] Los TLD de tres letras se consideran más seguros que los TLD de dos letras, ya que son más difíciles de hacer coincidir con los dominios de países latinos ISO-3166 normales; aunque sigue existiendo la posibilidad de hacer coincidir nuevos dominios genéricos, dichos dominios genéricos son mucho más caros que registrar una dirección de dominio de segundo o tercer nivel, lo que hace que sea prohibitivo en términos de costos intentar registrar un TLD homoglífico con el único propósito de crear dominios fraudulentos (lo que en sí mismo atraería el escrutinio de la ICANN).
El operador de registro ruso, Centro de coordinación para los dominios de nivel superior RU, sólo acepta nombres cirílicos para el dominio de nivel superior .рф , prohibiendo la combinación con caracteres latinos o griegos. Sin embargo, el problema en .com y otros gTLD sigue abierto. [24]
En su estudio de 2019, Suzuki et al. presentaron ShamFinder, [25] un programa para reconocer IDN, arrojando luz sobre su prevalencia en escenarios del mundo real. De manera similar, Chiba et al. (2019) diseñaron DomainScouter, [26] un sistema experto en detectar diversos IDN homógrafos en dominios mediante el análisis de aproximadamente 4,4 millones de IDN registrados en 570 dominios de nivel superior (TLD), que pudo identificar con éxito 8284 homógrafos de IDN, incluidos muchos casos no identificados previamente que apuntaban a marcas en idiomas distintos del inglés. [27]
Microsfot.com
{{cite web}}
: CS1 maint: copia archivada como título ( enlace ), Comunicaciones de la ACM, 45(2):128, febrero de 2002