punycode
Produits et Services PRODUITS & SERVICES

Hameçonnage via punycode, quand des alphabets étrangers sèment la confusion !

Hameçonnage via punycode, quand des alphabets étrangers sèment la confusion !

Le système curieusement nommé punycode est un moyen de convertir des mots qui ne peuvent pas être écrits en ASCII, tels que la phrase en grec ancien ΓΝΩΘΙΣΕΑΥΤΟΝ (connais-toi toi-même), dans un codage ASCII, comme ceci : xn--mxadglfwep7amk6b.

Ainsi, des noms de domaine internationaux (IDN) peuvent être encodés, lorsqu’ils contiennent des caractères non-ASCII, en utilisant uniquement les lettres romaines de A à Z, les chiffres de 0 à 9 et le tiret (-).

Cette possibilité est plutôt pratique, car le système de noms de domaine (DNS), responsable de transformer des noms de serveurs compréhensibles par les internautes en numéros de réseaux interprétables par des ordinateurs, est limité à ce sous-ensemble restreint de caractères ASCII, pour définir les noms de domaine.

NB : Lorsque le DNS a été développé, le stockage et la bande passante du réseau étaient des ressources beaucoup plus précieuses qu’aujourd’hui, avec comme conséquence une limite de la taille maximale de tout de ce qui allait, des séries de caractères aux paquets réseaux, au niveau des anciens protocoles.

Homographes : quand deux mots ressemblent

Si vous voulez enregistrer le domaine …

XN–MXADGLFWEP7AMK6B.EXAMPLE.COM.

… certaines applications modernes vont détecter qu’il s’agit d’un punycode et convertir automatiquement le nom pour l’afficher ainsi …

ΓΝΩΘΙΣΕΑΥΤΟΝ.EXAMPLE.COM.

Vous pouvez voir où cela nous mène bien sûr… l’escroquerie se dessine tout doucement !

Certaines lettres de l’alphabet romain ont la même forme (même si la prononciation est différente) que des lettres présentes dans les alphabets grecs, cyrilliques entre autres, comme par exemple les lettres I, E, A, Y, T, O et N, tel qu’illustré ci-dessus.

Ainsi, vous pourrez certainement enregistrer un nom de domaine punycode qui ne ressemble plus à un nom d’entreprise connue et codée en ASCII, mais qui s’affichera néanmoins avec une ressemblance à s’y méprendre.

Par exemple, considérez la chaîne de texte se composant des lettres minuscules grecques suivantes : alpha, rho, rho, iota, epsilon.

En punycode, vous obtiendrez xn--mxail5aa, mais lorsque vous l’afficherez (selon les polices que vous avez installées bien sûr), vous obtiendrez : αρριϵ.

punycode

Le punycode est considéré comme malveillant

Un expert en sécurité appelé Xudong Zheng a récemment écrit un article décrivant la façon dont les différents navigateurs abordent ce problème de l’homographie.

Il a enregistré le domaine xn--80ak6aa92e.com, qui est une version cyrillique de la version grecque apple ci-dessus, un nom de domaine cyrillique assez improbable mais qui s’avère correspondre à apple après conversion de ce punycode au texte “russe”.

Fait intéressant, de nombreux navigateurs ont une attitude assez brutale envers cette arnaque sur internet.

Safari et Edge, par exemple, l’affichent comme bon vieux xn--80ak6aa92e.com, du moins si les paramètres de votre système n’incluent pas les caractères cyrilliques :

punycode

Après tout, si vous ne pouvez pas lire les caractères cyrilliques en premier lieu, vous n’avez rien à perdre en visualisant le nom de domaine dans son format punycode, en fait, vous gagnez bien plus en ne le voyant pas sous la forme d’un faux texte anglais trompeur.

Internet Explorer affiche également l’URL punycode en clair, si vos paramètres ne sont pas configurés pour la langue qui a été punycodée, et publie également une notification pratique concernant la présence de “lettres et symboles qui ne peuvent pas être affichés” dans l’adresse web suivante :

