Fermer le menu
 

Une faille dans Chrome, Firefox et Opera ouvre la porte au phishing

Mickaël Bazoge | | 16:21 |  20

Il est parfois difficile de distinguer les caractères ASCII disponibles dans Unicode. En cyrillique par exemple, la graphie de lettre « а » (U+0430) est très proche de la graphie de la lettre « a » en alphabet latin (U+0061). Les navigateurs web s’en arrangent très bien grâce à Punycode qui transforme une chaîne de caractères Unicode en chaîne ASCII.

En termes de sécurité informatique, cela peut poser un problème car il est ainsi possible d’enregistrer une URL qui sera graphiquement très proche d’une autre, mais qui emportera l’internaute vers un autre site. En somme, une tentative de phishing de la plus belle eau.

Chrome, en arrière-plan, se fait avoir par cette attaque, mais pas Safari TP au premier plan — Cliquer pour agrandir

Dans Chrome, Firefox et Opera, une adresse comme xn--80ak6aa92e.com ne comprend que des caractères cyrilliques qui s’afficheront sous la forme apple.com. C’est aussi le cas de l’URL xn--e1awd7f.com qui va s’afficher sous la forme epic.com. Les polices utilisées par les deux navigateurs en question ne permettent pas de distinguer le vrai du faux, explique le chercheur en sécurité Xudong Zheng.

Il devient donc impossible d’identifier le site malveillant, sans consulter au préalable son certificat SSL. Et encore : selon Wordfence, un malandrin peut déposer un nom de domaine trompeur et acquérir un certificat SSL tout à fait valide auprès de LetsEncrypt, par exemple. Les utilisateurs de ces navigateurs sont donc susceptibles de tomber sur des sites d’hameçonnage dont les URL ressemblent comme deux gouttes d’eau à celles des sites légitimes. Microsoft Edge, Explorer et Safari sont immunisés, ces navigateurs présentant les URL malveillantes sous leur forme originale.

Ce type d’attaque, dite homographique, est connu depuis 2001, comme le raconte Silicon.fr. Le mécanisme de protection mis en place pour contrer ces attaques a une faille : si tous les caractères de l’URL sont remplacés par des équivalents issus d’une langue étrangère, l’adresse est en mesure de tromper les navigateurs faillibles comme c’est le cas des deux exemples ci-dessus.

Pour éviter de se faire avoir, on peut naviguer sur internet avec un des trois navigateurs qui ne présentent pas la faille. La vulnérabilité a été corrigée dans Chrome 59, elle le sera aussi dans Chrome 58. Quant à Firefox, il existe une manipulation : tapez about:config dans la barre d’adresse, recherchez punycode et dans le paramètre network.IDN_show_punycode remplacez la valeur false par true.


Les derniers dossiers

Ailleurs sur le Web


20 Commentaires

avatar franck751 18/04/2017 - 16:35

Bonjour,
Je viens de chercher sur Firefox (52.01), et la valeur est déjà "false' par défaut.

avatar malijoli 18/04/2017 - 18:19

Même chose avec Firefox 52.0.2 où la valeur par défaut est déjà false.

avatar marc_os 18/04/2017 - 19:54

@ malijoli
idem.



avatar Mickaël Bazoge macG 18/04/2017 - 22:08

Oui je me suis mélangé les pinceaux. Merci !

avatar popeye1 18/04/2017 - 16:53

Ne serait-il pas plus simple que lors de la création des tables de correspondance DNS on fasse attention à ce genre d'entourloupe et que l'on refuse de telles adresses ? Ce serait d'ailleurs assez décourageant pour les arnaqueurs. Mais cela est du ressort du grand patron du NET, les USA.

avatar C1rc3@0rc 18/04/2017 - 23:33

Un DNS n'est qu'un index qui associe une adresse de type www.apple.com a 17.172.224.47. C'est au proprietaire de l'IP de gerer son entrée DNS, et n'importe qui peut creer une adresse trafiquée pour ressembler a www.apple.com et la rediriger sur une IP qui lui appartient.

C'est peut etre choquant mais il serait surtout plus efficace de limiter les adresses dans toute la chaine au jeu de caractere ASCII latin de base.

Le support, au niveau des protocoles reseaux, des caracteres non ASCII latin a ete ajouté avec des mecanismes bidouillés. Ça n'a jamais été cohérent et encore moins sécurisé.

Donc soit on revoit l’intégralité des protocoles en posant qu'Unicode (quelle version en plus) est la base universelle, soit on exclut tout ce qui n'est pas l'ASCII latin.

