フィッシング詐欺の仕組み

最近ニュースなどで、頻繁に目にする”フィッシング詐欺に注意!”という言葉。このフィッシング詐欺について気になったので、調べてみた。
頻繁にニュースにもなっている。(ねとらぼ)また、2013年12月27日にJPCERTコーディネーションセンター(フィッシング対策協議会)も、このフィッシング詐欺について注意喚起している。非常に被害が多いことを意味している。「自分には関係ないとお思いの方にもう一度お知らせです・・・・。」wwww

 

では、このように500件以上の被害が出ているフィッシングサイトはどのような仕組みになっているのか。また、どのように誘導しているのか。調べてみたいと思う。

誘導の仕方
誘導方法には2つのパターンが存在する。

  • メールで偽サイトへ誘導
  • DNSキャッシュポイズニングで正規のURLで誘導

まず、メールで偽サイトへ誘導する方法を説明する。
この方法は、現在被害が多い方法で自分に関係がありそうな内容がメールの本文に書かれている。たとえば、「アカウントがロックされないように定期的にチェックしてください。」などと書かれており、その下に本家のURLに似た偽サイトのURLが書かれており、そのURLを踏むと本家のサイトと酷似したページが表示される。そのページのログイン画面で自分のIDとpassを入力すると、本家のサイトのログイン後のページにジャンプできる。つまり、ユーザ的には普通にログインしている感覚である。
このとき、実際は偽サイトの管理者にIDとpassを教えていることになるのです。
このロジックは、まず偽サイトにアクセスしたユーザがIDとPassを入力することで、偽サイトにその情報が残ります。これで、取得完了です。その後、偽サイトがそのIDとPassを使って本家サイトにログインします。そのreplyをそのままユーザに送信することで、ユーザにはログインしただけのような感覚になる。

次は、DNSキャッシュポイズニングで正規のURLで誘導する方法について説明する。
DNSキャッシュポイズニングとは、DNSキャッシュサーバに偽のDNS情報をキャッシュとして蓄積させる攻撃のこと。手法としては以下の4つからなる。

  1. DNSキャッシュサーバに偽情報を送り込みたいドメイン名を問い合わせる。
  2. 問い合わせを受けたキャッシュサーバは、外部の権威サーバに問い合わせる。
  3. 攻撃者は、権威サーバから正しい応答が返ってくる前に、偽の応答パケットをキャッシュサーバに送り込む
  4. キャッシュサーバが2.で送った問い合わせメッセージのIDと、攻撃者が3.で送った偽メッセージのIDが一致した場合、攻撃が成功する。

この手法での成功率は低い。なぜならば、4.でもある通り「2.で送った問い合わせメッセージのIDと、攻撃者が3.で送った偽メッセージのIDが一致した場合」にだけ攻撃が成功する。その成功率は1/65536である。この手法を応用した攻撃方法が2008年にカミンスキー氏が発表した「新DNSキャッシュポイズニング攻撃」だ。

この手法は、下記の3つからなる。

  1. キャッシュサーバに送信する問い合わせに実在しないドメイン名(yyy.example.jp)を使用する。
  2. 1.の問い合わせの後すぐに「yyy.example.jpは知らないがxxx.example(偽装したいドメイン名)なら知っている」と応答する。
  3. xxx.example.jpのIPは201.25.3.x(偽サイトのIP)と教える。

このような手法を使用することによって、DNSキャッシュサーバのキャッシュに偽情報をテーブルに書き換えることが可能となる。

メールによるフィッシング詐欺だけでないことを理解してほしい。DNSキャッシュポイズニングはユーザ側で防ぐことはできないが、注意深くサイトの変化・違和感を感じてほしいと思う。