web-dev-qa-db-fra.com

Pourquoi «survoler» un lien dans un e-mail est-il considéré comme sûr? Ou est-ce nocif?

Nous utilisons un client de messagerie basé sur un navigateur et le contenu de l'e-mail est en HTML.

Un de mes employeurs nous a dit que si nous recevons un e-mail suspect contenant des liens, nous devons survoler le lien (pour vérifier qu'il n'est pas usurpé) avant de cliquer dessus. Le survol déclenche une action pour afficher le lien sous-jacent dans la barre d'état du navigateur. Cependant, quelqu'un pourrait-il usurper cette action et essayer de faire quelque chose de drôle?

This est un fil similaire, mais il traite des vignettes des pièces jointes et non des liens dans l'e-mail.

28
JOW

Un de mes employeurs nous a dit que si nous recevons un e-mail suspect contenant des liens, nous devons survoler le lien (pour vérifier qu'il n'est pas usurpé) avant de cliquer dessus.

Lorsque vous passez la souris sur un lien, la valeur de l'attribut href s'affiche dans la barre d'état. Étant donné qu'il s'agit de la cible du lien, il peut vous donner une idée de l'emplacement du lien.

quelqu'un pourrait-il usurper cette action et essayer de faire quelque chose de drôle?

En général, oui. La cible réelle du lien peut être "usurpée" à l'aide de Javascript: il est assez courant pour les sites Web d'échanger la valeur href avec un autre lien dès que l'utilisateur clique dessus. Par exemple, vous pouvez observer cela lorsque vous consultez les résultats de recherche Google. Lorsque vous passez la souris sur l'un des liens, il s'affiche sous la forme https://security.stackexchange.com/... mais dès que vous cliquez dessus , cet événement est capturé et vous visitez d'abord un site intermédiaire (https://www.google.com/url?...) qui vous redirige vers la cible réelle.

Mais tout client de messagerie bien conçu (basé sur le Web) n'exécutera aucun JS dans les e-mails HTML. Le contenu de script actif dans les e-mails est dangereux - non seulement parce qu'il entraîne potentiellement une faille XSS dans le client de messagerie, mais parce qu'il peut également être utilisé pour exécuter des exploits basés sur JS contre le navigateur ou simplement informer l'expéditeur que vous avez ouvert le courrier.

Donc, si votre client de messagerie interdit JS dans les e-mails - ce qu'il fait probablement - le lien affiché lors du survol de la souris est en effet la cible de lien correcte. Mais vous devez être conscient des autres tentatives de vous tromper, telles que attaques homographes ou une URL trop longue qui déguise le domaine cible réel. Il n'est pas aussi facile d'analyser une URL dans la barre d'état que de la regarder dans la barre d'adresse. Dans une attaque plus avancée, l'attaquant aurait également pu compromettre un site légitime au préalable (par exemple par une faille XSS persistante) et vous ne pourrez pas du tout dire à partir du lien que le site héberge actuellement un contenu dangereux.

53
Arminius

Cela ne pouvait être réalisé qu'avec JavaScript. Vous pouvez définir le lien sur n'importe quoi, puis écrire une action onclick qui envoie l'utilisateur ailleurs:

<a href="http://example.com" onclick="window.location = 'http://www.google.com';return false;">click</a>

Mais si vous autorisez JavaScript à être exécuté par votre client de messagerie basé sur un navigateur, vous êtes vulnérable aux XSS persistants, ce qui signifie que vous avez de plus gros problèmes.

En passant, dire aux utilisateurs de faire [chose incommode] ne fonctionnera presque jamais comme mécanisme de sécurité. Une meilleure solution serait de supprimer toutes les balises a et de remplacer le lien réel à la place.

11
tim