La faille « Punycode » : comment se protéger ?

Le phishing* connait une nouvelle étape dans la duperie des internautes. Les pirates essaient régulièrement d’imiter les adresses et les designs de sites. Certains sont beaucoup plus malins puisqu’ils utilisent la prise en compte de caractères spéciaux dans la barre d’adresse des navigateurs.

Je m’explique… Il est très difficile de distinguer les caractères ASCII disponibles dans Unicode. Quoi de plus ressemblant que le « a » (U+0430) cyrillique utilisé dans la langue russe ou ukrainienne et la lettre « a » en alphabet latin (U+0061).

Chrome, Firefox et Opera s’en arrangent très bien grâce à Punycode qui transforme une chaîne de caractères Unicode en chaîne ASCII.

En terme de sécurité, le danger est qu’il est impossible de différencier deux sites qui ont une syntaxe ressemblante.

Par exemple : copiez et collez ce аррӏе.com dans Chrome et accédez à l’URL.  Vous voyez ici qu’il s’agit d’une fausse adresse qui semble pourtant authentique.

La réalité, est qu’il s’agit d’une conversion du domaine www.xn--80ak6aa92e.com. Dans cet exemple, le « a » dans le nom de domaine est cyrillique (U+0430) et non le « a » ASCII (U+0431)

Voici typiquement une faille homographique qui permet de faire du phishing malgré la présence d’un certificat SSL valide. Remarquez que la fausse adresse apple donnée en exemple plus haut est en HTTPS (« sécurisé »).

Sur Firefox il existe une parade. Dans la barre d’adresse tapez about:config puis recherchez punycode la clé textenetwork.IDN_show_punycodeet changez cette dernière de false en true avec un double clic. Après le redémarrage du navigateur les noms de domaines s’afficheront correctement.

 

CyberGuards – L’assurance Cyber Responsabilité Civile et Perte d’Exploitation

 

Pour allez plus loin :

*L’hameçonnagephishing ou filoutage est une technique utilisée par des fraudeurs pour obtenir des renseignements personnels dans le but de perpétrer une usurpation d’identité. La technique consiste à faire croire à la victime qu’elle s’adresse à un tiers de confiance — banque, administration, etc. — afin de lui soutirer des renseignements personnels : mot de passe, numéro de carte de crédit, numéro ou photocopie de la carte nationale d’identité, date de naissance, etc…

*Punycode (littéralement « code chétif ») est une syntaxe de codage définie dans la RFC 34921 et conçue pour être utilisée en adéquation avec les noms de domaines internationalisés dans les applications les supportant.

Mots-clefs : Punycode, hameçonnage, phishing

Thierry Vandecasteele

Courtier grossiste souscripteur en assurance, Coverholder at LLOYDS