Tripwire 應用(轉)

amyz發表於2007-08-10
Tripwire 應用(轉)[@more@]

  對unix管理員來說,主機系統的安全一直是個課題,一方面管理員透過更新patch,安裝軟硬體防火牆等手段努力使自己的系統可靠性增強,而另一方面unix作業系統的漏洞總是不斷被發現並被公佈出來,如BUGTRAQ這樣的安全列表,從這個角度上可以很絕對的說,網際網路上沒有安全的主機。任何一臺放在Internet上的主機被入侵的潛在可能性是不可逃脫的,而且,對入侵者而言,利用漏洞進入系統往往只是第一步,如果想得到更多的,如超級使用者的密碼,資料庫的口令等,往往需要下點功夫,最便捷也是最有效的就是改動或特洛伊化受侵害的主機上的檔案,如放置自己的監聽程式,替代某些關鍵檔案,修改編輯可信檔案,設定suid檔案等。

  一些管理員通unix自帶的命令來檢查檔案的安全性,如檢查檔案生成的時間戳,但這樣的可靠性微乎其微,有經驗的入侵者可以很輕鬆的修改檔案生成時間,有興趣的管理員可以試試以下操作:

  # echo "+ +" > /.rhosts

  這一步生成一個.rhosts檔案,看看它的時間。

  # ls -l /.rhosts

  -rw-r--r-- 1 root other 4 Jul 2 16:45 /.rhosts

  好,我們如下操作看看會怎麼樣?

  # touch -r /bin/sh /.rhosts

  #ls -l /.rhosts

  -rw-r--r-- 1 root other 4 Apr 5 16:32 /.rhosts

  我們看到時間戳已經變了。變成了一個"老"檔案,這樣很可能就會逃脫管理員的視線。比如,入侵者替換掉了su檔案,在正當使用者每次試圖su時,這個特洛伊化的su檔案都會讀取口令並將口令記載下來,然後才把控制權交給真正的su程式,口令透過這種途徑洩密了,雖然這不是管理員所期望的,但畢竟unix太大太複雜,發現起來很困難。

  Tripwire就是解決這一問題的經典工具,它是目前最為著名的unix下檔案系統完整性檢查的軟體工具,這一軟體採用的技術核心就是對每個要監控的檔案產生一個數字簽名,保留下來。當檔案現在的數字簽名與保留的數字簽名不一致時,那麼現在這個檔案必定被改動過了。具體到監控專案,在Tripwire的配置檔案中有如下相應說明:

  access permissions and file mode settings, including effective execution settings 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對檔案的管理面是很寬的。

  2: Tripwire的工作原理

  當Tripwire執行在資料庫生成模式時,會根據管理員設定的一個配置檔案對指定要監控的檔案進行讀取,對每個檔案生成相應數字簽名,並將這些結果儲存在自己的資料庫中,在預設狀態下,MD5和SNCFRN(Xerox的安全雜湊函式)加密手段被結合用來生成檔案的數字簽名。除此以外,管理員還可使用MD4,CRC32,SHA等雜湊函式,但實際上,使用上述兩種雜湊函式的可靠性已相當高了,而且結合MD5和sncfrn兩種演算法(尤其是sncfrn)對系統資源的耗費已較大,所以在使用時可根據檔案的重要性做取捨。當懷疑係統被入侵時,可由Tripwire根據先前生成的,資料庫檔案來做一次數字簽名的對照,如果檔案被替換,則與Tripwire資料庫內相應數字簽名不匹配, 這時Tripwire會報告相應檔案被更動,管理員就明白系統不"乾淨"了。

  有一點要注意,上述保障機制的重點在於資料庫內的數字簽名,如果資料庫是不可靠的,則一切工作都喪失意義。所以在Tripwire生成資料庫後,這個庫檔案的安全極為重要。比較常見的做法是將資料庫檔案, Tripwire二進位制檔案,配置檔案單獨保留到"可拿走並鎖起來"的質上,如軟盤,將上述檔案複製到軟盤後,關閉防寫口,鎖到保險櫃中。除軟盤外, 一次性介質,如cd-r也是很好的選擇,這樣即使侵入者拿到盤也無計可施。除這種辦法外,利用PGP等加密工具對上述關鍵檔案進行數字簽名也是一個很好的選擇。

  當然,當管理員自身對某些檔案更動時, Tripwire的資料庫必然是需要隨之更新的, Tripwire考慮到了這一點,它有四種工作模式:資料庫生成,完整性檢查,資料庫更新。互動更新。當管理員更動檔案後,可執行資料庫更新模式來產生新的資料庫檔案。

  3:下載Tripwire,安裝前的準備工作

  Tripwire支援絕大多數Unix作業系統,它的安裝需要編譯環境,如gcc,cc等,還需要gzip,gunzip等解壓工具。這些工具管理員可從相應站點獲取,這裡不討論。Tripwire可從獲得,到它的主頁download部分,可以看到當前可免費download的Tripwire1.3 ASR版本,下載下來就是。

  4:安裝Tripwire

  Tripwire的tar包解開後,我們可以看到如下目錄結構,建議先看看根下的README檔案,對Tripwire有個整體的瞭解。隨後,我們就可以一步步的安裝這個軟體了。

  步驟1:匹配主機環境

  在Tripwire的根下有Ported這個檔案,它是對支援的系統及相關配置檔案的描述,管理員第一步需要開啟這個檔案,找到符合自己系統的描述,本文的測試環境是solaris2.6,我們擷取相關部分來看看,

    vendor: Sun Microsystems, Inc.

  

  為了方便起見,Tripwire作者把常見組合做成了模板,如下,

    #

  

  我們可以看到,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看如何:

    / Tripwire -c ./tw.config.sunos5 -d ./tw.db_secu.unix.com

  

  可以看到,系統執行經過了5個步驟,首先讀取配置檔案,其次生成配置檔案中設定為需要監控,但實際並不存在的檔案列表。第三部生成檔案資訊庫,第四步報告檢查情況。我們看到共掃描了4437個檔案,其中有一個檔案是新增加的,有一個檔案發生了改變。在下面它列出了這兩個檔案-正是我們做了手腳的檔案!在最後一步Tripwire將發生了改變的檔案現在位元組數,生成時間,修改時間, md5, snefru簽名及資料庫中的記錄對比列出,是不是很爽?

  上面我們講到的是Tripwire的主要功能,在命令列狀態下敲入tripwire -h 就會有其它使用引數的介紹,有興趣的管理員不妨一試。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-941402/,如需轉載,請註明出處,否則將追究法律責任。

相關文章