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