9.2. 基于主机的 IDS

基于主机(host-based)的 IDS 分析几个方面来判定滥用(来自网络内部的蓄意或妄用活动)或入侵(来自外界的突破)情况。基于主机的 IDS 考查若干日志文件(内核、系统、服务器、网络、防火墙等等),并拿日志文件和常见已知攻击的内部数据库进行比较。UNIX 和 Linux 的基于主机的 IDS 大量使用 syslog 命令及其根据严重性(例如,次要的打印机错误消息相对于重要的内核警告)来区分所要记录事件的能力。安装 sysklogd 软件包就可以使用 syslog 命令。该软件包被包括在 红帽企业 Linux。它提供了系统记录功能以及搜集内核消息功能。基于主机的 IDS 过滤日志(记录网络和内核事件的日志可能会非常详细)、分析日志、使用它自己的严重性级别系统来重新给异常消息标签、并把它们收集到它自己的特殊日志以供管理员分析使用。

基于主机的 IDS 还可以校验重要文件和可执行文件的完好性。它检查敏感文件(以及管理员添加的任何文件)的数据库,并使用 md5sum(128 位算法)或 sha1sum(160 位算法)之类的消息文件摘要工具来为每个文件创建一个校验和(checksum)。然后,基于主机的 IDS 把这些校验和保存到一个纯文本文件中,并定期比较实际文件的校验和与这个纯文本文件中保存的数值。如果发现了任何不匹配之处,IDS 就会通过电子邮件或传呼机来警告管理员。这是 Tripwire 所使用的一般过程,第 9.2.1 节中对此有详细讨论。

9.2.1. Tripwire

Tripwire 是最流行的用于 Linux 的基于主机的 IDS。Tripwire, Inc. 是 Tripwire 的开发商,它们新近为 Linux 版本按照 GNU 通用公共许可证的条款开放了源码。Tripwire 在 http://www.tripwire.org/ 上可以获得。

注记注记
 

Tripwire 没有被包括在红帽企业 Linux 中,它也不被支持。本书之所以包括了对它的介绍,是想为有兴趣使用它的用户提供一个参考。

9.2.2. RPM 作为一种 IDS

RPM 软件包管理器(RPM)是另一个可以被用作基于主机的 IDS 的程序。RPM 包含各类用于查询软件包及其内容的选项。对于那些怀疑重要的系统文件和可执行文件已被修改的管理员来说,这些校验选项具有很高的价值。

以下列表详细地描述了一些可以用来校验红帽企业 Linux 系统上的文件完好性的 RPM 选项。关于使用 RPM 的完整信息,请参阅《红帽企业 Linux 系统管理指南》

重要重要
 

以下列表中的某些命令需要你把红帽 GPG 公钥导入到系统的 RPM 钥匙圈上。该钥匙会校验安装在你的系统上的软件包是否包含红帽软件包签名,从而确保这些软件包的确来自 Red Hat。你可以使用以下命令来导入钥匙(把 <version> 改成安装在你的系统上的 RPM 版本):

rpm --import /usr/share/doc/rpm-<version>/RPM-GPG-KEY

rpm -V 软件包名称

-V 选项校验已安装了的叫做“package_name”的软件包中的文件。如果该命令没有显示任何输出而退出,这就意味着其中所有文件自从最后一次 RPM 数据库更新以来都没有被修改。如果该命令给出了错误,例如:

S.5....T c /bin/ps

那么,这就说明该文件已被修改了。你需要决定是应该保留它(如果被修改的文件是 /etc 中的配置文件)还是删除它后再重新安装包含这个文件的软件包。以下列表解释了表示校验失败的这八个字符(上面例子中是 S.5....T)的含义。

  • . — 已通过这一阶段的校验测试

  • ? — 测试中发现了一份无法读取的文件,这极可能是文件权限问题

  • S — 测试中发现了一份比最初安装在系统上的文件稍大或稍小的文件

  • 5 — 测试中发现了一份和最初安装时的 md5 校验和不匹配的文件

  • M — 测试中检测到文件权限或文件类型错误

  • D — 测试中检测到主/次号码不匹配的设备文件

  • L — 测试中找到一个被改变到另一个文件路径的符号链接

  • U — 测试中找到一份用户所有者被改变的文件

  • G — 测试中找到一份组群所有者被改变的文件

  • T — 测试中遇到文件的 mtime 校验错误

rpm -Va

-Va 选项校验所有安装了的软件包,并找出校验测试中的失败之处(和 -V 选项相似),但是由于它校验每个安装了的软件包,其输出要比 -V 选项更详细。

rpm -Vf /bin/ls

-Vf 选项校验某个安装了的软件包中的单个文件。如果你打算只快速地校验一个有疑点的文件,这个选项就很有用。

rpm -K application-1.0.i386.rpm

-K 选项对于检查 RPM 软件包文件的 md5 校验和与 GPG 签名来说很有用。你可以用它来检查你想安装的软件包是否被 Red Hat 或被其它你已导入 GPG 公钥的机构签名了。没有被正确签名的软件包会显示一条和以下相似的消息:

application-1.0.i386.rpm (SHA1) DSA sha1 md5 (GPG) NOT OK
		  (MISSING KEYS: GPG#897da07a)

在安装未被签名的软件包时请务必谨慎从事,因为它们没有被 Red Hat, Inc. 批准,有可能包含有害源码。

PRM 是一个强大的工具,它所提供的诸多对安装了的软件包和 RPM 软件包文件的校验工具就足以证明这一点。我们强烈建议你在安装了红帽企业 Linux 后,把 RPM 数据库目录(/var/lib/rpm/)备份到只读介质(如光盘)上。这么做会使你能够根据只读数据库而不是你的系统上的数据库来校验文件和软件包,因为有不良企图的用户可能会破坏你的数据库来歪曲校验结果。

9.2.3. 其它基于主机的 IDS

以下列表讨论了某些其它较流行的基于主机的入侵检测系统。请参考这些工具的相应网站来获得更多关于安装和配置它们的信息。

注记注记
 

这些应用程序没有被包括在红帽企业 Linux 中,并且不被支持。本书之所以包括了对它们的介绍,是想为有兴趣使用它们的用户提供一个参考。