專利名稱:一種基于自學(xué)習(xí)的Linux安全策略配置方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機與網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,具體涉及一種基于自學(xué)習(xí)的Linux安全策略配置方法。
背景技術(shù):
隨著Linux操作系統(tǒng)的日益普及,其安全性問題也越來越引起人們注意。SELinux是2.6版本的Linux內(nèi)核中提供的強制訪問控制(MAC)系統(tǒng)。訪問控制通常由用戶預(yù)先配置安全策略,或者系統(tǒng)本身提供基于某個模型的安全策略,然后通過引用監(jiān)控機來實現(xiàn)對系統(tǒng)資源訪問請求的仲裁。訪問控制的目的在于維護系統(tǒng)的保密性、完整性和可用性。對于目前可用的Linux安全模塊來說,SELinux是功能最全面,而且測試最充分的,它是在20年的MAC研究基礎(chǔ)上建立的。SELinux在類型強制服務(wù)器中合并了多級安全性或一種可選的多類策略,并采用了基于角色的訪問控制概念。通過配置可以實現(xiàn)對權(quán)限最小化控制和防止權(quán)限升級等。SELinux改進了對內(nèi)核對象和服務(wù)的訪問控制,改進了對進程初始化、繼承和程序執(zhí)行的訪問控制,改進了對文件系統(tǒng)、目錄、文件和打開文件描述的訪問控制,還改進了對端口、信息和網(wǎng)絡(luò)接口的訪問控制。SELinux主要應(yīng)用了兩項核心技術(shù),類型加強(TE)和基于角色的訪問控制(RBAC)。TE給每個主體(進程)和系統(tǒng)中的客體定義了一個類型,這些類型定義在SELinux的安全策略文件中,以安全標(biāo)簽形式存放在文件本身的擴展屬性(extended attributes,簡稱xattrs)里。默認(rèn)情況下,主體對客體的操作是不允許的,而由策略定義允許的操作。TE使用主體的域和客體類型的數(shù)據(jù)都存放在策略文件中。因為Linux操作系統(tǒng)自身的復(fù)雜性,以及上層應(yīng)用的多樣性,決定了 SELinux的配置過程異常復(fù)雜。并且,SELinux涉及到操作系統(tǒng)底層的方方面面,更加大了配置管理員正確進行安全配置的難度;同時,如何為操作系統(tǒng)中每一個主體分配合理的權(quán)限,是配置管理員首先要思考的問題,通常這個過程都遵守最小化權(quán)限的原則,即分配給一個主體的權(quán)限必須剛好是能夠滿足該主體的合法訪問的要求,超過這個要求會造成潛在的安全隱患,低于這個要求會導(dǎo)致主體不能正常工作。綜上所述,為一個全新的業(yè)務(wù)系統(tǒng)構(gòu)建一套穩(wěn)定、安全的SELinux策略,這對每一個配置管理員來說都是一項挑戰(zhàn)。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于自學(xué)習(xí)的Linux安全策略配置方法,以簡化系統(tǒng)配置的工作流程。本發(fā)明提供一種基于自學(xué)習(xí)的Linux安全策略配置方法,其改進之處在于,在SeLinux的安全服務(wù)器區(qū)中嵌入策略學(xué)習(xí)模塊;所述方法包括如下步驟:(I)安裝Linux操作系統(tǒng),并將改進后的SeLinux作為安裝項;
(2)進入Linux操作系統(tǒng),開啟策略學(xué)習(xí)模塊流程,并開啟所述策略學(xué)習(xí)模塊的學(xué)習(xí)開關(guān);(3)部署應(yīng)用軟件與業(yè)務(wù)系統(tǒng);(4)經(jīng)過一段時間的安全穩(wěn)定運行,關(guān)閉所述策略學(xué)習(xí)模塊的學(xué)習(xí)開關(guān);(5)手動調(diào)整,合并部分自動生成的訪問控制策略;(6)經(jīng)過一段時間的穩(wěn)定運行,對安全日志進行審計,記錄并生成沒有正常運行的主體名單及訪問的客體名單;(7)手動調(diào)整所述自動生成的訪問控制策略,為所述沒有正常運行的主體名單中的主體添加對應(yīng)客體的訪問權(quán)限;(8)安全策略配置結(jié)束。其中,步驟(2)所述開啟策略學(xué)習(xí)模塊流程包括如下步驟:I)系統(tǒng)啟動,策略學(xué)習(xí)模塊從文件中讀取策略信息;2)操作系統(tǒng)中主體A對客體B進行訪問,策略學(xué)習(xí)模塊通過LSM接口攔截這一訪問過程;3)策略學(xué)習(xí)模塊讀取主體的安全標(biāo)示符SIDa和客體的安全標(biāo)示符SIDb ;判斷所述策略學(xué)習(xí)模塊的學(xué)習(xí)開關(guān)狀態(tài);4)若所述學(xué)習(xí)開關(guān)為關(guān),則所述策略學(xué)習(xí)模塊未啟用,移至步驟8),否則進行步驟
5);5)向安全服務(wù)器提交策略查詢請求,判斷是否存在<SIDa,SIDb,通過 > 的策略信息;若策略已經(jīng)存在,移至步驟8,否則進行步驟6);6)所述策略學(xué)習(xí)模塊生成一條策略<SIDa,SIDb,通過 > 并向安全服務(wù)器提交;7)所述策略學(xué)習(xí)模塊將生成的策略保存到策略文件;8)轉(zhuǎn)入Selinux策略處理。其中,步驟8)所述轉(zhuǎn)入Selinux策略處理是指:安全服務(wù)器依據(jù)更新后的安全策略,對本次主客體的訪問進行決策,并將決策結(jié)果交由客體管理器;若決策結(jié)果為通過,客體管理器放行此次主體A對客體B的訪問,若決策結(jié)果為拒絕,則終止此次主體A對客體B的訪問。其中,步驟(3)所述應(yīng)用軟件與業(yè)務(wù)系統(tǒng)是由用戶決定的,需要受到安全保護進行安全配置的應(yīng)用軟件或業(yè)務(wù)系統(tǒng);其中,步驟(4)和步驟(6)所述一段時間是指用戶進入所述策略學(xué)習(xí)模塊開始,將其全部功能用完一遍的時間。與現(xiàn)有技術(shù)比,本發(fā)明的有益效果為:1.提供自動學(xué)習(xí)開關(guān),使配置管理員可以人為的控制安全策略自學(xué)習(xí)模式的開關(guān)。2.為SELinux提供了一種安全策略自學(xué)習(xí)模式,絕大多數(shù)系統(tǒng)相關(guān)的安全配置均可由自學(xué)習(xí)模式生成,這簡化了配置管理員的配置工作。3.自學(xué)習(xí)模式生成的策略均滿足主體最小權(quán)限要求,最大可能避免了人工配置出現(xiàn)錯誤(如權(quán)限過大或過小)所帶來的安全或穩(wěn)定方面的隱患,進一步提升了系統(tǒng)的安全性。
4.本發(fā)明的系統(tǒng)運行時不會影響到主體的執(zhí)行。在未應(yīng)用本方法時,SELinux的“客體管理器”在攔截到主客體訪問后會將本次訪問的信息提交給“安全服務(wù)器”進行決策處理,而本方法只是將自學(xué)習(xí)模塊的工作流程放在“安全服務(wù)器”對主客體訪問進行決策處理流程之前,這樣學(xué)習(xí)模塊才能夠有機會自動生成允許本次訪問的安全策略,最終達到策略自學(xué)習(xí)、自動配置的目的;若學(xué)習(xí)模塊是在“安全服務(wù)器”進行決策處理之后再生成安全策略,則會影響到應(yīng)用軟件即主體的正常執(zhí)行。5.本發(fā)明相比傳統(tǒng)的配置方法,一是減輕了安全配置管理員的負(fù)擔(dān),二是減少人為失誤,提高安全配置策略的質(zhì)量,三是提供開關(guān),自學(xué)習(xí)的過程可控,提供選擇性。
圖1為本發(fā)明提供的改造后的SELinux安全框架圖。圖2為本發(fā)明提供的基于自學(xué)習(xí)的Linux安全策略配置的實現(xiàn)方法的流程圖。圖3為本發(fā)明提供的策略學(xué)習(xí)模塊的工作流程圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的具體實施方式
作進一步的詳細(xì)說明。SELinux的訪問控制規(guī)則存放在安全策略文件中,策略文件分為二進制和源代碼文件,源代碼以策略配置語言的形式描述,由配置管理員創(chuàng)建和維護。源代碼經(jīng)策略配置工具編譯后生成二進制文件。二進制策略在系統(tǒng)啟動過程中被裝載到內(nèi)核空間,形成在內(nèi)存中的策略庫及緩存,并由SELinux安全服務(wù)器管理。對于使用了 SELinux的安全操作系統(tǒng),在引導(dǎo)后,任何主體對客體進行的訪問請求均會被LSM (Linux安全模塊)的Hook函數(shù)攔截,同時,通過安全服務(wù)器獲取相應(yīng)的訪問策略,并進行決策處理。實現(xiàn)本發(fā)明所述的自學(xué)習(xí)安全策略配置技術(shù)需要對現(xiàn)有SELinux框架做出少量修改,并在安全服務(wù)器區(qū)增加策略學(xué)習(xí)模塊。策略學(xué)習(xí)模塊是本方案實現(xiàn)的關(guān)鍵點。該模塊對配置管理員用戶提供了一個自動學(xué)習(xí)開關(guān),使得安全服務(wù)器通過判斷開關(guān)狀態(tài)來自動生成訪問控制策略。具體的,本發(fā)明改造過的SELinux體系框架圖如圖1所示。在SELinux安全服務(wù)器一側(cè)嵌入一個策略學(xué)習(xí)模塊,該模塊為配置管理員提供一個自學(xué)習(xí)開關(guān),并通過開關(guān)是否開啟來選擇是否自動記錄操作系統(tǒng)中主體對客體的訪問請求,并自動生成相應(yīng)的訪問控制策略。策略學(xué)習(xí)模塊主要完成以下三個功能,主客體訪問截獲,策略生成以及策略持久化存儲。策略學(xué)習(xí)模塊隨SELinux模塊加載過程中啟用,借助SELinux的LSM機制截獲操作系統(tǒng)應(yīng)用層主體對計算機各個子系統(tǒng)的訪問請求,實現(xiàn)主客體訪問截獲;隨后依據(jù)策略學(xué)習(xí)開關(guān)狀態(tài),選擇是否為此次請求的主客體添加新的訪問控制策略,即〈主體,客體,通過或放棄 > 三元組;由于SELinux安全服務(wù)器維護的策略信息僅留存于內(nèi)存,為了保存新生成的策略數(shù)據(jù),還需要經(jīng)過持久化存儲過程,將新增加的訪問控制策略保存到對應(yīng)的策略文件中。
對應(yīng)的,本發(fā)明提供一種基于自學(xué)習(xí)的Linux安全策略配置方法,其流程圖如圖2所示,其核心思想是:構(gòu)建基于SELinux安全服務(wù)器的策略學(xué)習(xí)模塊。開關(guān)處于開啟狀態(tài)時,記錄LSM攔截的所有主客體之間的訪問請求,自動生成相應(yīng)的訪問控制策略,同時放行請求;當(dāng)開關(guān)關(guān)閉,策略學(xué)習(xí)模塊將不發(fā)揮作用,安全服務(wù)器將返回現(xiàn)有的訪問控制策略。下面以具體步驟展示如何使用本發(fā)明提供的策略自學(xué)習(xí)方法:(I)安裝Linux操作系統(tǒng),并將改進后的SELinux作為安裝項;(2)進入Linux操作系統(tǒng),開啟策略學(xué)習(xí)模塊流程,并開啟所述策略學(xué)習(xí)模塊的學(xué)習(xí)開關(guān);(3)部署應(yīng)用軟件與業(yè)務(wù)系統(tǒng);所述部署應(yīng)用軟件與業(yè)務(wù)系統(tǒng)是由用戶決定的,需要正常使用,并且需要受到安全保護進行安全配置的應(yīng)用軟件或業(yè)務(wù)系統(tǒng);對操作系統(tǒng)進行安全配置,一定會影響到操作系統(tǒng)上層運行的應(yīng)用軟件、業(yè)務(wù)系統(tǒng)軟件(都是軟件)等。所謂安全配置的目的,就是限制操作系統(tǒng)上層應(yīng)用軟件的訪問權(quán)限,界定應(yīng)用軟件能夠訪問合法資源的范圍。例如,一個正常的游戲軟件是不會訪問系統(tǒng)管理員賬號和密碼的,那么系統(tǒng)管理員的賬號和密碼就不在該游戲軟件能夠訪問的合法資源范圍內(nèi),假設(shè)游戲軟件在運行過程中被植入了病毒,該病毒會通過游戲軟件去訪問管理員的賬號和密碼。如果在這之前針對該游戲軟件進行了安全配置,操作系統(tǒng)就能夠自動拒絕該軟件對管理員帳號和密碼的訪問請求,達到提高系統(tǒng)安全的目的。(4)經(jīng)過一段時間的安全穩(wěn)定運行,關(guān)閉所述策略學(xué)習(xí)模塊的學(xué)習(xí)開關(guān);此處的穩(wěn)定運行一段時間,是為了確保步驟3中所部署的軟件,其所有功能都被用戶使用過。(5)手動調(diào)整,合并相鄰的安全訪問控制策略;本發(fā)明會為每一個主客體之間的訪問,生成一條的獨立安全訪問控制策略,但客體,即系統(tǒng)資源,在安全策略中的具體描述經(jīng)常是可以連續(xù)表示的,比如網(wǎng)絡(luò)端口號,80,81,82等等,因沒有必要為每一個端口號都單獨生成一條安全策略,針對80,81,82這三個網(wǎng)絡(luò)端口的安全策略就可以人工的合并為一條,由80-82來表示。(6)經(jīng)過一段時間的穩(wěn)定運行,對安全日志進行審計,記錄并生成沒有正常運行的主體名單及訪問的客體名單;(7)手動調(diào)整所述自動生成的訪問控制策略,為所述沒有正常運行的主體名單中的主體添加對應(yīng)客體的訪問權(quán)限;(8)安全策略配置結(jié)束。其中,策略學(xué)習(xí)模塊作為SELinux安全服務(wù)器的一部分,隨SELinux框架的加載過程而啟用。因此加載過程無需人工干預(yù)。依據(jù)系統(tǒng)功能設(shè)計,配置管理員可以在系統(tǒng)啟動后選擇是否開啟策略自學(xué)習(xí)開關(guān),如果選擇開啟,策略學(xué)習(xí)模塊將針對系統(tǒng)后續(xù)的主客體訪問進行記錄,并生成相應(yīng)策略。步驟(2)開啟策略學(xué)習(xí)模塊流程,其流程圖如圖3所示,具體包括如下步驟:I)系統(tǒng)啟動,策略學(xué)習(xí)模塊從文件中讀取策略信息; 2)操作系統(tǒng)中主體A對客體B進行訪問,策略學(xué)習(xí)模塊通過LSM接口攔截這一訪問過程;3)策略學(xué)習(xí)模塊讀取主體的安全標(biāo)示符SIDa和客體的安全標(biāo)示符SIDb ;判斷所述策略學(xué)習(xí)模塊的學(xué)習(xí)開關(guān)狀態(tài);
4)若所述學(xué)習(xí)開關(guān)為關(guān),則所述策略學(xué)習(xí)模塊未啟用,移至步驟8),否則進行步驟5);5)向安全服務(wù)器提交策略查詢請求,判斷是否存在<SIDa,SIDb,通過 > 的策略信息;若策略已經(jīng)存在,移至步驟8,否則進行步驟6);6)所述策略學(xué)習(xí)模塊生成一條策略<SIDa,SIDb,通過 > 并向安全服務(wù)器提交;7)所述策略學(xué)習(xí)模塊將生成的策略保存到策略文件;8)轉(zhuǎn)入SELinux策略處理,返回攔截點。所述轉(zhuǎn)入SELinux策略處理是指:安全服務(wù)器依據(jù)更新后的安全策略,對本次主客體的訪問進行決策,并將決策結(jié)果交由客體管理器;若決策結(jié)果為通過,客體管理器放行此次主體A對客體B的訪問,若決策結(jié)果為拒絕,則終止此次主體A對客體B的訪問。最后應(yīng)當(dāng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,盡管參照上述實施例對本發(fā)明進行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:依然可以對本發(fā)明的具體實施方式
進行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種基于自學(xué)習(xí)的Linux安全策略配置方法,其特征在于,在SeLinux的安全服務(wù)器區(qū)中嵌入策略學(xué)習(xí)模塊;所述方法包括如下步驟: (1)安裝Linux操作系統(tǒng),并將改進后的SeLinux作為安裝項; (2)進入Linux操作系統(tǒng),開啟策略學(xué)習(xí)模塊流程,并開啟所述策略學(xué)習(xí)模塊的學(xué)習(xí)開關(guān); (3)部署應(yīng)用軟件與業(yè)務(wù)系統(tǒng); (4)經(jīng)過一段時間的安全穩(wěn)定運行,關(guān)閉所述策略學(xué)習(xí)模塊的學(xué)習(xí)開關(guān); (5)手動調(diào)整,合并部分自動生成的訪問控制策略; (6)經(jīng)過一段時間的穩(wěn)定運行,對安全日志進行審計,記錄并生成沒有正常運行的主體名單及訪問的客體名單; (7)手動調(diào)整所述自動生成的訪問控制策略,為所述沒有正常運行的主體名單中的主體添加對應(yīng)客體的訪問權(quán)限; (8)安全策略配置結(jié)束。
2.如權(quán)利要求1所述的安全策略配置方法,其特征在于,步驟(2)所述開啟策略學(xué)習(xí)模塊流程包括如下步驟: 1)系統(tǒng)啟動,策略學(xué)習(xí)模塊從文件中讀取策略信息; 2)操作系統(tǒng)中主體A對客體B進行訪問,策略學(xué)習(xí)模塊通過LSM接口攔截這一訪問過程; 3)策略學(xué)習(xí)模塊讀取主體的安全標(biāo)示符SIDa和客體的安全標(biāo)示符SIDb;判斷所述策略學(xué)習(xí)模塊的學(xué)習(xí)開關(guān)狀態(tài); 4)若所述學(xué)習(xí)開關(guān)為關(guān),則所述策略學(xué)習(xí)模塊未啟用,移至步驟8),否則進行步驟5); 5)向安全服務(wù)器提交策略查詢請求,判斷是否存在<SIDA,SIDB,通過〉的策略信息;若策略已經(jīng)存在,移至步驟8,否則進行步驟6); 6)所述策略學(xué)習(xí)模塊生成一條策略<SIDa,SIDb,通過> 并向安全服務(wù)器提交; 7)所述策略學(xué)習(xí)模塊將生成的策略保存到策略文件; 8)轉(zhuǎn)入Selinux策略處理。
3.如權(quán)利要求1所述的安全策略配置方法,其特征在于,步驟8)所述轉(zhuǎn)入Selinux策略處理是指: 安全服務(wù)器依據(jù)更新后的安全策略,對主客體的訪問進行決策,并將決策結(jié)果交由客體管理器;若決策結(jié)果為通過,客體管理器放行此次主體A對客體B的訪問,若決策結(jié)果為拒絕,則終止此次主體A對客體B的訪問。
4.如權(quán)利要求1所述的安全策略配置方法,其特征在于,步驟(3)所述應(yīng)用軟件與業(yè)務(wù)系統(tǒng)是由用戶決定的,需要受到安全保護進行安全配置的應(yīng)用軟件或業(yè)務(wù)系統(tǒng)。
5.如權(quán)利要求1所述的安全策略配置方法,其特征在于,步驟(4)和步驟(6)所述一段時間是指用戶進入所述策略學(xué)習(xí)模塊開始,將其全部功能用完一遍的時間。
全文摘要
本發(fā)明針對Linux操作系統(tǒng)安全策略配置困難的問題,提出一種基于自學(xué)習(xí)的Linux安全策略配置方法,以簡化系統(tǒng)配置的工作流程。本發(fā)明在SELinux的安全服務(wù)器區(qū)嵌入策略學(xué)習(xí)模塊;該模塊對配置管理員用戶提供了一個自動學(xué)習(xí)開關(guān),使得安全服務(wù)器通過判斷開關(guān)狀態(tài)來自動生成訪問控制策略。開關(guān)處于開啟狀態(tài)時,記錄LSM攔截的所有主客體之間的訪問請求,自動生成相應(yīng)的訪問控制策略,同時放行請求;當(dāng)開關(guān)關(guān)閉,策略學(xué)習(xí)模塊將不發(fā)揮作用,安全服務(wù)器將返回現(xiàn)有的訪問控制策略。本發(fā)明自學(xué)習(xí)模式生成的策略均滿足主體最小權(quán)限要求,最大可能避免了人工配置出現(xiàn)錯誤所帶來的安全或穩(wěn)定方面的隱患,進一步提升了系統(tǒng)的安全性。
文檔編號G06F9/445GK103176817SQ20121056337
公開日2013年6月26日 申請日期2012年12月21日 優(yōu)先權(quán)日2012年12月21日
發(fā)明者時堅, 鄧松, 張濤, 林為民, 李偉偉, 汪晨, 周誠, 管小娟, 朱其軍, 蔣靜 申請人:中國電力科學(xué)研究院, 國家電網(wǎng)公司