rootkit検知ツール(chkrootkit)の導入

各種のプログラムを隠蔽したり改竄するrootkitを検知する為に「chkrootkit」を導入する。

「chkrootkit」のインストール

簡単に導入するため、パッケージよりインストールする。

Solaris# wget ftp://sunsite.tus.ac.jp/pub/sun-info/Solaris/intel/10/chkrootkit-0.45-sol10-intel-local.gz
 <= 「chkrootkit」のダウンロード
Solaris# gunzip chkrootkit-0.45-sol10-intel-local.gz <= ダウンロードしたファイルの展開
Solaris# pkgadd -d chkrootkit-0.45-sol10-intel-local <= 「chkrootkit 」のインストール
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <= 空Enter

Solaris# rehash <= パスを通す
「chkrootkit」の実行

chkrootkitコマンドにより実行する。
この時、INFECTED が出力されなければ問題ない。
ただし、「postfix」でTLSの設定を行い、ポートの465番を開けた場合、誤検知され出力されるが、問題ない。

Solaris# chkrootkit | grep INFECTED <= chkrootkitコマンド実行
Checking `bindshell'... INFECTED (PORTS:  465) <= 誤検知の為、問題ない
「chkrootkit」の自動実行

「chkrootkit」を実行するスクリプトを作成し、cronに登録して自動実行する。
この時、「postfix」の誤検知の対応も行う為、lsofをインストールする。

lsofのインストール

Solaris# wget ftp://sunsite.tus.ac.jp/pub/sun-info/Solaris/intel/10/lsof-4.74-sol10-intel-local.gz
 <= 「lsof」のダウンロード
Solaris# gunzip lsof-4.74-sol10-intel-local.gz <= ダウンロードしたファイルの展開
Solaris# pkgadd -d lsof-4.74-sol10-intel-local <= 「lsof」のインストール
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <= 空Enter

Do you want to install these as setuid/setgid files [y,n,?,q] y

スクリプトの作成

Solaris# vi chkrootkit.sh <= スクリプトファイルの作成
#!/sbin/sh

CHKROOTKIT=/usr/local/bin/chkrootkit
GREP=/usr/bin/grep
LSOF=/usr/local/bin/lsof
SED=/usr/bin/sed
CAT=/usr/bin/cat
RM=/usr/bin/rm
LOG=/var/log/chkrootkit.log
TMPLOG=/tmp/chkrootkit.log

$CHKROOTKIT > $LOG

$GREP INFECTED $LOG > $TMPLOG
if [ -n "$($GREP 465 $TMPLOG)" ]; then
    if [ -z "$($LSOF -i:465 | $GREP bindshell)" ]; then
        $SED -i '/465/d' $TMPLOG
    fi
fi

$CAT $TMPLOG
$RM -f $TMPLOG


Solaris# chmod 700 /root/chkrootkit.sh <= 作成したスクリプトに実行権限付加

スクリプトの自動実行

Solaris# crontab -e <= cronの編集
00 06 * * * /root/chkrootkit.sh <= 追加(毎日6:00にスクリプト実行)
▲ページのトップへ