ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

chkrootkit 誤検出の巻

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 の除外判定がない……


FreeBSDCVS ログを見ると、libproc は 2008/05/22 にコミットされた模様。
DTrace に必要らしい。


そうかそうか。
まぁ誤検出なら仕方ない。予行練習と思って感謝しておこう。

ルートキットが見つかった場合の注意点

こういうノウハウって意外に見かけないので知ってる範囲で。

  1. 基本はシステムの全てが信用できないと仮定して作業を進める。
    • 安全が確認できないプログラムの実行なんてもっての他。
    • 内部コマンドでも、シェルが信用できる保証がない限りダメ。
  2. コンソール画面の情報だけ確認して、コンセントから物理的に電源を落とす。
    • tty0 にログイン履歴や su の履歴などのセキュリティログが出てるので一応確認。
    • shutdown, init, rc.d が偽物でない保証はどこにもない。
    • 電源ボタンも ACPI 経由で shutdown コマンドが実行されるので同様。
  3. 安全なシステム(出来ればクリーンインストールの)環境からマウントして、被害状況を確認。
    • root 権限が乗っ取られていたら全データ廃棄。
    • ユーザ権限だけならシステムログくらいは信用できるかも?
  4. 誤検知が確認できない限りはデータだけサルベージしてクリーンインストールが一番。