Rootkit ってのは、ファイルやプロセス、レジストリキー、ネットワーク接続を隠してしまうステルスプログラムで、Rootkitに感染してしまうと他のマルウェアの検出や駆除がより困難になってしまう厄介なものだ。
そのヤバい Rootkit に感染していないか検出してくれるツール chkrootkit の導入手順をまとめただけ。
これはサーバーインストール初期に入れておいた方がいいです。
1. chkrootkit をインストール
# yum --enablerepo=epel install chkrootkit
※もし「Error getting repository data for epel, repository not found」とでたら、「# yum -y install epel-release」で、Fedora プロジェクトが提供する RHEL 用にビルドされたスペシャルパッケージを配布する EPEL を追加する。
2. chkrootkit 実行して、Rootkit に感染していないか調査
# chkrootkit | grep INFECTED
実行結果に "INFECTED" という表示されなければ検知されなかったということなので、問題ない。
3. cron で毎日チェックするように設定する
# vi /etc/cron.daily/chkrootkit
#!/bin/bash PATH=/usr/bin:/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 # upstartパッケージ更新時のSuckit誤検知対応 if [ ! -z "$(grep Suckit $TMPLOG)" ] && \ [ -z $(rpm -V `rpm -qf /sbin/init`) ]; then sed -i '/Suckit/d' $TMPLOG fi # rootkit検知時のみroot宛メール送信 [ ! -z "$(grep INFECTED $TMPLOG)" ] && \ grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root rm -f $TMPLOG
4. chkrootkit に実行権限を付与する
# chmod 700 /etc/cron.daily/chkrootkit