Fraude · 8 min de lecture
Attaque par homoglyphe : quand un nom de domaine imite le vôtre à la lettre près
Un а cyrillique ressemble trait pour trait à un a latin. Voici comment l'attaque par homoglyphe exploite les domaines IDN, comment le punycode la démasque et comment protéger votre entreprise.
Une attaque par homoglyphe consiste à remplacer un ou plusieurs caractères d'un nom de domaine par des caractères d'apparence identique mais différents : une lettre cyrillique à la place d'une lettre latine, un zéro à la place d'un o. Le résultat peut être impossible à distinguer du vrai domaine, dans une adresse e-mail comme dans un lien.
C'est la forme la plus trompeuse de domaine sosie, car une lecture attentive ne suffit pas à la repérer. Cet article explique quels caractères sont confondus, comment les noms de domaine internationalisés et le punycode rendent l'attaque possible, ce que les navigateurs et les logiciels de messagerie peuvent afficher, et comment vérifier un domaine suspect et protéger votre entreprise.
Qu'est-ce qu'une attaque par homoglyphe ?
Les homoglyphes sont des caractères dont la forme est identique ou presque. Pour un ordinateur, ils n'ont rien en commun : chacun possède son propre point de code dans Unicode, la norme qui numérote les caractères de toutes les écritures. Dans un nom de domaine, un seul point de code différent donne un autre domaine, que n'importe qui peut enregistrer si l'extension accepte ce caractère.
Les paires les plus connues viennent de l'alphabet cyrillique, qui partage plusieurs formes de lettres avec l'alphabet latin :
- a latin (U+0061) et а cyrillique (U+0430)
- o latin (U+006F) et о cyrillique (U+043E)
- e latin (U+0065) et е cyrillique (U+0435)
- p latin (U+0070) et р cyrillique (U+0440)
- c latin (U+0063) et с cyrillique (U+0441)
D'autres confusions se passent de tout alphabet étranger. Le chiffre 0 ressemble à la lettre o, le chiffre 1 à un l minuscule, et dans beaucoup de polices le couple rn se lit comme un m. Ces caractères restent dans l'ASCII de base : les vérifications propres aux noms internationalisés, décrites plus bas, ne les détectent pas.
Domaines IDN et punycode
À l'origine, les noms de domaine se limitaient aux lettres latines sans accent, aux chiffres et au tiret. Les noms de domaine internationalisés (IDN) lèvent cette limite : un nom peut porter des accents ou s'écrire dans un autre alphabet. C'est légitime et utile, par exemple pour une entreprise française dont le nom comporte un accent.
Le DNS, lui, fonctionne toujours en ASCII. Chaque partie du nom qui contient d'autres caractères est donc convertie avec un encodage appelé punycode, défini par la RFC 3492, puis préfixée par xn--. C'est cette forme ASCII qui circule réellement dans le DNS. Voici acme-properties.com dont la première lettre a été remplacée par un а cyrillique :
Affiché : аcme-properties.com
Punycode : xn--cme-properties-utl.comÀ l'écran, le nom affiché est identique au vrai. Seule la forme punycode montre qu'il s'agit d'un autre domaine. C'est ce que l'on appelle une attaque homographe IDN.
Les registres limitent le problème sans le supprimer. Chacun décide des caractères acceptés sous son extension, et beaucoup refusent un nom qui mélange deux alphabets, latin et cyrillique par exemple, dans une même partie du nom. Les fraudeurs contournent ces règles avec des noms écrits entièrement en caractères cyrilliques qui ont tous un jumeau latin, avec des lettres accentuées là où l'extension les accepte, ou avec les confusions ASCII vues plus haut, qu'aucune règle sur les alphabets ne peut bloquer.
Pourquoi le domaine semble identique dans un e-mail ou un lien
Une police de caractères dessine le а cyrillique et le a latin avec la même forme, et dans beaucoup de polices les deux sont indiscernables. Rien à l'écran ne trahit la substitution, que le nom apparaisse dans l'adresse de l'expéditeur, dans un lien ou dans une signature.
Plusieurs habitudes aggravent le problème :
- Les logiciels de messagerie mettent souvent en avant le nom affiché de l'expéditeur, et montrent l'adresse réelle en petits caractères ou après un clic.
- Sur un téléphone, les adresses sont souvent tronquées, et il faut un geste de plus pour voir où mène un lien.
- Le texte visible d'un lien peut être n'importe quoi. Un lien affichant dupont-immo.fr peut mener à une tout autre adresse, homoglyphe ou non.
- Un lecteur reconnaît un mot familier dans son ensemble, sans vérifier chaque lettre.
L'usurpation par caractères cyrilliques ne demande aucune intrusion. Le fraudeur enregistre le nom, lui associe un serveur de messagerie comme pour n'importe quel domaine, puis écrit à vos clients.
Ce qu'affichent les navigateurs et les logiciels de messagerie
Les éditeurs de navigateurs connaissent le problème. Les navigateurs récents appliquent des règles d'affichage aux noms internationalisés : lorsqu'un nom mélange les alphabets de façon suspecte, ou semble conçu pour imiter un nom latin, ils peuvent afficher la forme xn-- dans la barre d'adresse au lieu des caractères Unicode. Ces règles varient d'un navigateur et d'une version à l'autre, et elles cherchent à éviter les fausses alertes sur les noms légitimes : certains sosies s'affichent donc normalement.
Les logiciels de messagerie sont moins homogènes. Certains affichent la forme Unicode du domaine de l'expéditeur, d'autres la forme punycode dans certains cas, et rares sont les lecteurs qui regardent l'adresse brute.
Considérez ces mécanismes comme un bonus, pas comme une protection. Ils ne font rien contre les confusions ASCII comme 0 pour o, et vous ne savez pas quels logiciels utilisent vos clients.
Comment vérifier un domaine suspect
Lorsqu'un e-mail ou un lien semble correct mais que le contexte sort de l'ordinaire (nouvelles coordonnées bancaires, paiement urgent, document à signer), vérifiez le domaine avant d'agir :
- Ne cliquez pas sur le lien. Copiez plutôt l'adresse ou le domaine de l'expéditeur.
- Collez-le dans un éditeur de texte brut. Passer à une police à chasse fixe peut faire apparaître une légère différence sur un caractère substitué.
- Recherchez chaque lettre. Avec la fonction Rechercher de l'éditeur, cherchez les lettres latines du nom attendu : une lettre cyrillique ne sera pas trouvée, même si elle paraît identique.
- Regardez la forme punycode. Si la conversion du nom donne une partie commençant par xn--, il contient des caractères non ASCII et ce n'est pas le domaine que vous connaissez.
- Comparez avec une source fiable, comme votre carnet d'adresses, une facture précédente ou le contrat. Saisissez vous-même le domaine connu plutôt que de le copier depuis le message suspect.
Pour votre propre domaine, la question est inverse : quelles variantes à homoglyphes de votre nom existent déjà ? L'analyse gratuite de Spamr les génère, substitutions cyrilliques comprises, avec les fautes de frappe et les autres variantes, et vérifie uniquement les DNS publics et les données d'enregistrement, sans jamais visiter les sites des sosies. Tout le monde voit les compteurs et les trois sosies les plus dangereux. La liste complète est réservée à qui prouve gérer le domaine.
Se protéger d'une attaque par homoglyphe
Aucune mesure ne couvre tous les cas à elle seule. Quatre niveaux se complètent.
Enregistrer les variantes les plus évidentes
Enregistrer à titre défensif quelques noms très proches du vôtre (votre nom sous les autres extensions courantes, la substitution la plus évidente comme un zéro à la place d'un o) les met hors de portée des fraudeurs. Vous ne pouvez pas enregistrer toutes les variantes, et certaines variantes internationalisées ne sont pas forcément disponibles sous votre extension : voyez-y un complément.
Surveiller l'apparition de sosies
Un domaine à homoglyphe peut être enregistré n'importe quel jour. La surveillance compare dans le temps les variantes enregistrées de votre nom et vous alerte dès que l'une d'elles apparaît ou s'équipe d'un serveur de messagerie. Les offres de surveillance de Spamr relancent l'analyse chaque jour, envoient des alertes par e-mail et proposent un retrait assisté pour les sosies les plus dangereux.
Publier DMARC sur votre propre domaine
DMARC n'arrête pas les domaines à homoglyphes : ce sont d'autres domaines, avec leurs propres enregistrements. En revanche, il empêche les fraudeurs d'envoyer des e-mails sous votre domaine exact, ce qui les pousse vers les sosies, que l'on peut détecter. Le protocole est décrit dans la RFC 9989, et notre guide DMARC p=reject pas à pas montre comment atteindre sans risque une politique de rejet.
Former vos équipes au rappel systématique
La barrière qui fonctionne quel que soit le domaine est une procédure : toute demande de changement de coordonnées bancaires, venant d'un fournisseur comme d'un client, se confirme par téléphone, à un numéro que vous connaissiez déjà, jamais à celui donné dans l'e-mail. La même règle s'applique aux demandes de paiement inhabituelles d'un dirigeant. Notre article sur la fraude au faux RIB détaille cette procédure, et Cybermalveillance.gouv.fr propose des supports de sensibilisation gratuits pour vos collaborateurs.
À retenir
- Une attaque par homoglyphe remplace des caractères par d'autres d'apparence identique, comme un а cyrillique pour un a latin, ou 0 pour o.
- Les noms internationalisés circulent dans le DNS en punycode, avec le préfixe xn--. Cette forme révèle les caractères non ASCII.
- Navigateurs et logiciels de messagerie affichent parfois la forme xn--, mais vous ne pouvez pas compter dessus.
- Pour vérifier un domaine, collez-le dans un éditeur de texte et recherchez chaque lettre. Ne cliquez jamais.
- Combinez quelques enregistrements défensifs, la surveillance, DMARC sur votre domaine et une règle de rappel pour tout changement de RIB.
Questions fréquentes
Quelle différence entre une attaque par homoglyphe et le typosquatting ?
Le typosquatting mise sur les fautes de frappe ou de lecture : une lettre en moins, deux lettres inversées, une autre extension. L'attaque par homoglyphe utilise des caractères d'apparence identique, si bien que même un lecteur attentif voit le nom attendu. Les deux produisent des domaines sosies, traités dans notre guide pour détecter un domaine sosie.
Que signifie xn-- au début d'un nom de domaine ?
Ce préfixe signale une partie du nom encodée en punycode, la forme ASCII d'un nom de domaine internationalisé. Le nom affiché contient donc d'autres caractères que les lettres latines sans accent, les chiffres et le tiret. C'est normal pour un nom écrit dans un autre alphabet, et suspect lorsque le nom affiché ressemble à un nom latin familier.
Peut-on enregistrer un nom de domaine avec des caractères cyrilliques ?
Oui, sous les extensions dont le registre accepte les caractères cyrilliques. Chaque registre fixe ses propres règles, et beaucoup refusent les noms qui mélangent latin et cyrillique dans une même partie du nom. Les noms écrits entièrement en lettres cyrilliques ressemblant à des lettres latines restent possibles sous certaines extensions.
DMARC protège-t-il contre les domaines à homoglyphes ?
Non. DMARC protège votre domaine exact contre l'usurpation directe, alors qu'un domaine à homoglyphe est un autre domaine, avec ses propres enregistrements DNS. DMARC reste utile, comme l'explique notre guide DMARC p=reject. Contre les sosies, associez la surveillance à une règle de rappel pour tout changement de coordonnées bancaires.