フィッシング詐欺とは?(5)
「DNSポイズニング」(DNSキャッシュ・ポイズニング)
ホストファイルフィッシングは、hostsファイルというPC自身が持っているアドレス帳のようなものを書き換える手法でした。
例えば電話をかけるとき、アドレス帳の電話番号が間違ってたら、別の人にかけてしまいますよね。
それに対して、DNSというのは、「104」の電話番号案内サービスのようなものだと説明しました。
自分が持っていない情報を、問い合わせて聞くイメージです。
じゃあ、DNSは全面的に信用していいのか?
実は、DNSポイズニングという攻撃を受けた場合は、DNSがウソの情報を返す場合があるんです。
例えば、DNS1とDNS2という2つのDNSサーバがあるとします。
DNS1は、あなたがインターネットを利用するときに問い合わせる、あなたのPCにあらかじめ登録されている問い合わせ先です。
DNS2は、どこか別のところにある悪人が用意したDNSサーバです。
あなたがブラウザに「http://www.mecha-security.com」と入力すると、あなたのPCは裏でDNS1に問い合わせをします。
「www.mecha-security.com のIPアドレスを教えてください」
www.mecha-security.com はDNS1が管理するドメインではないので、他のDNS に問い合わせをしようとします。
このとき、DNS2が、DNS1に対して、
「www.mecha-security.com のIPアドレスは、xxx.xxx.xxx.xxx だよ」
という偽の情報を与えるんです。
そうすると、DNS1は、PCに対してその情報を返答してしまいます。
これが、DNSキャッシュ・ポイズニングです。
※DNSサーバ自体を乗っ取ったりして、直接書き換えてしまう方法もあります。
また、クライアントを攻撃して参照するDNSを変えてしまうといった手法もとられる場合があります。
ちなみにDNS1は、www.mecha-security.comの情報をキャッシュという一時的な記憶領域に保存しますので、一度偽の情報を持ってしまうと、他のユーザが聞きにきても、同じ情報を与えるので、DNS1を使っているユーザはどんどんフィッシングの餌食になってしまうんですね。
こういった場合ユーザ側でできることは、接続先がSSL(https://)の通信であった場合には、ブラウザの鍵マークの部分を必ず確認して、ちゃんとした証明書を持っていない場合には、そこでパスワードの登録やショッピングなどは絶対にしないようにしましょう。
それ以外には、システム側でDNSサーバ同士が証明書を使って認証する仕組みが、現時点では進められています。
ちなみに、「ホストファイルフィッシング」と今回の「DNSキャッシュ・ポイズニング」は、種をまいて収穫するというイメージから、「ファーミング」と呼ばれています。