Qu'est-ce que Punycode ?
Punycode
nom
Syntaxe Unicode qui convertit en caractères ASCII les mots qui s'écrivent avec des caractères non-ASCII. Par exemple, le mot grec « ευχαριστώ » – qui signifie merci – devient « xn--mxahn5algcq2e », l'objectif étant de pouvoir les utiliser en tant que noms de domaine.
Mais qu'est-ce que cela signifie concrètement ?
Écrire avec des chiffres
Comme pour tout ce qui se rapporte à l'informatique, il est question de chiffres. À chaque lettre, caractère ou émoji que nous saisissons correspond un nombre binaire, et c'est lui que nos ordinateurs interprètent.La norme d'encodage des caractères ASCII utilise 7 bits pour coder jusqu'à 127 caractères. C'est suffisant pour coder l'alphabet en majuscules et en minuscules, les chiffres de 0 à 9 et certains caractères spéciaux. Mais la norme ASCII ne prend pas en charge des langues telles que le grec, l'hébreu et l'arabe, par exemple. C'est là que le standard Unicode entre en jeu : grâce à ses 32 bits, il est capable de coder jusqu'à 2 147 483 647 caractères ! Unicode peut ainsi représenter les caractères de n'importe quelle langue, y compris la collection grandissante d'émojis.
Et qu'en est-il de Punycode ?
Punycode est une méthode qui convertit les mots en caractères non-ASCII en codage ASCII Unicode. Dans quels cas est-ce utile ? Le système DNS (système de noms de domaines) global, qui donne à nom à toute ressource connectée à Internet, est limité aux caractères ASCII. Avec Punycode, vous pouvez inclure des caractères non-ASCII dans un nom de domaine. Pour cela, vous devez créer un codage « bootstring » d'Unicode, dans le cadre d'un processus de codage complexe.
Comment fonctionne une attaque Punycode ?
Les caractères Unicode peuvent sembler identiques à l'œil nu, mais ils cachent en réalité une adresse web différente. Certaines lettres de l'alphabet romain, utilisé par la majorité des langues modernes, ont la même forme que des lettres des alphabets grec, cyrillique ou d'autres alphabets encore. Un cybercriminel peut ainsi aisément créer un nom de domaine en remplaçant certains caractères ASCII par des caractères Unicode. Vous pouvez ainsi remplacer un T normal par un Tau grec : τ. Pour l'utilisateur, c'est un symbole T presque identique à celui qu'il connaît ; mais l'ordinateur va lire le punycode de ce caractère, autrement dit xn--5xa. Dans certains navigateurs, ces petits caractères fourbes peuvent être impossibles à distinguer dans la barre d'adresse.
Cette technique est appelée attaque homographe. Les URL ont l'air légitimes, et le contenu de la page paraît identique au premier abord. Mais il s'agit en réalité d'une contrefaçon, élaborée pour voler les données sensibles de la victime ou infecter l'appareil de l'utilisateur. Ces attaques reposent sur des techniques courantes comme le phishing, les téléchargements forcés et les escroqueries.
Tous les navigateurs sont-ils concernés par les attaques par Punycode ?
Par défaut, de nombreux navigateurs web utilisent le préfixe xn--, un préfixe de codage compatible ASCII connu, pour signaler qu'un domaine utilise Punycode pour représenter des caractères Unicode. Cette mesure permet de se défendre contre des attaques de phishing homographes. Le préfixe Punycode n'est malheureusement pas affichés par tous les navigateurs : la technique passe alors entièrement inaperçue.
Les pirates profitent de cette faiblesse pour donner à leurs propres domaines l'apparence de services légitimes. Ils parviennent de cette manière à dérober des identifiants de connexion, des numéros de carte de crédit et autres informations sensibles.
Xudong Zheng, chercheur chinois en sécurité, a ainsi découvert une faille permettant de contourner cette protection. Il a enregistré le nom de domaine xn--80ak6aa92e.com, qui se présentait comme « apple.com » sur tous les navigateurs web vulnérables – Chrome, Firefox et Opera à l'époque. Internet Explorer, Microsoft Edge, Apple Safari, Brave et Vivaldi n'étaient pas touchés.
D'après nos recherches récentes, les deux navigateurs web majeurs que sont Chrome et Safari se comportent comme suit :
- Chrome : affiche généralement le punycode non traduit avec le préfixe. En cas de doute sur la légitimité du site, il ne fait pas la conversion Unicode mais autorise tout de même l'accès au site. En cas de certitude sur la dangerosité du site, il émet un avertissement « site malveillant ».
- Safari : traduit la plupart du temps le punycode en caractères Unicode. Si le site est identifié comme malveillant, le navigateur affiche un avertissement mais convertit tout de même le punycode en caractères Unicode.
Les attaques Punycode fonctionnent-elles sur mobile ?
Les attaques Punycode ciblent aussi bien les ordinateurs que les mobiles. En effet, les développeurs de navigateurs tendent à traiter le punycode de la même façon sur toutes les plateformes. Autrement dit, si un navigateur présente l'Unicode à l'utilisateur sur un type d'appareil, il le fait aussi sur tous les autres. La plupart des recherches actuelles sur le punycode concernent le traitement de ces domaines par les navigateurs. Nos propres recherches, elles, dépassent ce seul cadre pour démontrer que leur prise en charge par les applications est aussi un enjeu majeur. Nos tests ont notamment révélé que les domaines Punycode trompeurs ne sont pas identifiés comme suspects par les outils de communication et de collaboration répandus dans les entreprises. Nous avons testé les apps suivantes sur des appareils iOS et Android : Gmail, Apple Mail, iMessage, Message+, Whatsapp, Facebook Messenger, Skype et Instagram. Seuls Facebook Messenger, Instagram et Skype mettaient en évidence l'URL Punycode. Les deux premiers affichaient un aperçu de la page web avec le préfixe xn. Dans Skype, les domaines contenant de l'unicode n'étaient pas convertis en hyperlien : impossible, donc, d'accéder à la page d'un simple clic sur le message. Si ces méthodes de défense ne sont pas optimales, elles offrent néanmoins la possibilité d'inspecter les liens suspects.
En affichant les domaines Unicode trompeur, la majorité des apps font passer leur expérience utilisateur enrichie avant la sécurité, empêchant de ce fait l'identification des sites malveillants. Les développeurs de ces applications ont ici une part de responsabilité : ils devraient mettre en place plusieurs couches de sécurité pour protéger efficacement les utilisateurs de ces attaques.
Pourquoi les attaques Punycode sont-elles plus graves sur mobile ?
Nos recherches sur les attaques Punycode sur mobile ont identifié de nouveaux domaines malveillants, répertoriés plus bas. Ces sites aux noms de domaine trompeurs n'hébergent pas seulement des attaques de phishing, ils sont aussi optimisés pour les mobiles. C'est bien la preuve que les pirates savent que leurs URL sont plus difficile à repérer sur ces plateformes. En ciblant les utilisateurs mobiles, ces campagnes de phishing deviennent plus performantes.
Déjà plus difficile à répérer sur mobile pour diverses raisons, le phishing devient quasiment indétectable avec Punycode.
- La taille réduite de l'écran laisse moins d'espace pour évaluer la légitimité d'un site web.
- Le design de l'OS cache généralement la barre d'adresse – déjà minuscule – quand l'utilisateur fait défiler le contenu de la page.
- Les utilisateurs distraits ont tendance à naviguer rapidement entre les différentes pages et notifications.
- Sans survol de la souris ni option d'aperçu, l'utilisateur ne peut pas inspecter la destination d'un lien avant de cliquer.
- Saurez-vous identifier le caractère Unicode dans le domaine ci-dessous ?
Le phishing tout sourire – quel rôle jouent les domaines en émojis
Comme les caractères spéciaux et les alphabets non latins, la bibliothèque grandissante d'émojis peut, elle aussi, être encodée en punycode. Un domaine émoji est tout simplement un domaine contenant un émoji, par exemple www. ��.com. Le punycode est indispensable.
Voici un exemple récent, identifié par le moteur de machine learning intelligent de Jamf, MI:RIAM :
20 exemples réels de Punycode touchant de grandes marques
Les recherches sur le phishing zero-day de Wandera identifient les attaques Punycode depuis 2017. Nous avons constaté une augmentation de 250 % du nombre de domaines Punycode ces 12 derniers mois :
Dans certains cas, les sites affichent des concours, offrant des prix aux visiteurs qui acceptent de partager un lien sur WhatsApp. Et si l'utilisateur tente de revenir en arrière, il est parfois redirigé vers d'autres pages frauduleuses. Dans d'autres cas, les pages redirigent immédiatement vers d'autres sites proposant de télécharger des applications et des mises à jour logicielles.
Le contenu de la plupart de ces sites a été supprimé peu de temps après leur découverte et leur signalement. Cela prouve que les pirates réagissent rapidement, et c'est cohérent avec d'autres formes d'attaques de phishing que nous avons identifiées.
Selon nos recherches, un nouveau site de phishing voit le jour toutes les 20 secondes. Ils ne sont généralement actifs que quelques heures : les pirates les abandonnent rapidement et en créent d'autres. C'est un moyen astucieux de couvrir leur piste et de ne pas se faire repérer.
7 façons d'éviter une attaque Punycode
- Soyez prudent si un site vous pousse à faire quelque chose dans l'urgence. C'est une stratégie classique : dans la précipitation, les victimes potentielles soient moins susceptibles d'être vigilantes. Ils proposent souvent une offre « limitée dans le temps » et vous empêchent de quitter la page en multipliant les boîtes de dialogue « voulez-vous vraiment partir ? ». Ces tactiques sont toutes destinées à vous garder sur leur site et vous pousser à donner vos informations personnelles.
- Si l'on vous présente une offre spéciale, vérifiez sur le site de l'entreprise qu'elle est également disponible. Dans le cas contraire, il s'agit vraisemblablement d'une escroquerie, et le site contrefait cherche à tromper les visiteurs pour qu'ils fournissent leurs informations.
- Si certaines des lettres de l'adresse ont un aspect étrange ou si le design du site web vous paraît différent, réécrivez l'URL ou consultez le site original de l'entreprise dans un nouvel onglet pour comparer les sites. La présence de caractères étranges dans la barre d'adresse trahit l'utilisation du punycode : on cherche à vous faire croire vous visitez le site d'une grande marque, quand vous êtes en réalité dirigé vers une page malveillante.
- Utilisez un gestionnaire de mots de passe. Vous serez moins enclin à coller des mots de passe sur des sites frauduleux.
- Forcez votre navigateur à afficher les noms Punycode. Cette option est disponible dans Firefox.
- Cliquez sur le cadenas pour afficher et examiner le certificat HTTPS.
- Utilisez une solution de sécurité mobile. Jamf, par exemple, utilise le machine learning et l'intelligence artificielle de MI:RIAM pour surveiller tout le trafic de données : les liens de phishing tels que ceux-ci sont ainsi détectés et bloqués.
Ne laissez pas vos utilisateurs tomber dans le piège de ces attaques trompeuses. Déployez les produits de sécurité de Jamf sur votre parc mobile pour protéger les appareils, les données et les individus.
S’abonner au blog de Jamf
Recevez les tendances du marché, les mises à jour d'Apple et les dernières nouvelles de Jamf directement dans votre boîte mails.
Pour en savoir plus sur la manière dont nous collectons, utilisons, partageons, transférons et protégeant vos informations personnelles, veuillez consulter notre Politique de confidentialité.