溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解Tripwire應(yīng)用

發(fā)布時間:2021-10-18 09:39:37 來源:億速云 閱讀:147 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關(guān)如何理解Tripwire應(yīng)用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

  對unix管理員來說,主機系統(tǒng)的安全一直是個課題,一方面管理員通過更新patch,安裝軟硬件防火墻等手段努力使自己的系統(tǒng)可靠性增強,而另一方面unix操作系統(tǒng)的漏洞總是不斷被發(fā)現(xiàn)并被公布出來,如BUGTRAQ這樣的安全列表,從這個角度上可以很絕對的說,互聯(lián)網(wǎng)上沒有安全的主機。任何一臺放在Internet上的主機被入侵的潛在可能性是不可逃脫的,而且,對入侵者而言,利用漏洞進(jìn)入系統(tǒng)往往只是第一步,如果想得到更多的,如超級用戶的密碼,數(shù)據(jù)庫的口令等,往往需要下點功夫,最便捷也是最有效的就是改動或特洛伊化受侵害的主機上的文件,如放置自己的監(jiān)聽程序,替代某些關(guān)鍵文件,修改編輯可信文件,設(shè)置suid文件等?! ?/p>

一些管理員通unix自帶的命令來檢查文件的安全性,如檢查文件生成的時間戳,但這樣的可靠性微乎其微,有經(jīng)驗的入侵者可以很輕松的修改文件生成時間,有興趣的管理員可以試試以下操作:  # echo "+ +" > /.rhosts  這一步生成一個.rhosts文件,看看它的時間?! ? ls -l /.rhosts  -rw-r--r-- 1 root other 4 Jul 2 16:45 /.rhosts  好,我們?nèi)缦虏僮骺纯磿趺礃?  # touch -r /bin/sh /.rhosts  #ls -l /.rhosts  -rw-r--r-- 1 root other 4 Apr 5 16:32 /.rhosts  我們看到時間戳已經(jīng)變了。變成了一個"老"文件,這樣很可能就會逃脫管理員的視線。。  

又比如,入侵者替換掉了su文件,在正當(dāng)用戶每次試圖su時,這個特洛伊化的su文件都會讀取口令并將口令記載下來,然后才把控制權(quán)交給真正的su程序,口令通過這種途徑泄密了,雖然這不是管理員所期望的,但畢竟unix太大太復(fù)雜,發(fā)現(xiàn)起來很困難?! ?/p>

Tripwire就是解決這一問題的經(jīng)典工具,它是目前最為著名的unix下文件系統(tǒng)完整性檢查的軟件工具,這一軟件采用的技術(shù)核心就是對每個要監(jiān)控的文件產(chǎn)生一個數(shù)字簽名,保留下來。當(dāng)文件現(xiàn)在的數(shù)字簽名與保留的數(shù)字簽名不一致時,那么現(xiàn)在這個文件必定被改動過了。具體到監(jiān)控項目,在Tripwire的配置文件中有如下相應(yīng)說明:  

access permissions and file mode settings, including effective execution settings 文件存取權(quán)限和  inode number in the file system  number of links  user ID of the owner  group ID of the group of users to which access may be granted  size of the item  date and time the item was last accessed, the last modification made to the item, and the creation date and time associated with the items inode  

由上,我們可以看到Tripwire對文件的管理面是很寬的?! ?/p>

2: Tripwire的工作原理  

當(dāng)Tripwire運行在數(shù)據(jù)庫生成模式時,會根據(jù)管理員設(shè)置的一個配置文件對指定要監(jiān)控的文件進(jìn)行讀取,對每個文件生成相應(yīng)數(shù)字簽名,并將這些結(jié)果保存在自己的數(shù)據(jù)庫中,在缺省狀態(tài)下,MD5和SNCFRN(Xerox的安全哈希函數(shù))加密手段被結(jié)合用來生成文件的數(shù)字簽名。除此以外,管理員還可使用MD4,CRC32,SHA等哈希函數(shù),但實際上,使用上述兩種哈希函數(shù)的可靠性已相當(dāng)高了,而且結(jié)合MD5和sncfrn兩種算法(尤其是sncfrn)對系統(tǒng)資源的耗費已較大,所以在使用時可根據(jù)文件的重要性做取舍。當(dāng)懷疑系統(tǒng)被入侵時,可由Tripwire根據(jù)先前生成的,數(shù)據(jù)庫文件來做一次數(shù)字簽名的對照,如果文件被替換,則與Tripwire數(shù)據(jù)庫內(nèi)相應(yīng)數(shù)字簽名不匹配, 這時Tripwire會報告相應(yīng)文件被更動,管理員就明白系統(tǒng)不"干凈"了。  

