chkrootkit なる、ルートキットの検出ツールがあるということで、
しばらく前に試しにインストールしていたものを、久しぶり実行してみた。
Possible t0rn v8 \(or variation\) rootkit installed
……
!?
えっ!?と思って手元の Windows マシンで chkrootkit (ver.0.49) の検出ルーチンを確認。
### t0rn v8 if [ "`find ${LIBS} -name libproc.a 2> /dev/null`" != "" -a \ "$SYSTEM" != "FreeBSD" ]
え?FreeBSD は除外!?もしかして誤検出?
ってことで1つ前の 0.48 のソースを確認。
### t0rn v8 if [ `find ${LIBS} -name libproc.a 2> /dev/null` ]
あ、FreeBSD の除外判定がない……
FreeBSD の CVS ログを見ると、libproc は 2008/05/22 にコミットされた模様。
DTrace に必要らしい。
そうかそうか。
まぁ誤検出なら仕方ない。予行練習と思って感謝しておこう。
ルートキットが見つかった場合の注意点
こういうノウハウって意外に見かけないので知ってる範囲で。
- 基本はシステムの全てが信用できないと仮定して作業を進める。
- 安全が確認できないプログラムの実行なんてもっての他。
- 内部コマンドでも、シェルが信用できる保証がない限りダメ。
- コンソール画面の情報だけ確認して、コンセントから物理的に電源を落とす。
- tty0 にログイン履歴や su の履歴などのセキュリティログが出てるので一応確認。
- shutdown, init, rc.d が偽物でない保証はどこにもない。
- 電源ボタンも ACPI 経由で shutdown コマンドが実行されるので同様。
- 安全なシステム(出来ればクリーンインストールの)環境からマウントして、被害状況を確認。
- root 権限が乗っ取られていたら全データ廃棄。
- ユーザ権限だけならシステムログくらいは信用できるかも?
- 誤検知が確認できない限りはデータだけサルベージしてクリーンインストールが一番。