Leggere domini e link
Modulo 3: Riconoscere il phishing · Tempo di lettura: 13 minuti
Obiettivo formativo: Dopo questa lezione sarà in grado di determinare la vera destinazione di qualsiasi link: troverà il dominio registrabile usando l'elenco pubblico dei suffissi e riconoscerà i trucchi con sottodominio, percorso e @, i lookalike, il punycode, gli accorciatori di link e i redirect aperti.
Concetti chiave: URL, schema, host, dominio registrabile, suffisso pubblico, sottodominio, percorso, lookalike, typosquatting, omografo, punycode (xn--), accorciatore di URL, redirect aperto
Le parti di un link
Un indirizzo web si chiama URL. È composto da parti fisse:
https://inlog.mijnbank.example:443/klant/overzicht?taal=nl#saldo| Parte | In questo esempio | Cosa fa |
|---|---|---|
| Schema | https | Come il browser stabilisce la connessione |
| Host | inlog.mijnbank.example | Con quale server sta comunicando |
| Porta (raramente visibile) | 443 | Il "numero civico" su quel server |
| Percorso | /klant/overzicht | Quale pagina su quel server |
| Query | ?taal=nl | Dati aggiuntivi per la pagina |
| Frammento | #saldo | Un punto specifico della pagina |
L'host è l'unica parte che determina a chi appartiene il sito. Percorso, query e frammento sono scelti liberamente dal proprietario di quell'host. Lì può quindi comparire qualsiasi cosa, anche il nome di un'altra organizzazione.
L'host si legge da destra verso sinistra, etichetta per etichetta. La parte finale è la più importante.
Il dominio registrabile e l'elenco pubblico dei suffissi
Non tutto l'host indica chi è il proprietario, ma solo una parte di esso: il dominio registrabile. È il nome che qualcuno ha registrato presso un registrar. Tutto ciò che sta a sinistra sono sottodomini, che il proprietario crea autonomamente, a piacimento.
Per trovare il dominio registrabile, bisogna sapere dove è effettivamente possibile registrare un proprio nome. Questa parte si chiama suffisso pubblico. Esempi sono com, nl e example, ma anche co.uk: nel Regno Unito un'azienda registra un nome sotto co.uk. Il dominio registrabile è quindi il suffisso pubblico più un'etichetta davanti ad esso.
| Host | Suffisso pubblico | Dominio registrabile |
|---|---|---|
www.example.com | com | example.com |
inlog.mijnbank.example | example | mijnbank.example |
www.shop.[naam].co.uk | co.uk | [naam].co.uk |
mijnbank.co.uk.example | example | uk.example |
La regola pratica "prenda le ultime due parti" è quindi sbagliata. Con www.shop.[naam].co.uk otterrebbe co.uk, che non appartiene a nessuno in particolare. E l'ultimo esempio mostra che co.uk in mezzo a un nome non significa nulla: lì il proprietario è uk.example.
Quali suffissi siano pubblici è indicato nella Public Suffix List (publicsuffix.org), un elenco avviato da Mozilla e ora mantenuto dalla comunità. I browser lo usano, tra l'altro, per determinare quali siti possono condividere cookie e per far risaltare la parte importante di un indirizzo. L'elenco contiene anche una parte di suffissi "privati": servizi in cui i clienti ricevono un proprio sottodominio, come alcuni hosting per blog e pagine di progetto. Ogni cliente sotto di essi conta come proprietario distinto.
Se un suffisso non compare nell'elenco, vale la regola standard: l'ultima etichetta è il suffisso. Per questo, con .example, il dominio registrabile è sempre costituito dalle ultime due etichette.
Trucchi con sottodominio, percorso e @
Ora che sa dove individuare il proprietario, vede come gli aggressori ingannano i Suoi occhi. Inseriscono il nome che Lei si aspetta da qualche altra parte nel link.
Trucco del sottodominio.
https://mijnbank.example.inlog-check.example/loginVede mijnbank.example all'inizio. Ma legga da destra: il suffisso è example, il dominio registrabile è inlog-check.example ed è dell'aggressore. L'aggressore ha acquistato quel dominio e ci ha messo davanti il sottodominio mijnbank.example.
Trucco del percorso.
https://inlog.example/mijnbank.example/klant/loginL'host è inlog.example e nient'altro. Tutto ciò che segue il primo singolo / è il percorso, e questo lo sceglie liberamente il proprietario di inlog.example.
Trucco con @.
https://mijnbank.example@aanvaller.example/inloggenUna URL può contenere, prima dell'host, una parte utente, conclusa da @ (lo standard per le URL, RFC 3986, la chiama userinfo). Tutto ciò che precede la @ non è quindi l'host. Il browser va a aanvaller.example e da nessun'altra parte. Alcuni browser avvisano o rimuovono la parte utente, ma non faccia affidamento su questo.
Un metodo pratico e affidabile: cerchi il primo / dopo https://. Ciò che lo precede è l'host (con eventualmente una parte utente e @). Se c'è una @, l'host inizia solo dopo di essa. Legga l'host da destra verso sinistra finché non trova il dominio registrabile.
Lookalike, typosquatting e punycode
Un lookalike è un dominio proprio che assomiglia a quello di un altro:
| Lookalike | Trucco |
|---|---|
rnijnbank.example | rn in molti font assomiglia a m |
mijnbnak.example | due lettere invertite (typosquatting: puntare su un errore di battitura) |
mijnbank-veilig.example | una parola in più con un trattino: un dominio completamente diverso |
mijnbank-example.example | il punto sostituito da un trattino |
mijnbank.example.inlog-check.example | il dominio reale come sottodominio (vedi sopra) |
Un passo oltre è l'omografo: un dominio con lettere di un altro alfabeto che appaiono identiche. La а cirillica sembra identica alla a latina, ma per il computer è un carattere diverso. I nomi di dominio con tali caratteri si chiamano nomi di dominio internazionalizzati. Il DNS riconosce solo lettere dalla a alla z, cifre e il trattino, quindi un nome simile viene convertito in punycode (RFC 3492): una forma che inizia con xn--.
mijnbаnk.example (con una а cirillica)
xn--mijnbnk-6fg.example (lo stesso nome in punycode)Se vede xn-- in un indirizzo, quel nome contiene caratteri al di fuori della a-z. Questo può essere del tutto normale (molte lingue hanno accenti o un alfabeto proprio), ma in un nome che per il resto sembra italiano o inglese, è un forte segnale di allarme. I browser hanno regole per mostrare come punycode le combinazioni sospette; Chrome, per esempio, mostra un'etichetta con alfabeto latino e cirillico misto come xn--. Ma queste regole non intercettano tutto, e in un'e-mail o in una chat spesso vede semplicemente lettere dall'aspetto normale.
Accorciatori e redirect aperti
Gli accorciatori di URL trasformano un link lungo in uno breve, come https://kort.example/a8Xk2. Comodo, ma non vede la destinazione. Il dominio registrabile del link appartiene all'accorciatore, non all'organizzazione che Lei si aspetta. Una banca o un fornitore che Le chiede di accedere tramite un link accorciato: non lo faccia.
Un redirect aperto è una pagina su un sito reale che reindirizza i visitatori verso qualsiasi indirizzo indicato nel link:
https://mijnbank.example/doorsturen?naar=https://aanvaller.example/inloggenL'host è davvero mijnbank.example, ma dopo un clic si trova su aanvaller.example senza accorgersene. Anche con un accorciatore o un link di tracciamento di un servizio di newsletter può finire da tutt'altra parte rispetto al dominio iniziale. La lezione: dopo aver cliccato, controlli di nuovo la barra degli indirizzi, prima di inserire qualsiasi dato. E il lucchetto? Indica solo che la connessione è cifrata. Anche i siti falsi hanno un certificato valido.
Nella pratica: ecco come appare
Su un computer, passi il mouse sopra un link senza cliccare: la vera destinazione appare in basso a sinistra nella finestra o in un fumetto. Nella maggior parte dei programmi di posta e della webmail funziona allo stesso modo. Su un telefono, tenga premuto il link: otterrà un menu con l'indirizzo sopra. In quel caso non scelga "apri".
Faccia attenzione a due insidie:
- Il testo visibile non è la destinazione. In un'e-mail, il pulsante o il testo possono mostrare
https://mijnbank.example, mentre il link sottostante va verso un indirizzo completamente diverso. Conta solo ciò che vede passando il mouse o tenendo premuto. - Gli indirizzi lunghi vengono troncati. I telefoni spesso mostrano solo l'inizio. Proprio la parte finale, quella importante, scompare. Scorra o tocchi l'indirizzo per vederlo per intero.
In caso di dubbio, digiti Lei stesso l'indirizzo che conosce o utilizzi il Suo segnalibro. L'ACN rimanda inoltre alle proprie risorse per verificare prima un link, https://www.acn.gov.it/.
Riepilogo
- Solo l'host determina a chi appartiene un sito. Percorso, query e tutto ciò che precede una
@sono scelti liberamente dall'aggressore. - Il dominio registrabile è il suffisso pubblico più un'etichetta. Usi la Public Suffix List, non "le ultime due parti" (pensi a
co.uk). - Legga l'host da destra verso sinistra. Il dominio reale messo all'inizio come sottodominio è un trucco classico.
- Lookalike: scambio di lettere, parole aggiuntive, omografi.
xn--significa caratteri al di fuori della a-z. - Gli accorciatori nascondono la destinazione, i redirect aperti La reindirizzano. Dopo un clic, controlli di nuovo la barra degli indirizzi.
Quiz
Esercizio
Esercizio A3.2: Trovare il dominio registrabile. Riceverà otto link. Per ciascun link indichi il dominio registrabile e segnali se il link corrisponde all'organizzazione reale. Il programma verifica la Sua risposta usando la Public Suffix List.
Esercizio A3.2b: Link ingannevoli. Otto link con trucchi con @, punycode, accorciatori e pagine di reindirizzamento. Per ciascun link indichi su quale dominio finisce, oppure scelga "non visibile".
Per saperne di più
I passaggi descritti negli articoli di WebOké valgono per l'ambiente di WebOké; presso altri fornitori il funzionamento è simile.
- Questa email è davvero di WebOké? Riconoscere il phishing e utilizzare il codice promozionale
- Corso DNS, su nomi di dominio e come leggerli: https://www.weboke.it/dns-cursus
- ACN, risorse sul phishing e sullo spoofing: https://www.acn.gov.it/
- Public Suffix List: https://publicsuffix.org/
- RFC 3986, la struttura di una URL (tra l'altro userinfo): https://www.rfc-editor.org/rfc/rfc3986
- RFC 3492, Punycode: https://www.rfc-editor.org/rfc/rfc3492
- Chromium, quando il browser mostra un nome internazionalizzato come punycode: https://chromium.googlesource.com/chromium/src/+/main/docs/idn.md
