提高開放式 UNIX 平臺的安全性(轉)

BSDLite發表於2007-08-11
提高開放式 UNIX 平臺的安全性(轉)[@more@]使用 Mandrake MD5 校驗和
Igor Maximov ()
Web 開發人員,softPilot.2000

本文要看一下使用一種新方法提高開放式 UNIX 安全性的小外殼(shell)應用程式。本文提供了對程式碼逐步的分析。作者的專業領域是 Web 程式設計及尖端網路安全性開發。
破壞系統並獲得超級使用者許可權的惡意使用者對所有的系統管理員都將是一場惡夢。為保護開放式 UNIX 平臺,下面的小外殼應用程式將為開放式 UNIX 安全壁壘添磚加瓦。

開放式 UNIX 作業系統 FreeBSD 和 Linux Mandrake 都有完整的外殼安全系統。FreeBSD 程式的位置在 /etc/security。Linux 的 Mandrake 安全包可以在 /usr/share/msec 下找到。這些標準工具功能相近,但是,它們把對檔案系統完整性的控制限於有 SUID 和 SGID 標誌的檔案。可 Mandrake 計算 MD5 檔案校驗和的方式不同於 FreeBSD。

通常正在執行的程式對系統資源的訪問許可權同該程式使用者的許可權對應。設定 SGID 和 SUID 標誌會更改這一點,以便根據檔案所有者的許可權來指定訪問許可權。因此,不管程式使用者是誰,root 使用者的正執行著的可執行程式全都可以無任何限制的訪問系統資源。在這種情況下,設定 SUID 和 SGID 標誌導致了檔案所有者的許可權和組所有者的許可權分別被繼承。然後,單為執行時及單為程式對特權進行更改(通常是擴充套件)。由應用程式啟動的其它程式也繼承該應用程式的許可權。因此,應該謹慎的設定 SUID 和 SGID 標誌,而且只給那些不能啟動任意任務的程式設定。

MD5
MD5 是數字簽名應用程式的訊息摘要演算法,作者 Ronald L. Rivest 在 1991 年開發的。請參閱本文後面參考資料以得到演算法的原始碼及更多資訊。
解決方案:使用 MD5 校驗和
使用 SGID/SUID 標誌跟蹤對新系統檔案所做的修改是一項極其困難的任務。但是,依靠足夠的經驗和謹慎,可以修改系統服務與設定而不更改標準檔案屬性(通常管理員會注意檔案建立及修改的日期)。下面的程式基於對為防止修改而被偽裝的 MD5 校驗和進行的完整性測試,跟蹤對指定目錄中全部檔案所做的修改。

FreeBSD 的 files-diffs 配置與原始碼
標準服務在以下目錄中:/etc *、/bin、/sbin、/modules、/usr/bin、/usr/sbin、/usr/lib *、/usr/libexec *、/usr/X11R6/bin、/usr/X11R6/lib *、/usr/local/bin、/usr/local/etc * 及 /usr/local/sbin。這樣的層次結構對標準服務的完整性進行跟蹤,但是無法跟蹤那些也會受到損害的附加服務(Perl、Web、News 等)。用 * 標記的目錄含有附加層次,且也應對它們進行跟蹤。讓 root 使用者收到關於修改過的檔案的每日的電子郵件報告是個好主意。設定我們的外殼程式:

以 root 使用者身份登入
[cd /etc/periodic/daily]
把程式碼存到 files-diffs 檔案
[chmod 755 files-diffs]
[chown root:wheel files-diffs]
清單 1. FreeBSD 的 files-diffs
QUOTE:

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

提高開放式 UNIX 平臺的安全性(轉)
請登入後發表評論 登入
全部評論

相關文章