Et il faut se rappeler que l'URL n'est qu'une apparence pour l'humain, car derrière le DNS doit la traduire en adresse IP v4 (xxx.xxx.xxx.xxx comme 17.172.224.47) qui va devenir au final un nombre codé sur 32bits en base binaire (une serie de 0 et de 1).
Et pour compliquer les chose, on a des DNS dynamique qui font varier l'adresse IP tout en gardant la meme URL...
Il suffit alors que le DNS soit corrompu ( au niveau de l'internet, mais aussi de la machine elle meme) et on peut alors etre redirigé sur n'importe quoi.
Bref, le systeme DNS n'a jamais ete conçu pour la securité mais comme une facilité pour l'humain.

Il faut de plus mettre en garde que seule l'adresse affichée peut être démasquée en regardant son apparence dans la barre d’adresse, parce que le lien HTML lui ne montre pas l'adresse... Donc le phishing, qui cible des personnes non formée a la sécurité, a de beaux jours devant lui, surtout que les navigateurs présentent de manière de plus en plus invisibles les adresses (comme Safari, ou il faut aller dans les preferences avancées pour forcer l'affichage de l'adresse complète (URL)... ) !

A noter que ce genre d'astuce fonctionne aussi au niveau des fichiers avec les langues non "droitière" (arabe, langues asiatique,...). On alors peut avoir des fichiers executables qui ont l'apparence de fichiers de données... C'est la celebre attaque RTLO (http://resources.infosecinstitute.com/spoof-using-right-to-left-override...)

Bon, maintenant on commence aussi a voir (malheureusement) des astuces pour afficher les adresses réseau en... emoji => http://www.linkmoji.co/

avatar GreyBob 19/04/2017 - 01:48

Attention! Après essais dans Firefox 52.0.2 (64-bit) c'est le contraire:
si network.IDN_show_punycode = true
alors l'adresse qui est affichée est "xn--e1awd7f.com"

si network.IDN_show_punycode = false
alors l'adresse qui est affichée est "www.еріс.com"

Edit: merci à Mickaël Bazoge qui a mis l'article à jour.

avatar magic.ludovic 18/04/2017 - 18:44

+1 . Je viens d'essayer ... Il faut mettre : true

avatar pierre_34 18/04/2017 - 19:21

+1 également, passé à "True"

avatar kitetrip 18/04/2017 - 17:23

Au final le plus sûr reste de taper l'URL du site...

avatar occam 18/04/2017 - 17:56 via iGeneration pour iOS

Умные мошенники!

avatar zoubi2 18/04/2017 - 18:05 (edité)

Sont quand-même futés les mecs....

avatar C1rc3@0rc 18/04/2017 - 23:39

Parce qu'ils utilisent le fait que l'internet n'a jamais ete conçu pour etre securisé?
Le phishing est une des attaques de base qui s’appuie sur la meconnaissance des protocoles réseaux et sur les facilité "humaines" mise en place.

Et en informatique, ou l'on ecrit un truc rapidement pour resoudre un probleme technique et ou l'on pense ensuite aux consequences et utilisations detournées (souvent face a une exploitation decouverte avec de la chance), c'est legions.

avatar A884126 18/04/2017 - 18:12 via iGeneration pour iOS

C'est pour cela que certains outils qui répertorient les sites de phishing, scam, malware... ne sont pas dénués d'intérêt.

avatar C1rc3@0rc 18/04/2017 - 23:49 (edité)

Oui, mais ils ne permettent que d'agir a posteriori, une fois qu'ils ont ete signalés.

C'est comme les antivirus, ils de detectent que la signature d'un malware identifié, donc il faut que le malware ait ete prealablement identifié (y a bien des antivirus "predictifs" mais ils sont inneficaces et souvent sont la cause de problemes pire que les virus eux memes)

Un truc simple consiste a utiliser les signets. On fait bien attention a taper l'adresse la premiere fois et ensuite on utilise que le signet. bien sur il faut activer l'affichage complet de l'URL dans la barre d'adresse, les navigateurs ayant pour mauvaise habitude de n'afficher que partielement cette adresse voire n'afficher que le nom du site et pas son adresse...

Un autre element de securité serait que le navigateur affiche explicitement l'URL complete, ses caracteristiques (URL utilisant l'alphabet cyrilique / japonais/ arabe/... sens d'ecriture,...) et l'IP associée dans un dialogue lorsqu'on clique sur un lien.
Ça devient lourd, mais vu que c'est explicite cela reduit les risques. Et on peut imaginer que le navigateur pourrait proposer une mise en signet de ce lien et le comparer par la suite...

Apres il y a aussi tous ce qui est chargé dans une page WEB qui peut presenter un risque. Et avec la multiplication de la publicité qui surcharge les pages WEB, il y a une multiplication des risques et une augmentation des difficultés de détection des fraudes...

avatar Sica 18/04/2017 - 18:47 via iGeneration pour iOS

Sur l'ipad, j'ai essayé plusieurs navigateurs, et seul chrome s'est fait avoir (safari, chrome, google, firefox et mercury)...

avatar Titov 19/04/2017 - 08:26

Dans Firefox 53 la valeur est true

avatar mac_adam 20/04/2017 - 01:28

Non, dans Firefox 53 c'est toujours "false" par défaut. Donc il faut faire la manip indiquée dans l'article pour passer à "true".

avatar Titov 20/04/2017 - 08:28 (edité)

Non chez moi c'était "true" sinon je n'aurai pas fait cette intervention

avatar aCLR 19/04/2017 - 21:31 (edité)

Merci pour l'info ;-)