OSSEC HIDS的主要功能有日志分析、完整性检查、rootkit检测、基于时间的警报和主动响应。除了具有入侵检测系统功能外,它还一般被用在SEM/SIM(安全事件管理(SEM: Security Event Management)/安全信息管理(SIM:Security Information Management))解决方案中。因其强大的日志分析引擎,ISP(Internet service provider)(网络服务提供商)、大学和数据中心用其监控和分析他们的防火墙、入侵检测系统、网页服务和验证等产生的日志。
下载链接:http://down.51cto.com/data/149299
我们介绍了用于监视可疑网络动作的入侵检测系统(IDS)部署的几种方式,其中我提到了托管方式的入侵检测系统(HIDS),但是没有具体举例。
后来我偶尔发现了OSSEC HIDS。OSSEC是一款开源的入侵检测系统,包括了日志分析,全面检测,rook-kit检测。作为一款HIDS,OSSEC应该被安装在一台实施监控的系统中。另外有时候不需要安装完全版本得OSSEC,如果有多台电脑都安装了OSSEC,那么就可以采用客户端/服务器模式来运行。客户机通过客户端程序将数据发回到服务器端进行分析。在一台电脑上对多个系统进行监控对于企业或者家庭用户来说都是相当经济实用的。
对我来说OSSEC最大的优势在于它几乎可以运行在任何一种操作系统上,比如Windows, Linux, OpenBSD/FreeBSD, 以及 MacOS。不过运行在Windows上的客户端无法实现root-kit检测,而其他系统上的客户端都没有问题。OSSEC的手册上说OSSEC目前还不支持Windows系统下得root-kit检测,估计是正在开发中。
为了测试OSSEC,我用Ubuntu 7.04搭建了一个桌面系统。首先下载最新版本的OSSEC,另外最好也下载一个校验文件。
- # wget http://www.ossec.net/files/ossec-hIDS-latest.tar.gz
- # wget http://www.ossec.net/files/ossec-hIDS-latest_sum.txt
校验文件包含了 MD5和SHA1校验和。首先遇到的问题是校验和文件名与 OSSEC文件名不同。我修改了校验和文件名,然后测试ossec-hIDS-latest.tar.gz文件 (而不是ossec-hIDS-1.2.tar.gz),MD5校验显示‘ok’。
- # md5sum –c ossec-hIDS-latest.tar.gz
- ossec-hIDS-latest.tar.gz: OK
解压后点击安装脚本 (./install.sh) ,接着提示 OSSEC需要以root安装,接着又提示要安装 C语言编译器,好在很多Linux系统都自带 GCC。在安装时得选项包括:
- ◆Local installation
- ◆/var/ossec
- ◆Yes to email notification: myemail@mydomain.com and yes to using my SMTP server
- ◆Yes to integrity check daemon
- ◆Yes to rootcheck
- ◆Active response enabled
- ◆Firewall-drop response enabled
- ◆No additions to the whitelist
设定好后,OSSEC的编译就可以顺利进行了。安装脚本会自动检测到Ubuntu并建立正确的初始化脚本,这是OSSEC最新添加得功能,因为我曾经在OSSEC的论坛上看到很多用户都抱怨在Ubuntu下安装不方便。
那么我该怎么测试OSSEC呢? 首先是建立新的系统用户,这个可以被立即检测到:
- Received From: justin-ubuntu->syscheck
- Rule: 550 fired (level 7) -> “Integrity checksum changed.”
- Portion of the log(s):
- Integrity checksum changed for: ‘/etc/passwd’
- Size changed from ‘1504′ to ‘1554′
- Old md5sum was: ‘67ddb6269b9dc8ab219f031d8eb56dde’
- New md5sum is : ‘85335133ce515223c3d4e98f64b00b2f’
- Old sha1sum was: ‘93f6de00e26f4439813694a87decf0c6d93bb5e1′
- New sha1sum is : ‘513f08859b89dd2f36e9ac4be017b92979e116a6′
我还特意输入错误的密码来测试 SSHD检测功能。在经历了七次错误尝试后,系统拒绝了我的登录进程,并将用户添加到了hosts.deny 文件:
- Received From: justin-ubuntu->/var/log/auth.log
- Rule: 5720 fired (level 10) -> “Multiple SSHD authentication failures.”
- Portion of the log(s):
- Jun 11 19:50:16 justin-ubuntu sshd[7624]: Failed password for root from 192.168.0.201 port 51239 ssh2
- Jun 11 19:49:28 justin-ubuntu sshd[7603]: Failed password for root from 192.168.0.201 port 51238 ssh2
- Jun 11 19:49:17 justin-ubuntu sshd[7597]: Failed password for root from 192.168.0.201 port 51237 ssh2
- Jun 11 19:49:05 justin-ubuntu sshd[7591]: Failed password for root from 192.168.0.201 port 51236 ssh2
- Jun 11 19:48:52 justin-ubuntu sshd[7583]: Failed password for root from 192.168.0.201 port 51235 ssh2
- Jun 11 19:48:38 justin-ubuntu sshd[7575]: Failed password for root from 192.168.0.201 port 51234 ssh2
- Jun 11 19:48:28 justin-ubuntu sshd[7569]: Failed password for root from 192.168.0.201 port 51233 ssh2
总之,在我看来,OSSEC是一款不需要多少资源的很不错的系统管理工具。OSSEC可以读取Network Intrusion Detection 日志(snort) 以及 Apache和 IIS 得日志,从而确定你的系统有没有定期检测,以及有没有未知的入侵情况发生。当然,OSSEC有一点令我不满意,就是它没有GUI界面,管理起来不太方便。看来只有通过电邮警告或者不断查看日志得方式来判断是否有入侵发生。另外我没有发现任何有关与Nagios, Zenoss, 或Zabbix集成的信息。