ログイン状況調査の注意点
利用者のログイン状況を調査する際には,以下のような点に注意する。
(1)不審なアカウントの使用
多くのLinuxシステムでは,lp,nobody,gamesなどのアカウントがインストール直後からシステム上に存在する。通常の運用において,これらのアカウントがログインに使われることはない。もし,これらのアカウントでコンピュータにログインした形跡が発見されたら,不正アクセスを受けた可能性が高いと考えるべきである。
(2)登録した覚えのないアカウント
不正アクセス者によって/etc/passwdファイルが改ざんされ,見知らぬアカウントが追加されていることがよくある。見知らぬアカウントを使用してコンピュータにログインした形跡が発見された場合は,必ず/etc/passwdファイルに不審なアカウントが存在する。
図18●筆者が実際に不正アクセスを受けたコンピュータから採取した/etc/passwdファイル |
図18[拡大表示]は,筆者が実際に不正アクセスを受けたコンピュータから採取した/etc/passwdファイルである。最後の二つのエントリ「sabu」と「wwww」が,不正アクセス者によって追加されたものである。shadowパスワード・ファイルを使用しているのにもかかわらず,/etc/passwdにパスワードが記述され,ユーザID(UID)とグループID(GID)がシステム管理者権限にセットされていることに注意してほしい。このような異常個所の存在に注意する必要がある。
(3)ログイン時間や接続元の不審
たとえそのコンピュータの正しい利用者であっても,ログインの記録には注意しなければならない。ログイン時間,接続元のネットワークを慎重に確認し,少しでも不審な点があればその利用者に問い合わせ,事実を確認する必要がある。
第一段階の結果を再確認
ここで,第一段階で集めたシステム情報を分析しよう。
まず,uptimeコマンドで調べたコンピュータの起動時間は正しいだろうか。コンピュータを最後に再起動したのは何時だったのかを思い出し,現在の起動時間と矛盾していないかを確認する。不審な点があれば,後で調べるdmesgとbootlogなどに注意する。
続いて,whoコマンドによって調べたログイン状況を再確認する。ログインしている利用者に不審な点はないだろうか。アクセス元のネットワークは正しいか。その時間にログインしているべきだろうか。netstatコマンドで調べたネットワークの情報は重要である。コンピュータがrootkitなどによって操られていなければ,不正アクセス者によるコンピュータへのアクセスを確認できる。何者かが不審なポートにアクセスしていないか,1024より大きいハイポートで何らかのプログラムが待ち受け状態(リスン)になっていないかを見る。不審な点を発見したら,そのポートのオーナ・プロセス(所有しているプロセス)を調べる。ほとんどのLinuxでは,ポートのオーナ・プロセスを知るために,次のようなコマンドを用意している。
| ||
| ||
|
(1)fuserコマンド
fuserコマンドに,以下のようなパラメータを指定することで,ポートのオーナ・プロセスを調べることができる(図19[拡大表示])。
# fuser -vn <プロトコル><ポート番号>
(2)lsofコマンド
lsofコマンドの-iオプションでも,ポートのオーナ・プロセスを調べることができる(図20[拡大表示])。
(3)netstatコマンド
netstatコマンドで-pオプションを指定することにより,ポートごとのオーナ・プロセスを調べることができる。図21[拡大表示]の例では,ポートをサービス名で表示する機能を無効にし,待ち受けポートだけを表示させるために-pnlのパラメータを与えている。
次に,psコマンドから得られたプロセス情報を調べる。見知らぬプロセスが動いてないか,またプロセスの実行時間に注意する。httpdやsshdなどのようにサービスを提供するプロセス以外で長時間実行しているものが存在しないか,逆にサービスを提供しているプロセスで実行時間が短いもの,一般の利用者が長時間実行しているプロセスなどにも注意する。
lsofコマンドでは,各プロセスがどのようなライブラリを使用しているか,どのファイルをオープンしているか,何番のネットワーク・ポートを使用しているかなどを知ることができる。psコマンドの実行結果と照らし合わせて,情報に矛盾点がないかを注意深く調べる。一部のrootkitや,改ざんされたシステムでは,psコマンドとlsofコマンドの出力結果が矛盾していることがある。
渡辺 勝弘 |