web-dev-qa-db-ja.com

メールのリンクに「カーソルを合わせる」ことが安全と見なされるのはなぜですか?それとも有害ですか?

ブラウザベースのメールクライアントを使用しており、メールのコンテンツはHTML形式です。

雇用主の1人が、リンクのある疑わしいメールを受け取った場合、リンクをクリックする前に(偽装されていないことを確認するために)マウスを移動する必要があると述べました。カーソルを合わせると、ブラウザのステータスバーに基になるリンクを表示するアクションがトリガーされます。しかし、誰かがこのアクションを偽装して面白いことをしようとすることができますか?

This は同様のスレッドですが、メールのリンクではなく添付ファイルのサムネイルについて説明します。

28
JOW

雇用主の1人が、リンクのある疑わしいメールを受け取った場合、リンクをクリックする前に(偽装されていないことを確認するために)マウスオーバーする必要があると述べました。

リンクの上にマウスを置くと、href属性の値がステータスバーに表示されます。これはリンクターゲットであるため、リンク先の位置を知ることができます。

誰かがこのアクションを偽装して何か面白いことをしようとすることができますか?

一般的に、はい。実際のリンクターゲットは、Javascriptを使用して「なりすまし」される可能性があります。ユーザーがクリックするとすぐに、Webサイトがhref値を別のリンクと交換することは非常に一般的です。たとえば、Googleの検索結果にアクセスすると、これを観察できます。リンクの1つにカーソルを合わせると、https://security.stackexchange.com/...として表示されますが、クリックするとすぐに、そのイベントがキャプチャされ、最初に中間サイト(https://www.google.com/url?...)にアクセスすると、実際のターゲットにリダイレクトされます。

しかし、適切に設計された(Webベースの)メールクライアントは、HTML電子メールでJSを実行しません。メールのアクティブスクリプトコンテンツは危険です。メールクライアントでXSSの欠陥が発生する可能性があるだけでなく、ブラウザに対してJSベースのエクスプロイトを実行したり、送信者にメールを開いたことを通知したりするためにも使用できます。郵便物。

したがって、メールクライアントが電子メールでのJSを許可していない場合(可能性が高い)、マウスオーバーで表示されるリンクは、実際には正しいリンクターゲットです。しかし、 ホモグラフ攻撃 や、実際のターゲットドメインを偽る非常に長いURLなど、他の人を欺く試みに注意する必要があります。ステータスバーでURLを分析するのは、アドレスバーで確認するのと同じくらい簡単ではありません。より高度な攻撃では、攻撃者は事前に(たとえば、永続的なXSSの欠陥を介して)正規のサイトを危険にさらしている可能性があり、サイトが実際に危険なコンテンツをホストしていることをリンクからまったく知ることができません。

53
Arminius

これはJavaScriptでのみ達成できます。リンクを任意に設定してから、ユーザーを別の場所に送信するonclickアクションを作成できます。

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

ただし、ブラウザーベースの電子メールクライアントでJavaScriptの実行を許可すると、永続的なXSSに対して脆弱になるため、より大きな問題が発生します。

余談ですが、ユーザーに[不便なこと]を行うように指示しても、セキュリティメカニズムとして機能することはほとんどありません。より良い解決策は、すべてのaタグを取り除き、代わりに実際のリンクを置き換えることです。

11
tim