ネットワークセキュリティ入門

攻撃方法から学ぶ、自己防衛の方針

last update 2000/9/3

簡易的な攻撃方法の分類

能動的攻撃

 この攻撃は、今までのネットワーク攻撃の主流と言ってよい。攻撃対象はUNIXやWindowsNT等のような、サーバと言われるコンピュータが主である。

 メジャーなところで、UNIXのmountdの設定ミスを利用した攻撃を紹介しながらこの攻撃の特徴を示したい。

 mountdとはUNIXでのファイル共有機能(ネットワークファイルシステム、略してnfsという)を司るデーモン(demonではなくdaemon)である。攻撃の最終目標は対象コンピュータのrootをとる、すなわち、そのコンピュータを自由に操る権限を取得することとしよう。

 このデーモンは読み書きの権限や、どのディレクトリを他のコンピュータに公開するか、公開するコンピュータはどれにするか、等を定義することで、その通りにファイル(ディレクトリ)を公開する。管理者が以下のように定義ファイルを書いていたら、どうだろうか。

 公開するディレクトリは”/”(つまりコンピュータのディスク全部)、読み書き可、公開するコンピュータの制限はなし。

 このような情報は、1つのコマンドで調査可能である。「showmount -e target_computer」と打てば(UNIXの場合)、ターゲットコンピュータがすべて教えてくれる。

 そうすると、攻撃者はUNIXマシンを調達して(最近はやりのLINUXでいいからトータルで10万円もあれば調達可能)、攻撃用コンピュータのrootになる。自分のマシンだから簡単になれる。そしてコマンドを打つ。

 #mount -t nfs target_computer:/ /mnt/nfs

 これにておしまい、である。マウントしたディスクには有名な/etc/passwdと言う、ログインネームとパスワードの書かれたファイルが存在する。そこに自分のユーザ名とパスワード、それに特権を示すユーザID、0を書き込んで保存する。ついでに(重要なことだが)ログファイルをすべて修正して、きれいに後始末をして、侵入の痕跡が残らないようにする。あとは、いつでも設定したユーザ名とパスワードで侵入し放題、と言うわけだ。

 ここまでとは言わないまでも、これに近い設定はありがちなのではないだろうか。似たような設定になっているとしたら、まさに相手の思うつぼである。

 このように、能動的攻撃は、とにかく攻撃者が手を動かす必要がある。しかも、自分の足跡を丹念に掃除しておかないと足がつく。が、直接攻撃のため、比較的手っ取り早い、という特徴を持っていることがわかる。

 ちなみに、ログインディレクトリを共有すると、ユーザアカウントくらいはすぐに取れる。例えば、ユーザhogeが/home/hogeをログインディレクトリにしていて、そこが共有されているとする。

 攻撃者はそのディレクトリをマウントし、”++”と書かれたファイルを.rhostsという名前で作っておく。マウントを解除し、攻撃者のコンピュータにhogeというユーザを作る。準備終了。

 攻撃者は自分のコンピュータにhogeでログインし、こうコマンドを打つ。「rlogin target_computer」と。その直後、攻撃者は対象コンピュータにhogeというユーザ名でログインしているのだ。ログインしてしまえば、攻略まではあと一歩である。

 さて、こういった、能動的攻撃には、攻撃側に若干不利な要素が存在する。それは、攻撃相手がきちんとシステムを構築していた場合、攻撃の幅が非常に狭まることである。極端な話、なんのサービスもしていない(=ポートがすべて閉じている)コンピュータを外部(=ネットワーク)から攻撃するのは事実上不可能だからである。

 であるから、能動的攻撃を防御するのは、管理者がメインとなる。管理者がセキュリティを確保する手段を熟知していれば、ほぼ対応することが可能である。もちろん、ユーザも安易なパスワードをつけない、等の最低限のセキュリティ対策は行っておく必要があることは言うまでもない。

   
前に戻る目次に戻る次に進む