hostsファイル(拡張子無し)とは、Windowsのシステムファイルの一つで、そのPC内でサイト名などをIPに変換するためのものです。スパイウェアによるhostsファイルの改ざんは、古くから行われている手法ではありますが、簡単な割に効果的なので今でも良く使われています。
このページでは、このhostsファイルについて解説するとともに、改ざんされたhostsファイルの対処法について書いてます。
hostsファイルが存在する位置はOSによって違います。興味がある方はエクスプローラを使って探してみて下さい。
ただし、システムファイルなのでむやみやたらにいじっては駄目です。
場合によってはhostsのあとに拡張子が付いたもの、例えば「hosts.ini」などが見つかる場合がありますが、ここで言うhostsファイルは拡張子が無いものです。
hostsファイルとは、自分のPC内でホスト名をIPアドレスに変換する際に参照するファイルです。と言ってもちんぷんかんぷんな人も多いと思いますので軽く解説しますと、例えば「google.co.jp」など解りやすい形で書いたホスト名を、「216.239.33.100」などの実際の名前(IPアドレス)に変換する時に参照するファイルです。
Google(日本)のURLは、通常http://www.google.co.jpですが、そのIPアドレスは「216.239.33.100」になります。このことは、http://216.239.33.100と入力するとGoogleのページが表示されることで確認できます。この変換、すなわち「www.google.co.jp」→「216.239.33.100」という対応が書いてあるのがhostsファイルです。
と解りやすいと思われる例で解説してみましたが、実はこの例はちょっと実際とは違います。この場合の変換はPC内のhostsファイルでで行われる訳ではなく、DNSサーバーという外部の共通サーバーにある参照ファイルによって行われます。ホスト名を全世界共通のものにするためにも、また現実的なファイルサイズの問題から言っても、個別のPCにこの参照ファイルを持つことは理屈に合わないですから。
ではこのhostsファイルは何をするためのファイルか?それは「そのPC固有のホスト名→IPアドレスの変換」をさせるためです。僕が知っている範囲では、企業内のサーバーの名前を登録しておくという例があります。社内のサーバーの名前を「hogehoge01」と決めた場合、PCのhostsファイルに「hogehoge01」がどういうIPに対応するかということを記述します。
例えば、
とhostsファイルに一行入れてやれば、アプリケーション内などで「hogehoge01」が参照された場合に「210.148.160.10 (このサイトのIPです)」へ辿り着けることになります。こうすれば、いちいちIPアドレスを覚えなくても、「hogehoge01」というサーバー名さえ覚えておけば良いことになりますし、ホストを変えた場合でもhostsファイルだけを書き換えれば良いというメリットがあります。
ただし、hostsファイルが設定されているのはむしろ例外と言っていいでしょう。例えばこのサイトの掲示板でも一度も見たことが無いですから。特に個人のPCであれば100%設定されてないと考えていいでしょう。つまり、何か書いてあればスパイウェアの仕業の可能性が高いです。
また、このサイトの「RealPlayerはスパイウェア?」のページでは、一番下の「裏技」でhostsファイルを使って「realnetworks.com」へのアクセスを止める方法を紹介しています。
重要なポイントは、このhostsファイルの記述はDNSサーバーによる変換より優先されるということです。例えばhostsファイルに
と書いてしまえば、Yahoo! Japanを見ようとして「www.yahoo.co.jp」と入力すると、DNSを参照してyahoo.co.jpのIPである211.14.15.5に辿り着く前にhostsファイルで変換されてしまい、Googleのサイト(216.239.33.100)が開いてしまうことになります。ですからこれを悪用すれば、ブラウザの検索ページを乗っ取ることもできます。例えば、「検索」ボタンが押されたときに参照されるホスト名である「ie.search.msn.com」を他のIPに対応させれば「検索」ボタンが押されたときそのサイトが開きます。
hostsファイルが書き換えられてしまった場合、直接hostsファイルをテキストエディタなどでいじっても構わないのですが、もっと簡単で安全なのがHijackThisを使った方法です。というか、HijackThisのログを取って初めてhostsファイルが書き換えられたことに気づくケースの方が多いでしょう
HijackThisのログには、最初の部分に「O1 - Hosts:」として現れます。例えば、
などです。このエントリにチェックを入れてFixすれば、hostsファイルの記述が消去されます。前に書いた通り、通常の個人使用のPCであればここに現れたものはすべてFixしてログから消してしまって構いません。よく見られるケースでは、同じIPに対して多数のドメインが登録されているものがあります。100行以上設定されることさえあります。例えば、
みたいな奴です。見てもらうと解りますが、色々なドメインを登録しておいてすべて同一のIP(213.159.118.226)に飛ばそうという書き換えです。
HijackThisのバグにより、O1 エントリが出ないのに、特定ドメインが開かない等の異常が見られる場合は、HijackThis 付録の「hosts file manager」を用いて hosts の中身を確認し、問題が見つかれば修正して下さい。もちろん、メモ帳などでhostsファイルを開いて直接編集しても構いません。
HijackThisなどが使えない場合、緊急処置としてhostsファイルを削除する方法があります。
マルウェアの中には、セキュリティサイトへの接続を妨害する形でhostsファイルを書き換えるものがあります。その場合、修復ツール等のダウンロードができません。この方法は、その状態をとりあえず解消するためのものです。いつでもhostsファイルを削除すれば良いということではありません。あくまでも緊急処置です。
Windowsデフォルトの設定では、hostsファイルを含めてシステムファイルが非表示になっています。まずこちらの手順に従って設定を変更して下さい。
hostsファイルのある場所は、最初に書いたようにOSによって違います。
場合によってはhostsのあとに拡張子が付いたもの、例えば「hosts.ini」などが見つかる場合がありますが、ここで言うhostsファイルは拡張子が無いものです。
まず現在あるhostsファイルのバックアップを残しておきます。エクスプローラを使って、デスクトップでもマイドキュメントでも、お好きな場所に移動して下さい。
hostsファイルが存在しなくても、通常のPCの動作には問題ありませんが、一応ダミーを入れておきましょう。メモ帳を開いて、
の一行のみを書き込んで「hosts」の名前で保存し、元々hostsファイルがあった位置に置いて下さい。普通に保存すると、「hosts.txt」になってしまうので、名前を「hosts」だけに変更して下さい。あるいは下のリンククリックして「hosts.exe」をダウンロードし、ダブルクリックして生成するhostsファイルを使って下さい。
hosts.exeをダブルクリックすると下の画面が出るので、そのまま「インストール」を押すと「hosts.exe」と同じ位置に「hosts」というファイルが生成されるはずです。

以上の作業が終了したら、PCを再起動して下さい。
以上の作業が終了した後、接続に関するトラブル。例えば会社のLANに接続できなくなったなどのトラブルが起こった場合は、ネットワーク管理者に相談して下さい。その際に、このページを印刷して渡してもらえれば話は早いと思います。心配する必要はありません。管理者から初期設定状態のhostsファイルをもらって、同様の手順でダミーhostsファイルと入れ替えてPCを再起動するだけですから。
「スタート」→「プログラム」→「アクセサリ」→「メモ帳」でメモ帳を開き、「ファイル」→「開く」で、「ファイルの種類」を「すべてのファイル」を指定してやり、移動したhostsファイルを指定してやればテキストファイルとして開くことができます。
掲示板で「hostsファイルの中身を貼り付けて下さい」と言われた場合、これをすべて選択してコピーした上で、掲示板文書に貼り付けて下さい。
こちらは今回の記述で参考にさせていただいたサイトです。
2007.3.3 「hostsファイルの削除 (緊急処置)」を統合、改訂
2004.5.11 改訂