Module 3 · 3.2
Français
Lire les domaines et les liens
Module 3: Reconnaître le phishing · Temps de lecture : 13 minutes
Objectif pédagogique : Après cette leçon, vous saurez déterminer la véritable destination de n'importe quel lien : vous trouverez le domaine enregistrable à l'aide de la liste publique des suffixes et vous reconnaîtrez les ruses de sous-domaine, de chemin et de symbole @, les lookalikes, le punycode, les raccourcisseurs et les redirections ouvertes.
Notions clés : URL, schéma, hôte, domaine enregistrable, suffixe public, sous-domaine, chemin, lookalike, typosquatting, homographe, punycode (xn--), raccourcisseur d'URL, redirection ouverte
Les éléments d'un lien
Une adresse web s'appelle une URL. Elle se compose de parties fixes :
https://inlog.mijnbank.example:443/klant/overzicht?taal=nl#saldo| Élément | Dans cet exemple | Son rôle |
|---|---|---|
| Schéma | https | Comment le navigateur établit la connexion |
| Hôte | inlog.mijnbank.example | Avec quel serveur vous communiquez |
| Port (rarement visible) | 443 | Le « numéro de porte » sur ce serveur |
| Chemin | /klant/overzicht | Quelle page sur ce serveur |
| Requête | ?taal=nl | Données supplémentaires pour la page |
| Fragment | #saldo | Un emplacement sur la page |
L'hôte est la seule partie qui détermine à qui appartient le site. Le chemin, la requête et le fragment sont choisis librement par le propriétaire de cet hôte. On peut donc y mettre n'importe quoi, y compris le nom d'une autre organisation.
L'hôte se lit de droite à gauche, étiquette par étiquette. La fin est la partie la plus importante.
Le domaine enregistrable et la liste publique des suffixes
Ce n'est pas l'hôte entier qui indique le propriétaire, mais une seule partie de celui-ci : le domaine enregistrable. C'est le nom que quelqu'un a déposé auprès d'un bureau d'enregistrement. Tout ce qui se trouve à gauche de cette partie constitue des sous-domaines, que le propriétaire crée lui-même, autant qu'il le souhaite.
Pour trouver le domaine enregistrable, il faut savoir où l'on peut effectivement enregistrer soi-même un nom. Cette partie s'appelle un suffixe public. On trouve par exemple com, nl et example, mais aussi co.uk : au Royaume-Uni, une entreprise enregistre un nom sous co.uk. Le domaine enregistrable correspond alors au suffixe public plus une étiquette qui le précède.
| Hôte | Suffixe public | Domaine enregistrable |
|---|---|---|
www.example.com | com | example.com |
inlog.mijnbank.example | example | mijnbank.example |
www.shop.[nom].co.uk | co.uk | [nom].co.uk |
mijnbank.co.uk.example | example | uk.example |
La règle simplifiée « prenez les deux derniers morceaux » est donc fausse. Pour www.shop.[nom].co.uk, on obtiendrait co.uk, qui n'appartient à personne en particulier. Et le dernier exemple montre que co.uk au milieu d'un nom ne signifie rien : c'est uk.example qui en est le propriétaire.
La liste des suffixes publics figure dans la Public Suffix List (publicsuffix.org), une liste lancée par Mozilla et aujourd'hui tenue à jour par la communauté. Les navigateurs s'en servent entre autres pour déterminer quels sites peuvent partager des cookies et pour mettre en évidence la partie importante d'une adresse. La liste comprend aussi une section de suffixes « privés » : des services où les clients obtiennent leur propre sous-domaine, comme certains hébergeurs de blogs et de pages de projets. Chaque client dans ce cas compte comme un propriétaire distinct.
Si un suffixe ne figure pas dans la liste, la règle par défaut s'applique : la dernière étiquette est le suffixe. C'est pourquoi, pour .example, le domaine enregistrable correspond toujours aux deux dernières étiquettes.
Les ruses du sous-domaine, du chemin et du symbole @
Maintenant que vous savez où se trouve l'identité du propriétaire, vous comprenez comment les attaquants trompent votre regard. Ils placent le nom que vous attendez ailleurs dans le lien.
La ruse du sous-domaine.
https://mijnbank.example.inlog-check.example/loginVous voyez mijnbank.example au début. Mais en lisant de droite à gauche : le suffixe est example, le domaine enregistrable est inlog-check.example, et celui ci appartient à l'attaquant. L'attaquant a acheté ce domaine et y a placé lui même le sous-domaine mijnbank.example.
La ruse du chemin.
https://inlog.example/mijnbank.example/klant/loginL'hôte est inlog.example, rien de plus. Tout ce qui suit le premier / unique fait partie du chemin, que le propriétaire de inlog.example choisit lui même.
La ruse du symbole @.
https://mijnbank.example@aanvaller.example/inloggenUne URL peut contenir, avant l'hôte, une partie utilisateur, terminée par un @ (la norme des URL, RFC 3986, appelle cela userinfo). Tout ce qui précède le @ n'est donc pas un hôte. Le navigateur se rend sur aanvaller.example et nulle part ailleurs. Certains navigateurs avertissent ou suppriment la partie utilisateur, mais ne comptez pas dessus.
Une méthode pratique et fiable : cherchez le premier / après https://. Ce qui précède est l'hôte (avec éventuellement une partie utilisateur et un @). S'il y a un @, l'hôte ne commence qu'après celui ci. Lisez l'hôte de droite à gauche jusqu'à obtenir le domaine enregistrable.
Lookalikes, typosquatting et punycode
Un lookalike est un domaine propre qui ressemble à celui d'une autre organisation :
| Lookalike | Ruse |
|---|---|
rnijnbank.example | rn ressemble, dans de nombreuses polices, à m |
mijnbnak.example | deux lettres inversées (typosquatting : parier sur une faute de frappe) |
mijnbank-veilig.example | un mot ajouté avec un trait d'union : un domaine totalement différent |
mijnbank-example.example | le point remplacé par un trait d'union |
mijnbank.example.inlog-check.example | le vrai domaine utilisé comme sous-domaine (voir ci-dessus) |
Une étape plus loin se trouve l'homographe : un domaine utilisant des lettres d'un autre alphabet qui se ressemblent visuellement. Le а cyrillique ressemble au a latin, mais constitue pour l'ordinateur un caractère différent. Les noms de domaine contenant de tels caractères s'appellent des noms de domaine internationalisés. Le DNS ne connaît que les lettres a à z, les chiffres et le trait d'union, donc un tel nom est converti en punycode (RFC 3492) : une forme qui commence par xn--.
mijnbаnk.example (avec un а cyrillique)
xn--mijnbnk-6fg.example (le même nom en punycode)Si vous voyez xn-- dans une adresse, ce nom contient des caractères hors de a à z. Cela peut être tout à fait normal (de nombreuses langues utilisent des accents ou un alphabet propre), mais pour un nom qui par ailleurs ressemble à du néerlandais ou de l'anglais, c'est un signal fort. Les navigateurs ont des règles pour afficher en punycode les combinaisons suspectes ; Chrome, par exemple, affiche en xn-- un nom mêlant alphabets latin et cyrillique. Mais ces règles ne détectent pas tout, et dans un e-mail ou un chat, vous voyez souvent simplement les lettres d'apparence normale.
Raccourcisseurs et redirections ouvertes
Les raccourcisseurs d'URL transforment un lien long en un lien court, comme https://kort.example/a8Xk2. Pratique, mais vous ne voyez pas la destination. Le domaine enregistrable du lien appartient au raccourcisseur, pas à l'organisation que vous attendez. Une banque ou un fournisseur qui vous demande de vous connecter via un lien raccourci : ne le faites pas.
Une redirection ouverte est une page sur un site authentique qui redirige les visiteurs vers n'importe quelle adresse indiquée dans le lien :
https://mijnbank.example/doorsturen?naar=https://aanvaller.example/inloggenL'hôte est bien mijnbank.example, mais après un clic, vous vous retrouvez sur aanvaller.example sans vous en apercevoir. De même, avec un raccourcisseur ou un lien de suivi d'une lettre d'information, vous pouvez arriver ailleurs que le premier domaine indiqué. La leçon : regardez à nouveau la barre d'adresse après avoir cliqué, avant de saisir quoi que ce soit. Et le cadenas ? Il indique seulement que la connexion est chiffrée. Les faux sites aussi possèdent un certificat valide.
En pratique : voici à quoi cela ressemble
Sur un ordinateur, passez la souris sur un lien sans cliquer : la véritable destination apparaît en bas à gauche de la fenêtre ou dans une bulle. Cela fonctionne aussi dans la plupart des logiciels de messagerie et des webmails. Sur un téléphone, maintenez le lien enfoncé : un menu apparaît avec l'adresse au-dessus. Ne choisissez alors pas « ouvrir ».
Attention à deux pièges :
- Le texte visible n'est pas la destination. Dans un e-mail, le bouton ou le texte peut afficher
https://mijnbank.example, alors que le lien en dessous pointe vers une adresse totalement différente. Seul ce que vous voyez avec la souris ou l'appui prolongé compte. - Les adresses longues sont tronquées. Les téléphones n'affichent souvent que le début. C'est justement la fin, la partie importante, qui disparaît alors. Faites défiler ou touchez l'adresse pour la voir en entier.
En cas de doute, saisissez vous même l'adresse que vous connaissez ou utilisez votre signet. L'ANSSI (Agence nationale de la sécurité des systèmes d'information) renvoie également vers des ressources pour vérifier un lien avant de cliquer.
Résumé
- Seul l'hôte détermine à qui appartient un site. Le chemin, la requête et tout ce qui précède un
@sont choisis librement par l'attaquant. - Le domaine enregistrable correspond au suffixe public plus une étiquette. Utilisez la Public Suffix List, pas « les deux derniers morceaux » (pensez à
co.uk). - Lisez l'hôte de droite à gauche. Le vrai domaine placé en tête comme sous-domaine est une ruse classique.
- Lookalikes : lettres inversées, mots ajoutés, homographes.
xn--signifie des caractères hors de a à z. - Les raccourcisseurs dissimulent la destination, les redirections ouvertes vous détournent. Vérifiez à nouveau la barre d'adresse après un clic.
Quiz
Exercice
Exercice A3.2 : Trouver le domaine enregistrable. Vous recevez huit liens. Pour chaque lien, indiquez le domaine enregistrable et précisez si le lien correspond à l'organisation authentique. Le programme vérifie votre réponse à l'aide de la Public Suffix List.
Exercice A3.2b : Liens piégés. Huit liens utilisant des ruses avec @, du punycode, des raccourcisseurs et des pages de redirection. Pour chaque lien, indiquez sur quel domaine vous arrivez, ou choisissez « impossible à déterminer ».
Pour aller plus loin
Les étapes décrites dans les articles de WebOké concernent l'environnement de WebOké ; chez d'autres fournisseurs, le fonctionnement est comparable.
- Cet e-mail provient-il réellement de WebOké ? Reconnaître le phishing et utiliser le code promotionnel
- Cours sur le DNS, sur les noms de domaine et comment les lire : https://www.weboke.fr/dns-cursus
- ANSSI (Agence nationale de la sécurité des systèmes d'information), à propos de l'usurpation d'identité en ligne : https://cyber.gouv.fr/
- Public Suffix List : https://publicsuffix.org/
- RFC 3986, la structure d'une URL (notamment le userinfo) : https://www.rfc-editor.org/rfc/rfc3986
- RFC 3492, le Punycode : https://www.rfc-editor.org/rfc/rfc3492
- Chromium, dans quels cas le navigateur affiche un nom internationalisé en punycode : https://chromium.googlesource.com/chromium/src/+/main/docs/idn.md
