【技】chkrootkit report in ホスト名

kooです。( ノ゚Д゚)ヨッ!
 
はい。今回はLinuxネタ
linux
タックスくんです。
 
まぁ、それはおいておいて。
 
絶賛稼働中のサーバで、
改ざん検知のために、chkrootkitを導入しています。
便利と言えば、便利ですがバグが存在するので、
Suckit による /sbin/init の改ざん誤検知対策が必要です。
 
件名は、「chkrootkit report in ホスト名」

本文には、

Searching for Suckit rootkit... Warning: /sbin/init INFECTED

と書かれたメールが毎日届きます。
 
本来であれば、改ざんされた場合には、届いて正しいわけですが、
あくまでも、誤検知対応として、以下の処理を行っています。
 
まずは、以下のコマンドで何も表示されないことを確認

# rpm -V `rpm -qf /sbin/init`

 
この前提条件がぶれてしまっては意味がない。
何か表示された場合は、誤検知ではない可能性が高い。
 
修正するファイルは、
/usr/lib64/chkrootkit-0.49/chkrootkit
※基本的に、バージョン違いがあるかもしれないが、私はこれでした。
 

# vi /usr/lib64/chkrootkit-0.49/chkrootkit

これで、編集します。
 
行数は前後するかもしませんが984行目あたりの記述です。
まずは、変更前の状態

 
980 ### Suckit
981 if [ -f ${ROOTDIR}sbin/init ]; then
982 if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi
983 if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME || \
984 cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1
985 then
986 echo "Warning: ${ROOTDIR}sbin/init INFECTED"
987 else
988 if [ -d ${ROOTDIR}/dev/.golf ]; then
989 echo "Warning: Suspect directory ${ROOTDIR}dev/.golf"
990 else
991 if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
992 fi
993 fi
994 fi

太字にした行に追加します。 
 
変更後は、以下の通りになります。

 
980 ### Suckit
981 if [ -f ${ROOTDIR}sbin/init ]; then
982 if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi
983 if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} HOME || \
 
984 cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1
985 then
986 if ! rpm -V `rpm -qf /sbin/init` >/dev/null 2>&1;
987 then
988 echo "Warning: ${ROOTDIR}sbin/init INFECTED"
989 fi

 
985 then
986 echo "Warning: ${ROOTDIR}sbin/init INFECTED"
fi

987 else
988 if [ -d ${ROOTDIR}/dev/.golf ]; then
989 echo "Warning: Suspect directory ${ROOTDIR}dev/.golf"
990 else
991 if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
992 fi
993 fi
994 fi

太字にした984行目から989行目の追記をしています。
なので、行番号が戻ってしまっていますが、
変更箇所は、実際のファイルと比較してみてください。
 
その後、誤検知が消えているかどうか

# chkrootkit|grep INFECTED

を叩きます。
 
私の場合は、/var/log/chkrootkit.log へ実行結果を書き出すように、shellを組んでありますので、
そのログを見ても、確認できます。
 
出てくるメッセージそのものを消したには、変わりませんが

rpm -V `rpm -qf /sbin/init`

という処理を入れて、誤検知を回避させた
 
という事です。

通勤時間が長いと、こういう単純な処理を後回しにしてしまう。。。。
 
いけないですねぇ(´Д` )
やらなきゃいけないタスクは、

こんなに大きくないですが、マグネット式の黒板に書いてサーバラックに貼っています。
週末まとめてやるタスクとして。
 

ツイートツイート

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です