■chkrootkitインストール
[root@server1 ~]# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz ← chkrootkitダウンロード [root@server1 ~]# tar zxvf chkrootkit.tar.gz ← chkrootkit展開 [root@server1 ~]# mkdir -p ~/bin && mv chkrootkit-0.50/chkrootkit ~/bin ← chkrootkitを移動 [root@server1 ~]# rm -rf chkrootkit-0.50/ ← chkrootkit展開先ディレクトリを削除 [root@server1 ~]# rm -f chkrootkit.tar.gz ← ダウンロードしたchkrootkitを削除
■chkrootkit確認
[root@server1 ~]# chkrootkit | grep INFECTED ← chkrootkit実行 上記chkrootkit実行結果として"INFECTED"という行が表示されなければ問題なし
■chkrootkit定期自動実行設定
[root@server1 ~]# vi /etc/cron.daily/chkrootkit ← chkrootkit実行スクリプトを毎日自動実行されるディレクトリへ作成 #!/bin/bash PATH=/usr/bin:/bin:/root/bin TMPLOG=`mktemp` # chkrootkit実行 chkrootkit > $TMPLOG # ログ出力 cat $TMPLOG | logger -t chkrootkit # SMTPSのbindshell誤検知対応 if [ ! -z "$(grep 465 $TMPLOG)" ] && \ [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then sed -i '/465/d' $TMPLOG fi # rootkit検知時のみroot宛メール送信 [ ! -z "$(grep INFECTED $TMPLOG)" ] && \ grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root rm -f $TMPLOG [root@server1 ~]# chmod 700 /etc/cron.daily/chkrootkit ← chkrootkit実行スクリプトへ実行権限付加
これで毎日定期的にrootkitがインストールされていないかチェックされ、インストールされていた場合はroot宛にメールが届くようになる。また、chkrootkitの実行結果は/var/log/messagesに保存される。
■chkrootkitで使用する安全なコマンドの確保
chkrootkitが使用するコマンド群が既に改竄されていた場合、rootkitを正常に検出できなくなるので、chkrootkitが使用するコマンド群をコピーしておき、必要な場合にはそのコマンド群を使用してchkrootkitを実行する。
chkrootkit使用コマンド退避先ディレクトリ作成 [root@server1 ~]# mkdir chkrootkitcmd chkrootkit使用コマンドを退避先ディレクトリへコピー [root@server1 ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed ssh uname` chkrootkitcmd/ 退避したchkrootkit使用コマンドを使用してchkrootkit実行 [root@server1 ~]# chkrootkit -p /root/chkrootkitcmd|grep INFECTED chkrootkit使用コマンド退避先ディレクトリ圧縮 [root@server1 ~]# zip -r chkrootkitcmd.zip chkrootkitcmd/ chkrootkit使用コマンド退避先ディレクトリ削除 [root@server1 ~]# rm -rf chkrootkitcmd mailコマンドでzipファイル添付メールを送信するのに必要なuuencodeコマンドインストール [root@server1 ~]# yum -y install sharutils chkrootkit使用コマンド(圧縮版)をroot宛にメール送信 [root@server1 ~]# uuencode chkrootkitcmd.zip chkrootkitcmd.zip|mail root chkrootkit使用コマンド(圧縮版)削除 [root@server1 ~]# rm -f chkrootkitcmd.zip
■Suckit誤検知の修正
Suckit による /sbin/init の改ざん誤検知対策
[root@server1 ~]# chkrootkit | grep INFECTED Searching for Suckit rootkit... Warning: /sbin/init INFECTED
chkrootkitの修正
[root@server1 ~]# vi /root/bin/chkrootkit ### Suckit if [ -f ${ROOTDIR}sbin/init ]; then if [ "${QUIET}" != "t" ];then printn "Searching for Suckit rootkit... "; fi if [ ${SYSTEM} != "HP-UX" ] && ( ${strings} ${ROOTDIR}sbin/init | ${egrep} 'HOME=' || \ cat ${ROOTDIR}/proc/1/maps | ${egrep} "init." ) >/dev/null 2>&1 then if [ "`md5sum ${ROOTDIR}sbin/init | cut -d ' ' -f 1`" = "`grep 'sbin/init$' /sbin/init | cut -d ' ' -f 1`" ] then echo "Warning: ${ROOTDIR}sbin/init INFECTED" fi else if [ -d ${ROOTDIR}/dev/.golf ]; then echo "Warning: Suspect directory ${ROOTDIR}dev/.golf" else if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi fi fi fi
chkrootkit確認
[root@server1 ~]# chkrootkit | grep INFECTED "INFECTED"という行が表示されなくなった