Chrome non riconosce alcuni domini falsi: basta cambiare una lettera

Una ricerca rivela come alcuni caratteri Unicode permettano di aggirare le protezioni di Chrome, facendo apparire come "normali" dei domini che imitano siti famosi.
Chrome non riconosce alcuni domini falsi: basta cambiare una lettera

Controllare l’indirizzo visualizzato nella barra del browser è una delle prime raccomandazioni quando si parla di sicurezza informatica. Google Chrome, tuttavia, può mostrare un dominio costruito per imitare quello di un’azienda conosciuta senza evidenziare la differenza. Non si tratta di un problema del DNS, né di un errore nella gestione dei certificati HTTPS: la debolezza riguarda i criteri utilizzati dal browser per stabilire se un indirizzo possa apparire o meno nella sua forma originale, risultando potenzialmente ingannevole.

Una ricerca pubblicata da Ian Muscat e Leanne Briffa, nell’ambito del progetto Have I Been Squatted, dimostra che la sostituzione di un solo carattere può bastare per aggirare due differenti livelli di controllo adottati da Chromium, il progetto open source alla base di Chrome e di altri browser.

Gli studiosi hanno registrato 20 domini dimostrativi che imitano indirizzi di marchi e servizi conosciuti, tra cui Apple, OpenAI, Skype, SpaceX e Kaspersky. Il risultato più interessante riguarda un particolare carattere cirillico: il browser lo accetta come parte di un normale dominio internazionalizzato, ma non lo riconosce come elemento sufficientemente sospetto.

Perché Chrome riconosce alcuni indirizzi contraffatti e altri no

Per comprendere il problema bisogna distinguere due aspetti della gestione dei nomi di dominio internazionalizzati, o IDN (Internationalized Domain Names).

La codifica Punycode permette di rappresentare mediante caratteri ASCII nomi che contengono lettere appartenenti a differenti sistemi di scrittura. Il dominio аррӏө.com, ad esempio, corrisponde alla rappresentazione xn--80a6aa68c8d.com. Lo avevamo spiegato nell’articolo sugli URL che sembrano identici ma alcuni sono fasulli.

Eppure, se si provano a selezionare indirizzi come аррӏө.com, ƙicƙstarter.com, niƙe.com incollandoli nella barra degli indirizzi, Chrome li mostra tal quali. Un occhio poco allenato può non riconoscere il “raggiro”.

Imitazione URL apple.com

Chrome tenta di privilegiare la rappresentazione Unicode, così da rendere leggibili gli indirizzi legittimi scritti usando lingue diverse dall’inglese. Prima di farlo, però, esegue una serie di controlli per individuare possibili imitazioni.

La documentazione ufficiale di Chromium sugli IDN descrive le regole di visualizzazione, mentre il codice sorgente espone la logica delle funzioni che valutano i nomi potenzialmente ingannevoli. La verifica non si limita a controllare se un dominio contiene lettere straniere: Chromium analizza gli alfabeti utilizzati, le combinazioni di caratteri, alcune sequenze considerate pericolose e la somiglianza con domini conosciuti.

Un dominio scritto interamente in cirillico può sembrare legittimo

Una delle verifiche esercitate da Chromium/Chrome serve a individuare le combinazioni sospette di alfabeti differenti: se una parola contiene lettere latine mescolate a lettere cirilliche, Chrome normalmente preferisce visualizzare il dominio in Punycode. Un dominio in Punycode è un indirizzo Internet contenente caratteri non ASCII (come lettere cirilliche o accentate) convertito in una rappresentazione composta da caratteri ASCII, riconoscibile dal prefisso xn--. Ad esempio, аррӏө.com diventa xn--80a6aa68c8d.com: i due indirizzi identificano lo stesso dominio.

Per esempio, раypal.com – come abbiamo raccontato nel precedente approfondimento – contiene due lettere cirilliche iniziali, seguite da caratteri latini. La mescolanza è sufficiente a far scattare la protezione.

Il caso аррӏө.com è diverso: tutti i caratteri che precedono .com appartengono all’alfabeto cirillico. Di conseguenza, il controllo che intercetta le combinazioni non consentite di sistemi di scrittura non trova alcuna anomalia.

Un dominio interamente cirillico non è naturalmente sospetto di per sé. Milioni di persone utilizzano legittimamente alfabeti differenti da quello latino: per tale ragione, bloccare indiscriminatamente tutti gli IDN non rappresenterebbe una soluzione accettabile.

Chrome controlla anche la somiglianza con i domini più popolari: perché non basta?

Chromium non si limita a controllare le lettere che compongono ciascun URL: confronta anche il nome di dominio con un elenco incorporato di indirizzi particolarmente conosciuti. Per effettuare il confronto, utilizza una rappresentazione normalizzata chiamata skeleton.

Lo skeleton è una sequenza costruita attraverso trasformazioni destinate a ricondurre caratteri visivamente confondibili a rappresentazioni confrontabili.

Il procedimento comprende la normalizzazione Unicode, la gestione di alcuni segni diacritici, la produzione di varianti per caratteri ambigui e l’applicazione delle tabelle di corrispondenza previste da Unicode UTS #39, insieme ad alcune regole specifiche di Chromium.

Per capire perché il controllo fallisce, consideriamo un esempio concreto. Se qualcuno registrasse ókta.com, sostituendo la prima con una ó accentata, Chrome sarebbe in grado di individuare la somiglianza. Durante la costruzione dello skeleton, infatti, il browser elimina l’accento e ottiene una rappresentazione equivalente a quella del dominio autentico. Il confronto restituisce quindi una corrispondenza e Chrome sceglie di mostrare l’indirizzo sospetto in Punycode.