有一點要注意,上述保障機制的重點在于數(shù)據(jù)庫內(nèi)的數(shù)字簽名,如果數(shù)據(jù)庫是不可靠的,則一切工作都喪失意義。所以在Tripwire生成數(shù)據(jù)庫后,這個庫文件的安全極為重要。比較常見的做法是將數(shù)據(jù)庫文件, Tripwire二進(jìn)制文件,配置文件單獨保留到"可拿走并鎖起來"的介質(zhì)上,如軟盤,將上述文件復(fù)制到軟盤后,關(guān)閉寫保護(hù)口,鎖到保險柜中。除軟盤外, 一次性介質(zhì),如cd-r也是很好的選擇,這樣即使侵入者拿到盤也無計可施?! 〕@種辦法外,利用PGP等加密工具對上述關(guān)鍵文件進(jìn)行數(shù)字簽名也是一個很好的選擇。  當(dāng)然,當(dāng)管理員自身對某些文件更動時, Tripwire的數(shù)據(jù)庫必然是需要隨之更新的, Tripwire考慮到了這一點,它有四種工作模式:數(shù)據(jù)庫生成,完整性檢查,數(shù)據(jù)庫更新。交互更新。當(dāng)管理員更動文件后,可運行數(shù)據(jù)庫更新模式來產(chǎn)生新的數(shù)據(jù)庫文件?! ?/p>

3:下載Tripwire,安裝前的準(zhǔn)備工作  

Tripwire支持絕大多數(shù)Unix操作系統(tǒng),它的安裝需要編譯環(huán)境,如gcc,cc等,還需要gzip,gunzip等解壓工具。這些工具管理員可從相應(yīng)站點獲取,這里不討論?! ?/p>

Tripwire可從www.tripwire.com獲得,到它的主頁download部分,可以看到當(dāng)前可免費download的Tripwire1.3 ASR版本,下載下來就是?! ?/p>

4:安裝Tripwire  

Tripwire的tar包解開后,我們可以看到如下目錄結(jié)構(gòu),建議先看看根下的README文件,對Tripwire有個整體的了解。隨后,我們就可以一步步的安裝這個軟件了?! ?/p>

步驟1:匹配主機環(huán)境  在Tripwire的根下有Ported這個文件,它是對支持的系統(tǒng)及相關(guān)配置文件的描述,管理員第一步需要打開這個文件,找到符合自己系統(tǒng)的描述,本文的測試環(huán)境是solaris2.6,我們截取相關(guān)部分來看看,  vendor: Sun Microsystems, Inc.  os: SunOS  os version: 5.x (Solaris 2.x)  compiler: cc  cflags: -O  ldflags:  libs:  conf.h: conf-svr4.h  tw.config: tw.Conf.sunos5  notes:  在這一段描述中,要尤其注意的是conf.h 和tw.config對應(yīng)的行,在下幾步的配置中需要用到它們兩個對應(yīng)的文件。此處要注意的是:每種操作系統(tǒng)這兩個地方所對應(yīng)的文件是不同的。  

步驟2:配置監(jiān)控目標(biāo)  

