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