萬盛學電腦網

 萬盛學電腦網 >> 病毒防治 >> 入侵監測系統的構建(chkrootkit )

入侵監測系統的構建(chkrootkit )

所謂rootkit,是一類入侵者經常使用的工具。這類工具通常非常的隱秘、令用戶不易察覺,通過這類工 具,入侵者建立了一條能夠總能夠入侵系統,或者說對系統進行實時控制的途徑。所以,我們用自由軟件chkrootkit來建立入侵監測系統,來保證對系統 是否被安裝了rootkit進行監測。
chkrootkit在監測rootkit是否被安裝的過程中,需要使用到一些操作系統本身的命令。但不排除一種情況,那就是入侵者有針對性的已經將; chkrootkit使用的系統命令也做修改,使得chkrootkit無法監測rootkit,從而達到即使系統安裝了chkrootkit也無法檢測 出rootkit的存在,從而依然對系統有著控制的途徑,而達到入侵的目的。那樣的話,用chkrootkit構建入侵監測系統將失去任何意義。對此,我 們在操作系統剛被安裝之後,或者說服務器開放之前,讓chkrootkit就開始工作。而且,在服務器開放之前,備份chkrootkit使用的系統命 令,在一些必要的時候(懷疑系統命令已被修改的情況等等),讓chkrootkit使用初始備份的系統命令進行工作。
安裝 chkrootkit
下載和安裝 chkrootkit 工具

[root@localhost ~]# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz ← 下載chkrootkit

--03:05:31-- ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz

=> `chkrootkit.tar.gz'

Resolving ftp.pangeia.com.br... 200.239.53.35

Connecting to ftp.pangeia.com.br|200.239.53.35|:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... done. ==> PWD ... done.

==> TYPE I ... done. ==> CWD /pub/seg/pac ... done.

==> PASV ... done. ==> RETR chkrootkit.tar.gz ... done.

Length: 37,140 (36K) (unauthoritative)

100%[====================================>] 37,140 5.67K/s ETA 00:00

03:05:46 (5.30 KB/s) - `chkrootkit.tar.gz' saved [37140]

[root@localhost ~]# tar zxvf chkrootkit.tar.gz  ← 展開被壓縮的源代碼

[root@localhost ~]# cd chkrootkit*  ← 進入chkrootkit源代碼的目錄

[root@localhost chkrootkit-0.46a]# make sense  ← 編譯

[root@localhost chkrootkit-0.46a]# cd ..  ← 返回上層目錄

[root@localhost ~]# cp -r chkrootkit-* /usr/local/chkrootkit  ← 復制編譯後文件所在的目錄到指定位置

[root@localhost ~]# rm -rf chkrootkit*  ← 刪除遺留的源代碼目錄及相關文件

測試 chkrootkit
然後測試 chkrootkit 是否能夠正常運行。
[root@localhost ~]# cd /usr/local/chkrootkit  ← 進入chkrootkit的目錄

[root@localhost chkrootkit]# ./chkrootkit | grep INFECTED  ← 測試運行chkrootkit

稍等片刻…如果沒有顯示“INFECTED”字樣,而直接出現命令行提示符,說明一切OK!

[root@localhost chkrootkit]# cd   ← 回到root用戶目錄


讓 chkrootkit 的監測自動化
用Shell Script編寫一段腳本,通過這個腳本讓chkrootkit的監測自動化。如有rootkit被發現的時候,發送郵件通知root用戶,並且將運行結果保存在/var/log/messages文件中。
[root@localhost ~]# vi chkrootkit  ← 建立chkrootkit自動運行腳本

#!/bin/bash

PATH=/usr/bin:/bin

TMPLOG=`mktemp`

# Run the chkrootkit

/usr/local/chkrootkit/chkrootkit > $TMPLOG

# Output the log

cat $TMPLOG | logger -t chkrootkit

# bindshe of SMTPSllHow to do some wrongs

if [ ! -z "$(grep 465 $TMPLOG)" ] && 

[ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then

sed -i '/465/d' $TMPLOG

fi

# If the rootkit have been found,mail root

[ ! -z "$(grep INFECTED $TMPLOG)" ] && 

grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root

rm -f $TMPLOG

[root@localhost ~]# chmod 700 chkrootkit  ← 賦予腳本可被執行的權限

[root@localhost ~]# mv chkrootkit /etc/cron.daily/  ← 將腳本移動到每天自動運行的目錄中

chkrootkit 相關的系統命令的備份
如前言所述,當chkrootkit使用的系統命令被入侵者更改後,chkrootkit對; rootkit的監測將失效。所以,我們事前將chkrootkit使用的系統命令進行備份,在需要的時候使用備份的原始命令,讓chkrootkit 對 rootkit進行檢測。
[root@localhost ~]# mkdir /root/commands/  ← 建立暫時容納命令備份的目錄

[root@localhost ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` 
/root/commands/ ← (連續輸入無換行)備份系統命令到建立好的目錄 [root@localhost ~]# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED 
← 用備份的命令運行chkrootkit [root@localhost ~]# tar cvf /root/commands.tar /root/commands/ ← 將命令打包 [root@localhost ~]# gzip /root/commands.tar  ← 將打包的文件壓縮 然後將壓縮後的commands.tar.gz用SCP軟件下載到安全的地方 [root@localhost ~]# rm -rf commands*   ← 為安全起見,刪除服務器端備份的系統命令及相關文件
如果以後想通過備份的原始系統命令來運行chkrootkit的時候,只需用SCP軟件將備份的命令打包壓縮文件上傳至服務器端已知位置並解壓縮,然後運行在chkrootkit的時候指定相應的目錄即可。例如,假設已經將備份上傳至root用戶目錄的情況如下:
[root@localhost ~]# tar zxvf /root/commands.tar.gz  ← 解開壓縮的命令備份

[root@localhost ~]# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED
 ← 用備份的命令運行chkrootkit
然後在運行後刪除相應遺留文件即可。

copyright © 萬盛學電腦網 all rights reserved