Tripwire:一款老牌的文件完整性检查器

Tripwire是一款最为常用的开放源码的完整性检查工具,它生成目标文件的校验和并周期性的检查文件是否被更改。下面我们简单介绍一下 Tripwire的运行机理。与大多数完整性检查程序相同,对于需要监视的文件,Tripwire会使用校验和来为文件的某个状态生成唯一的标识(又称为 “快照”),并将其存放起来以备后用。当Tripwire程序运行时,它先计算新的标识,并于存放的原标识加以比较,如果发现不匹配的话,它就报告系统管理人员文件已经被修改。接下来,系统管理员就可以利用这个不匹配来判断系统是否遭到了入侵。例如,如果Tripwire已经为/bin/login和 /bin/ls存放了快照,那么对它们的尺寸、inode号、权限以及其他属性的任何修改,都逃不过Tripwire的火眼金睛。尤其是对于文件内容的修改,即使只改变了一个字节,Tripwire也能察觉得到,因为校验和是针对文件整体的。

下载链接:http://down./data/149235

>>去网络安全工具百宝箱看看其它安全工具

Tripwire的工作原理

当Tripwire运行在数据库生成模式时,会根据管理员设置的一个配置文件对指定要监控的文件进行读取,对每个文件生成相应数字签名,并将这些结果保存在自己的数据库中,在缺省状态下,MD5和SNCFRN(Xerox的安全哈希函数)加密手段被结合用来生成文件的数字签名。除此以外,管理员还可使用MD4,CRC32,SHA等哈希函数,但实际上,使用上述两种哈希函数的可靠性已相当高了,而且结合MD5和sncfrn两种算法(尤其是sncfrn)对系统资源的耗费已较大,所以在使用时可根据文件的重要性做取舍。当怀疑系统被入侵时,可由Tripwire根据先前生成的,数据库文件来做一次数字签名的对照,如果文件被替换,则与Tripwire数据库内相应数字签名不匹配, 这时Tripwire会报告相应文件被更动,管理员就明白系统不”干净”了。

有一点要注意,上述保障机制的重点在于数据库内的数字签名,如果数据库是不可靠的,则一切工作都丧失意义。所以在Tripwire生成数据库后,这个库文件的安全极为重要。比较常见的做法是将数据库文件, Tripwire二进制文件,配置文件单独保留到”可拿走并锁起来”的质上,如软盘,将上述文件复制到软盘后,关闭写保护口,锁到保险柜中。除软盘外, 一次性介质,如cd-r也是很好的选择,这样即使侵入者拿到盘也无计可施。除这种办法外,利用PGP等加密工具对上述关键文件进行数字签名也是一个很好的选择。

当然,当管理员自身对某些文件更动时, Tripwire的数据库必然是需要随之更新的, Tripwire考虑到了这一点,它有四种工作模式:数据库生成,完整性检查,数据库更新。交互更新。当管理员更动文件后,可运行数据库更新模式来产生新的数据库文件。

下载Tripwire,安装前的准备工作

Tripwire支持绝大多数Unix操作系统,它的安装需要编译环境,如gcc,cc等,还需要gzip,gunzip等解压工具。这些工具管理员可从相应站点获取,这里不讨论。Tripwire可从www.tripwire.com获得,到它的主页download部分,可以看到当前可免费download的Tripwire1.3 ASR版本,下载下来就是。

安装Tripwire

Tripwire的tar包解开后,我们可以看到如下目录结构,建议先看看根下的README文件,对Tripwire有个整体的了解。随后,我们就可以一步步的安装这个软件了。

步骤1:匹配主机环境

在Tripwire的根下有Ported这个文件,它是对支持的系统及相关配置文件的描述,管理员第一步需要打开这个文件,找到符合自己系统的描述,本文的测试环境是solaris2.6,我们截取相关部分来看看,

  1. vendor: Sun Microsystems, Inc.  
  2. os: SunOS  
  3. os version: 5.x (Solaris 2.x)  
  4. compiler: cc  
  5. cflags: -O  
  6. ldflags:  
  7. libs:  
  8. conf.h: conf-svr4.h  
  9. tw.config: tw.Conf.sunos5 

