完整性是安全要求的基本要求之一,本文将向读者详细介绍如何利用开源完整性检测工具tripwire来检查系统的完整性. 一.系统的完整性 我们知道,系统的正常运行要靠系统程序的正常运转,而程序的运行又与其可执行文件休戚相关.所以,维护系统完整性是确保系统安全的一项基本工作.我们这里的系统完整性是指系统中可执行文件的完整性,也就是说系统中的程序文件没被非法修改. 如果可执行文件被恶意修改的话,如改变.插入或删除等,将直接威胁到系统的安全性.大多数情况下,黑客渗入到系统后会立即修改某些系统文件以创建后门,如用准备好的替代物换掉系统中原有的/bin/login文件以便使其不用口令便能登陆系统;然后再修改某些文件,例如/bin/ls等,以便隐藏其行径.如果我们没能发现这些改变的话,那无异于身处险境却还以为很安全,这就为黑客的长期入侵提供了非常有利的条件,同时也意味着我们的损失将更大!为了改变这种被动的局面,我们需要一种文件完整性检查工具,使得当系统文件被恶意修改后能及时发现,从而为进一步处理创造条件.
二.tripwire概述 tripwire的运行机理 tripwire是一款最为常用的开放源码的完整性检查工具,它生成目标文件的校验与并周期性的检查文件是否被更改.下面我们简单介绍一下tripwire的运行机理.与大多数完整性检查程序相同,对于需要监视的文件,tripwire会使用校验与来为文件的某个状态生成唯一的标识(又称为"快照"),并将其存放起来以备后用.当tripwire程序运行时,它先计算新的标识,并于存放的原标识加以比较,如果发现不匹配的话,它就报告系统管理人员文件已经被修改.接下来,系统管理员就可以利用这个不匹配来判断系统是否遭到了入侵.例如,如果tripwire已经为/bin/login与/bin/ls存放了快照,那么对它们的尺寸.inode号.权限以及其他属性的任何修改,都逃不过tripwire的火眼金睛.尤其是对于文件内容的修改,即使只改变了一个字节,tripwire也能察觉得到,因为校验与是针对文件整体的. 通过对以上运行机制的了解我们不难发现,完整性检查工具的安装时机非常重要,最好是在交付用户使用与连入网络之前的linux系统初装时进行.因为完整性检查工具只有保留了系统文件的初始状态(快照),才能确保系统文件的完整性;如果在系统使用一段时间后再取其快照的话,它很可能已经不再是原系统文件的映象(如已经遭到破坏),所以这时的完整性检测的可靠性已经打了折扣. tripwire的组成 tripwire主要由策略与数据库组成.策略不仅指出tripwire应检测的对象即文件与目录,而且还规定了用于鉴定违规行为的规则.一般情况下,对于/root./bin与/lib目录及其中文件的任何修改都应视为违规行为.数据库则用来存放策略中规定的检测对象的快照.只要建立了策略与数据库,我们就可以随时用快照来比较当前的文件系统,然后生成一个完整性检测报告,从而判断系统的完整性是否受到攻击.除了策略与数据库外,tripwire还有一个配置文件,用以控制数据库.策略文件与tripwire可执行程序的位置等. 为了防止被篡改,tripwire对其自身的一些重要文件进行了加密与签名处理.这里涉及到两个密钥:site密钥与local密钥.其中,前者用于保护策略文件与配置文件,如果多台机器具有相同的策略与配置的话,那么它们就可以使用相同的site密钥;后者用于保护数据库与报告,因此不同的机器必须使用不同的local密钥. 三.tripwire的安装与设置 tipwire的安装 tripwire的下载地址为http://www.tripwire.org.... 下一页