広告

検索

RSS RSSフィード

カレンダー

2018年12月
« 4月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

カテゴリー

最新のコメント

リンク

Scientific Linux 6で自宅サーバー構築 その6 Scientific Linux 6 にchkrootkitをインストールしてrootkit感染を検知する

投稿者:yasu 更新日時:2011年4月4日 19時25分42秒
カテゴリchkrootkit, Linux, Scientific Linux, 自宅サーバー
タグ

chkrootkitをインストールして、rootkit感染していないか自動チェックしたいと思います。

chkrootkitインストール

yumでchkrootkitインストール

# EPELリポジトリからchkrootkitをインストールします
[root@sl6 ~]# yum --enablerepo=epel -y install chkrootkit
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package chkrootkit.x86_64 0:0.49-2.el6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

============================================================
Package Arch Version Repository Size
============================================================
Installing:
chkrootkit x86_64 0.49-2.el6 epel 303 k

Transaction Summary
============================================================
Install 1 Package(s)
Upgrade 0 Package(s)

Total download size: 303 k
Installed size: 789 k
Downloading Packages:
chkrootkit-0.49-2.el6.x86_64.rpm | 303 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : chkrootkit-0.49-2.el6.x86_64 1/1

Installed:
chkrootkit.x86_64 0:0.49-2.el6

Complete!

chkrootkit実行と自動実行設定

chkrootkit実行

chkrootkitを実行してrootkitに感染していないかチェックを行います。

# rootkitのチェックを行います
[root@sl6 x86_64]# chkrootkit | grep INFECTED
Searching for Suckit rootkit... Warning: /sbin/init INFECTED

げげっ、rootkit感染を検知した!?

まだ外部公開もしていないサーバーだからrootkitされたとは考えにくいのだけれど。
「Searching for Suckit rootkit... Warning: /sbin/init INFECTED」でググってみると以下のような記事が。
Ubuntu日本語フォーラム / aptitude upgradeを実行後、chkrootkitでSuckitを検出

リブートしたら検知されなくなったって書き込みがあるので、試しにリブートしてみます。

# サーバーをリブートします
[root@sl6 x86_64]# reboot

# リブート後、再度rootkitのチェックを行います
[root@sl6 ~]# chkrootkit | grep INFECTED
[root@sl6 ~]#

今度は出なくなりました。
ひとまずよしとします。

chkrootkit自動実行設定

chkrootkitの自動実行スクリプトを作成します。
下記サイトを参考にさせていただきました。
rootkit検知ツール導入(chkrootkit) - CentOSで自宅サーバー構築

# chkrootkit定期自動実行スクリプト作成
[root@sl6 ~]# vi chkrootkit.sh

#!/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

# 保存してviエディタを終了します([:]キー[w]キー[q]キー[Enter]キーの順に押下します)

# chkrootkit定期自動実行スクリプトに実行権限を付与します
[root@sl6 ~]# chmod 700 chkrootkit.sh

# chkrootkit定期自動実行スクリプトをスケジューラに登録
[root@sl6 ~]# crontab -e
0 3 * * * /root/tripwire.sh
0 2 * * * /root/chkrootkit.sh

# 保存してviエディタを終了します([:]キー[w]キー[q]キー[Enter]キーの順に押下します)

自宅サーバー再構築 その8 CentOS 5.2 にrootkit検知ツールを導入する

投稿者:yasu 更新日時:2009年2月10日 20時13分00秒
カテゴリCentOS, chkrootkit, Linux, 自宅サーバー
タグ

今回はクラッカー対策第二弾としてrootkit対策をします。

rootkitと言うのはクラッカーがサーバーに不正侵入してもシステム管理者にみつからないようにする為のツールやコマンドの事です。
例えばシステム管理者がLinuxとかUnixサーバー上で稼働しているプロセス一覧を見ようとしてpsコマンドを実行したとします。
サーバーが既にrootkitにやられている場合、psコマンドの結果のプロセス一覧にはクラッカーが実行している不正なプロセスが表示されないようになったりするそうです。

そういった普通には見つけられない不正なツールやコマンドを検知する為に「chkrootkit」を導入したいと思います。

