吳文高 劉強(qiáng)
摘 要: 從操作系統(tǒng)的訪問(wèn)控制機(jī)制角度出發(fā),探討Linux系統(tǒng)的安全性。以Linux的通用訪問(wèn)控制框架為基礎(chǔ),增加一層訪問(wèn)控制,實(shí)現(xiàn)一個(gè)具有可擴(kuò)展性的訪問(wèn)控制體系結(jié)構(gòu),并定義和實(shí)現(xiàn)相應(yīng)的功能模塊,達(dá)到增強(qiáng)Linux系統(tǒng)安全訪問(wèn)的目的。
關(guān)鍵詞: Linux; 操作系統(tǒng); 安全訪問(wèn); 訪問(wèn)控制機(jī)制
中圖分類號(hào):TP316.8 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2015)03-12-02
Abstract: At the angle of access control mechanism, the security of Linux operation system is discussed. On the basis of universal access control framework of Linux, a layer of access control is added, and the corresponding function modules are defined and realized. Then an extensible access control system is implemented, and the security of accessing Linux operation system is enhanced.
Key words: Linux; operation system; secure access; access control mechanism
0 引言
操作系統(tǒng)的安全功能主要是實(shí)現(xiàn)訪問(wèn)控制。訪問(wèn)控制是實(shí)現(xiàn)既定安全策略的系統(tǒng)安全技術(shù),它對(duì)所有資源訪問(wèn)請(qǐng)求進(jìn)行仲裁,即根據(jù)安全策略的要求,對(duì)每個(gè)資源訪問(wèn)請(qǐng)求做出是否許可的判斷,能有效地阻止非法用戶訪問(wèn)系統(tǒng)資源和合法用戶非法使用資源。TCSEC(Trusted Computer System Evaluation Criteria,可信計(jì)算機(jī)系統(tǒng)評(píng)估準(zhǔn)則)把訪問(wèn)控制作為評(píng)價(jià)系統(tǒng)安全的主要指標(biāo)之一,具有不可替代的作用[1]。Linux是多用戶、多任務(wù)的操作系統(tǒng),本文從增強(qiáng)操作系統(tǒng)訪問(wèn)控制功能的角度,探討Linux系統(tǒng)訪問(wèn)控制機(jī)制的安全性及其改進(jìn)措施。
1 Linux訪問(wèn)控制機(jī)制分析
Linux系統(tǒng)在訪問(wèn)控制方面采用基于保護(hù)位的自主型訪問(wèn)控制,只能對(duì)user,group,other定義三種權(quán)限r(nóng)ead,write,execute,并且root不受權(quán)限限制。在安全訪問(wèn)方面存在如下缺點(diǎn)。
⑴ 超級(jí)用戶的權(quán)利太大。入侵者可以利用應(yīng)用程序的漏洞,不通過(guò)身份認(rèn)證就可以成為超級(jí)用戶,這個(gè)假冒的超級(jí)戶就可以輕松地修改系統(tǒng)的設(shè)置,安置后門,進(jìn)而破壞系統(tǒng)。
⑵ 系統(tǒng)上的重要文件可以很容易地被修改。在操作系統(tǒng)上有很多重要的系統(tǒng)文件,如管理認(rèn)證的系統(tǒng)程序(/bin/login)、存放系統(tǒng)用戶口令的系統(tǒng)配置文件(/etc/shadow,/etc/passwd)等。只要是Linux系統(tǒng)的超級(jí)用戶,就能夠做一切事情,包括替換系統(tǒng)的認(rèn)證程序,刪除系統(tǒng)的重要日志文件等。
⑶ 權(quán)限粒度太大,被保護(hù)對(duì)象太少,對(duì)進(jìn)程、設(shè)備等不加保護(hù)。
⑷ 由文件所有者自主設(shè)置權(quán)限,難以實(shí)現(xiàn)全局訪問(wèn)控制,系統(tǒng)不能基于單個(gè)用戶決定設(shè)置訪問(wèn)權(quán)限。
為了增強(qiáng)Linux操作系統(tǒng)的安全訪問(wèn)特性,可以從多個(gè)方面采用不同的技術(shù),如采用防火墻、入侵檢測(cè)等技術(shù)增強(qiáng)網(wǎng)絡(luò)安全,采用系統(tǒng)漏洞掃描對(duì)系統(tǒng)進(jìn)行安全分析與檢測(cè),采用強(qiáng)制訪問(wèn)控制、審計(jì)、客體重用等技術(shù)提高操作系統(tǒng)安全的安全級(jí)別等??偟膩?lái)說(shuō),無(wú)論采用哪種技術(shù)及其綜合,都涉及到在體系結(jié)構(gòu)設(shè)計(jì)上以通用訪問(wèn)控制框架作為基礎(chǔ),要考慮Linux操作系統(tǒng)在安全訪問(wèn)控制方面的可擴(kuò)展性、可適應(yīng)性和靈活性;在系統(tǒng)實(shí)現(xiàn)上,要考慮基于Linux安全框架的模塊機(jī)制實(shí)現(xiàn)系統(tǒng)功能模塊[2]。
2 擴(kuò)展的訪問(wèn)控制體系結(jié)構(gòu)
Linux的訪問(wèn)控制機(jī)制是以通用訪問(wèn)控制框架為基礎(chǔ)而設(shè)計(jì)的,分為三層:策略實(shí)施模塊AEF(Access Control Enforcenment Facility)、策略判斷模塊ADF(Access Control Decision Facility)、訪問(wèn)控制信息模塊ACI(Access Control Information)。
為了增強(qiáng)Linux操作系統(tǒng)的訪問(wèn)控制機(jī)制,在Linux原有的三層訪問(wèn)控制機(jī)制的基礎(chǔ)之上,增加一層訪問(wèn)控制,實(shí)現(xiàn)一個(gè)具有可擴(kuò)展性的訪問(wèn)控制體系結(jié)構(gòu)。其設(shè)計(jì)思想是:在內(nèi)核級(jí)動(dòng)態(tài)地截獲訪問(wèn)請(qǐng)求,然后,根據(jù)安全管理員制訂的訪問(wèn)控制策略,判斷請(qǐng)求的操作是否被授權(quán),從而實(shí)施增強(qiáng)的訪問(wèn)控制,控制系統(tǒng)中用戶特別是超級(jí)用戶的訪問(wèn)權(quán)限,增強(qiáng)對(duì)系統(tǒng)資源主要是文件和進(jìn)程的保護(hù)。
AEF實(shí)施各個(gè)訪問(wèn)控制模型定義的安全策略,通過(guò)系統(tǒng)調(diào)用截獲訪問(wèn)請(qǐng)求,然后擴(kuò)展系統(tǒng)調(diào)用完成具體決策的實(shí)施。ADF是主決策模塊,它定義AEF和訪問(wèn)控制模型之間的接口。該接口對(duì)于各種訪問(wèn)控制模型來(lái)說(shuō),猶如一個(gè)軟總線,所有已實(shí)現(xiàn)了的訪問(wèn)控制模塊通過(guò)它掛入策略判斷系統(tǒng);該接口為AEF提供了統(tǒng)一的策略判斷調(diào)用界面,屏蔽了具體的訪問(wèn)控制模型。可以說(shuō),ADF是各種模型和AEF之間的橋梁。因?yàn)锳DF只是一個(gè)接口,所以必須通過(guò)調(diào)用具體訪問(wèn)控制模型的決策函數(shù)才能完成策略判斷。各個(gè)模塊在實(shí)施策略判斷時(shí),需要參考各自的訪問(wèn)控制規(guī)則,它們保存ACI中。在本體系結(jié)構(gòu)中,ACI只是一個(gè)文件,為了保證信息的安全性,它存放在特殊目錄中,并通過(guò)某種方式加以保護(hù)。
擴(kuò)展的訪問(wèn)控制體系結(jié)構(gòu)通過(guò)內(nèi)核安全模塊實(shí)現(xiàn)與操作系統(tǒng)的無(wú)縫集成,保證Linux系統(tǒng)安全性、高效率、用戶透明性,主要具有如下特點(diǎn)。
⑴ 可擴(kuò)展性:該體系結(jié)構(gòu)是開(kāi)放的,可以根據(jù)應(yīng)用需要添加其他的訪問(wèn)控制模型,只要這些模型遵循ADF定義的接口規(guī)則,該規(guī)則定義了請(qǐng)求的類型,客體類型。ADF定義的請(qǐng)求類型和客體類型是所有模型實(shí)現(xiàn)訪問(wèn)控制功能的基礎(chǔ),必須基于這些定義實(shí)現(xiàn)訪問(wèn)控制功能,才能集成到該框架中,以協(xié)同工作。
⑵ 靈活性:在該體系結(jié)構(gòu)中可以實(shí)現(xiàn)多種訪問(wèn)控制模型,用戶可以根據(jù)不同的管理需求選擇一種或多種模型,具有配置靈活性。
⑶ 功能強(qiáng)大:這依賴于各個(gè)訪問(wèn)控制模型的功能。如基于用戶的訪問(wèn)控制、基于角色的訪問(wèn)控制、強(qiáng)制訪問(wèn)控制、附加的訪問(wèn)控制模型,可以克服現(xiàn)有系統(tǒng)在訪問(wèn)控制方面的不足。
3 功能模塊的設(shè)計(jì)
遵循模塊化的設(shè)計(jì)思想實(shí)現(xiàn)擴(kuò)展的訪問(wèn)控制體系結(jié)構(gòu),將相關(guān)的功能單元在同一模塊中實(shí)現(xiàn)。功能模塊的劃分及其模塊之間的關(guān)系。
⑴ 文件系統(tǒng)訪問(wèn)控制(File System Access Control,F(xiàn)SAC)增強(qiáng)模塊:在操作系統(tǒng)的安全功能之上提供一個(gè)安全保護(hù)層。通過(guò)修改文件系統(tǒng)相關(guān)的系統(tǒng)調(diào)用,在核心層截取文件訪問(wèn)請(qǐng)求,然后利用訪問(wèn)控制模型中的ACL(Access Control List),實(shí)施增強(qiáng)的訪問(wèn)控制,以加強(qiáng)文件安全性、實(shí)現(xiàn)權(quán)限集中管理、限制root權(quán)限。
對(duì)于系統(tǒng)中的關(guān)鍵文件,如日志文件、口令文件、權(quán)限配置文件、安全模塊程序等,由于它們的作用至關(guān)重要,需要采取額外的措施加以更嚴(yán)格的保證,此部分功能由該模塊中的關(guān)鍵文件保護(hù)子層實(shí)現(xiàn)。文件系統(tǒng)保護(hù)是基礎(chǔ)服務(wù),核心態(tài)下的其他功能模塊依賴于該模塊提供的保護(hù)功能[3]。
⑵ 進(jìn)程保護(hù)模塊。傳統(tǒng)的Linux沒(méi)有提供進(jìn)程保護(hù)機(jī)制。進(jìn)程的屬主和root可以用命令或系統(tǒng)調(diào)用殺死正在運(yùn)行的進(jìn)程[4]。實(shí)際上,一些關(guān)鍵進(jìn)程如數(shù)據(jù)庫(kù)守護(hù)進(jìn)程、應(yīng)用程序進(jìn)程等應(yīng)該一直運(yùn)行,不能被殺死。因此采用進(jìn)程防殺死技術(shù)和隱藏技術(shù),以保護(hù)關(guān)鍵進(jìn)程。
⑶ 自身保護(hù)模塊。內(nèi)核模塊是實(shí)現(xiàn)訪問(wèn)控制功能增強(qiáng)的載體,因此內(nèi)核模塊的安全性直接影響訪問(wèn)控制功能能否成功實(shí)施、甚至影響系統(tǒng)的安全。鑒于訪問(wèn)控制增強(qiáng)模塊的重要性和內(nèi)核模塊機(jī)制潛在的安全隱患,必須慎重考慮模塊的安全性問(wèn)題,保證加載到核心的內(nèi)核模塊安全,使其不被發(fā)現(xiàn)、不被惡意卸載、不被插入惡意模塊。為此,采用模塊隱藏和內(nèi)核密封技術(shù),以滿足系統(tǒng)模塊的安全性要求,增強(qiáng)系統(tǒng)自身的保護(hù)能力[5]。隱藏內(nèi)核模塊,使其不可見(jiàn),從而降低模塊的安全風(fēng)險(xiǎn);內(nèi)核密封,防止內(nèi)核模塊的加載/卸載,阻斷惡意攻擊。另外,安全程序?qū)⒎湃胩厥饽夸?,通過(guò)程序文件的保護(hù),防止刪除安全程序。
⑷ 配置管理工具。該模塊運(yùn)行在用戶態(tài),為安全管理員提供制定訪問(wèn)控制策略的界面,提供管理系統(tǒng)的接口。使用策略配置工具,可以添加、刪除、更新、顯示某個(gè)客體的訪問(wèn)控制列表項(xiàng),訪問(wèn)控制列表項(xiàng)定義了哪個(gè)主體可以以何種權(quán)限訪問(wèn)某個(gè)客體。使用管理工具,可以將系統(tǒng)密封或者解封,查看系統(tǒng)運(yùn)行狀態(tài),配置系統(tǒng)運(yùn)行參數(shù)等操作。
4 結(jié)束語(yǔ)
本文針對(duì)Linux訪問(wèn)時(shí)存在的安全缺陷,以通用訪問(wèn)控制框架為基礎(chǔ),設(shè)計(jì)并實(shí)現(xiàn)了Linux訪問(wèn)控制增強(qiáng)系統(tǒng),拓展了Linux系統(tǒng)在訪問(wèn)控制方面的可擴(kuò)展性,可適應(yīng)性和靈活性。如實(shí)現(xiàn)的ACL模型,既可以根據(jù)訪問(wèn)控制規(guī)則限制root權(quán)限,也可以基于單個(gè)用戶制定訪問(wèn)控制策略。當(dāng)然,也可以進(jìn)一步實(shí)現(xiàn)其他更高級(jí)的訪問(wèn)控制模型。實(shí)現(xiàn)的保護(hù)對(duì)象是文件和進(jìn)程,對(duì)系統(tǒng)中的其他對(duì)象如設(shè)備、網(wǎng)絡(luò)、進(jìn)程間通信也可以加以保護(hù)。比如,實(shí)現(xiàn)內(nèi)核級(jí)防火墻對(duì)網(wǎng)絡(luò)實(shí)施訪問(wèn)控制,從而提高網(wǎng)絡(luò)安全性。這些方面有待于后續(xù)進(jìn)一步研究和實(shí)現(xiàn)。
參考文獻(xiàn):
[1] 劉東輝,王樹(shù)明.Linux微內(nèi)核模型[J].微計(jì)算機(jī)信息,2007.8(23):
12-14
[2] 陳莉君.深入分析Linux內(nèi)核源代碼[M].人民郵電出版社,2002.
[3] 陳嶺,陳根才.在Linux文件系統(tǒng)中增加ACL功能[J].計(jì)算機(jī)應(yīng)用,
2000.11(24):56-57
[4] 王加森.基于Linux的安全操作系統(tǒng)[J].西南交通大學(xué)學(xué)報(bào),2005.3
(21):22-23
[5] 蔣韜,李信滿.信息安全模性研究[J].小型微型計(jì)算機(jī)系統(tǒng),2004.8
(21):16-17