クラッカ(泥棒)がサーバー・マシン(家)に侵入するには,たくさんある家の中から,侵入しやすい家を探すことから始まる。この家の物色が第1段階だ。ターゲットにする家を決めたら,家の入り口を探す。そして第3段階は,扉や窓の種類を調べる。Part2では,こうした侵入までの前調査について,それぞれの段階を詳しく解説する。

 クラッカが侵入しようとするサーバーを決めるまでにすることは前調査。クラッカはサーバーに関するさまざまな情報を入手し,セキュリティの弱そうな部分を絞り込んでいく。

 裏を返せば,クラッカはセキュリティの高いサーバーへあえて侵入しようとしない。ねらうのは,より簡単に侵入できそうなセキュリティの弱いサーバーである。

3段階でふるいにかける

 クラッカが侵入できそうなサーバーを絞り込んでいくまでの前調査は,3段階に分かれる(図1)。

図1●クラッカが弱いサーバーを見定めるまでの流れ<br>まず,稼働中のサーバー・マシンのIPアドレスを調べる。マシンを特定したら,そのマシンで動作しているサービスを調べる。最後に,そのサービスのソフトウエアの名前やバージョンを調べる。この3段階を踏む。
図1●クラッカが弱いサーバーを見定めるまでの流れ
まず,稼働中のサーバー・マシンのIPアドレスを調べる。マシンを特定したら,そのマシンで動作しているサービスを調べる。最後に,そのサービスのソフトウエアの名前やバージョンを調べる。この3段階を踏む。
[画像のクリックで拡大表示]

 第1段階は,稼働しているサーバー・マシンのIPアドレスを取得する「アドレス・スキャン」の作業である。マシンがネットワークにつながっていて稼働中でないと侵入できないから,当然の絞り込み作業である。この段階では,インターネットで自由に手に入れられるツールを使ってマシン群をスキャンして,稼働しているマシンを効率的に調べる。

 第2段階は,稼働しているサーバー・マシンで動作しているサービス(サーバー・ソフト)を調べる作業だ。一般に「ポート・スキャン」と呼ばれる。1台のサーバー・マシンで多数のサーバー・ソフトが動いているほど,侵入できる可能性が高いと判断する。ここでもクラッカは,スキャン・ツールを使って,マシン上で動いているサービスを調べる。

 第3段階は,サーバー・マシンで動いているサーバー・ソフトの名称やバージョンを調べる作業である。これは,「バナー・チェック」と呼ばれる。

 ソフト名とバージョンがわかれば,そのソフトにバグがあるかは,インターネット上の公開情報だけで簡単に調べられる。クラッカはメーカーなどが公開しているセキュリティ情報を逆手にとって,悪用するのである。そして,バグをそのままにして運用しているサーバーがあれば,そこを突いた攻撃が有効であると判断するのだ。

 では,3段階のクラッキング手口の詳細を順に見ていこう。

第1段階 アドレス・スキャン

 クラッカの最初の仕事は,侵入対象のサーバー自体を探す「アドレス・スキャン」である。サーバーがネットワークにつながっていて,稼働しているかどうかを調べるのだ。そして,そのマシンのIPアドレスを入手する。

クラッカも基本はpingコマンド

 サーバーが稼働しているかどうかを判断するには,ネットワーク管理などにも使う定番コマンドping(ピング)を駆使する。これは,目的のマシンに対して返答を要求するエコー要求パケットを送信するコマンドだ。このエコー要求パケットを受信したコンピュータは,エコー応答パケットを返信する。

 Windowsなどにもこのコマンドは標準で用意されている。MS-DOS(エムエスドス)プロンプトから,

ping 目的マシンのIPアドレス

というように,「ping」という文字列に続けて,ターゲットとするコンピュータのIPアドレスまたはマシン名(ドメイン名)を指定すると,ターゲット・マシンが稼働していれば,そのマシンからエコー応答パケットが返ってくる

 したがって,クラッカはIPアドレスを変えて,片っ端からpingコマンドを実行すれば,ネットワークにつながった稼働中のサーバーのリストを簡単に作成できるのである(図2)。特定のターゲットが決まっていない愉快犯クラッカは,このような方法で,稼働中のサーバー・マシンだけをピックアップする。

図2●pingで稼働しているマシンを調べる<br>pingコマンドを使えば,目的のIPアドレスのマシンが稼働しているかどうかを調べられる。
図2●pingで稼働しているマシンを調べる
pingコマンドを使えば,目的のIPアドレスのマシンが稼働しているかどうかを調べられる。
[画像のクリックで拡大表示]

pingを自動化するツールもある

 pingコマンドをいちいち打ち込むのは面倒です。クラッカにとっては幸いなことに,こうした面倒な作業を自動化してくれるツールがいくつもあります。

 その中でも有名なものとして,フリーソフトのNMAP(エヌマップ)があります。ユーザーが指定したIPアドレスの範囲すべてに対して,エコー要求パケットを送出し,エコー応答パケットが返ってきたIPアドレスだけをリストアップしてくれるソフトです。UNIX用だけでなく,Windows用もあります。

 例えば,NAMPを使って211.2.246.0~211.2.246.63の範囲を指定して実行すると,図3のような結果が表示されます。IPアドレスまたはマシン名(ドメイン名)に続いて「appears to be up.」というメッセージが表れ,そのマシンが現在稼働中だとわかります。ここでは,64台のマシンを調べて,15台のマシンが稼働していることがわかりました。

図3●ツールを使って広範囲にpingを送出<br>NMAPというツールは,指定したIPアドレスの範囲にエコー要求パケットを自動的に送出する。そして稼働中のマシンのIPアドレスまたはマシン名を表示する。
図3●ツールを使って広範囲にpingを送出
NMAPというツールは,指定したIPアドレスの範囲にエコー要求パケットを自動的に送出する。そして稼働中のマシンのIPアドレスまたはマシン名を表示する。
[画像のクリックで拡大表示]

 X氏の話はここまでだが,表示されたマシン名から,稼働しているサーバー・ソフトを推測することも可能だ。例えば,マシン名が「~mail*.*** .co.jp」なら,メール・サーバーである可能性が高い。こうして,クラッカは攻撃対象を徐々に絞り込んでいくのである。

特定企業をねらい打つ方法

 一方,確信犯クラッカは,最初から最終目標を決めている場合がある。このような場合は,ただやみくもに思いついたIPアドレスの範囲を指定してツールを実行するのではなく,ターゲットとなる組織が所有するIPアドレスの範囲をまず最初に探し出す。

 実は,企業などの組織が所有するIPアドレスの範囲を調べるのは非常に簡単である。日本ネットワークインフォメーションセンター(JPNIC)などのアドレス管理組織が提供しているwhois(フーイズ)というサービスを利用すればよい。whoisは,ネットワーク管理者などが自社のネットワーク運用のために使うことを目的に公開しているデータベースで,だれでも利用できる。

 目的の企業を検索するには,whoisサービスのWebページにアクセスして,「検索」ボタンを押すだけである。そうすると,企業が取得しているIPアドレスの範囲が表示される。こうしてクラッカは,特定企業に所属する稼働中のサーバー・マシン一覧を作成する。