1.非公式リポジトリを一時有効にする
2.chkrootkitのダウンロードとインストール
3.非公式リポジトリを無効にする
4.chkrootkit実行
5.chkrootkit定期自動実行スクリプト作成およびスケジューラ登録
6.chkrootkitで使用する安全なコマンドの確保

1.非公式リポジトリを一時有効にする
「chkrootkit」はアンチウィルスソフトの「Clam AntiVirus」と同じく公式リポジトリからダウンロードできませんので、非公式リポジトリを一時有効にします。

非公式リポジトリの設定ファイルを編集します
[root@centos ~]# vi /etc/yum.repos.d/CentOS-Dag.repo

viエディタが起動するので設定ファイルを変更します
[dag]
name=CentOS-$releasever - Dag
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1 0 から 1 へ変更
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

保存してviエディタを終了します

2.chkrootkitのダウンロードとインストール

[root@centos ~]# yum -y install chkrootkit
Loading "priorities" plugin
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
* dag: ftp.riken.jp
* base: rsync.atworks.co.jp
* updates: rsync.atworks.co.jp
* addons: rsync.atworks.co.jp
* extras: rsync.atworks.co.jp
dag 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 951 B 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
0 packages excluded due to repository priority protections
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package chkrootkit.i386 0:xx.xx-xx.xxx.rf set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
chkrootkit i386 xx.xx-xx.xxx.rf dag 272 k

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 272 k
Downloading Packages:
(1/1): chkrootkit-xx.xx-x. 100% |=========================| 272 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: chkrootkit ######################### [1/1]

Installed: chkrootkit.i386 0:xx.xx-xx.xxx.rf
Complete!

3.非公式リポジトリを無効にする

[root@centos ~]# vi /etc/yum.repos.d/CentOS-Dag.repo
viエディタが起動するので設定ファイルを変更します
[dag]
name=CentOS-$releasever - Dag
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=0 1 から 0 へ変更
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

保存してviエディタを終了します

4.chkrootkit実行
インストールしたchkrootkitを実行します。
rootkitに感染している場合、実行結果に「INFECTED」と表示されるのでそれも併せて確認します。

[root@centos ~]# chkrootkit | grep INFECTED
実行後、実行結果に何も表示されなければ大丈夫です

5.chkrootkit定期自動実行スクリプト作成およびスケジューラ登録

chkrootkit定期自動実行スクリプト作成
[root@centos ~]# vi chkrootkit.sh
viエディタが起動するので定期自動実行スクリプトを作成します
#!/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


保存してviエディタを終了します

chkrootkit定期自動実行スクリプトへ実行権限付加
[root@centos ~]# chmod 700 chkrootkit.sh

chkrootkit定期自動実行スクリプトをスケジューラに登録
[root@centos ~]# crontab -e
viエディタが起動するので定期自動実行スクリプトを午前2時にスケジュール設定します
00 05 * * * /root/systemupdate.sh > /root/systemupdate.log 2>&1
00 01 * * * /root/clamav.sh
00 03 * * * /root/tripwire.sh
00 02 * * * /root/chkrootkit.sh

保存してviエディタを終了します

6.chkrootkitで使用する安全なコマンドの確保
rootkitに感染する前の安全なコマンドをバックアップして、rootkit感染時にリカバリできるようにしておきます。

バックアップ用ディレクトリを作成します
[root@centos ~]# mkdir chkrootkitcmd

