rootkit検知ツール導入(chkrootkit)

最終更新日: 2014.03.29

<<トップページ <<新着情報 <<逆引き集 <<アンケート <<リンク集 <<サイト内検索 <<CentOSで自宅サーバー構築 <<Scientific Linuxで自宅サーバー構築

■概要

chkrootkitというrootkit検知ツールを導入して、rootkitがLinuxサーバーにインストールされてしまっていないかチェックする。
chkrootkitは、以下のコマンドを使用してチェックするため、コマンド自体がrootkitを検知できないように改竄されてからでは意味がないので、Linuxインストール後の初期の段階で導入しておくのが望ましい。

【chkrootkitが使用するコマンド】
awk, cut, echo, egrep, find, head, id, ls, netstat, ps, strings, sed, uname

なお、chkrootkitが検知できるのは既知のrootkitのみであり、新たなrootkitの検知はできない。
また、rootkitが設置されていないにもかかわらず、chkrootkitが誤ってrootkitを検知したとアラームをあげる場合もあるので、chkrootkitによるrootkitの検知結果は参考程度としておく。



■chkrootkitインストール

(1)chkrootkitインストール(FC4,FC5,FC6,F7,F8,F9,F10,F11,F12,F13,F14,F15の場合)
[root@fedora ~]# yum -y install chkrootkit ← chkrootkitインストール

(2)chkrootkitインストール(FC3の場合)
[root@fedora ~]# vi /etc/yum.repos.d/fedora-extras.repo ← Fedora Extras用リポジトリ設定ファイル作成
[extras]
name=Fedora Extras - $releasever - $basearch
baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/$releasever/$basearch/
gpgcheck=1
gpgkey=http://download.fedora.redhat.com/pub/fedora/linux/extras/RPM-GPG-KEY-Fedora-Extras

[root@fedora ~]# yum -y install chkrootkit ← chkrootkitインストール

(3)chkrootkitインストール(FC2の場合)
[root@fedora ~]# wget ftp://ftp.freshrpms.net/pub/dag/packages/chkrootkit/chkrootkit-0.46a-2.1.fc2.rf.i386.rpm
 ← chkrootkitダウンロード

[root@fedora ~]# rpm -ivh chkrootkit-0.46a-2.1.fc2.rf.i386.rpm ← chkrootkitインストール

[root@fedora ~]# rm -f chkrootkit-0.46a-2.1.fc2.rf.i386.rpm ← ダウンロードしたchkrootkitを削除

(4)chkrootkitインストール(FC1の場合)
[root@fedora ~]# wget ftp://ftp.freshrpms.net/pub/dag/dries/packages/chkrootkit/fc1-i386/chkrootkit-0.46a-2.1.fc1.rf.i386.rpm
 ← chkrootkitダウンロード

[root@fedora ~]# rpm -ivh chkrootkit-0.44-0.fdr.2.2.i386.rpm ← chkrootkitインストール

[root@fedora ~]# rm -f chkrootkit-0.46a-2.1.fc1.rf.i386.rpm ← ダウンロードしたchkrootkitを削除

■chkrootkit確認

[root@fedora ~]# chkrootkit|grep INFECTED ← chkrootkit実行
上記chkrootkit実行結果として"INFECTED"という行が表示されなければ問題なし

■chkrootkit定期自動実行設定

[root@fedora ~]# vi chkrootkit.sh ← chkrootkit実行スクリプト作成
#!/bin/bash

# chkrootkit実行
chkrootkit > /var/log/chkrootkit.log 2>&1

# SMTPSのbindshell誤検知対応
TMPLOG=`mktemp`
grep INFECTED /var/log/chkrootkit.log > $TMPLOG
if [ ! -z "$(grep 465 $TMPLOG)" ]; then
    if [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
        sed -i '/465/d' $TMPLOG
    fi
fi

# upstartパッケージ更新時のSuckit誤検知対応
if [ ! -z "$(grep Suckit $TMPLOG)" ] && \
   [ -z $(rpm -V `rpm -qf /sbin/init`) ]; then
        sed -i '/Suckit/d' $TMPLOG
fi

# chkrootkit実行結果にINFECTED行があった場合のみroot宛メール送信
if [ -s $TMPLOG ]; then
    cat $TMPLOG|mail -s "chkrootkit report in `hostname`" root
fi

rm -f $TMPLOG

[root@fedora ~]# chmod 700 chkrootkit.sh ← chkrootkit実行スクリプトに実行権限付加

[root@fedora ~]# mv chkrootkit.sh /etc/cron.daily/ ← 毎日自動実行されるディレクトリへ移動
これで毎日自動的にrootkitがインストールされていないかチェックし、インストールされていた場合はroot宛にメールが届くようになる。また、chkrootkitの実行結果は/var/log/chkrootkit.logに保存される。

■chkrootkitで使用する安全なコマンドの確保

chkrootkitが使用するコマンド群が既に改竄されていた場合、rootkitを正常に検出できなくなるので、chkrootkitが使用するコマンド群をコピーしておき、必要な場合にはそのコマンド群を使用してchkrootkitを実行する。
[root@fedora ~]# mkdir chkrootkitcmd ← chkrootkit使用コマンド退避先ディレクトリ作成

[root@fedora ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` chkrootkitcmd/
 ← chkrootkit使用コマンドを退避先ディレクトリへコピー

[root@fedora ~]# chkrootkit -p /root/chkrootkitcmd|grep INFECTED
 ← 退避したchkrootkit使用コマンドを使用してchkrootkit実行

[root@fedora ~]# zip -r chkrootkitcmd.zip chkrootkitcmd/ ← chkrootkit使用コマンド退避先ディレクトリ圧縮
  adding: chkrootkitcmd/ (stored 0%)
  adding: chkrootkitcmd/head (deflated 53%)
  adding: chkrootkitcmd/netstat (deflated 58%)
  adding: chkrootkitcmd/find (deflated 50%)
  adding: chkrootkitcmd/sed (deflated 54%)
  adding: chkrootkitcmd/strings (deflated 53%)
  adding: chkrootkitcmd/ps (deflated 59%)
  adding: chkrootkitcmd/cut (deflated 53%)
  adding: chkrootkitcmd/uname (deflated 54%)
  adding: chkrootkitcmd/ls (deflated 53%)
  adding: chkrootkitcmd/echo (deflated 56%)
  adding: chkrootkitcmd/id (deflated 55%)
  adding: chkrootkitcmd/egrep (deflated 50%)
  adding: chkrootkitcmd/awk (deflated 52%)

[root@fedora ~]# rm -rf chkrootkitcmd ← chkrootkit使用コマンド退避先ディレクトリ削除

[root@fedora ~]# yum -y install sharutils
 ← mailコマンドでzipファイル添付メールを送信するのに必要なuuencodeコマンドインストール

[root@fedora ~]# uuencode chkrootkitcmd.zip chkrootkitcmd.zip|mail -s chkrootkitcmd root
 ← chkrootkit使用コマンド(圧縮版)をroot宛にメール送信

[root@fedora ~]# rm -f chkrootkitcmd.zip ← chkrootkit使用コマンド(圧縮版)削除




▲このページのトップへ戻る

LPIロゴ Copyright© 2012 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします