前のページ « | 1 | » 次のページ

chkrootkitのアラーム

2010, 07, 11

先日、以下のメールが来るようになった。
Checking `bindshell'... INFECTED (PORTS: 1008)

bindshellが仕掛けられたのかと思い、色々調べたら、どうもポート1008がrpc.statdのプロセスによって使用されていることが分かり、bindshellではなかったようなので、まずは一安心。

ポート1008が使ってるプロセスを確認
[root@server ~]# lsof -i:1008
COMMAND    PID    USER   FD   TYPE DEVICE SIZE NODE NAME
rpc.statd 2098 rpcuser    7u  IPv4   5737       TCP *:1008 (LISTEN)

rpc.statdが、rpcuserによって起動している。

バックアップしてあったchkrootkitで使用するコマンド群使って再検査を行うことに。
[root@server ~]# shutdown -r now

クライアントマシンにバックアップしてあったchkrootkitcmd.zipを、/home/higo/にアップロードしてから以下の作業を行う。
[root@server ~]# cd /home/higo/
[root@server higo]# mv -v chkrootkitcmd.zip /root
`chkrootkitcmd.zip' -> `/root/chkrootkitcmd.zip'
[root@server higo]# cd
[root@server ~]# unzip chkrootkitcmd.zip
Archive:  chkrootkitcmd.zip
   creating: chkrootkitcmd/
  inflating: chkrootkitcmd/id
  inflating: chkrootkitcmd/egrep
  inflating: chkrootkitcmd/sed
  inflating: chkrootkitcmd/netstat
  inflating: chkrootkitcmd/echo
  inflating: chkrootkitcmd/find
  inflating: chkrootkitcmd/awk
  inflating: chkrootkitcmd/head
  inflating: chkrootkitcmd/strings
  inflating: chkrootkitcmd/ps
  inflating: chkrootkitcmd/uname
  inflating: chkrootkitcmd/ls
  inflating: chkrootkitcmd/cut
[root@server ~]# ls -l ./chkrootkitcmd/
合計 1084
-rwxr-xr-x 1 root root 320416  7月 12 09:20 awk
-rwxr-xr-x 1 root root  34408  7月 12 09:20 cut
-rwxr-xr-x 1 root root  19852  7月 12 09:20 echo
-rwxr-xr-x 1 root root  85060  7月 12 09:20 egrep
-rwxr-xr-x 1 root root 151244  7月 12 09:20 find
-rwxr-xr-x 1 root root  31660  7月 12 09:20 head
-rwxr-xr-x 1 root root  22600  7月 12 09:20 id
-rwxr-xr-x 1 root root  95116  7月 12 09:20 ls
-rwxr-xr-x 1 root root 121300  7月 12 09:20 netstat
-r-xr-xr-x 1 root root  79004  7月 12 09:20 ps
-rwxr-xr-x 1 root root  51764  7月 12 09:20 sed
-rwxr-xr-x 1 root root  25892  7月 12 09:20 strings
-rwxr-xr-x 1 root root  20024  7月 12 09:20 uname

/root/chkrootkitcmd/の外部コマンドで、chkrootkitを実行。
[root@server ~]# which chkrootkit
/usr/sbin/chkrootkit
[root@server ~]# chkrootkit -p /root/chkrootkitcmd/

INFECTEDは無いようだが、INFECTEDのみ表示させてみる。
[root@server ~]# chkrootkit -p /root/chkrootkitcmd/ | grep INFECTED

INFECTEDは無かった。

rpc.statdの待ち受けポートを確認してみる。
[root@server ~]# netstat -anp|grep rpc.statd
tcp        0      0 0.0.0.0:1006                0.0.0.0:*                   LISTEN      2096/rpc.statd
udp        0      0 0.0.0.0:1000                0.0.0.0:*                               2096/rpc.statd
udp        0      0 0.0.0.0:1003                0.0.0.0:*                               2096/rpc.statd
unix  2      [ ]         DGRAM                    5427   2096/rpc.statd

rpc.statdが使ってた1008はすでに違うものになってる。

ポート1008番は、どのプロセスも使用してないことを確認。
[root@server ~]# lsof -i:1008
[root@server ~]#