punycode

Chrome et Firefox ne décoderont pas automatiquement les URL punycode si elles combinent plusieurs alphabets ou langues différents, au motif que ces chaînes de caractères sont hautement improbables dans la vraie vie et donc systématiquement suspectes.

Mais Chrome et Firefox convertiront automatiquement les URL punycode qui ont tous leurs caractères dans une même langue, comme ceci :

punycode

Se protéger des confusions possibles

Apparemment, Chrome va ajouter une protection supplémentaire au niveau du navigateur pour éviter cette autoconversion, et ce à partir de la prochaine version (Chrome 58), même s’il existe un risque que certains domaines non ASCII authentiques puissent apparaître ultérieurement dans le navigateur comme des URLs punycode !

Les développeurs de Firefox, d’autre part, soutiennent fortement que, parce que le désir de la Fondation Mozilla est d’éviter le favoritisme en traitant toutes les langues de manière égale, ce type de protection ne prend pas en compte les différences culturelles et est techniquement indésirable.

Ils disent que le navigateur n’est pas l’endroit idéal pour décider si un code ASCII doit avoir un “statut privilégié” sur un autre système d’écriture (ASCII, en passant, signifie American Standard Code for Information Interchange).

Certains membres de l’équipe Mozilla ont suggéré, de façon réaliste, que la responsabilité de mettre en garde contre les domaines “ambigus”, comme ceux utilisés par Xudong dans l’article posté sur le blog, incombe aux bureaux d’enregistrement de chaque domaine de premier niveau.

Selon Mozilla, si les bureaux d’enregistrement sont, en général, supposés empêcher les enregistrements de domaine frauduleux ou délibérément trompeurs, ils devraient également stopper ceux qui ont un caractère «ambigus», de la même manière que les pays s’attendent à ce que leurs services d’immatriculation de véhicules évitent d’émettre des plaques personnalisées potentiellement offensantes ou générées à partir d’une combinaisons de lettres et de chiffres.

Tous les “mozillans” ne sont pas d’accord, soulignant que le risque d’apparaître indifférent aux différences culturelles, et ce à l’égard d’un petit nombre de noms de domaine non-ASCII est un petit prix à payer pour rendre la vie de certains cybercriminels et autres scammeurs difficile dans la vie réelle.

Après tout, décider d’autoriser ou d’interdire un nom de domaine “ambigus” en premier lieu, est en soi un exercice culturellement subjectif.

Décidément, quelle toile complexe nous sommes en train de tisser …

Quoi faire ?

Xudong a émis deux bonnes suggestions pour se protéger contre ce type de fraude sur internet, auxquelles nous avons ajouté une troisième :

  • Utilisez un gestionnaire de mot de passe, qui réduira le risque de saisir des mots de passe au niveau d’un site apparaissant de façon incorrecte. Le gestionnaire de mot de passe ne validera pas votre mot de passe Apple-en-ASCII avec le nom de domaine Apple-en-Cyrillic, et ce quel que soit le système de codage des caractères utilisé.
  • Forcer Firefox à afficher systématiquement les noms de domaines punycode. Si vous ne lisez pas (ou ne pouvez pas lire) des alphabets ou des systèmes d’écriture non-romains, vous ne perdrez rien en allant à la page about:config et en mettant network.IDN_show_punycode sur true.
  • Cliquez sur le cadenas pour afficher le certificat HTTPS. Ainsi vous verrez le nom de domaine pour lequel le certificat a été délivré à l’aide du format ASCII et uniquement pour le DNS, donc si le nom démarre avec xn--, vous êtes sur le point d’afficher un nom de domaine punycode, quel que soit son aspect au niveau de la barre d’adresse (NB : faites défiler jusqu’à l’option [View Certificate]).

punycode


Billet inspiré de Phishing with ‘punycode’ – when foreign letters spell English words, par Paul Ducklin, Sophos NakedSecurity.

Lire des articles similaires

Qu’en pensez-vous ? Laissez un commentaire.

Your email address will not be published. Required fields are marked *