1 views
■目的
自宅サーバーが悪用されないようにchkrootkitというrootkitを導入して、管理用ソフトが改造されていないか常時チェックします。
chkrootkitは、既存のコマンドを使用してチェックするため、コマンド自体がrootkitを検知できないように改竄された後では防げません。なので、Linuxインストール後の初期の段階で導入しておくべきです。
■事前準備
リポジトリ導入(EPEL,RPMforge)を参照してEPELリポジトリが導入済であること
■chkrootkitインストール
[root@centos ~]# yum --enablerepo=epel install chkrootkit ← chkrootkitインストール
・・・
Install 1 Package(s)
Total download size: 303 k
Installed size: 789 k
Is this ok [y/N]: y ← yを入力
・・・
Installed:
chkrootkit.x86_64 0:0.49-2.el6
Complete!
|
|
■chkrootkit確認
[root@centos ~]# chkrootkit | grep INFECTED ← chkrootkit実行
上記chkrootkit実行結果として"INFECTED"という行が表示されなければ問題なし
|
|
■chkrootkit定期自動実行設定
[root@centos ~]# vi chkrootkit ← 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
# rootkit検知時のみroot宛メール送信
[ ! -z "$(grep INFECTED $TMPLOG)" ] &&
grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root
rm -f $TMPLOG
[root@centos ~]# chmod 700 chkrootkit ← chkrootkit実行スクリプトへ実行権限付加
[root@centos ~]# mv chkrootkit /etc/cron.daily/
← chkrootkit実行スクリプトを毎日自動実行されるディレクトリへ移動
|
|
これで毎日定期的にrootkitがインストールされていないかチェックされ、インストールされていた場合はroot宛にメールが届くようになる。また、chkrootkitの実行結果は/var/log/messagesに保存される。
|
■chkrootkitで使用する安全なコマンドの確保
chkrootkitが使用するコマンド群が既に改竄されていた場合、rootkitを正常に検出できなくなるので、chkrootkitが使用するコマンド群をコピーしておき、必要な場合にはそのコマンド群を使用してchkrootkitを実行する。
|
[root@centos ~]# mkdir chkrootkitcmd ← chkrootkit使用コマンド退避先ディレクトリ作成
[root@centos ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` chkrootkitcmd/
← chkrootkit使用コマンドを退避先ディレクトリへコピー
[root@centos ~]# chkrootkit -p /root/chkrootkitcmd|grep INFECTED ← 退避したchkrootkit使用
コマンドを使用してchkrootkit実行。"INFECTED"という行が表示されなければ問題なし
[root@centos ~]# zip -r chkrootkitcmd.zip chkrootkitcmd/ ← chkrootkit使用コマンド退避先
ディレクトリ圧縮
adding: chkrootkitcmd/ (stored 0%)
adding: chkrootkitcmd/head (deflated 52%)
adding: chkrootkitcmd/ps (deflated 58%)
adding: chkrootkitcmd/find (deflated 51%)
adding: chkrootkitcmd/awk (deflated 52%)
adding: chkrootkitcmd/cut (deflated 51%)
adding: chkrootkitcmd/egrep (deflated 49%)
adding: chkrootkitcmd/strings (deflated 57%)
adding: chkrootkitcmd/ls (deflated 55%)
adding: chkrootkitcmd/echo (deflated 54%)
adding: chkrootkitcmd/uname (deflated 54%)
adding: chkrootkitcmd/sed (deflated 54%)
adding: chkrootkitcmd/id (deflated 54%)
adding: chkrootkitcmd/netstat (deflated 57%)
[root@centos ~]# rm -rf chkrootkitcmd ← chkrootkit使用コマンド退避先ディレクトリ削除
[root@centos ~]# yum -y install sharutils ← mailコマンドでzipファイル添付メールを送信するの
に必要なuuencodeコマンドインストール
Installed:
sharutils.x86_64 0:4.7-6.1.el6
Complete!
[root@centos ~]# uuencode chkrootkitcmd.zip chkrootkitcmd.zip|mail root
← chkrootkit使用コマンド(圧縮版)をroot宛にメール送信
[root@centos ~]# rm -f chkrootkitcmd.zip ← メールが届き圧縮ファイルを保管したら
chkrootkit使用コマンド(圧縮版)削除
|
|
■圧縮ファイルの受信を確認・USBメモリ等に保存
下図はメールの内容。メールサーバーが構築済みでないと送信されない。
コメントを残す