Chinaunix首页 | 论坛 | 博客
  • 博客访问: 588504
  • 博文数量: 187
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 2990
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-18 17:40
文章分类

全部博文(187)

文章存档

2010年(1)

2009年(23)

2008年(163)

我的朋友

分类: LINUX

2008-09-12 10:11:46

转-使用Tripwire保护Linux文件系统
是计算机信息系统中至关重要的资源,而文件监控正是监控系统状态、保证计算机信息系统安全的关键技术。在操作系统中,诸如/etc/passwd、/usr/local/sbin的文件和目录尤为关键,任何对这些文件的破坏和篡改都会引起严重的安全问题,甚至造成系统瘫痪,因此我们有必要使用一种好的策略和工具来对Linux的文件系统进行保护。

  是一个优秀的安全工具

  Tripwire是Unix安全规范中最有用且优美的工具之一。它是由Eugene Spafford和Gene Kim于 l992年开发的,其包在1998年被商业化,现在由Tripwire Security公司维护,该公司支持软件包的商业和免费两种版本,能在多数Unix系统中运行。

  Tripwire是一套有关数据和完整性保护的工具,主要是检测和报告系统中任意文件被改动、增加、删除的详细情况,可以用于入侵检测、损失的评估和恢复、证据保存等多个用途。由于使用了多达四种的Hash算法,因此准确度非常高。Tripwire也可检测十余种Unix文件系统属性和二十余种NT文件系统(包括注册表)属性。Tripwire作为一种优秀的安全工具,它具有自保护性、平台间可移植性、可性、可扩展性和自包容性等特点。

  ● 自保护性 为了防止修改,Tripwire使用了多种签名算法或单向哈希函数。其缺省为每个数据条目记录了两个签名,这使得攻击者通过填充额外字符来掩盖踪迹变得十分困难。富有技巧的攻击者也许能改变文件而不改变文件长度以及文件与一个校验和之间的匹配,但对于两个校验和却不可能。

  ● 可移植性 Unix世界是多样化的,于是应把Tripwire程序设计为在各种Unix平台间有尽可能大的可移植性,程序可支持几十个Unix版本。Tripwire生成的用ASCⅡ文本编码,可以被任何文本处理程序操作或打印。

  ● 可配置性 Tripwire可以监测每个文件或目录的权限、修改时间及其他参数的改变。它还能配置成忽略某些特定文件和目录,或检查一个目录但不进入它里面。

  ● 可扩展性 Tripwire可以一次安装而覆盖上千台机器。软件包包括一个预处理语言来帮助系统员重用配置文件,多个机器可以共享一个配置文件,可为每台机器产生单独一个数据库文件。

  ● 自包容性 Tripwire的操作不依赖于任何外部程序,额外的程序不仅使安装费时,而且可能增加额外的安全风险。

  该软件基于预编写的策略工作,在基准数据库生成时,会根据策略文件中的规则读取指定的文件,同时生成该文件的数字签名并存储在Tripwire自己的数据库中。为了达到最大限度的安全性,Tripwire提供了四种Hash算法—CRC32、MD5、SHA、HAVAL来生成签名。

  进行完整性检查时,Tripwire会根据策略文件中的规则对指定的文件重新生成一次数字签名,并将此签名与存储在数据库中的签名对照。如果完全匹配,则说明文件没有被更改。如果不匹配,说明文件被改动了。然后在Tripwire生成的报告中查阅文件被改动的具体情况(见图)。

  所以,Tripwire自身的基准数据库是非常重要的,如果基准数据库不可靠,那完整性检查就没有意义。Tripwire软件安装完毕后,已经对配置文件、策略文件以及数据库文件均进行了高强度的加密。同时默认策略中也对自身文件进行完整性检查。当然,使用者自己也要做好这些文件的,因为Tripwire软件是不能恢复受损文件的,它只能详细列出每一个受损文件的详细情况。

  使用Tripwire

  首先,介绍一下Tripwire的安装过程(要得到给软件可以从.tripwiresecurity

  .com/获得),一共分为五个步骤:

  1.匹配主机   

  在Tripwire的根目录下有Ported这个文件,它是对支持的系统及相关配置文件的描述,管理员第一步需要打开这个文件,找到符合自己系统的描述。

  2.配置监控目标

  进入include目录,编辑config.h文件,将第一步Ported中conf.h后对应的文件名和路径写入config.h开始#include部分,本例中即为#include “../configs/conf-svr4.h”。   

  同时要注意的是,在configh文件中还有Tripwire配置文件,Tripwire数据库文件的放置路径及生成数据库的文件名等,管理员按照个人喜好设置即可。编辑好config.h后,还要根据本机情况编辑修改位于configs目录下的Tripwire配置文件,也就是上面Ported 文件中tw.config对应的tw.conf.linux,我们知道,对文件、目录等的监控就是在这里设置的。

  3.编译

  接着就可以编译了,在Tripwire的根下,执行make,系统即会自动编译,编译成功后,可以再执行make test,Tripwire会自动检查编译情况及工作状态,它会一段一段地测试。

  4.生成数据库   

  成功编译Tripwire后,开始对需要监控的文件进行扫描,以生成Tripwire数据库 ,在Tripwire 的src目录下执行如下操作: /tripwire -init 。

  5.测 试   
接着进行测试,首先我们在根下touch生成一个goadd文件,接着把根下的.cshrc文件做一下改动,在里面加入几个“#”注释号。

  经过以上五个步骤后就可以运行Tripwire了。当第一次运行Tripwire时,需要进行一些准备工作,主要有编辑config文件、检查邮件报告是否正常、根据需要配置策略文件和初始化数据库文件,即创建一个签名的基线数据库等。下一次运行时,系统会使用twpol.txt文件产生一个新的签名数据库。然后,比较两个数据库,实施用户定义的任何选项屏蔽(排除经常更改的文件),最后通过电子邮件或显示器为用户在终端上输出一个可读的报告。

  Tripwire有四种操作: 数据库生成、完整性检查、数据库和交互式更新。数据库生成模式产生一个基线数据库,为未来的比较打下基础; 完整性检查是Tripwire的主要模式,把当前文件签名和基线数据库进行比较来进行检查; 后面两种更新模式允许用户调整Tripwire数据库以消除不感兴趣的结果以及应付正常的系统变化,例如当用户账号正常增加或删除时,不希望Tripwire重复报告/etc/passwd文件被改动了。

  使用Tripwire的技巧

  安装Tripwire最好的时机是在刚刚建立好系统之后。一个已经运行了一段时间的系统可能已经被破坏了,这之后运行Tripwire将几乎没有任何价值。如果不可能在系统刚安装或更新的时候安装Tripwire,那么考虑以单用户模式重新安装系统文件,这是保证系统干净的惟一方法。

  Tripwire需要一个先进的存储规划,用户需要把基线数据库同程序文件一起保存在一个安全的地方,以免攻击者更改文件而使程序达不到目的。最优的安排是把这些文件保存在一个移动的只读介质中,像写保护的软盘、光盘或潜在攻击者不能访问的CD-ROM。还可以把文件放在一个安全的远程分区中并以只读方式输出。记住用mount命令使一个硬盘“只读”是不够的,因为一个有root权限的攻击者可以轻易的把硬盘改回为“可写”。

  考虑安全性和Tripwire性能之间的是很重要的。用户可以选择运行程序的多个签名算法和两个校验和中的任一个来保护文件,但这些算法中有些开销是很昂贵的。特别是Snefru运行很慢。只有那些有极大危险性的系统才需要为每个文件和目录运行所有的算法,用户需要平衡需求和可用的时间。
阅读(931) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~