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