Homograph Phishing Attacks

avril 20, 2017

Vous parlez le Cyrillique ? ça tombe bien votre navigateur internet non plus. Un chercheur INFOSEC Chinois, Xudong Zheng (cherchez pas c’est imprononçable) a rapporté une vulnérabilité à peine croyable.

Avant de rentrer dans le détail technique, je vous invite à consulter ce site : https://www.apple.com

Vous ne remarquez rien d’étrange ? et bien vous êtes pourtant sur un site totalement frauduleux.

Il est impossible d’identifier le site comme frauduleux sans inspecter soigneusement l’ URL ou le certificat SSL du site.

Votre navigateur Web affiche « apple.com » dans la barre d’adresse sécurisée par SSL, mais le contenu de la page provient d’un autre serveur , bravo votre navigateur est vulnérable à l’attaque homographes :)

L’Attaque homographes est connue depuis 2001 (ah qd même !), mais les éditeurs de navigateurs ont semble t-il due mal à résoudre le problème. L’attaque homographe peut être défini comme une sorte d’attaque d’usurpation d’ identité d’une adresse de site Web/nom de domaine légitime. Concrètement son fonctionnement réside tout simplement dans le remplacement d’un ou plusieurs caractère Unicode dans un nom de domaine;

De nombreux caractères Unicode représentant l’alphabet comme le grec, cyrillique et arménien dans les noms de domaine internationalisés ont le même aspect que les lettres latines à « l’oeil nu », mais sont traités différemment par les ordinateurs à l’adresse Web complètement différente.

Prenons par exemple, en cyrillique « а » (U + 0430) et le latin « a » (U + 0041) les deux sont traités par les navigateurs différents , mais sont affichés « a » dans l’adresse du navigateur.

Par défaut, de nombreux navigateurs Web utilisent « Punycode encoding » pour représenter les caractères unicode dans l’URL et ainsi se défendre contre les attaques type « phishing homographes ». Punycode (littéralement « code chétif ») est une syntaxe de codage définie dans la RFC 3492 et conçue pour être utilisée en adéquation avec les noms de domaines internationalisés dans les applications les supportant.

Par exemple, le domaine chinois « 短.co » est représenté dans Punycode comme « xn--s7y.co ».

Comme nous l’explique wikipedia, Punycode transforme une chaîne Unicode en une chaîne ASCII de manière unique et réversible. Les caractères ASCII dans la chaîne Unicode sont représentés littéralement, et les caractères non-ASCII sont représentés par des caractères ASCII, ces derniers étant tous autorisés dans les labels de nom d’hôte (lettres, chiffres et traits d’union).

Par exemple, bücher devient bcher-kva avec Punycode. De suite, le nom de domaine bücher.ch est représenté par xn--bcher-kva.ch en IDNA (le standard permettant d’utiliser des caractères internationalisés dans les applications).

Dans xn--bcher-kva, le punycode est la partie bcher-kva, à droite du préfixe indiquant un nom international xn--. La chaine complète est l’encodage compatible ASCII (ASCII Compatible Encoding).

Cette lacune a donc permis au chercheur d’enregistrer un nom de domaine xn--80ak6aa92e.com  et la protection de dérivation, apparaît comme « apple.com » sur tous les navigateurs Web vulnérables, y compris Chrome, Firefox et Opera. Étonnamment Internet Explorer, Microsoft Edge, et Safari ne sont pas vulnérables.

Alors que Mozilla cherche encore une solution (la tout nouvelel version v53 est vunlérable), Google a déjà corrigé la vulnérabilité dans la verison 59 expérimentale de Chrome et cherche actuellement une solution permanente avec la sortie de Chrome 58 stable, qui doit être lancé plus tard ce mois – ci.

Bref, vous avez totalement raison d’avoir peur :) Mass phishing en approche.