クラッカ(泥棒)がサーバー・マシン(家)に侵入するには,たくさんある家の中から,侵入しやすい家を探すことから始まる。この家の物色が第1段階だ。ターゲットにする家を決めたら,家の入り口を探す。そして第3段階は,扉や窓の種類を調べる。Part2では,こうした侵入までの前調査について,それぞれの段階を詳しく解説する。
クラッカが侵入しようとするサーバーを決めるまでにすることは前調査。クラッカはサーバーに関するさまざまな情報を入手し,セキュリティの弱そうな部分を絞り込んでいく。
裏を返せば,クラッカはセキュリティの高いサーバーへあえて侵入しようとしない。ねらうのは,より簡単に侵入できそうなセキュリティの弱いサーバーである。
3段階でふるいにかける
クラッカが侵入できそうなサーバーを絞り込んでいくまでの前調査は,3段階に分かれる(図1)。
第1段階は,稼働しているサーバー・マシンのIPアドレスを取得する「アドレス・スキャン」の作業である。マシンがネットワークにつながっていて稼働中でないと侵入できないから,当然の絞り込み作業である。この段階では,インターネットで自由に手に入れられるツールを使ってマシン群をスキャンして,稼働しているマシンを効率的に調べる。
第2段階は,稼働しているサーバー・マシンで動作しているサービス(サーバー・ソフト)を調べる作業だ。一般に「ポート・スキャン」と呼ばれる。1台のサーバー・マシンで多数のサーバー・ソフトが動いているほど,侵入できる可能性が高いと判断する。ここでもクラッカは,スキャン・ツールを使って,マシン上で動いているサービスを調べる。
第3段階は,サーバー・マシンで動いているサーバー・ソフトの名称やバージョンを調べる作業である。これは,「バナー・チェック」と呼ばれる。
ソフト名とバージョンがわかれば,そのソフトにバグがあるかは,インターネット上の公開情報だけで簡単に調べられる。クラッカはメーカーなどが公開しているセキュリティ情報を逆手にとって,悪用するのである。そして,バグをそのままにして運用しているサーバーがあれば,そこを突いた攻撃が有効であると判断するのだ。
では,3段階のクラッキング手口の詳細を順に見ていこう。
第1段階 アドレス・スキャン
クラッカの最初の仕事は,侵入対象のサーバー自体を探す「アドレス・スキャン」である。サーバーがネットワークにつながっていて,稼働しているかどうかを調べるのだ。そして,そのマシンのIPアドレスを入手する。
クラッカも基本はpingコマンド
サーバーが稼働しているかどうかを判断するには,ネットワーク管理などにも使う定番コマンドping(ピング)を駆使する。これは,目的のマシンに対して返答を要求するエコー要求パケットを送信するコマンドだ。このエコー要求パケットを受信したコンピュータは,エコー応答パケットを返信する。
Windowsなどにもこのコマンドは標準で用意されている。MS-DOS(エムエスドス)プロンプトから,
ping 目的マシンのIPアドレス
というように,「ping」という文字列に続けて,ターゲットとするコンピュータのIPアドレスまたはマシン名(ドメイン名)を指定すると,ターゲット・マシンが稼働していれば,そのマシンからエコー応答パケットが返ってくる。
したがって,クラッカはIPアドレスを変えて,片っ端からpingコマンドを実行すれば,ネットワークにつながった稼働中のサーバーのリストを簡単に作成できるのである(図2)。特定のターゲットが決まっていない愉快犯クラッカは,このような方法で,稼働中のサーバー・マシンだけをピックアップする。
pingを自動化するツールもある
pingコマンドをいちいち打ち込むのは面倒です。クラッカにとっては幸いなことに,こうした面倒な作業を自動化してくれるツールがいくつもあります。
その中でも有名なものとして,フリーソフトのNMAP(エヌマップ)があります。ユーザーが指定したIPアドレスの範囲すべてに対して,エコー要求パケットを送出し,エコー応答パケットが返ってきたIPアドレスだけをリストアップしてくれるソフトです。UNIX用だけでなく,Windows用もあります。
例えば,NAMPを使って211.2.246.0~211.2.246.63の範囲を指定して実行すると,図3のような結果が表示されます。IPアドレスまたはマシン名(ドメイン名)に続いて「appears to be up.」というメッセージが表れ,そのマシンが現在稼働中だとわかります。ここでは,64台のマシンを調べて,15台のマシンが稼働していることがわかりました。
X氏の話はここまでだが,表示されたマシン名から,稼働しているサーバー・ソフトを推測することも可能だ。例えば,マシン名が「~mail*.*** .co.jp」なら,メール・サーバーである可能性が高い。こうして,クラッカは攻撃対象を徐々に絞り込んでいくのである。
特定企業をねらい打つ方法
一方,確信犯クラッカは,最初から最終目標を決めている場合がある。このような場合は,ただやみくもに思いついたIPアドレスの範囲を指定してツールを実行するのではなく,ターゲットとなる組織が所有するIPアドレスの範囲をまず最初に探し出す。
実は,企業などの組織が所有するIPアドレスの範囲を調べるのは非常に簡単である。日本ネットワークインフォメーションセンター(JPNIC)などのアドレス管理組織が提供しているwhois(フーイズ)というサービスを利用すればよい。whoisは,ネットワーク管理者などが自社のネットワーク運用のために使うことを目的に公開しているデータベースで,だれでも利用できる。
目的の企業を検索するには,whoisサービスのWebページにアクセスして,「検索」ボタンを押すだけである。そうすると,企業が取得しているIPアドレスの範囲が表示される。こうしてクラッカは,特定企業に所属する稼働中のサーバー・マシン一覧を作成する。