|
rootになろう! |
|
|
システム防御その8
shellが利用できるプロバイダーというのがあります。これはサーバーになっている
UNIX上(NTでもtelnetで入れるときもある)でコマンド等を実行できる環境です。たいていtelnetで入ってcgiのディバックなどのために公開しているのです。これは、非常に大きなセキュリティーホールになりうるものです。
あることをすることによってroot(管理者権限)を得ることができます。こうなると(知識と技術があれば)何でもできます。システムを停止させようが踏み台にしようが、内部のネットワークを探ろうが、ファイルをすべて消すなんて芸のないこともできます。
プロバイダーではかなり制限がきついのですが、企業ではそこまで金が回らないためにやりやすくなっています。確率的にはshell=1/2rootです。
実はshellが無くてもroot権限を奪うことできます。最近では認証サーバーを攻撃することにより、できる方法が公開されました。これを使えば、ほとんどのプロバイダーに勝手にアカウントを作成したりできます。
システム防御その8
rootにはさせない
さて、shellアカウントはありますでしょうか?ある場合は注意してください、
rootになるプログラムはinternet上で公開されています。これらのプログラムは特定のプラットホーム上で動くもので、AIXならAIX用、BSDならBSD用のものがあります。これらのツール郡はある程度決まっていますので、その系統のコマンドを
root権限でないと実行できないようにしましょう。
もしも乗っ取られてしまった場合
誰がやっているかを突き止める
LAN analyzerを使って、誰がどこからつなげているかを特定しましょう。普通はtelnetもしくはbackboorを使ってログインしてくるので、telnetのパケットをそのまま取り込んで、パケットの出元を突き止めます。次に出元のIPアドレスより、
JPNIC,interNICのデータベースを使ってどの組織が管理しているかを突き止めます。その組織に直接電話をして、(メールより緊急性があってよい)たぶんそこは踏み台にされているので、調査を依頼します。うまくいけば見つかるでしょう。
とりあえず取り返す
rootのパスワードが変更されているときは、ログインできませんので、シングルモードに移行して/etc/passwdのrootをパスワード無しにします。マルチモードに移行後rootパスワードを変更します。
実ユーザーのはいった/etc/passwdを入れ直します。このとき/usr/bin/csh
/usr/bin/sh /usr/bin/bash /usr/bin/tcsh とかを
/usr/bin/zeroなど実在しないものにします。(
rootはshellが必要です)
これで、一時的にはshellが使えなくなりました。rootと取る原因となったものを調査しましょう。
telnetのアクセス制限
tcpdによってtelnet接続できるIPアドレスをあらかじめ制限しておくことによって、telnetできるIPアドレスをあらかじめ制限しておきましょう。システムを守るいい方法です。また、rootはコンソールからのみしか使えないとか。しておくのもいい手段です。