Il tweet è vecchio così come l’argomento, eppure ogni tanto torna in auge e non è mai per un buon motivo, perché si parla di tentativi di phishing che vanno a buon fine e mettono così in pericolo i tuoi dati e la tua privacy. Oggi torno quindi a parlarti (per la prima volta però sul blog) di Punycode e dei domini che non corrispondono esattamente al vero.
Punycode
Se hai letto Punycode così come un ateo leggerebbe un passo della Bibbia (che poi non è detto), non preoccuparti, può anche starci che tu non conosca l’argomento e non sappia di cosa stiamo parlando. Viene in aiuto un articolo di qualche mese fa, pubblicato all’indirizzo dev.to/loganmeetsworld/homographs-attack–5a1p, all’interno del quale viene minuziosamente spiegato come è possibile “attaccare” un ignaro utente di Firefox (ma anche Chrome e altri browser) sfruttando l’interpretazione dei caratteri Unicode (come le emoji che siamo tutti abituati a usare nelle applicazioni di messaggistica istantanea).
Volendola riportare in breve, ti cito qualche riga della voce specifica su Wikipedia:
Punycode è un sistema di codifica definito nella RFC 3492 che serve a rappresentare univocamente una sequenza di caratteri unicode tramite una sequenza di caratteri ASCII, per rendere possibile l’uso di tali sequenze nei nomi di dominio, senza dover modificare infrastrutture e standard esistenti.
Continua su: it.wikipedia.org/wiki/Punycode
Ciò vuol dire che potresti tranquillamente utilizzare una emoji al posto del testo o, se preferisci (e come viene generalmente fatto per questo tipo di attacchi), una serie di caratteri ASCII che vengono poi letti e mostrati in maniera più chiara dal browser. Che significa di preciso? Presto detto: il tweet a cui facevo riferimento in apertura articolo è questo di seguito …
Firefox & Chrome
Spot the difference: One is a fake domain utilizing Russian letters (fully legit to register)! How would you stop your users falling for this? (really asking for ideas) pic.twitter.com/FYTKEb740j
— vladimir wolstencroft (@vladwolfenstein) March 23, 2018
Ciò che a te sembra assolutamente identico tra lo screenshot superiore e quello subito sotto, nella realtà corrisponde a profonda differenza tramite Punycode: www.xn--twili-nye.com (e questo è solo un esempio con caratteri russi) riporta apparentemente a un sito web lecito, che di lecito però nella realtà non ha nulla. La medesima storia è già stata documentata ampiamente in passato, successe anche con il domino di Apple (quello che per tutti è Apple.com e che ancora oggi esiste ancora come PoC Punycode se dai un’occhiata all’articolo al quale ti porto tramite il collegamento inserito qualche parola fa), funzionante su qualsiasi browser aggiornato (vedi il mio, qui di seguito):
Il “Prima” e “Dopo” che leggi come descrizione delle immagini è dovuto alla modifica che su Firefox ho apportato ormai diverso tempo fa, proprio per combattere questo tipo di attacco e poter immediatamente avere massima visibilità di domini che utilizzano il Punycode. La modifica alla quale faccio riferimento riguarda ovviamente l’about:config
del browser, più precisamente la voce network.IDN_show_punycode
, descritta già nel 2006 nella Knowledge Base di MozillaZine (kb.mozillazine.org/Network.IDN_show_punycode), che contrariamente al predefinito booleano “false” può (e secondo me deve) essere impostata a true per mostrare i caratteri estesi che compongono il nome del dominio in maniera altrimenti più leggibile, proprio come nell’immagine di seguito (presa sempre dal mio Nightly):
Ed è così che è semplice arrivare alla situazione riportata dall’immagine qualche riga più su con la descrizione “Dopo“, è evidente che un attacco di questo tipo non potrebbe mai andare a buon fine. Se però preferisci agire in maniera diversa, puoi sempre pensare di fare uso di un componente aggiuntivo come PunyCode Domain Detection, italiano sin dalla nascita (realizzato da Francesco De Stefano) e disponibile chiaramente su AMO:
Che potrebbe avere un corrispettivo anche nel Chrome Store (no, non se ne è occupato sempre lui anche dall’altro lato) in Punycode Alert:
In conclusione
Argomento di discussione da anni e motivo di critica verso chi ancora non ha portato sul tavolo regole ufficiali e valide per tutti, Punycode e possibilità di registrazione domini alquanto discutibili basati su caratteri estesi continuano a mietere vittime poco attente (o poco preparate, a volerla dire tutta), per questo motivo è bene prendere precauzioni in totale autonomia e muoversi sin da subito (in realtà bisognava averlo già fatto anni fa).
Quanto riportato sopra è frutto della mia personale esperienza e si tratta ovviamente di suggerimenti che sei libero o meno di applicare. Se nel tuo caso hai preferito intraprendere una differente strada e vuoi parlarne, sei assolutamente libero di farlo in area commenti, è sempre bello potersi confrontare e arricchire le pubblicazioni del blog (ormai dovresti conoscermi e saperlo bene).
Spero di non aver dimenticato nulla. In caso contrario, bussa e segnalalo, sarà mia premura metterci quanto prima una pezza ;-)
Buona navigazione!
Ulteriori fonti:
- krebsonsecurity.com/2018/03/look-alike-domains-and-visual-confusion
- bleepingcomputer.com/news/security/chrome-extension-detects-url-homograph-unicode-attacks
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)