進(jìn)入include目錄,編輯config.h文件,將第一步Ported中conf.h后對應(yīng)的文件名和路徑寫入config.h開始#include部分,此例中即為  #include "../configs/conf-svr4.h"  同時注意的是,在configh文件中還有Tripwire配置文件,Tripwire數(shù)據(jù)庫文件的放置路徑及生成數(shù)據(jù)庫的文件名等設(shè)置,管理員按照個人喜好設(shè)置即可?! 【庉嫼胏onfig.h后,還要根據(jù)本機情況編輯修改位于configs目錄下的Tripwire配置文件,也就是上面Ported 文件中tw.config對應(yīng)的tw.conf.sunos5,我們知道,對文件,目錄等的監(jiān)控就是在這里設(shè)置的。我們一段段的選取一部分這個文件來看看:  #  # - : ignore the following atributes  # + : do not ignore the following attributes  #  # p : permission and file mode bits a: access timestamp  # i : inode number m: modification timestamp  # n : number of links (ref count) c: inode creation timestamp  # u : user id of owner 1: signature 1  # g : group id of owner 2: signature 2  # s : size of file  注意上述p,I,n,u,g,s,a,c,1,2等,它表示可以對文件,目錄設(shè)置的監(jiān)控項目,管理員可組合使用,最前面的-,+號表示選取或忽略這些屬性。如下例:  /var +pinugsm12-a  它表示對目錄/var下所有文件檢查,監(jiān)控項目分別有文件屬性,inode,鏈接數(shù),屬組,屬主,修改時間,生成時間,數(shù)字簽名等,但是,對這個目錄下的文件的訪問不加監(jiān)控,如果訪問也監(jiān)控的話,正常的用戶訪問也會被Tripwire捕捉,這沒有必要?! 榱朔奖闫鹨姡琓ripwire作者把常見組合做成了模板,如下,  #  # Templates: (default) R : [R]ead-only (+pinugsm12-a)  # L : [L]og file (+pinug-sam12)  # N : ignore [N]othing (+pinusgsamc12)  # E : ignore [E]verything (-pinusgsamc12)  #  tw.conf.sunos5這個文件再向下,就是管理員根據(jù)情況填寫了,把需要監(jiān)控的文件及目錄加入列表,賦予相應(yīng)屬性即可。如下:  / R  /.rhosts R # may not exist  /.profile R # may not exist  /etc/dfs/dfstab R  /etc/hosts.equiv R  /etc/inet/inetd.conf R  /etc/inet/protocols R  /etc/inet/services R  /etc/init.d R  /etc/motd L  #/etc/named.boot R # may not exist  /etc/opt R  /etc/passwd L  /etc/profile R  

步驟3:編譯  

完成上兩步后,就可以編譯了,在Tripwire的根下,執(zhí)行make,系統(tǒng)即會自動編譯,編譯成功后,可以再執(zhí)行make test, Tripwire會自動檢查編譯情況及工作狀態(tài),它會一段一段的測試,我們選取一段如下:  === test.Update.sh: DESCRIPTION  This shell script exercises all the Tripwire integrity checking  and database update functionalities?! ?== test.update.sh: Setting up auxiliary scripts ===  === test.update.sh: BEGIN ===  ../src/tripwire -loosedir -c /tmp/twtest/tw.config -d /tmp/twtest/tw.db -i all  === test.update.sh: testing GROWING (safe) files ===  === test.update.sh: testing GROWING (unsafe) files ===  === test.update.sh: testing ADDED files ===  === test.update.sh: testing DELETED files ===  === test.update.sh: testing CHANGED files ===  === test.update.sh: testing input schemes ===  === test.update.sh: tw.config from stdin  === test.update.sh: database from stdin  === test.update.sh: testing complex UPDATE cases  === test.update.sh: changed ignore-mask (UPDATE file)  === test.update.sh: changed ignore-mask (UPDATE entry)  === test.update.sh: testing UPDATED files (7 cases)  === test.update.sh: case 1: update: add new file ===  === test.update.sh: case 2: update: delete file ===  === test.update.sh: case 3: update: update file ===  === test.update.sh: case 4: nonsense case (skipping) ===  === test.update.sh: case 6: update: delete entry ===  === test.update.sh: case 5: update: add entry ===  === test.update.sh: case 7: update: update entry ===  === test.update.sh: PASS ===  我們可以看到,Tripwire對update功能一項項的做檢測,并在最后PASS了,當(dāng)Tripwire所有的檢測項目都PASS后,編譯就OK了?! ?/p>

步驟4:生成數(shù)據(jù)庫  

成功編譯Tripwire,我們準(zhǔn)備開始對需要監(jiān)控的文件進(jìn)行掃描,以生成Tripwire數(shù)據(jù)庫,在Tripwire 的src目錄下:如下操作。/tripwire -init,則系統(tǒng)會根據(jù)tw.conf.sunos5文件內(nèi)的設(shè)置,開始掃描并生成相應(yīng)的數(shù)據(jù)庫,上面提到,數(shù)據(jù)庫文件的路徑是在第二步configh中設(shè)置的,在本例中為/var/tripwire,我們得到了名為tw.db_secu.unix.com的數(shù)據(jù)庫文件。建議此時將Tripwire可執(zhí)行文件,數(shù)據(jù)庫文件,配置文件COPY到軟盤等地方,放到安全的地方。以后需要安全鑒別時直接在軟盤上執(zhí)行即可?! ?/p>

