第一段階:失われやすい情報の収集

図6●uptimeコマンドでコンピュータの起動時間を調べているところ
図7●whoコマンドでログイン状況を確認しているところ
図8●netstatコマンドでネットワークの接続状況を確認しているところ
図9●ifconfigコマンドでネットワーク・インタフェースの状態を調べているところ。
この例のように「PROMISC」という文字が表示されると,ネットワーク・スニファが仕掛けられている恐れがある

 コンピュータにログインする際には,決してrootでログインしてはならない。通常のユーザ権限でログインした場合でも,root権限の利用は避けるべきである。不正アクセス者がそこにいるかもしれないことを考慮して,なるべく不正アクセス者を刺激する目立つ行動は控えるように注意する。

 この段階では,揮発性の高い情報(失われやすい情報)を集めることだけが目的となる。プロセスの実行状況とネットワークの接続状況さえ得られれば十分だ。ネットワークにつなげたままの状態で調査作業を行うことはとても危険である。

 必要な情報が得られたのなら,一刻も早くコンピュータからネットワーク・ケーブルを引き抜き,ネットワークから隔離する。調査作業中に気づいたこと,不審に思ったことは何でもいいからメモ帳に記録する。ある程度作業が進行したら,メモ帳を眺めて矛盾点がないかを慎重に確認する。

 まず,PATHを始めとした環境変数を確認する。不審なディレクトリにPATHが通っていないか,不審なエイリアスが切られていないかなどを特に注意する。この際,

$ export PS1="[¥t]$"
(bashの場合)

のように実行し,以後のコマンド・プロンプトに時刻を表示させるようにしよう。こうすれば,調査で使ったコマンドの実行時刻を,容易に記録できるようになる。

 次に,uptimeコマンドでコンピュータの起動時間を調べる(図6[拡大表示])。これにより,誰かに再起動されていないかを確認する。続いて,wやwhoコマンドで現在のログイン状態を調査し,不審な利用者がコンピュータにログインしていないかを調べる(図7[拡大表示])。

 netstatコマンドを使ってネットワークの接続状態を調査し,不審なコンピュータと通信していないか,サービスを提供していないはずのポートが開いていないかなどを確認する(図8[拡大表示])。netstatコマンドでは,-nオプションを指定し,IPアドレスで表示させるとよいだろう。

 さらにifconfigコマンドを使って,ネットワーク・インタフェースの状態を調べる。図9[拡大表示]のようにインタフェースに「PROMISC」と表示されていた場合は,コンピュータにネットワーク・スニファが仕掛けられている恐れがある。

 続いて,psコマンドを使用してプロセスの実行状態を調べる。図10[拡大表示]に示したようなパラメータを指定し,できる限り詳しい情報を表示させる。この時点では軽く眺めるだけでよい。不審なプロセスが動作中でないか,syslogdのような重要なプロセスが停まっていないかなどに注意する。

 また,図11[拡大表示]のようにlsofコマンドを実行してプロセスが使用しているライブラリ・リンクやリソース情報を記録しておく。

 以上が,調査の第一段階である。ここで収集したシステム情報はコンピュータの中でも失われやすい性質を持ったものばかりである。これで,もうコンピュータをネットワークにつないでおく必要はない。すみやかにコンピュータからネットワーク・ケーブルを引き抜き,後は落ち着いてじっくりと調査作業を続ける。

図10●psコマンドでプロセスの実行状態を調べているところ
 
図11●lsofコマンドでプロセスが使用しているライブラリ・リンクやリソース情報を確認しているところ

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