Tripwire

Tripwire

2023年7月27日发(作者:)

下载下载第7章Tripwire本章讲述怎样使用Tr ipwire工具来维护文件系统的完整性。文中对该程序的设计提供了概念上的描述,同时还详细介绍了安装和配置的指令。7.1 简介Tr ipwire是一个完整性检测工具,用来监测对文件系统进行未加认证的修改。它对于检测那些侵入者特别有用,这些入侵者为方便未来访问可能更改文件,删除或更改系统日志,留下病毒、蠕虫和逻辑炸弹或其他报复性破坏。多数U NIX系统非常庞大,包括上万个文件。没有实用的方法来让一个人手工监测系统文件以防被未加认可的修改。Tr ipwire取得文件的数字“快照”或“指印”并保存在数据库中。然后,它把文件当前的快照和原始的快照进行比较。已被添加、删除或更改内容的文件由Tr ipwire进行标记,使系统管理员能够采取相应的措施。经过正确的安装、配置和监测,系统管理员完全可以确定他们的“t ripwire”系统没有被攻击。Tr ipwire不仅对于检测侵入很有用,它还能在被侵入后进行恢复时节省大量的时间。如果怀疑有一个未经认证的用户已获得了r oot权限,罪犯可以很容易地留下特洛伊木马或病毒。在一个U NIX系统中手工检查4 0000多个文件是非常困难的。如果安装了Tr ipwire,就能很容易地检查重要文件是否被破坏了。如果没有Tr ipwire这样的完整性检查工具,那就别无选择只能重装系统了—一项耗时而又可能不需要的工作。7.2 Tripwire概述7.2.1 Tripwire的优点Tr ipwire是U NIX安全规范中最有用且优美的工具之一。它是由Eugene Spaff ord和G eneKim 1992年在P urdue大学开发的,其软件包在1 998年被商业化,现在由Tripwire Security Inc.来维护(h ttp://www. tripwiresecurity. com)。该公司支持软件包的商业和免费两种版本,能在多数U NIX系统中运行。Tr ipwire体现了一个优秀安全工具的最好特征,包括自保护性、平台间可移植性、可配置性、可扩展性和自包容性。• 自保护性—为了防止修改,Tr ipwire使用了1 0种签名算法或单向哈希函数。其程序包括:RSA Data Security公司的M D5、M D4和MD2 哈希算法,S nefru(Xerox 安全哈希函数),S HA(安全哈希算法)和H aval编码。它还包含两个传统的C RC过程。其缺省安装为每个数据条目记录了两个签名,这使得攻击者通过填充额外字符来掩盖踪迹变得十分困难。富有技巧的攻击者也许能改变文件而不改变文件长度以及文件与一个校验和之间的匹配,但对于两个校验和实际不可能。[ 1]• 可移植性—笔者认为U NIX世界是多样化的,于是应把程序设计为在各种U NIX平台间下载文本编码,可以被任何文本处理程序操作或打印。第7章Tr ipwire79有尽可能大的可移植性,程序可支持几十个U NIX版本。Tr ipwire生成的数据库用A SCII• 可配置性—Tr ipwire可以监测每个文件或目录的权限、修改时间及其他参数的改变。它还能配置成忽略某些特定文件和目录,或检查一个目录但不进入它里面。• 可扩展性—Tr ipwire可以一次安装而覆盖上千台机器。软件包包括一个预处理语言来帮助系统管理员重用配置文件,多个机器可以共享一个配置文件,可为每台机器产生单独一个数据库文件。• 自包容性—Tr ipwire的操作不依赖于任何外部程序。额外的程序不仅使安装费时,而且可能增加额外的安全风险。7.2.2 操作概要图7 -1概括性地指出了Tr ipwire怎样使用两个输入文件:一个配置文件(t w. config)描述监测哪些目录和文件,还有一个基线签名数据库产生一个有关改动的详细报告。生成新数据库基线数据库比较存储文件运用屏蔽Tripwire 报告图7-1 Tripwire的基本操作[2]当第一次运行Tr i p w i r e时,程序创建一个签名的基线数据库。下一次运行时,它使用t w. config文件产生一个新的签名数据库。然后,它比较两个数据库,实施用户定义的任何选项屏蔽(排除经常更改的文件),最后通过电子邮件或显示器来为用户在终端上输出一个可读的报告。Tr ipwire有四种操作模式:数据库生成、完整性检查、数据库更新或交互式更新。数据库生成模式产生一个基线数据库,为未来的比较打下基础。完整性检查是Tr ipwire的主要模式,把当前文件签名和基线数据库进行比较来进行检查。有两种更新模式允许用户调整Tr ipwire数据库以消除不感兴趣的结果以及应付正常的系统变化。例如当用户帐号正常增加或删除时,不希望Tr ipwire重复报告/ etc/passwd文件被改动了。清单7 -1和清单7 -2是Tr ipwire在完整性检查模式下产生输出的示例。Tr ipwire首先报告文件被改动了,而不定位具体的差别。在本例中,自从上次运行Tr ipwire后系统增加了几个用户,80UNIX 系统安全工具下载所以/ etc/group和/ etc/passwd文件不再保持原样了。清单7-1 Tr ipwire有关改动的报告然后,Tr ipwire指出每个文件有哪些属性发生了变化,并给出哪些是观察到的,哪些是所期望的。清单7-2 Tr ipwire对属性的实际和应用值进行比较这次运行把当前的M D5和S nefru签名与原来的进行对比,并报告不同的“指纹”。它还报告文件大小和时间戳的差别。因为最近增加了用户,所以可以不关心这些变化。但是如果攻击者半夜增加了伪造帐号,那么管理员将会得知。7.2.3 规划考虑安装Tr ipwire的最好时机是在刚刚建立好系统之后,不论是新建的还是升级的。一个已经运行了一段时间的系统可能已经被破坏了:这之后运行Tr ipwire将几乎没有价值。如果不可能在系统刚安装或更新的时候安装Tr ipwire,那么考虑以单用户模式重新安装系统文件。这不是罗嗦,这是保证系统干净的唯一方式。Tr ipwire要求一个先进的存储规划。用户需要把基线数据库同程序文件一起保存在一个安全的地方,以免攻击者更改文件而使程序达不到目的。最优的安排是把这些文件保存在一个移动的只读介质中—像写保护的软盘、光盘或潜在攻击者不能访问的C D-ROM。还可以把文件放在一个安全的远程机器分区中并以只读方式输出。记住用m ount命令使一个硬盘只读是不够的,因为一个有r oot权限的攻击者可以轻易地把硬盘改回为可写。考虑安全性和Tr ipwire性能之间的均衡是很重要的。用户可以选择运行程序的6个签名算法和两个校验和中的任一个来保护文件。但重要的是记住这些算法中有些开销很昂贵。特别是S nefru运行很慢。只有那些有极大危险性的系统才需要为每个文件和目录运行所有的算法。Tr ipwire缺省使用M D5和S nefru。这两个一起提供强大的保护并消耗大量的C PU周期。作者曾在自己的Tr ipwire中为所有文件运行M D5并对重要系统文件运行M D5和S nefru。甚至这样,它在运行Red Hat Linux 5.0的Pentium Pro系统中花了半个小时才产生报告。用户需要平衡安全需求和可用的时间。下载7.2.4 剖析第7章Tr ipwire81Tr ipwire的配置文件可以让使用者精确地控制程序监测的文件和目录。文件t w. config包含一个这些文件和目录的列表。文件每一行与一个选项屏蔽相关联,告诉程序那些文件属性改变了,可以被放心地忽略。选项屏蔽由几个选择标志组成。每个选择标志包含一个不同的属性。例如“s”标志是文件大小,“a”是访问时间戳。每个标志可以在被监测的项中增加(“+”)或删除(“-”)。一个t w. config条目如下:/home/xyz +s -a它告诉Tr ipwire跟踪文件/ home/xyz的文件大小变化而忽略文件访问时间的变化。表7 -1总结了Tr ipwire的选择标志。表7-1 Tr ipwire的属性选择标志选择标志-+pinugsamc包含的属性忽略后面的属性监测后面的属性权限位i节点值链接数拥有者的用户I D拥有者的分组I D文件大小访问时间修改时间i节点创建/修改时间每个Tr i p w i r e签名过程被赋予一个数字。用户可以指明为文件/目录条目使用哪些算法(Tr ipwire缺省使用1和2)。表7 -2指出每种签名和相应的数字。表7-2 Tr ipwire的签名编号签名编号没有签名RSA Data Security, Inc.的M D5Snefru, Xerox 安全哈希函数C RC-32,3 2位循环冗余校验C RC-16,1 6位循环冗余校验RSA Data Security, Inc.的M D4RSA Data Security, Inc.的M D2SHA, NIST 安全哈希算法H aval,1 28位签名算法空,为未来的使用保留签名种类Tr ipwire很灵活,但选项屏蔽可能十分复杂。设计者通过创建包含常用选项标志组合的模板来补偿这种复杂性。多数情况下,用户在t w. config中使用模板。表7 -3总结了5个主要模板。82UNIX 系统安全工具下载表7-3 选项屏蔽模板模板字母RLNE>模板目标只读文件日志文件什么都不忽略忽略所有增加日志文件模板选项标志+pinugsm 12-ac3456789+pinug-sacm 123456789+pingusamc 123456789-pinugsamc 123456789+pinug>samc 123456789R模板是缺省的,所以如果有一个/ usr/local/bin的条目如下:/ usr/local/binR则有效的选项屏蔽为:/usr/local/bin +pinugsm12-acTr ipwire将在模式位、i节点号、链接数、u id、g id、文件大小、修改时间和M D5及S nefru签名有任何变化时进行报告。它将忽略访问和i节点时间戳的变化。有两个最终的操作要考虑。条目前的“!”指出包含一切修改。如果条目是一个文件,则它被忽略。如果条目是一个目录,则它忽略其中的所有文件。“=”指明排除修改。如果条目是一个文件,它什么都不做,如果条目是一个目录,将对目录进行监测而不包括其中的内容。下面是一个非常简单的t w. config文件:注意模板可以与选择标志相混合。“R - 2”是一个简单的方式来指出缺省检测不使用S nefru。7.2.5 安装Tripwire可以到Tripwire Security Systems, Inc.的We b站点h ttp://www. tripwiresecurity. com/tripwire去下载Tr ipwire。可以下载U NIX或L inux版本。对于L inux,有一个R PM软件包包括二进制代码和源代码。为了得到最大的灵活性,下载源代码R PM,应该是t 或类似的文件。同时下载P DF格式的指南文件。以r oot登录后,用下面命令形式使用R PM(Red Hat Package Manager)来安装Tr ipwire源代码:$ rpm -ivh ipwire源代码将被拷贝到/ usr/src/redhat/BUILD/tripwire-1.3-1中。浏览产品中包含的R EADME文件和FA Q文件。也许还要阅读一下使用指南。警告如果用户十分小心,那么就应在安装Tr ipwire之前重新安装系统。这是确保系统干净的唯一方式。如果怀疑自己被攻击了,那么干脆从最初的安装盘开始重建系统。如果在一个U NIX系统(不是L inux)中安装,则需要检测M akefile,编辑: /include/config.h文件,并进行其他定制。查看指南来寻找详细步骤。下载第7章Tr ipwire83从最顶层的Tr ipwire源目录输入命令m ake,这将建立程序二进制执行文件。Tr ipwire二进制文件(“t ripwire”)和配置文件(“t w. config”)将放在目录/ usr/local/bin/tw中。如果在编译过程出现问题,查阅指南来解决。Tr ipwire包括一个测试安装是否成功的脚本,在顶层目录输入命令make test来调用脚本。7.3 配置Tripwire还要编辑t w. config文件使其能正确监测文件和目录。用户不希望Tr ipwire漏掉对重要文件的检查,也不愿让它对正常系统操作中经常改变的文件进行报告。缺省的t w. config十分慷慨,它监测L inux系统中的多数文件。用户也许希望安装完后继续第一次运行Tr ipwire并根据输出来调整t w. config文件。运行命令tripwire -initialize使Tr ipwire在数据库生成模式下运行。这创建了基线数据库—一个叫做t w. db-hostname的文件,“h ostname”以用户的机器主机名代替。提示数据库缺省放在“. /databases”目录中。注意,为了改变数据库的位置,用户需要重编译Tripwire。7.4 运行Tripwire运行命令t ripwire使得Tr ipwire在完整性检查模式下运行。Tr ipwire将进行比较并报告任何差异。用户收到的报告应该有一个如清单7 -3那样的序言。清单7-3 一个Tr ipwire报告的序言用户将发现Tr ipwire标志不关心文件的变化—那些作为普通系统操作一部分发生或用户已经知道的变化。可以在交互模式或数据库更新模式中运行Tr ipwire来更新数据库中的条目。交互模式在每次发现一个文件或目录被增添、删除或修改时提示用户更新数据库。输入84UNIX 系统安全工具下载命令tripwire -interactive使Tr ipwire运行在交互模式下。用户将看到一个文件已被增加或删除的提示并询问“Update entry?”,如清单7 -4所示。清单7-4 更新增加或删除的条目有两个文件被添加(“b ”和一个H OWTO),一个文件被删除(H OWTO的压缩版)。输入“y”或敲回车表明增加和删除应该在新的Tr ipwire数据库中指明,像清单7 -5中显示的那样,用户可以输入“Y”来更新同一t w. config条目中的所有文件。如果一个文件被修改(不同于增加或删除),Tr ipwire将注意到这点并报告被修改的属性。清单7-5 更新改变的条目最后,Tr ipwire确认条目已被更新。数据库更新模式在命令行提供一种快速升级数据库的方法,假如刚安装了文件/ usr/local/b in/. file。可以用下面命令更新数据库:# tripwire -update /usr/local/bin/. file下载注意该命令可以用来更新目录中所有的文件。第7章Tr ipwire857.5 Tripwire提示和技巧• 定期使用c ron运行Tr ipwire。如果系统与I nternet相连,把它设为至少每天运行一次。使用tripwire | /bin/mail root这样的命令让Tr ipwire把结果送给r oot是一个好主意。• 如果使用c ron定期运行Tr ipwire,那么也同样要在随机时间间隔运行Tr ipwire。一个潜在的攻击者可能看出Tr ipwire运行的时间间隔并把其当作机会。• Tr ipwire允许用户运行快速检测,因为它排除了特定的签名。该选项在用户频繁从c ron运行Tr ipwire或以交互方式运行检测时不想在终端前等候太长的情况下很有用。“- i”选项标志强迫Tr ipwire忽略特定的签名。例如,如果使用M D5(签名1)和S nefru(签名2)来产生基线数据库而现在想不使用S nefru进行快速检测,可运行命令tripwire -i 2。• Tr ipwire不检查文件系统的安装点。所以当在t w. config中有一个r oot目录时(“/”),它将不检查/ usr和/ home。用户需要在t w. config文件中声明想让Tr ipwire检查的每个分区起点。• Tr ipwire数据库可能很大。如果安全存储Tr ipwire数据库的唯一只读介质是软盘,那么需要限制数据库的大小。可以设置t w. config来忽略不太重要的文件,限制文件监测属性的数目,或只使用一种签名。虽然这些措施可能降低程序的有效性,但与可能遭到攻击者破坏相比还是推荐Tr ipwire检测。• 可运行tripwire -v察看Tr ipwire的行为。Tr ipwire在检测文件时显示其名字。• tw. config和t ripwire的帮助文件包含丰富的信息。注释:[1] Tr ipwire的作者为复制的签名在5台计算机上测试了250 000个文件。虽然1 6位的C RC产生了大约25 000个冲突,但1 28位的M D4、M D5和S nefru没产生冲突。参见Gene H.K im和Eugene H. Spaff ord的设计文档“The Design and Implementation of Tr ipwire”。[ 2]该图基于Gene H. Kim和Eugene H. Spaff ord的设计文档“The Design and Implementationof Tr ipwire”中的插图。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690464977a353250.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信