Unix--Tripwire,它是目前最為著名的Unix下文件系統完整性檢查的軟件工具,這一軟件采用的技術核心就是對每個要監控的文件產生一個數字簽名,保留下來。
當文件現在的數字簽名與保留的數字簽名不一致時,那麼現在這個文件必定被改動過了。具體到監控項目,在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
由上,我們可以看到Unix--Tripwire對文件的管理面是很寬的。
Unix--Tripwire的工作原理
當Unix--Tripwire運行在數據庫生成模式時,會根據管理員設置的一個配置文件對指定要監控的文件進行讀取,對每個文件生成相應數字簽名,並將這些結果保存在自己的數據庫中,在缺省狀態下,MD5和SNCFRN(Xerox的安全哈希函數)加密手段被結合用來生成文件的數字簽名。
除此以外,管理員還可使用MD4,CRC32,SHA等哈希函數,但實際上,使用上述兩種哈希函數的可靠性已相當高了,而且結合MD5和sncfrn兩種算法(尤其是sncfrn)對系統資源的耗費已較大,所以在使用時可根據文件的重要性做取捨。
當懷疑系統被入侵時,可由Unix--Tripwire根據先前生成的,數據庫文件來做一次數字簽名的對照,如果文件被替換,則與Tripwire數據庫內相應數字簽名不匹配, 這時Tripwire會報告相應文件被更動,管理員就明白系統不"干淨"了。
有一點要注意,上述保障機制的重點在於數據庫內的數字簽名,如果數據庫是不可靠的,則一切工作都喪失意義。所以在Unix--Tripwire生成數據庫後,這個庫文件的安全極為重要。比較常見的做法是將數據庫文件, Tripwire二進制文件,配置文件單獨保留到"可拿走並鎖起來"的質上,如軟盤,將上述文件復制到軟盤後,關閉寫保護口,鎖到保險櫃中。
除軟盤外, 一次性介質,如cd-r也是很好的選擇,這樣即使侵入者拿到盤也無計可施。除這種辦法外,利用PGP等加密工具對上述關鍵文件進行數字簽名也是一個很好的選擇。
當然,當管理員自身對某些文件更動時, Unix--Tripwire的數據庫必然是需要隨之更新的, Unix--Tripwire考慮到了這一點,它有四種工作模式:數據庫生成,完整性檢查,數據庫更新。交互更新。當管理員更動文件後,可運行數據庫更新模式來產生新的數據庫文件。