安全なコマンドをバックアップディレクトリにコピーします
[root@centos ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` chkrootkitcmd/

バックアップ用ディレクトリに退避したコマンドもrootkitに感染していないか確認します
[root@centos ~]# chkrootkit -p /root/chkrootkitcmd|grep INFECTED

バックアップ用ディレクトリを圧縮します
[root@centos ~]# zip -r chkrootkitcmd.zip chkrootkitcmd/
adding: chkrootkitcmd/ (stored 0%)
adding: chkrootkitcmd/sed (deflated 54%)
adding: chkrootkitcmd/awk (deflated 51%)
adding: chkrootkitcmd/head (deflated 52%)
adding: chkrootkitcmd/uname (deflated 55%)
adding: chkrootkitcmd/ls (deflated 53%)
adding: chkrootkitcmd/ps (deflated 59%)
adding: chkrootkitcmd/id (deflated 55%)
adding: chkrootkitcmd/echo (deflated 54%)
adding: chkrootkitcmd/netstat (deflated 58%)
adding: chkrootkitcmd/strings (deflated 53%)
adding: chkrootkitcmd/cut (deflated 52%)
adding: chkrootkitcmd/find (deflated 50%)
adding: chkrootkitcmd/egrep (deflated 49%)

/root直下にバックアップしたコマンドの圧縮ファイル(chkrootkitcmd.zip)を作成したので、バックアップ用ディレクトリを削除します
[root@centos ~]# rm -rf chkrootkitcmd

mailコマンドでzipファイル添付メールを送信するのに必要なuuencodeコマンドをインストールします
[root@centos ~]# yum -y install sharutils
Loading "priorities" plugin
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
* base: rsync.atworks.co.jp
* updates: rsync.atworks.co.jp
* addons: rsync.atworks.co.jp
* extras: rsync.atworks.co.jp
0 packages excluded due to repository priority protections
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package sharutils.i386 0:xx.xx.xx-xx set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
sharutils i386 xx.xx.xx-xx base 201 k

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 201 k
Downloading Packages:
(1/1): sharutils-xx.xx.xx-xx. 100% |=========================| 201 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: sharutils ######################### [1/1]

Installed: sharutils.i386 0:xx.xx.xx-xx
Complete!

uuencodeコマンドでrootユーザ宛に/root直下にバックアップしたコマンドの圧縮ファイル(chkrootkitcmd.zip)をメール送信します
[root@centos ~]# uuencode chkrootkitcmd.zip chkrootkitcmd.zip|mail root

/root直下にバックアップしたコマンドの圧縮ファイル(chkrootkitcmd.zip)を削除します
[root@centos ~]# rm -f chkrootkitcmd.zip

■関連記事
自宅サーバー再構築 その1 導入を検討する
自宅サーバー再構築 その2 CentOS 5.2 をインストールする
自宅サーバー再構築 その3 インストールしたCentOS 5.2 にリモート接続準備
自宅サーバー再構築 その4 CentOS 5.2 インストール後の初期設定
自宅サーバー再構築 その5 CentOS 5.2 ファイル転送準備
自宅サーバー再構築 その6 CentOS 5.2 にアンチウィルスソフトを導入する
自宅サーバー再構築 その7 CentOS 5.2 にファイル改竄検知システムを導入する
自宅サーバー再構築 その8 CentOS 5.2 にrootkit検知ツールを導入する
自宅サーバー再構築 その9 CentOS 5.2 にバッファオーバーフロー攻撃対策を行う
自宅サーバー再構築 その10 CentOS 5.2 SSHサーバーを構築して外部からリモート接続&リモートファイル転送
自宅サーバー再構築 その11 CentOS 5.2 にDNSサーバーを導入して名前解決(設定編)
自宅サーバー再構築 その12 CentOS 5.2 にDNSサーバーを導入して名前解決(確認編)
自宅サーバー再構築 その13 CentOS 5.2 にLAMP環境構築(Apache、PHP編)
自宅サーバー再構築 その14 CentOS 5.2 にLAMP環境構築(MySQL編)
自宅サーバー再構築 その15 Apacheにサーバー証明書を導入する
自宅サーバー再構築 その16 CentOS 5.2 にWordPressを導入してブログサイトを構築する
自宅サーバー再構築 その17 WordPressのセキュリティ対策
自宅サーバー再構築 その18 CentOS 5.3 にNTPサーバーを導入して自動時間合わせ
自宅サーバー再構築 その19 CentOS 5.3 アンチウィルスソフトのバージョンアップ
自宅サーバー再構築 その20 CentOS 5.3 メールサーバー構築(Postfix設定編)
自宅サーバー再構築 その21 CentOS 5.3 メールサーバー構築(Dovecot設定編)
自宅サーバー再構築 その22 CentOS 5.3 メールサーバー構築(公開編)
自宅サーバー再構築 その23 CentOS 5.3 メールサーバー構築(SSL導入編)
自宅サーバー再構築 その24 CentOS 5.3 メールサーバー構築(メールアカウント作成編)
自宅サーバー再構築 その25 CentOS 5.3 メールサーバー構築(Thunderbird設定編)
自宅サーバー再構築 番外編その1 CentOS 5.3 のリリースと導入済みソフトウェアのアップデート