モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

URLを確認しても正しそうに見えるのにフィッシングサイトにつながってしまう攻撃手法

フィッシングのHTMLメール等で、ちゃんとURLを確認しても正しそうに見えるのに、フィッシングサイトに繋がってしまう攻撃手法が紹介されていました。


この手法を使って、以下のように例を作ってみました。

こんなふうにURLが書いてあると、ソースを確認しても「https ://www.smbc-card.com/…」に繋がりそうに見えますが、実際にはヤフーの天気が表示されてしまいます。

<a href="https://www.smbc-card.com⁄login⁄user=foobar@%77%65%61%74%68%65%72%2E%79%61%68%6F%6F%2E%63%6F%2E%6A%70/%77%65%61%74%68%65%72/">www.smbc-card.com</a>


実際のリンク例

https://www.smbc-card.com⁄login⁄user=foobar@%77%65%61%74%68%65%72%2E%79%61%68%6F%6F%2E%63%6F%2E%6A%70/%77%65%61%74%68%65%72/


twitterで簡単な説明を書いたのですが、もう少し詳しく説明します。



偽装手法

基本的な手法としてBasic認証のURL記述が利用されています。

Basic認証とは、ウェブサイトへユーザ名とパスワードでアクセス認証するための最も単純な認証方式の一つです。
Basic認証ではユーザ名とパスワードが必要ですが、URLにユーザ名とパスワードを含んだ形での記述が出来ます。
URLの形式は以下のようになっています。

https://username:password@example.com

このときパスワードは省略して

https://username@example.com

と書くことが出来ます。


この形式を悪用し、攻撃者は以下のようなURLを作成しています。

https://www.smbc-card.com@weather.yahoo.co.jp/weather/

つまり、ぱっと見で接続先サイトに見えるところが実はユーザ名になっているわけです。


攻撃者さらに、下記のようにURLエンコーディングを使用して実際のアクセス先を隠蔽することで、より疑われにくいURLにしています。

https://www.smbc-card.com@%77%65%61%74%68%65%72%2E%79%61%68%6F%6F%2E%63%6F%2E%6A%70/%77%65%61%74%68%65%72/


さらに、一般的なスラッシュ「/」の代わりに分数スラッシュ「⁄」(U+2044)を使用しています。
ユーザ名部分に「/」が使えないのですが、U+2044のスラッシュならば使うことが出来ます。
これにより、ドメインだけでなくより自然にログイン用のURLっぽく偽装することが可能です。

https://www.smbc-card.com⁄login⁄user=foobar@%77%65%61%74%68%65%72%2E%79%61%68%6F%6F%2E%63%6F%2E%6A%70/%77%65%61%74%68%65%72/

ここまでしなくても、ドメイン名を見せかけることができれば十分に思いますが、ドメイン名(本来のユーザ名)の後ろに送付先のユーザID情報を持たせたいとかがあったのかもしれません。

対策方法

単に、真に接続する先のURLを確認してもらうだけでも難しいのに、このような方法があるというのを普通の人に認識してもらってURLの確認してもらうのはまず不可能だと思います。

なので究極的には「利用している会社からであっても、送られてきたメール・SNSメッセージのURLは開かない」に尽きると思います。

名前を騙られて送られてくるメールや、アカウントを乗っ取られて送られてくるメッセージもあるため、知っている相手から送られてきたものでも、タイミング的におかしければ信用しないべきでしょう。