Retour à la liste

Le Punycode et son utilisation

Presse

Dans la grande majorité des cas, les mails d’hameçonnage (ou phishing en anglais) comportent un lien qui mène à une page web imitant celle d'un site légitime. Cette page demande à l'utilisateur de saisir des informations personnelles (identifiants, coordonnées bancaires, ...), qui seront ensuite utilisées à des fins frauduleuses.

Face à l'usurpation des noms de domaine, les entreprises investissent dans des solutions de sécurité. Cependant, les pirates informatiques utilisent des outils de plus en plus sophistiqués et trouvent toujours de nouvelles façons de contourner les solutions de sécurité.

Qu’est-ce que le Punycode ?

Les noms de domaine, ce que les gens vont taper dans leur navigateur pour y accéder, sont généralement écrits en lettres et en chiffres. Cependant, il existe aussi des noms de domaine qui utilisent des caractères spéciaux, comme des lettres avec des accents ou des symboles. Ces noms de domaine sont appelés des noms de domaine Unicode.

Le problème est que le système de noms de domaine d'Internet, appelé DNS, ne peut pas gérer les caractères spéciaux. C'est pourquoi il existe un système appelé Punycode qui permet de convertir les noms de domaine Unicode en format ASCII (norme de codage bien adapté à l’anglais).

Fonctionnement :

1. Le nom de domaine Unicode est divisé en composants. Chaque composant est une séquence de caractères Unicode.

2. Chaque composant est ensuite converti en une série de caractères ASCII. Cela se fait en remplaçant chaque caractère Unicode par un caractère ASCII correspondant.

3. Les caractères ASCII sont ensuite encodés à l'aide d'un alphabet de 64 caractères qui comprend des chiffres, des lettres et des tirets.

4. Les caractères ASCII encodés sont ensuite combinés pour former le nom de domaine Punycode.

Exemple :

Prenons, par exemple, le nom de domaine Unicode "étoile.com" ; ce nom de domaine contient un caractère spécial, le « é » de « étoile », il nécessite d’être encodés pour être correctement interprété et deviendra : « xn--toile--9ra.com »

·   xn -- : préfixe international défini dans l’IDNA (Internationalized Domain Names in Applications)

·   toile : encodage littérale de toile de « étoile » car il existe dans la table ASCII

·    --9ra : encodage Punycode du caractère « é »

Il est important de noter que cette nomenclature est utilisée uniquement pour les communications entre les systèmes informatiques.

L’utilisation du Punycode pour l’usurpation de noms de domaine

Et c’est là qu’intervient toute l’ingéniosité des hackers, car l’utilisateur final lui continuera à voir « étoile.com» dans la barre de son navigateur Internet.

En effet, nous savons désormais qu’il est possible, grâce au Punycode, d’utiliser des caractères spéciaux provenant de langues différentes et de les enregistrer dans un nom de domaine.

Ce principe permet à un utilisateur malveillant de choisir un logiciel ou un site populaire à usurper pour attirer le plus grand nombre de victimes possibles.

Exemple :

Prenons pour exemple le plus grand fournisseur d’accès internet de France, Orange. Le « O » de Orange.fr a un encodage littéral (identique) en Punycode donc jusqu’ici, rien ne change.

Maintenant, choisissons le « Ὁ » qui a une apparence très similaire à la lettre « O » de notre alphabet.

Mis côte à côte sur un petit écran, il est très difficile de faire la différence entre les deux :

Il ne faut pas oublier que les noms de domaines apparaissent sous le titre des résultats du navigateur de recherche ou dans l’URL, où la taille de la police fait environ 10 pixels.

En convertissant 'Orange.fr en Punycode, nous obtenons : xn--range-xt2b.fr » ; alors que le site légitime d'Orange.fr devrait lui être en Punycode "Orange.fr" tout simplement. Ce qui est fondamentalement différent.

Pourtant, l’utilisateur verra dans sa barre de recherche :

, rendant le phishing difficile à déceler dans ce scénario.

Les campagnes de publicités malveillantes sponsorisées par Google

Le site thehackersnews.com révélait dans un article du 20 octobre 2023 que des hackers utilisaient la méthode présentée dans cet article afin d’hameçonner plusieurs milliers (voir millions) d’internautes avec des logiciels populaires tels que KeePass, le gestionnaire de mot de passe recommandé par le gouvernement français.

Le principe est d’enregistrer le nom de domaine « ĶeePass.com» « xn--eepass-vbb.com » pour ensuite payer le service de sponsoring de Google afin de faire référencer le site frauduleux en première page grâce à un site web sophistiqué.

Voici le résultat en situation réel :

La question est « comment ont-ils pu échapper aux mécanismes de sécurité du robot d’indexation de google ?

La réponse est simple, le lien derrière le système publicitaire redirigeait temporairement les visiteurs sur un environnement isolé invisible à l’utilisateur pour identifier le comportement de l’entité.

Si le visiteur était un robot ou une autre entité qui n’était pas considérée comme « une victime authentique », la redirection pointait sur le site légitime de keepass.com.

Si le visiteur était un humain susceptible de se faire avoir par l’attaque, le script le redirigeait sur le faux site qui l’incitait à télécharger un logiciel malveillant.

Ce type d’attaque montre que la menace peut se trouver devant nos yeux, même en première page du moteur de recherche le plus utilisé au monde.

Être toujours vigilant

Pour se prémunir de ce type d’attaque, la meilleure méthode reste de surveiller l’expéditeur des emails, vérifier les noms de domaine en prenant le temps de bien lire l’URL et de rester vigilant à la façon d’accéder au site.

Lorsqu’il s’agit de télécharger un logiciel, il ne faut pas hésiter à faire une comparaison des hash fournis par le vendeur en comparant différentes sources avec celui du fichier avec des outils tel que Hashcalc par exemple.

Ce sujet plus technique, sera traité dans un article à venir.

Alexandre Sillani

Consultant en cybersécurité Avangarde Consulting

Une question ?

#avangardeconsulting #PASSI #punycode #expert #cybsersécurité