查看完整版本: Tripwire 系統指紋比對系統!


adj 2007-11-29 11:46

Tripwire 系統指紋比對系統!

文章來源 : [url=http://safe.ip-market.com/article.php?sid=38]http://safe.ip-market.com/article.php?sid=38[/url]
Linux 另一套檔案指紋比對系統可參考 [url=http://redhat.ecenter.idv.tw/bbs/showthread.php?threadid=18110&highlight=%AC%E3%B2%DF]http://redhat.ecenter.idv.tw/bbs/showthread.php?threadid=18110&highlight=%AC%E3%B2%DF[/url]

TripeWire安裝筆記
張貼:matt 發表於 Wednesday, May 02 @ 13:03:20 CST
作者:Matt
v0.1 init 2001/04/30
v0.2 security update 2001/08/07
v0.3 process update 2001/08/20
在入侵的技術中,有一個常用的方法是替換掉重要的系統檔案,以利入侵者下一次的入侵,如替換掉 login 程式,下次利用某一特定密碼就可以root登入系統。
但是系統中檔案那麼多,我們怎知那些被換掉了呢? 這時候就可利用「檔案完整性檢查程式」來幫忙我們了,這個方法雖然有點消極,但至少也是個保護系統安全的方法之一。

這類型常見的程式也不少,最有名的就非 Tripwire 莫屬了。Tripwire的免費版最早在1.多版時是Open Source的,後來 2.2.x 版 Close Source,但最近的又Open Source 了....還真的有點奇怪...^_^
這次就為大家來介紹 Tripwire 的安裝。



1.取得軟體
 原始碼版本 可至 [url=http://sourceforge.net/projects/tripwire/]http://sourceforge.net/projects/tripwire/[/url] 取得,請下載 tripwire-2.3.1 以上的版本
 編譯好的版本 可至 [url=http://www.openna.com/download/tripwire/tripwire-download.htm]http://www.openna.com/download/tripwire/tripwire-download.htm[/url] 取得,下載 tripwire-2.3.1-1.i686.rpm
PS:原本 [url=http://www.tripwire.org/]http://www.tripwire.org[/url] 上提供的 tripwire-2.3-47 這個版本有安全上的bug。
2.安裝 Tripwire (這邊使用RPM的版本來安裝)
 a.用root,使用下列命令安裝
  rpm -ivh tripwire-2.3.1-1.i686.rpm
 b.在使用RPM安裝後,再來需要執行 /etc/tripwire/twinstall.sh 來完成 tripwire 的安裝。
  執行此script時,其會詢問 site keyfile passphrase與local keyfile passphrase,並用兩個key來sign policy與設定檔,避免入侵者改變 tripwire 的安裝設定,所以強烈建議您取個好的密碼。site key 被用來 sign tripwire 的 policy 檔,sign玩後檔名通常是tw.pol;local key 被用來 sign tripwire 的設定檔,sign玩後檔名通常是tw.cfg。
再來請將 tw.cfg 拷貝到 /usr/sbin/ (v0.3 update)
 PS: Tripwire的相關檔案都放置在 /etc/tripwire 目錄下。

3.自定 policy file
 由於 tripwire 安裝時是使用預設的 policy ,其中可能會因個人Linux系統的不同,而不能完全適用。所以需要自行修改 policy ,來滿足個人的需求。 tripwire 己經在 /etc/tripwire/twpol.txt 內有存放一個純文字的 policy 檔,所以依這個檔案來修改。
記得修改 HOSTNAME=xxxx; <-- your hostname
 另外,檔案內的$(SIG_HI) 或 $(SEC_BIN) 為預設的自定 property mask ,在此檔開始前面 @@section FS
 就可找到。
 例如我們有安裝 ssh ,則加入下面的 rule,另外因為 /usr/sbin 在前面己經有設定了,所以不用加入 /usr/sbin/sshd 的 rule。
 範例:

 (
 rulename = "My Customer rule",
 severity = $(SIG_HI)
 )
 {
   # ssh2
/etc/ssh -> $(SEC_BIN) ;

 }

4.初始 tripwire 資料庫
 /usr/sbin/twadmin -m P /etc/tripwire/twpol.txt
 /usr/sbin/tripwire -m i

5.精簡 policy file
 使用下列命列,找出 policy file 中有定義,但這台機器卻沒有此檔案或目錄的 rule ,將它重 policy file 中去除。
 /usr/sbin/tripwire -m c | grep Filename >> twnotfound.txt
 當編輯完 policy file 後,需要重新安裝 policy,並重建 Database,使用下列命令:
 /usr/sbin/twadmin -m P /etc/tripwire/twpol.txt
 /usr/sbin/tripwire -m i

6.移除純文字的 policy 與 設定檔
 由於 tripwire 己經利用 key 將 policy 與設定檔 加密成 tw.pol,tw.cfg了,所以原始的policy與設定檔便可移除了。
 rm /etc/tripwire/twpol.txt
 rm /etc/tripwire/twcfg.txt

7.排程執行 tripwire 分析(每小時一次)
 在 /etc/cron.hourly/ 下新增一個可執行的script,內容如下:
#!/bin/sh
/usr/sbin/tripwire -m c | mail -s "Tripwire Report from {some_host}" root@localhost

8.資料庫更新
 若系統有安裝或修改檔案,需要更新 tripwire 的資料庫,不然會一直收到警告的信。
 使用下面命令:
 /usr/sbin/tripwire -m u -r /var/lib/tripwire/report/{最後時間}.twr
 之後會進入 vi 編輯報表,Tripwire的報表會在每一個違反策略檔案中所定義的規則的地方加上一個選擇框。可保留選擇框中的"x",表示接受這個變化。如果把選擇框中的"x"移掉,表示資料庫不會更新這個變化。等結束編輯器並輸入本地的passphrase(密碼)之後,Tripwire就會更新並存檔資料庫。

9.更新 policy 檔
 先將現有的 policy 內容匯出成純文字檔,
 /usr/sbin/twadmin -m p > /etc/tripwire/twpol.txt
 再修改 /etc/tripwire/twpol.txt,修改玩再更新回去。
 /usr/sbin/tripwire -m p /etc/tripwire/twpol.txt
 更新回去後,再執行一次完整性檢查,看看 policy 是不是想要的。
 /usr/sbin/tripwire -m c
 記得還要刪除 /etc/tripwire/twpol.txt
 PS:當然也可以使用 twadmin -m p /etc/tripwire/twpol.txt 來更新策略檔,但更新玩後還需要重新初始化tripwire資料庫。所以不建議使用。

10.更新設定檔
 取出現有的設定內容匯出成純文字檔
 twadmin -m f > twcfg.txt
 修改 twcfg.txt ,再更新回去
 twadmin -m F --site-keyfile /etc/tripwire/site.key twcfg.txt
 刪除 twcfg.txt


本文件參考:
1.Tripwire Open Source 官方網站說明文件
[url=http://www.tripwire.org/]http://www.tripwire.org/[/url]

2.Getting Started with Tripwire (Open Source Linux Edition)
[url=http://www.linuxsecurity.com/feature_stories/tripwire-printer.html]http://www.linuxsecurity.com/feature_stories/tripwire-printer.html[/url]
3. Tripwire Operation Process
頁: [1]
查看完整版本: Tripwire 系統指紋比對系統!