ポイント

●ファーミングはフィッシングの応用で,ユーザーのパソコンの設定ファイルを書き換えるなどして,ターゲット・ユーザーを攻撃者の用意したサイトに誘導する。このとき,ブラウザのアドレス欄に表示されるドメイン名は正規のものになるため,ユーザーはだまされていることに気づきにくい
●Webページから情報を送信するときには,SSLを利用するのが安全である。もしファーミングの手口に引っかかっていても,証明書に関するエラーが出る
●ソーシャル・エンジニアリング,フィッシング,ファーミングともに詐欺的な要素を持つため,技術だけで防止するには限界がある。ユーザーがこれらの事例や手口を理解して,引っかからないようにしておく必要がある

 前回は,ソーシャル・エンジニアリングとフィッシングの手口と対策を勉強しました。フィッシングでは,攻撃者が仕掛けたリンクをクリックしなければ被害に遭うことはありませんでした。しかし,今回勉強するファーミングと呼ばれる手法は,正しいURLにアクセスしているのに,偽のサイトに誘導されてしまいます。

 なお,ファーミングはフィッシングの一手法であって別名で呼称すべきではない,という意見もあります。ただし,この連載ではユーザーを引っかける手口が異なる点に着目して,2つを区別して解説します。

ファーミングの手口

 ファーミング(pharming)は,フィッシングの「釣り」に対して,「農業」を意味するfarmingを基にした造語と言われています。攻撃者がユーザーの設定ファイルを書き換えるなどして,ユーザーが偽サイトにアクセスするのを待つところが,種をまいて収穫を待つ農業のイメージにつながり,このような呼ばれ方になったようです。

 ファーミングの概要はフィッシングとほぼ同様で,最終的には攻撃者が用意したサイトに利用者(ターゲット)を誘導して情報を入手します。フィッシングとの違いは,ユーザーの設定ファイルの中身を書き変えることによって,利用者を偽サイトに誘導する点です。利用者がメールなどに記載された偽のリンクをクリックしないでも,お気に入りあるいは正しいURLをアドレス欄に打ち込んでアクセスしても偽サイトに誘導されてしまいます。このため,一般的なフィッシングに比べて利用者が気づきにくく,より悪質であるといえます。

 ファーミングの手法はいくつかありますが,今回は,Windowsマシンのhostsファイルを書き換えて誘導する手口の例を解説します。

 通常,Webアクセスをする際は,ブラウザのアドレス欄に接続先のURLを打ち込むか,お気に入りやリンクをクリックしてアクセスします。ただ,そうしたアドレスはドメイン名が書かれており,ブラウザはドメイン名のままでは目的のサーバーへアクセスできません。ドメイン名に対応するIPアドレスを調べて,そのIPアドレスを使って目的のサーバーへアクセスします。このときに参照されるのが,hostsファイルという設定ファイルです(図1)。

図1●hostsファイルの中身
図1●hostsファイルの中身
WindowsXPの場合,C:¥WINDOWS¥system32¥drivers¥etcに保存されている。
[画像のクリックで拡大表示]

 #が先頭に付いた行はコメント行なので,図1のhostsファイルで有効なのは,

127.0.0.1 localhost

と書かれた1行だけです。この設定により「localhost」と入力されたときは,127.0.0.1というIPアドレスに置き換えられます(127.0.0.1は自コンピュータを意味するIPアドレスです)。

 通常hostsファイルは,図1のようにlocalhostの情報しか記述されていないため,ほかのドメイン名のアドレス解決ができません。そこで,次にDNS(domain name system)を利用してドメイン名からIPアドレスを調査します。