在傳統的 UNIX 系統中,DAC 保護措施包括檔案訪問模式和存取控制清單;而 MAC 則提供進程式控制制和防火牆等。
TrustedBSD計劃把核心的FreeBSD發布版與符合資訊技術安全評估標準(ITSEC)的可信賴的安全性群組件結合在了一起。這些組件提供了確保這個作業系統安全啟動並執行大量的不同的模組。
這些工具包括集中的政策管理、組件和執行(包括核心模組和功能調用)的深入審計、對系統的不同地區實行強制性存取控制和來自檔案系統和核心資源的存取控制名單等。不過,這些工具還有其它的功能。比如更精細的存取控制、更強大的報告和監視功能以及為運行各種服務提供的更安全的環境。
Unix(包括Linux)從業者都知道,任意一個普通使用者在登陸系統之後,都可以查看系統中已經登陸有哪些使用者,以及他們進行中什麼操作。此外,當前所有使用者的進程也可以很輕鬆的被查看。這些資訊被合法使用當然沒什麼問題,但是一旦被駭客擷取,那將留下相當大的安全隱患,他們可以馬上找到提升許可權的方法。
但如果你的系統中部署了Mandatory Access Control (MAC) Framework——TrustedBSD的強制存取控制體系之後,情況就不一樣了。
TrustedBSD MAC 架構為大多數的存取控制模組提供基本設施,允許它們以核心模組的形式靈活地擴充系統中實施的安全性原則。 如果系統中同時載入了多個策略,MAC 架構將負責將各個策略的授權結果以一種(某種程度上)有意義的方式組合,形成最後的決策。
下面我們在FreeBSD7.0上做一個示範,將MAC強制存取控制引入系統之前,應該確保我們的系統核心中有相應的支援。如果是預設安裝的系統,需要在核心設定檔中添加一行:
options MAC
重新編譯核心之後就OK了。
執行man 4 mac 命令,可以看到各種MAC模組。1所示。
| 498)this.style.width=498;" border=0> |
| 圖1 |
這裡既可以選擇某方面做針對控制的模組,又可以選擇整體控制的一些模組,很方便。
在這個測試的系統中,任何使用者都可以運行ps -aux命令,查看系統中所有的活動進程,或者執行sockstat -4、netstat -an 來查看系統中所有的網路連接以及開放的網路通訊端。2、3所示。
| 498)this.style.width=498;" border=0> |
| 圖2 |
| 498)this.style.width=498;" border=0> |
| 圖3 |
下面我們載入MAC_SEEOTHERUIDS 模組。執行:kldload mac_seeotheruids,4所示。
| 498)this.style.width=498;" border=0> |
| 圖4 |
注意看下面這個圖,載入TrustedBSD的MAC模組之後,普通使用者ww已經不能看到其他人的背景工作處理序了,也不能看到其他人的網路連接狀態。5,6所示。
| 498)this.style.width=498;" border=0> |
| 圖5 |
| 498)this.style.width=498;" border=0> |
| 圖6 |
這樣系統的安全性就大大提高了。如果我們希望系統啟動時自動載入這一模組,就向/boot/loader.conf 檔案中添加:mac_seeotheruids_load="YES"
7所示。
| 498)this.style.width=498;" border=0> |
| 圖7 |
如果我們想卸載這個模組,只需要敲入命令:kldunload mac_seeotheruids即可。
大家用普通使用者(非root賬戶)在系統中執行一下netstat,ps之類的命令,很容易就能做出比較。在載入MAC模組的狀態下,以上命令只會顯示目前使用者自己的進程及通訊端。
但是不會顯示其他使用者當前進行中的操作。