在针对常规的入侵检测工作中,除了应用如之前提到的Tripwire和rpm等工具外,另一个常用的工具就是chkrootkit。它的使用非常简单,但却很重要。
一、原理
chkrootkit是用来监测 rootkit 是否被安装到当前系统中的工具。
所谓 rootkit ,是一类入侵者经常使用的工具。这类工具通常非常的隐秘、令用户不易察觉,通过这类工具,入侵者建立了一条能够常时入侵系统,或者说对系统进行实时控制的途径。所以,我们要用 chkrootkit 来定时监测系统,以保证系统的安全。
像Tripwire一样,chkrootkit也是“事后诸葛亮”,其只能针对系统可能的漏洞以及已经被入侵的部分进行分析。它并没有防止入侵的功能。
二、安装
在红旗上并没有自带chkrootkit工具,您可以用下面的官方网址下载:点击
也可以直接使用我已经编译好的rpm包:
Preparing… #################################### [100%]
1:chkrootkit #################################### [100%]
※基于红旗DC 5.0 for x86系统平台
二、检测
使用非常简单:
ROOTDIR is `/'
Checking `amd'… not infected
Checking `basename'… not infected
Checking `biff'… not found
Checking `chfn'… not infected
Checking `chsh'… not infected
Checking `cron'… not infected
Checking `crontab'… not infected
Checking `date'… not infected
Checking `du'… not infected
Checking `dirname'… not infected
……
如果发现有异常,会报出“INFECTED”字样。所以,也可如此运行:
※-n 表示不检测NFS挂载的目录
三、注意事项
1、定时检测
chkrootkit自带的脚本并没有包括定时检测部分,而考虑到该工具的作用。建议编写一个脚本,并加入计划任务中。
例如:
#!/bin/bash
PATH=/usr/bin:/bin
TMPLOG=`mktemp`
# Run the chkrootkit
/usr/bin/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
打包如下:
把脚本加入crontab中:
2、误报
其实,从上面的脚本已经发现,针对465端口做了一个过滤的判断。
原因是,chkrootkit在针对一个叫bindshell的rootkit工具进行检测的时候,可能会和系统中正常的smtps服务冲突。由于bindshell和smtps都是使用465端口,造成chkrootkit的误报。
Checking `bindshell’… INFECTED (PORTS: 465)
# lsof -i:465
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
master 3633 root 98u IPv4 8509 TCP *:smtps (LISTEN)
※对于chkrootkit,它只是协助您检测,但最终问题原因,必须由管理员执行分析并解决
3、更安全的检测
对于非常重要的系统,单纯的依赖系统自身的定时检测是不足够的,建议增加:
# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED ← 用备份的命令运行chkrootkit
b)正如tripwire一样,通过远程方式进行检测;
# chkroot -r /mnt/disk ←修改默认的根目录,然后进行检测
c)结合其他检测工具,例如:Tripwire。
四、其他
1、能否检测到的rootkit
0.47版的chkrootkit能否检测到下述的rootkit工具: