1 views

実現する機能

自宅サーバーが悪用されないようにchkrootkitというrootkitを導入して、管理用ソフトが偽造されていないか常時チェックします。知らない間に自分のパソコンが悪事に使われるという事例は増加しています。メルアドやネットバンキングのIDとパスワードの窃盗を始め、政府や企業に不正アクセスを繰り返すなりすましなどがあなたのパソコンを中継して行われる危険性は、セキュリティソフトを導入していなければ100%だと覚悟してください。私のサーバーに対する不正アクセスだけで、日に数千件あります。ほとんどがポートスキャンですが、あなたのパソコンも似たような件数だと思いますよ。

chkrootkitは、既存のコマンドを使用してチェックするため、コマンド自体がrootkitを検知できないように偽造された後では防げません。なので、CentOSインストール後の初期の段階で導入しておく必要があります。

事前準備

リポジトリ導入(EPEL,RPMforge)を参照してEPELリポジトリが導入済であること

chkrootkit導入手順

(1)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!

(2)chkrootkit確認

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

(3)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に保存される。

(4)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/sed (deflated 55%)
  adding: chkrootkitcmd/uname (deflated 58%)
  adding: chkrootkitcmd/id (deflated 59%)
  adding: chkrootkitcmd/find (deflated 52%)
  adding: chkrootkitcmd/strings (deflated 60%)
  adding: chkrootkitcmd/echo (deflated 59%)
  adding: chkrootkitcmd/egrep (deflated 50%)
  adding: chkrootkitcmd/cut (deflated 54%)
  adding: chkrootkitcmd/ps (deflated 60%)
  adding: chkrootkitcmd/netstat (deflated 58%)
  adding: chkrootkitcmd/ls (deflated 57%)
  adding: chkrootkitcmd/awk (deflated 52%)
  adding: chkrootkitcmd/head (deflated 56%)

[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使用コマンド(圧縮版)削除

(5)圧縮ファイルの受信を確認・USBメモリ等に保存

下図はメールの内容。メールサーバーが構築済みでないと送信されない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください