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

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

last update 2000/9/3

簡易的な攻撃方法の分類

パスワード類推

 まず、一番単純で、なおかつ成功の暁には被攻撃者が最も深刻なダメージを被る攻撃である、パスワードの類推による攻撃について書いてみる。

 これは3種類の攻撃スタイルがある。まず、最も簡単にできるが、攻撃者が非常に苦労する方法として、blute force攻撃がある。これは、まさに「下手な鉄砲数打ちゃ当たる」を地でいく手法である。つまり、パスワードをひたすら試していく、という地道な攻撃である。

 この攻撃の長所は、「いつかは苦労が報われる」事である。ただし、いつ報われるかは神のみぞ知る、と言うことになる。短所は、非常に時間がかかることと、被攻撃者が攻撃を受けている、と言うことをすぐに見つけてしまうことである。攻撃をする際に、必ずコンピュータに接続することになるため、ログにその内容が逐一記載されるためである。

 この体力勝負の攻撃を防ぐのは、2つの手法がある。一つは、ログをきちんと監視し、不審なアクセスがないか調べることと、頻繁にパスワードを変更することである。パスワードをすべて試すのに100日かかるとして、もし、被攻撃者が50日間隔でパスワードを替えているとどうなるか、運がよくない限り、パスワードを見つけることが至難の業になることは明らかであろう。また、ログにはれっきとした証拠が残っているため、攻撃の有無もすぐにわかり、対策しやすいということになる。

 もちろん、今どきその様な手段で攻撃しているようなものはいないと思うのだが。

 次に、以降で説明する、設定ミスにも関係するが、デフォルトアカウントとデフォルトパスワードの組み合わせを見つける、と言う方法がある。これは、コンピュータに最初から入っているユーザ名と、やはり最初から入力されたパスワードを試す、と言う方法だ。

 UNIXコンピュータにはlpや、uucpなど、インストール直後にいくつかのユーザ名が設定されている。初期の(と言ってもつい最近までそうだった)UNIXコンピュータの中には、これらにパスワードが入力されていない、というものがあった。もちろん、きちんと設定する(パスワードを設定するなど)事により、この問題は防ぐことができるが、管理者がこのことを忘れていた場合、労せずしてコンピュータにアクセスすることができる、と言うわけだ。

 また、ネットワーク機器の一つである、ルーターの中には、ユーザ名とパスワードが入っているものがある。これらもパスワードやユーザ名を変更できるのだが、多くの管理者がこれを忘れている。このため、デフォルトユーザ名、デフォルトパスワードの組み合わせで侵入でき、ルーターの制御ができるようになってしまう。

 これらの攻撃は、オールオアナッシング、つまりのるかそるかの一発勝負であるため、ログにも1回分(多くても数回)の痕跡しか残らない。このため、ログをきちんと監視していないと攻撃されたことすらわからない、と言う状態になってしまうのだ。

 しかし、対処方法はあきれるほど簡単である。パスワードを変更したり、ユーザ名を変更してしまえばいいのだ。あとは、ログをきちんと監視していればいい。こういった、単純な行為を管理者が怠るとき、不正侵入は起こるのである。

 最後に、攻撃する前に若干のリスクを負うことになるものの、いざ成功すると、計り知れない効果を生むものとして、パスワードファイルを入手し、そのファイルを元にパスワードを調べる、と言うものがある。

 UNIXでは/etc/passwd、Windows(NT)なら例えばc:\winNT\system32\config\SAMと言うファイルになる。これらのファイルを入手し、パスワードクラッキングツールを用いてパスワードを調べるのだ。ただし、先の/etc/passwdにはパスワードがそのまま載っているのではなく、暗号化されたパスワードが書いてあるため、すぐにはパスワードを調べることは当然できない。。

 そこで登場するのがパスワードクラッキングツール。これは、パスワードファイルと、辞書と呼ばれる、ありがちなパスワードを記したファイルを元にパスワードを類推していく、と言うものである。。

 最も簡単に破られるパスワードとして「joeパスワード」がある。これは、ユーザ名=パスワードとなっているものを指している。また、一般の辞書に記載されているもの、例えばsurvive、等というものもすぐに破ることができる。また、yamada1等のように、文字をちょっと追加したものも同様である。

 攻撃者が所有している辞書が70万語〜100万語規模のものである場合、ありがちな名称、キーボードをはじから順に打ったものなど、思いつきそうなパスワードはほぼ網羅されている、と言ってもよい。しかもこの辞書は、作り替えが自由で、インターネット上で簡単に入手できる。

 また、もし被攻撃者が数字だけのパスワードを使用していた場合(時間はかかるが英文字が入っていてもできるだろう)には、コンピュータがパスワードファイルを参考に、先に示したblute force攻撃をする事でパスワードを類推することが可能となる。

 パスワードが攻撃者に知られてしまった場合、そのシステムは攻撃者の手にわたった、と言ってよい。つまり、パスワードファイルを盗まれた、と言うことは事実上、システムも盗まれた、と言うことになると言える。

 ちなみに、UNIXマシンは/etc/passwdを入手するのは決して難しいものではない。ちょっとした設定ミスが原因でパスワードファイルを盗られることがある。例えば先に示したmountd攻撃で、”/”をマウント可能としていた場合、パスワードファイルは数十秒で入手可能である。

 Windows(NT)は、物理的にシステムに触れることができれば可能である。フロッピーディスクに(懐かしい)DOSを入れてシステムを強制的に再スタートさせ、DOSコンピュータとして起動し、ファイルをコピーすればよい。後は家に帰ってパスワードクラッキングツールに任せればよい。

 さて、これらの攻撃に対抗するためにはどうしたらよいのか。まず、パスワードファイルを盗まれないようにするのが第一である。部外者がパスワードファイルにアクセスできないように、共有設定などに注意を払うことである。

 また、UNIXマシンにおいては、パスワードファイルはすべてのユーザが読み出すことのできるファイルになっている。このため、多くのUNIXマシンでは/etc/passwdにパスワード(を暗号化したもの)を書き込まず、/etc/shadowと言うファイルに書き込むように設定できるようになっている。このファイルはrootユーザのみが読み出し可能となっており、より安全となっている。さらに物理的にコンピュータにアクセスできるような環境にしない、などの方策を取ることで、パスワードを盗まれる、と言う可能性はさらに低くなるだろう。

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