notes:

在这一段描述中,要尤其注意的是conf.h 和tw.config对应的行,在下几步的配置中需要用到它们两个对应的文件。此处要注意的是:每种操作系统这两个地方所对应的文件是不同的。

步骤2:配置监控目标

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

  1. #include "../configs/conf-svr4.h" 

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

  1. #  
  2. # - : ignore the following atributes  
  3. # + : do not ignore the following attributes  
  4. #  
  5. # p : permission and file mode bits a: access timestamp  
  6. # i : inode number m: modification timestamp  
  7. # n : number of links (ref count) c: inode creation timestamp  
  8. # u : user id of owner 1: signature 1  
  9. # g : group id of owner 2: signature 2  
  10. # s : size of file 

注意上述p,I,n,u,g,s,a,c,1,2等,它表示可以对文件,目录设置的监控项目,管理员可组合使用,最前面的-,+号表示选取或忽略这些属性。如下例:

  1. /var +pinugsm12-a 

它表示对目录/var下所有文件检查,监控项目分别有文件属性,inode,链接数,属组,属主,修改时间,生成时间,数字签名等,但是,对这个目录下的文件的访问不加监控,如果访问也监控的话,正常的用户访问也会被Tripwire捕捉,这没有必要。

为了方便起见,Tripwire作者把常见组合做成了模板,如下,

  1. #  
  2. # Templates: (default) R : [R]ead-only (+pinugsm12-a)  
  3. # L : [L]og file (+pinug-sam12)  
  4. # N : ignore [N]othing (+pinusgsamc12)  
  5. # E : ignore [E]verything (-pinusgsamc12)  

tw.conf.sunos5这个文件再向下,就是管理员根据情况填写了,把需要监控的文件及目录加入列表,赋予相应属性即可。如下:

  1. / R  
  2. /.rhosts R # may not exist  
  3. /.profile R # may not exist  
  4. /etc/dfs/dfstab R  
  5. /etc/hosts.equiv R  
  6. /etc/inet/inetd.conf R  
  7. /etc/inet/protocols R  
  8. /etc/inet/services R  
  9. /etc/init.d R  
  10. /etc/motd L  
  11. #/etc/named.boot R # may not exist  
  12. /etc/opt R  
  13. /etc/passwd L  
  14. /etc/profile R 

步骤3:编译

完成上两步后,就可以编译了,在Tripwire的根下,执行make,系统即会自动编译,编译成功后,可以再执行make test,Tripwire会自动检查编译情况及工作状态,它会一段一段的测试,我们选取一段如下:

  1. === test.Update.sh: DESCRIPTION  
  2. This shell script exercises all the Tripwire integrity checking  
  3. and database update functionalities。  
  4. === test.update.sh: Setting up auxiliary scripts ===  
  5. === test.update.sh: BEGIN ===  
  6. ../src/tripwire -loosedir -c /tmp/twtest/tw.config -d /tmp/twtest/tw.db -i all 
  7. === test.update.sh: testing GROWING (safe) files ===  
  8. === test.update.sh: testing GROWING (unsafe) files ===  
  9. === test.update.sh: testing ADDED files ===  
  10. === test.update.sh: testing DELETED files ===  
  11. === test.update.sh: testing CHANGED files ===  
  12. === test.update.sh: testing input schemes ===  
  13. === test.update.sh: tw.config from stdin 
  14. === test.update.sh: database from stdin 
  15. === test.update.sh: testing complex UPDATE cases 
  16. === test.update.sh: changed ignore-mask (UPDATE file)  
  17. === test.update.sh: changed ignore-mask (UPDATE entry)  
  18. === test.update.sh: testing UPDATED files (7 cases)  
  19. === test.update.sh: case 1: update: add new file ===  
  20. === test.update.sh: case 2: update: delete file ===  
  21. === test.update.sh: case 3: update: update file ===  
  22. === test.update.sh: case 4: nonsense case (skipping) ===  
  23. === test.update.sh: case 6: update: delete entry ===  
  24. === test.update.sh: case 5: update: add entry ===  
  25. === test.update.sh: case 7: update: update entry ===  
  26. === test.update.sh: PASS ===   

