L'attacco omografico al nome di dominio internazionalizzato è una tipologia di attacco informatico in cui un utente malintenzionato può ingannare gli utenti di un computer riguardo al sistema remoto con il quale stanno comunicando, sfruttando il fatto che molti caratteri tipografici si assomigliano (ad esempio, sono omografi, da cui il nome dell'attacco). Per esempio, un utente abituale di esempio.com può essere indotto a fare clic su un link in cui il carattere dell'alfabeto latino "A" viene sostituito con il carattere "A" dell'alfabeto cirillico.
Questo tipo di spoofing è noto anche come script spoofing. La codifica Unicode incorpora numerosi sistemi di scrittura e, per una serie di motivi, caratteri simili come la O greca, la O latina e la O cirillica non sono stati assegnati allo stesso codice. Il loro uso scorretto o malevolo è quindi possibile per gli attacchi informatici., Technical Report #36, 2010-04-28
La registrazione di nomi di dominio omografici è simile al typosquatting, in quanto entrambe le forme di attacco sfruttano un nome simile a un dominio più affermato per ingannare un utente. La principale differenza è che nel typosquatting il malintenzionato si basa su errori umani naturali, mentre nello spoofing omografico il malintenzionato inganna intenzionalmente il navigatore web con nomi visibilmente indistinguibili. In effetti, sarebbe un raro incidente per un utente che naviga sul Web digitare, ad esempio, una lettera cirillica all'interno di una parola. Ci sono casi in cui una registrazione può essere sia di typosquatting che di spoofing omografico; le coppie di caratteri l/I, i/j, e 0/O non solo sono formate da caratteri adiacenti sulla tastiera ma presentano anche una certa somiglianza tra loro.
Storia Un problema di questo tipo, prima dell'avvento di Internet e persino dei terminali testuali era la confusione tra "l" (lettera minuscola "L") / "1" (il numero "uno") e "O" (lettera maiuscola per vocale "o") / "0" (il numero "zero"). Alcune macchine da scrivere nell'era pre-computer utilizzavano lo stesso carattere per la lettera L minuscola e per il numero uno; gli utenti si ritrovavano a digitare la L minuscola quando volevano indicare numero uno. La confusione tra zero e la lettera O ha dato origine alla tradizione di barrare lo zero in modo che gli operatori dei computer li distinguessero correttamente. La codifica Unicode contribuisce notevolmente a questa confusione con i suoi caratteri combinati, accenti, trattini, ecc., spesso a causa di un supporto di rendering inadeguato, specialmente con dimensioni ridotte dei font e un'ampia varietà di degli stessi.
Ancor prima, la scrittura a mano offriva ricche opportunità di confusione. Un esempio notevole è l'etimologia della parola "zenith". La traduzione dall'arabo "samt" includeva l'errore dello scriba che ha confuso una "m" per "ni". Questo era comune nella scrittura gotica medievale, che non collegava le colonne verticali alle lettere i, m, n o u, rendendole difficili da distinguere quando queste si trovavano in sequenza. Sequenze di caratteri come "rn" / "m" / "rri" ("RN" / "M" / "RRI"), possono ingannare un occhio umano anche, al giorno d'oggi, con la moderna tecnologia informatica.
In diversi contesti è stata anche riconosciuta la sostituzione intenzionale di caratteri simili appartenenti a diversi alfabeti. Ad esempio, il Falso Cirillico che è stato usato come uno mezzo di intrattenimento e la "Codifica Volapuk", in cui il cirillico è rappresentato dai caratteri latini somiglianti, che è stata usata nei primi giorni di Internet come un modo per superare la mancanza di supporto per l'alfabeto cirillico.
Omografie nel codice ASCII Il codice ASCII presenta diversi caratteri o coppie di caratteri che si assomigliano, noti come omografi. Gli attacchi di spoofing basati su queste somiglianze sono noti come attacchi di spoofing omografici. Ad esempio, 0 (il numero) e O (la lettera), L minuscola "l" e I maiuscola "I".
In un esempio di attacco ipotetico, qualcuno potrebbe registrare un nome di dominio che sembra quasi identico a un dominio esistente ma che punta a un altro server. Ad esempio, il dominio "rnicrosoft.com" inizia con "r" e "n", non "m". Altri esempi sono che somiglia molto a GOOGLE.COM in alcuni tipi di font. Usando un mix di caratteri maiuscoli e minuscoli, googIe.com (con la i maiuscola al posto della L minuscola) sembra molto simile all'originale google.com. In alcuni tipi di font con spazi ristretti come Tahoma (usato come predefinito nella barra degli indirizzi di Windows XP), posizionando una c davanti a j, l o i si possono ottenere caratteri omografi come cl cj ci (d g a).
Omografie nei nomi di dominio internazionalizzati Nei sistemi informatici multilingue, diversi caratteri possono apparire uguali alla vista. Ad esempio, il carattere Unicode U + 0430, lettera cirillica a ("A"), può sembrare identico al carattere Unicode U + 0061, lettera minuscola latina a ("a"). Questo fatto può portare a non distinguere wikipediа.org (la versione cirillica) da wikipedia.org (la versione latina).
Il problema deriva dal diverso trattamento dei caratteri nella mente dell'utente e nella programmazione del computer. Se l'utente vede un carattere cirillico "а" all'interno di una stringa latina lo scambia per una "a" latina; non c'è differenza nei glifi per questi caratteri nella maggior parte dei font. Tuttavia, il computer li tratta in modo diverso quando elabora la stringa come identificativo, viene quindi a mancare una corrispondenza uno-a-uno tra l'aspetto visivo di un carattere e l'entità che rappresenta.
Il nuovo standard, già ampiamente supportato, basato sui nomi di dominio internazionalizzati, utilizza il set di caratteri Unicode completo fornendo comunque una retrocompatibilità con le versioni precedenti. L'utilizzo del set di caratteri Unicode completo ha ampliato l'insieme dei caratteri da poche decine di un singolo alfabeto a molte migliaia appartenenti ad alfabeti diversi; ciò ha aumentato enormemente la portata degli attacchi omografi.
Gli attacchi omografici aprono una vasta gamma di opportunità per il phishing e altre varietà di frodi. Un utente malintenzionato potrebbe registrare un nome di dominio simile a quello di un sito Web legittimo, ma in cui alcune lettere sono state sostituite da omografi in un altro alfabeto. Esso potrebbe quindi inviare messaggi di posta elettronica che sembrano provenire dal sito originale, ma indirizzando le persone al sito fasullo. Il sito spoof potrebbe quindi registrare informazioni come password o dettagli dell'account mentre trasmette il traffico al sito reale. Le vittime potrebbero non notare mai la differenza, fino a quando non si verificano attività sospette o criminali con i loro account.
Nel dicembre 2001 Evgeniy Gabrilovich e Alex Gontmakher, entrambi di Technion, in Israele, pubblicarono un documento intitolato "The Homograph Attack",Evgeniy Gabrilovich and Alex Gontmakher, , Communications of the ACM, 45(2):128, February 2002 che descriveva un attacco che usava gli URL Unicode per falsificare un URL di un sito web. Per dimostrare la fattibilità di questo tipo di attacco, i ricercatori hanno registrato con successo una variante del nome di dominio microsoft.com che incorpora caratteri cirillici.
Il 7 febbraio 2005, Slashdot ha riferito che questo exploit è stato divulgato da 3ric Johanson alla conferenza hacker Shmoocon. I browser Web che supportano IDNA sembravano dirigere l'URL http://www.pаypal.com/, in cui il primo carattere è sostituito da una "а" cirillica, nel sito della nota piattaforma di pagamento Paypal, ma in realtà portavano a un sito web contraffatto con contenuti diversi. I browser più diffusi hanno continuato a presentare problemi con la corretta visualizzazione dei nomi di dominio internazionali fino ad aprile 2017.
I seguenti alfabeti hanno caratteri che possono essere usati per gli attacchi di spoofing (si prega di notare che questi sono solo i più ovvi e comuni; le possibilità sono molte di più di quelle qui elencate):
Cirillico Il cirillico è, di gran lunga, l'alfabeto più utilizzato per gli attacchi omografici, perché contiene 11 glifi in minuscolo identici o quasi identici a quelli latini.
Le lettere russe а, с, е, о, р, х e у somigliano alle seguenti lettere nell'alfabeto latino: a, c, e, o, p, x e y. I caratteri cirillici З, Ч e б assomigliano ai numeri 3, 4 e 6. Il corsivo genera altri casi di omografia: дтпи (normalmente дтпи), è simile a dmnu (in alcuni font д può essere usato, poiché la sua forma in corsivo assomiglia a un carattere g minuscolo; tuttavia nella maggior parte dei font, д invece assomiglia al simbolo di derivata parziale, ∂).
Se si contano le lettere maiuscole, АВСЕНІЈКМОРЅТХ possono sostituire ABCEHIJKMOPSTX.
Le lettere cirilliche non russe che causano comunque casi di omografia sono і e i, ј e j, ѕ e s, Ғ e F, Ԍ e G, Ү e Y.
Anche se Komi De (ԁ), shha (һ), páločka (Ӏ) e ižica (ѵ) hanno una forte somiglianza con il latino d, h, l e v, queste lettere sono rare o arcaiche e non sono supportate nella maggior parte dei font standard (non sono inclusi nella WGL-4). Il tentativo di usarli potrebbe causare il cosiddetto effetto messaggio di riscatto (ransom note effect).
Greco Dall'alfabeto greco, solo i caratteri omicron ο e talvolta nu ν appaiono identici a una lettera dell'alfabeto latino nella versione minuscola utilizzata per gli URL. Aggiungendo anche i caratteri corsivi l'alfa greca α sembra una lettera a latina.
Usando le lettere maiuscole, l'elenco si espande notevolmente. Il greco ΑΒΕΗΙΚΜΝΟΡΤΧΥΖ sembra identico al latino ABEHIKMNOPTXYZ. Il greco ΑΓΒΕΗΚΜΟΠΡΤΦΧ sembra simile al cirillico АГВЕНКМОПРТФХ (come il cirillico Л (Л) e il greco Λ in certi font sans-serif), le lettere greche κ e о hanno un aspetto simile al cirillico к e о. Oltre a questo i caratteri greci τ, φ possono essere simili al cirillico т, ф in alcuni font, il greco δ assomiglia al cirillico б nell'alfabeto serbo, e la a cirillica in corsivo, similmente a quanto avviene per la lettera a latina, rende possibile la sua sostituzione con alfa e viceversa. La forma a mezzaluna di sigma, Σς, assomiglia sia al latino Cc che al cirillico Сс.
Se un IDN stesso viene falsificato, la beta beta β può essere un sostituto del tedesco esszet ß in alcuni tipi di carattere (e in effetti la codifica code page 437 li considera equivalenti), come anche il greco sigma ς per ç; i sostituti greci accentati όίά di solito possono essere usati per óíá in molti tipi di font, con l'ultimo di questi (alfa) che, di nuovo, assomiglia al carattere a in corsivo.
Armeno Anche l'alfabeto armeno può contribuire ad introdurre caratteri critici: diversi caratteri armeni come օ, ո, ս, come anche il maiuscolo Տ e Լ sono spesso completamente identici ai caratteri latini nei font moderni. Simboli come ա possono assomigliare al cirillico ш. Oltre a ciò, ci sono simboli che si assomigliano. ցհոօզս che assomiglia a ghnoqu, յ che assomiglia a j (sebbene senza punto), e ք, che può assomigliare a p o f a seconda del font. Tuttavia, l'uso dell'Armeno è problematico. Non tutti i font standard presentano i glifi armeni (mentre i simboli greci e cirillici sono presenti nella maggior parte dei font standard). Per questo motivo, Windows prima di Windows 7 visualizzava l'armeno con un font distinto, Sylfaen, che supporta l'armeno, e il mix di armeno e latino sarebbe apparso differente se fosse stato usato un font diverso da Sylfaen o un font Unicode (effetto noto come ransom note effect). La versione corrente di Tahoma, usata in Windows 7, supporta l'armeno (le versioni precedenti non lo facevano). Inoltre, questo font differenzia il latino g dall'armeno ց.
Anche due lettere in armeno (Ձշ) possono assomigliare al numero 2, Յ è simile a 3, mentre վ a volte assomiglia al numero 4.
Ebraico