Linux下文件完整性监控工具Tripwire详解

安全 数据安全
Tripwire 是目前最为著名的Unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来。当文件现在的数字签名与保留的数字签名不一致时,那么现在这个文件必定被改动过了。

简介

Tripwire 是目前最为著名的Unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来。当文件现在的数字签名与保留的数字签名不一致时,那么现在这个文件必定被改动过了。

软件特点

监视和检查系统发生的变化能够及时地帮助你发现攻击者的入侵,它们能够很好地提供系统完整性的检查。

用Tripwire建立数据完整性监测系统。虽然它不能抵御黑客攻击以及黑客对一些重要文件的修改,但是可以监测文件是否被修改过以及哪些文件被修改过,从而在被攻击后有的放矢的策划出解决办法。

Tripwire原理

Tripwire的原理是Tripwire被安装、配置后,将当前的系统数据状态建立成数据库,随着文件的添加、删除和修改等等变化,通过系统数据现状与不断更新的数据库进行比较,来判定哪些文件被添加、删除和修改过。正因为初始的数据库是在Tripwire本体被安装、配置后建立的原因,我们务必应该在服务器开放前,或者说操作系统刚被安装后用Tripwire构建数据完整性监测系统。

Tripwire的基本操作

一个配置文件(tw.config)描述监测哪些目录和文件,还有一个基线签名数据库产生一个有关改动的详细报告。

Linux下文件完整性监控工具Tripwire详解

当第一次运行Tripwire时,程序创建一个签名的基线数据库。下一次运行时,它使用tw. config文件产生一个新的签名数据库。然后,它比较两个数据库,实施用户定义的任何选项屏蔽(排除经常更改的文件),最后通过电子邮件或显示器来为用户在终端上输出一个可读的报告。

Tripwire有四种操作模式:数据库生成、完整性检查、数据库更新或交互式更新。

数据库生成模式产生一个基线数据库,为未来的比较打下基础。

完整性检查是Tripwire的主要模式,把当前文件签名和基线数据库进行比较来进行检查。

有两种更新模式允许用户调整Tripwire数据库以消除不感兴趣的结果以及应付正常的系统变化。例如当用户帐号正常增加或删除时,不希望Tripwire重复报告/etc/passwd文件被改动了。

默认支持报告方式

Syslog

Mail

注意事项

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

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

Tripwire只支持英文系统

单文件大于3G的时候执行tripwire –check 会出错,具体原因不明。

Tripwire Install

OS:CentOS

# http://sourceforge.net/projects/tripwire/

# install sendmail, wget

yum -y install gcc gcc-c++

cd /home

wget http://jaist.dl.sourceforge.net/project/tripwire/tripwire-src/tripwire-2.4.2.2/tripwire-2.4.2.2-src.tar.bz2

tar -xf tripwire-2.4.2.2-src.tar.bz2

cd tripwire-2.4.2.2-src

./configure --prefix=/home/tripwire

#在make install 期间,需要手动键入ENTER,阅读前言然后输入accept,接下来需要手动设置3组密匙口令 (建议:可以3组选同一个密码,请设置一个强力的口令,然后请牢记)

make && make install

# create database

/home/tripwire/sbin/tripwire --init

# 执行检查

/home/tripwire/sbin/tripwire --check

#设置 crontab

crontab -e

00 10 * * * su /home/tripwire/sbin/tripwire --check|mail -s "tripwire report" example@xiaomi.com

后续扩展:

收集多台tripwire报告,集中处理告警信息发送邮件通知相关人员,并按照每天的报告进行存档,方便日后查看。

最后相关人员收到的邮件如下:

标题:Tripwire Report
HI,All
文件完整性监控状态
hostname1 正常
hostname2 正常
hostname3 正常
hostname4 异常
hostname5 正常
hostname6 异常
异常的服务器请拷贝主机名,访问下面URL进行搜索查看详细信息。
http://tripwire.report.xiaomi.com/tripwire_2013-12-4.txt
责任编辑:蓝雨泪 来源: noops
相关推荐

2010-12-14 14:36:57

Tripwire

2020-01-13 09:00:00

OsqueryLinux监控文件

2018-06-22 23:14:19

完整性监测FIM信息安全

2018-05-02 08:35:33

LinuxTripwire文件系统

2018-02-05 22:41:35

2010-04-14 09:28:44

Unix操作系统

2015-03-12 15:44:59

2014-11-05 11:08:55

2010-02-26 15:41:16

WCF分布事务

2023-03-17 16:32:51

测试软件开发

2014-08-05 10:30:58

tripwirelinux

2010-06-01 18:11:25

Rsync 使用

2010-06-17 14:43:59

Rsync 使用

2022-03-22 12:56:53

垃圾数据数据完整性

2009-09-25 11:03:35

PCI DSS数据完整数据安全

2015-06-08 13:48:15

数据库数据完整性约束表现

2010-06-10 15:52:04

MySQL参照完整性

2021-11-02 11:55:07

macOS macOS Monte漏洞

2020-09-14 09:39:22

信号

2016-12-08 09:03:07

大数据证据标准
点赞
收藏

51CTO技术栈公众号