事後対策手順

 では,これから不正アクセスを受けた恐れのあるコンピュータの調査方法を説明する。作業内容を,時系列に説明しよう。

事後対策に必要なツールや道具

 まず,確実に調査するための準備から始める。作業を開始する前に,(1)メモ帳とペン,(2)時計,(3)リモート・ログインできるコンピュータ,(4)scriptコマンドまたはロギング機能のあるターミナル・ソフト,(5)正しいコマンド・ファイルを用意する。

 メモ帳とペンは,調査の経過や重要なイベントなどを時間とともに記録するために必要だ。紙に書いてまとめることで,コンピュータから得られた情報の矛盾に気づくことがある。調査作業中に発見したもの,気づいたこと,すべてメモ帳に記録する。

 正確な時間を刻む時計も必ず用意する。コンピュータの内蔵時計が正確なら必要ないが,コンピュータの内蔵時計はNTP( Network Time Protocol)などで同期させていない限り,不正確になる可能性がある。また,不正アクセスを受けたことにより,内蔵時計が不正確になるかもしれない。時計を用意できないのなら,NTTの時報サービスを利用してもよい。ただ,決してコンピュータの内蔵時計の時刻を変更してはならない。ログは,コンピュータの内蔵時計を基に記録されている。コンピュータの内蔵時計と正しい時刻の差をメモに記録し,調査する際に時間差を考慮する。

 リモート・ログインできるコンピュータ,調査作業の経過を記録するためのscriptコマンド,ロギング機能のついたターミナル・ソフトも用意する。調査作業は,ネットワークからリモート・ログインする方がいくらか安全である。ローカル・コンソールからログインすると,不正アクセス者と同時にコンピュータにアクセスしてしまった場合に,不正アクセス者を脅かしてしまう可能性がある。

 scriptコマンドやロギング機能のついたターミナル・ソフトは,調査作業の記録を取るために利用する。調査作業中に,不正アクセス者によってコンピュータが破壊されてしまうかもしれない。このような場合には,記録が重要になる。

 確認作業を行うには,必要かつ正しい(改ざんされていない)コマンド・ファイルを用意しなければならない。これが最も重要である。すべてのコマンド・ファイルは,rootkitなどによって改ざんされている恐れがある。改ざんされていないことが保証されているコマンド・ファイルをフロッピ・ディスクやCD-ROMにコピーするか,FTPなどで調査対象のコンピュータに転送する。ただ,フロッピ・ディスクやCD-ROMでは,メディアをマウントする際にroot権限を利用する必要がある。この際,不正アクセス者を刺激する可能性がある。FTPなどを使って,同じ構成を持つコンピュータから転送する方が安全である。

表1●調査に必要なコマンド

 以下では,カレント・ディレクトリ(./safe/)に表1[拡大表示]のコマンド・ファイルを用意しているものとして説明を続ける。Red Hat Linuxに代表されるrpmベースのディストリビューションなら,これらに加えてrpmコマンド・ファイルも用意しておくとよい。これについては,後ほど説明する。

 最後に,http://www.chkrootkit.org/からchkrootkitを入手する。chkrootkitは,コンピュータに仕掛けられたrootkitを手軽に検出できるツールである。万全ではないが,多くの場合でrootkitに対して高い効力を発揮する(別掲記事「chkrootkitとは」を参照)。

 以上で準備は整った。では,コンピュータにログインしてみよう。これからの作業は冷静に素早く行ってほしい。どのような場面でも決して慌ててはいけない。わずかな手違いが悲惨な結果を招くことが十分に考えられる。コンピュータのわずかな異常を見逃さないように注意してほしい。不正アクセスを受けたコンピュータに接することは,不正アクセス者に直接対決を挑むのと同じくらい危険なことなのである。

表A-1●chkrootkitが動作するOS
表A-2●chkrootkit-0.36で検出できるrootkitとワーム
図A-1●chkrootkitの構築方法
図A-2●t0rnkitに感染させたコンピュータ上でchkrootkitを実行した例
表A-3●chkrootkitのパラメータ

chkrootkitとは

 rootkitが仕掛けられているかもしれないコンピュータを調査する際は,「chkrootkit」を利用することを推奨する。chkrootkitはNelson Murilo氏とKlaus Steding-Jessen氏の両氏によって開発された。「chkrootkit -- locally checks for signs of a rootkit」のサイト(http://www.chkrootkit.org/)から入手できる。原稿執筆時点で,「chkrootkit-0.36.tar.gz」が最新版である。

 chkrootkitは主要なUNIX,またはUNIXクローンで動作する。現在は表A-1[拡大表示]で示したOS上で動作することが確認されている。また,chkrootkit-0.36は表A-2[拡大表示]のrootkitやワームを検出可能である。

 chkrootkitを使用するには,Cコンパイラが必要である。アーカイブを入手し,図A-1[拡大表示]の手順に沿って構築する。実行は単純で,コマンド・プロンプトからchkrootkitと入力すればよい。

 図A-2[拡大表示]は, あえてt0rnkitに感染させたコンピュータ上でchkrootkitを実行したものである。正しく検出していることがわかるだろう。「INFECTED」と表示されている個所は,rootkitによって改ざんされた疑いがある。「not found」メッセージしか表示されなければ,コンピュータは汚染されていないことを示している。

 表A-3[拡大表示] はchkrootitのパラメータである。ここでいくつか重要なパラメータを紹介する。chkrootkitでは,-pオプションを使用することで,使用するコマンド・ファイルが収められているディレクトリのパスを指定することができる。chkrootkitは,コンピュータを調査するためにawk,cut,echo,egrep,find,head,id,ls,netstat,ps,strings,sed,unameなどのコマンド・ファイルを使用するが,それら自身が不正アクセス者によって改ざんされている可能性がある。CD-ROMやフロッピ・ディスクなど安全な場所にこれらのコマンド・ファイルが収められているのであれば,「# ./chkrootkit -p /mnt/fdd」のように実行する。これにより,信頼性の高い調査を行うことができる。

 高度な不正アクセス者によってコンピュータが改ざんされた場合は,OS自身が改ざんされていることが考えられる。このような場合は,信頼性が確認されているコンピュータに,不正アクセスを受けたコンピュータのハード・ディスクをマウントして検査することで,信頼性の高い調査を行うことが可能となる。このような調査を行う際には,-rオプションを使用する。例えば,/mnt/victimに検査するハード・ディスクをマウントした場合は,「# ./chkrootkit -r /mnt/victim」と実行する。

 残念なことに,chkrootkitはすべてのrootkitを検知する魔法のツールではない。chkrootkitの検査結果を全面的に信用してはならない。chkrootkitは,ファイルの中に既知のrootkitのデータ・パターンが存在するかを調べるツールである。このため,chkrootkitが想定していないrootkitは検出できない。同様に高度な不正アクセス者によってコンピュータが改ざんされた場合も,正しく検知できない可能性が高い。

 このように,いくつかの欠点はあるものの,chkrootkitが優れたツールであることは間違いない。また,手軽に使えることは大きな利点である。普段から,chkrootkitを使ってコンピュータを検査しておくとよいだろう。

渡辺 勝弘
汎用計算機のプログラマ・SE、原子力関係機関のネットワーク管理者を経て、現在は独立行政法人理化学研究所において、コンピュータセキュリティをテーマとした研究・開発に携わる。また同研究所のコンピュータセキュリティ環境の整備も担当するほか、執筆、セミナー講師などの活動も行う。1965年生まれ。東京都在住。家族は妻一人、犬一匹。趣味はギターの演奏と模型飛行機。Webサイトはhttp://www.hawkeye.ac/micky