再検査で使ったファイル群を削除。
[root@server ~]# rm -v -f -R ./chkrootkitcmd/
removed `./chkrootkitcmd//id'
removed `./chkrootkitcmd//egrep'
removed `./chkrootkitcmd//sed'
removed `./chkrootkitcmd//netstat'
removed `./chkrootkitcmd//echo'
removed `./chkrootkitcmd//find'
removed `./chkrootkitcmd//awk'
removed `./chkrootkitcmd//head'
removed `./chkrootkitcmd//strings'
removed `./chkrootkitcmd//ps'
removed `./chkrootkitcmd//uname'
removed `./chkrootkitcmd//ls'
removed `./chkrootkitcmd//cut'
removed directory: `./chkrootkitcmd/'

zipファイルも削除
[root@server ~]# rm -v chkrootkitcmd.zip
rm: remove 通常ファイル `chkrootkitcmd.zip'? y
removed `chkrootkitcmd.zip'

以前のコマンドでchkrootkitを実行
[root@server ~]# chkrootkit | grep INFECTED
[root@server ~]#
rootkitは検出されなかった。

rootkit検知ツール(chkrootkit)

2009, 02, 16

chkrootkit は、システムにrootkitが組み込まれていないかを検査してくれるツール。 rootkit とは、不正アクセスの痕跡を消し去り、それを隠ぺいし、さらなる標的を攻撃することを可能とするツール群。 chkrootkit は、いくつかの rootkit を検出できるが、 検出しても駆除する機能はない。しかし不正侵入検知には役立つ。

■chkrootkitのインストール
chkrootkitをインストール
[root@linux ~]# yum -y install chkrootkit


■chkrootkitの実行
chkrootkitを実行
[root@linux ~]# chkrootkit
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
・
・
・
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... user root deleted or never logged from lastlog!
Checking `chkutmp'... chkutmp: nothing deleted
実行結果中に"INFECTED"という行がなければ問題ない


■chkrootkitの定期自動実行設定
rootkitを発見したときroot宛にメールが来るように設定
chkrootkitの実行スクリプトを作成
[root@linux ~]# vi /root/chkrootkit.sh
#!/bin/sh

/usr/bin/chkrootkit > /var/log/chkrootkit_log
grep "INFECTED" /var/log/chkrootkit_log
chmod 600 /var/log/chkrootkit_log

chkrootkitの実行スクリプトに実行権限を与える
[root@linux ~]# chmod 700 /root/chkrootkit.sh

cronを編集
[root@linux ~]# crontab -e
00 02 * * * /root/chkrootkit.sh
毎日2:00にchkrootkitの実行スクリプトを実行


■chkrootkitで使用するコマンド群のコピー
chkrootkitが使用するコマンド群をコピーしておき、必要な場合にそのコマンド群でchkrootkitを実行する。
chkrootkitで使用するコマンド群の退避先ディレクトリの作成
[root@linux ~]# mkdir chkrootkitcmd

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

退避したchkrootkitでchkrootkit実行
[root@linux ~]# chkrootkit -p /root/chkrootkitcmd|grep INFECTED

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

退避先ディレクトリの削除
[root@linux ~]# rm -rf chkrootkitcmd

圧縮したzipファイルを送信するのに必要なuuencodeコマンドのインストール
[root@linux ~]# yum -y install sharutils
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: ftp.riken.jp
 * base: ftp.riken.jp
 * centosplus: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
addons                                                                       |  951 B     00:00
base                                                                         | 2.1 kB     00:00
centosplus                                                                   | 1.9 kB     00:00
epel                                                                         | 3.4 kB     00:00
extras                                                                       | 2.1 kB     00:00
updates                                                                      | 1.9 kB     00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sharutils.i386 0:4.6.1-2 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                   Arch                 Version                  Repository            Size
====================================================================================================
Installing:
 sharutils                 i386                 4.6.1-2                  base                 201 k

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

Total download size: 201 k
Downloading Packages:
sharutils-4.6.1-2.i386.rpm                                                   | 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:4.6.1-2

Complete!

圧縮したzipファイルをroot宛にメール送信
[root@linux ~]# uuencode chkrootkitcmd.zip chkrootkitcmd.zip|mail root

圧縮したzipファイルを削除
[root@linux ~]# rm -f chkrootkitcmd.zip


前のページ « | 1 | » 次のページ