我们可以看到,Tripwire对update功能一项项的做检测,并在最后PASS了,当Tripwire所有的检测项目都PASS后,编译就OK了。

步骤4:生成数据库

成功编译Tripwire,我们准备开始对需要监控的文件进行扫描,以生成Tripwire数据库,在Tripwire 的src目录下:如下操作。/tripwire -init,则系统会根据tw.conf.sunos5文件内的设置,开始扫描并生成相应的数据库,上面提到,数据库文件的路径是在第二步configh中设置的,在本例中为/var/tripwire,我们得到了名为tw.db_secu.unix.com的数据库文件。建议此时将Tripwire可执行文件,数据库文件,配置文件COPY到软盘等地方,放到安全的地方。以后需要安全鉴别时直接在软盘上执行即可。

步骤5:测试

数据库生成了,我们来测试一下吧,首先我们在根下touch生成一个goadd文件,其次我们把根下的.cshrc文件做一下改动,在里面加入几个#注释号。然后我们来运行一下Tripwire看如何:

  1. / Tripwire -c ./tw.config.sunos5 -d ./tw.db_secu.unix.com  
  2. Tripwire(tm) ASR (Academic Source Release) 1.3.1  
  3. File Integrity Assessment Software  
  4. (c) 1992, Purdue Research Foundation, (c) 1997, 1999 Tripwire  
  5. Security Systems, Inc。 All Rights Reserved。 Use Restricted to  
  6. Authorized Licensees。  
  7. ### Phase 1: Reading configuration file  
  8. ### Phase 2: Generating file list  
  9. ./tripwire: /.profile: No such file or directory  
  10. ./tripwire: /kernel/unix: No such file or directory  
  11. ### Phase 3: Creating file information database  
  12. ### Phase 4: Searching for inconsistencies  
  13. ###  
  14. ### Total files scanned: 4437  
  15. ### Files added: 1  
  16. ### Files deleted: 0  
  17. ### Files changed: 1  
  18. ###  
  19. ### Total file violations: 2  
  20. ###  
  21. added: -rw-r--r-- root 0 Jul 3 18:45:31 2000 /goadd  
  22. changed: -r--r--r-- root 669 Jul 3 18:46:15 2000 /.cshrc  
  23. ### Phase 5: Generating observed/expected pairs for changed files  
  24. ###  
  25. ### Attr Observed (what it is) Expected (what it should be)  
  26. ### =========== ============================= =============================  
  27. /.cshrc  
  28. st_size: 669 668  
  29. st_mtime: Mon Jul 3 18:46:15 2000 Mon Jul 3 09:00:41 2000  
  30. st_ctime: Mon Jul 3 18:46:15 2000 Mon Jul 3 09:00:41 2000  
  31. md5 (sig1): 3z9gKjlZGq5GbeWOxpYaF9 1Z7K0n3ZKAyuPpAZB1G8uq  
  32. snefru (sig2): 1vCDeMR45lpRCChmDithiW 1oRYPpQ:oZA6hVx6Zi4.NG 

可以看到,系统运行经过了5个步骤,首先读取配置文件,其次生成配置文件中设置为需要监控,但实际并不存在的文件列表。第三部生成文件信息库,第四步报告检查情况。我们看到共扫描了4437个文件,其中有一个文件是新增加的,有一个文件发生了改变。在下面它列出了这两个文件-正是我们做了手脚的文件!在最后一步Tripwire将发生了改变的文件现在字节数,生成时间,修改时间, md5, snefru签名及数据库中的记录对比列出,是不是很爽?

上面我们讲到的是Tripwire的主要功能,在命令行状态下敲入tripwire -h 就会有其它使用参数的介绍,有兴趣的管理员不妨一试。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/121527.html<

(0)
管理的头像管理
上一篇2025-02-21 22:19
下一篇 2025-02-21 22:20

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注