FreeBSD下的強(qiáng)制訪問控制體系 TrustedBSD MAC使用教程
在傳統(tǒng)的 UNIX 系統(tǒng)中,DAC 保護(hù)措施包括文件訪問模式和訪問控制列表;而 MAC 則提供進(jìn)程控制和防火墻等。
TrustedBSD計(jì)劃把核心的FreeBSD發(fā)布版與符合信息技術(shù)安全評估標(biāo)準(zhǔn)(ITSEC)的可信賴的安全組件結(jié)合在了一起。這些組件提供了確保這個(gè)操作系統(tǒng)安全運(yùn)行的大量的不同的模塊。
這些工具包括集中的政策管理、組件和執(zhí)行(包括內(nèi)核模塊和功能調(diào)用)的深入審計(jì)、對系統(tǒng)的不同區(qū)域?qū)嵭袕?qiáng)制性訪問控制和來自文件系統(tǒng)和內(nèi)核資源的訪問控制名單等。不過,這些工具還有其它的功能。比如更精細(xì)的訪問控制、更強(qiáng)大的報(bào)告和監(jiān)視功能以及為運(yùn)行各種服務(wù)提供的更安全的環(huán)境。
Unix(包括Linux)從業(yè)者都知道,任意一個(gè)普通用戶在登陸系統(tǒng)之后,都可以查看系統(tǒng)中已經(jīng)登陸有哪些用戶,以及他們正在進(jìn)行什么操作。此外,當(dāng)前所有用戶的進(jìn)程也可以很輕松的被查看。這些信息被合法使用當(dāng)然沒什么問題,但是一旦被黑客獲取,那將留下相當(dāng)大的安全隱患,他們可以馬上找到提升權(quán)限的方法。
但如果你的系統(tǒng)中部署了Mandatory Access Control (MAC) Framework——TrustedBSD的強(qiáng)制訪問控制體系之后,情況就不一樣了。
TrustedBSD MAC 框架為大多數(shù)的訪問控制模塊提供基本設(shè)施,允許它們以內(nèi)核模塊的形式靈活地?cái)U(kuò)展系統(tǒng)中實(shí)施的安全策略。 如果系統(tǒng)中同時(shí)加載了多個(gè)策略,MAC 框架將負(fù)責(zé)將各個(gè)策略的授權(quán)結(jié)果以一種(某種程度上)有意義的方式組合,形成***的決策。
下面我們在FreeBSD7.0上做一個(gè)演示,將MAC強(qiáng)制訪問控制引入系統(tǒng)之前,應(yīng)該確保我們的系統(tǒng)內(nèi)核中有相應(yīng)的支持。如果是默認(rèn)安裝的系統(tǒng),需要在內(nèi)核配置文件中添加一行:
options MAC
重新編譯內(nèi)核之后就OK了。
執(zhí)行man 4 mac 命令,可以看到各種MAC模塊。如圖1所示。
![]() |
圖1 |
這里既可以選擇某方面做針對控制的模塊,又可以選擇整體控制的一些模塊,很方便。
在這個(gè)測試的系統(tǒng)中,任何用戶都可以運(yùn)行ps -aux命令,查看系統(tǒng)中所有的活動(dòng)進(jìn)程,或者執(zhí)行sockstat -4、netstat -an 來查看系統(tǒng)中所有的網(wǎng)絡(luò)連接以及開放的網(wǎng)絡(luò)套接字。如圖2、3所示。
![]() |
圖2 |
![]() |
圖3 |
#p#
下面我們加載MAC_SEEOTHERUIDS 模塊。執(zhí)行:kldload mac_seeotheruids,如圖4所示。
![]() |
圖4 |
注意看下面這個(gè)圖,加載TrustedBSD的MAC模塊之后,普通用戶ww已經(jīng)不能看到其他人的工作進(jìn)程了,也不能看到其他人的網(wǎng)絡(luò)連接狀態(tài)。如圖5,6所示。
![]() |
圖5 |
![]() |
圖6 |
這樣系統(tǒng)的安全性就大大提高了。如果我們希望系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載這一模塊,就向/boot/loader.conf 文件中添加:mac_seeotheruids_load="YES"
如圖7所示。
![]() |
圖7 |
如果我們想卸載這個(gè)模塊,只需要敲入命令:kldunload mac_seeotheruids即可。
大家用普通用戶(非root賬戶)在系統(tǒng)中執(zhí)行一下netstat,ps之類的命令,很容易就能做出比較。在加載MAC模塊的狀態(tài)下,以上命令只會(huì)顯示當(dāng)前用戶自己的進(jìn)程及套接字。
但是不會(huì)顯示其他用戶當(dāng)前正在進(jìn)行的操作。
【編輯推薦】