Con аррӏө.com, invece, il risultato cambia. Il carattere cirillico ө non è una semplice lettera accentata: contiene una barra orizzontale che attraversa la lettera. Quando Chromium costruisce lo skeleton, trasforma ө in una o accompagnata da un segno Unicode che rappresenta proprio quella barra.

Di conseguenza, lo skeleton del dominio sospetto non è sovrapponibile con il nome di dominio legittimo apple.com.

Chromium confronta gli skeleton con un elenco incorporato di domini popolari che, nella versione esaminata dai ricercatori, comprendeva 8.462 indirizzi, di cui 836 appartenenti a un gruppo con priorità più elevata. apple.com figura nell’elenco, ma il confronto non riconosce аррӏө.com come una sua imitazione, perché le rappresentazioni normalizzate sono differenti.

Come è possibile registrare un dominio del genere?

Perché il sistema di registrazione dei domini permette di utilizzare caratteri che possono facilitare l’imitazione di marchi conosciuti?

I registry non accettano indiscriminatamente tutti i caratteri Unicode: per ciascun dominio di primo livello possono esistere apposite tabelle IDN che stabiliscono quali lettere e combinazioni siano consentite. La disponibilità di un carattere dipende quindi dalle regole applicate dal registry e dalle eventuali restrizioni ulteriori del registrar.

Per il dominio .com, gestito da Verisign, le tabelle dedicate al cirillico consentono la lettera ө, utilizzata legittimamente in alcune lingue.

I ricercatori hanno sfruttato proprio questa caratteristica: il carattere è ammesso dalle regole di registrazione e supera anche le verifiche di visualizzazione applicate da Chromium.

Il problema riguarda anche la posta elettronica: le differenze tra Gmail e Outlook Web

La ricerca non si è fermata ai browser. Gli autori hanno verificato come Gmail e Outlook Web rappresentano i nomi di dominio internazionalizzati negli indirizzi dei mittenti.
I risultati evidenziano due comportamenti opposti.

Nei test condotti su 20 mittenti internazionalizzati, Gmail ha visualizzato tutti i domini nella rappresentazione Unicode, compresi alcuni indirizzi che Chromium avrebbe mostrato in Punycode. Outlook Web, invece, ha mantenuto la rappresentazione ASCII degli stessi domini, visualizzando gli indirizzi codificati con il prefisso xn--.

Per esempio, nel caso di un messaggio proveniente dall’indirizzo dimostrativo test@аррӏө.com, Gmail mostrava la forma Unicode nel campo del mittente, mentre Outlook Web presentava la corrispondente rappresentazione Punycode.

Gmail riportava la forma ASCII in un campo tecnico separato, associato alle informazioni sul mittente, ma non direttamente nell’indirizzo visualizzato in primo piano.

Occorre precisare che gli studiosi hanno importato i messaggi nelle caselle di prova tramite le API dei rispettivi servizi, così da concentrarsi sulle modalità di visualizzazione.

La sperimentazione non misura l’efficacia dei filtri antispam, delle verifiche SPF, DKIM e DMARC o dei controlli antiphishing. Non permette pertanto di concludere che un servizio di posta elettronica sia complessivamente più sicuro dell’altro.

Come usare PowerShell per confrontare due domini che sembrano uguali

Per approfondire la questione senza affidarsi esclusivamente all’aspetto visivo, Windows mette a disposizione gli strumenti necessari a ispezionare gli indirizzi internazionalizzati.

Verifica URL Unicode Punycode

È ad esempio possibile ricorrere a PowerShell per analizzare i caratteri Unicode che compongono un nome di dominio. Lo script seguente Il comando seguente esamina i due URL indicati, suggerisce se un indirizzo sia da considerarsi sospetto e mostra la rappresentazione Punycode corrispondente:

$originale = "apple.com"
$sospetto  = "аррӏө.com"

[PSCustomObject]@{
    DominioOriginale = $originale
    DominioSospetto  = $sospetto
    Identici         = [string]::Equals(
        $originale,
        $sospetto,
        [System.StringComparison]::Ordinal
    )
    PunycodeSospetto = (
        [System.Globalization.IdnMapping]::new()
    ).GetAscii($sospetto)
}

Come proteggersi dagli indirizzi che imitano quelli autentici

La prima precauzione consiste nel non considerare la somiglianza visiva del nome di dominio come una prova sufficiente di autenticità.

Nel caso di servizi bancari, piattaforme di pagamento, account Microsoft, Google o altri servizi importati, è preferibile utilizzare un segnalibro salvato in precedenza oppure digitare l’indirizzo conosciuto, anziché raggiungerlo attraverso collegamenti ricevuti via email, chat o SMS.

Quando un sito richiede credenziali o informazioni finanziarie, è utile prestare attenzione anche all’origine del collegamento e alle eventuali anomalie della pagina.

Password manager e passkey possono offrire un’ulteriore protezione: i gestori di credenziali che associano le password al dominio effettivo non proporranno automaticamente le credenziali di apple.com su аррӏө.com.

Analogamente, le passkey WebAuthn/FIDO2 sono legate all’identità del sito e non alla semplice somiglianza grafica dell’indirizzo.

Resta fondamentale mantenere aggiornato il browser, così da beneficiare delle eventuali modifiche alle regole di individuazione dei domini ingannevoli.

Ti consigliamo anche

Link copiato negli appunti