步驟5:測試  

數(shù)據(jù)庫生成了,我們來測試一下吧,首先我們在根下touch生成一個goadd文件,其次我們把根下的.cshrc文件做一下改動,在里面加入幾個#注釋號。然后我們來運行一下Tripwire看如何:  。/ Tripwire -c ./tw.config.sunos5 -d ./tw.db_secu.unix.com  Tripwire(tm) ASR (Academic Source Release) 1.3.1  File Integrity Assessment Software  (c) 1992, Purdue Research Foundation, (c) 1997, 1999 Tripwire  Security Systems, Inc。 All Rights Reserved。 Use Restricted to  Authorized Licensees?! ?## Phase 1: Reading configuration file  ### Phase 2: Generating file list  ./tripwire: /.profile: No such file or directory  ./tripwire: /kernel/unix: No such file or directory  ### Phase 3: Creating file information database  ### Phase 4: Searching for inconsistencies  ###  ### Total files scanned: 4437  ### Files added: 1  ### Files deleted: 0  ### Files changed: 1  ###  ### Total file violations: 2  ###  added: -rw-r--r-- root 0 Jul 3 18:45:31 2000 /goadd  changed: -r--r--r-- root 669 Jul 3 18:46:15 2000 /.cshrc  ### Phase 5: Generating observed/expected pairs for changed files  ###  ### Attr Observed (what it is) Expected (what it should be)  ### =========== ============================= =============================  /.cshrc  st_size: 669 668  st_mtime: Mon Jul 3 18:46:15 2000 Mon Jul 3 09:00:41 2000  st_ctime: Mon Jul 3 18:46:15 2000 Mon Jul 3 09:00:41 2000  md5 (sig1): 3z9gKjlZGq5GbeWOxpYaF9 1Z7K0n3ZKAyuPpAZB1G8uq  snefru (sig2): 1vCDeMR45lpRCChmDithiW 1oRYPpQ:oZA6hVx6Zi4.NG  可以看到,系統(tǒng)運行經(jīng)過了5個步驟,首先讀取配置文件,其次生成配置文件中設(shè)置為需要監(jiān)控,但實際并不存在的文件列表。第三部生成文件信息庫,第四步報告檢查情況。我們看到共掃描了4437個文件,其中有一個文件是新增加的,有一個文件發(fā)生了改變。在下面它列出了這兩個文件-正是我們做了手腳的文件!在最后一步Tripwire將發(fā)生了改變的文件現(xiàn)在字節(jié)數(shù),生成時間,修改時間, md5, snefru簽名及數(shù)據(jù)庫中的記錄對比列出,是不是很爽?  上面我們講到的是Tripwire的主要功能,在命令行狀態(tài)下敲入tripwire -h 就會有其它使用參數(shù)的介紹,有興趣的管理員不妨一試?! he Tripwire Product Line  Tripwire HQ Connector Bundle The HQ Connector bundle is comprised of Tripwires award-winning file integrity software, Tripwire version 2.2.1, and a communications agent that allows the software engine to "talk" to the Tripwire HQ Manager. Tripwire provides support for multiple platforms, including Windows NT, Solaris, Linux, HP-UX, IBM-AIX and others. With the Tripwire HQ Connector bundle, you can unequivocally answer the question: is my data the same today as it was yesterday? This information will help you keep your system in optimal working order and manage any changes - malicious or inadvertent - giving you complete control over data integrity.  Tripwire HQ Manager HQ Manager is a software console with a graphical user interface that allows you to control hundreds of installations of HQ Connector. Named HQ Manager because its designed to operate as your information integrity headquarters, this product provides you with the very best way to manage data integrity across an enterprise network from a single, centralized location.  Tripwire 2.2.1 for Linux With all the same great features as Tripwire 2.2.1 for other operating systems, Tripwire for Linux is available as a free download (without the agent that communicates with HQ Manager). In support of the open source community, Tripwire plans to release an open source version of this product this fall. For more information and future announcements about the open source release, check out www.tripwire.org.  Tripwire Academic Source Release 1.3.1 With only slight changes, the Tripwire Academic Source Release (ASR) version 1.3.1 is the same as the original Tripwire software that was developed in 1992 by Dr. Eugene Spafford and Tripwire CTO Gene Kim. Tripwire offers this version as a free download, but does not provide product support for it.

看完上述內(nèi)容,你們對如何理解Tripwire應(yīng)用有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI