專利名稱:一種操作系統(tǒng)的訪問控制方法及其實現(xiàn)平臺的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種操作系統(tǒng)的訪問控制方法及其實現(xiàn)平臺,適用于對多種操作系統(tǒng)
進行訪問控制的方法及平臺,解決了對多個操作系統(tǒng)添加訪問控制時需要重復(fù)編寫訪問控 制模塊的問題,提出了一種獨立于操作系統(tǒng)的安全加固方法。
背景技術(shù):
目前,主流的操作系統(tǒng)對訪問控制的支持都不充分,例如Li皿x、 Windows等系統(tǒng) 只支持自主訪問控制,普遍缺乏對強制訪問控制的支持,故而需要對各種系統(tǒng)添加訪問控 制機制以加強系統(tǒng)的安全性。目前訪問控制在操作系統(tǒng)上的實施一般是針對單個系統(tǒng),如 美國國家安全局(NSA)的SELi皿x項目針對的是Li皿x系統(tǒng),江蘇南大蘇富特科技股份有 限公司自主開發(fā)的安全操作系統(tǒng)產(chǎn)品Soft0s也是針對Li皿x系統(tǒng)的。這些項目針對單個 操作系統(tǒng),使得其訪問控制模塊難以被實施在多個系統(tǒng)上。
發(fā)明內(nèi)容
為了克服背景技術(shù)中存在的不足,本發(fā)明提供一種可應(yīng)用于多種操作系統(tǒng)的、靈 活的訪問控制平臺,并提供統(tǒng)一的策略配置方法,能方便地將其在各個操作系統(tǒng)上實施。
實現(xiàn)本發(fā)明目的的技術(shù)方案是提供一種操作系統(tǒng)的訪問控制實現(xiàn)平臺,其特征在 于它包括操作系統(tǒng)Hook層、平臺抽象層和核心安全服務(wù)器; 所述的操作系統(tǒng)Hook層用于截獲操作系統(tǒng)的請求,并提供給核心安全服務(wù)器進 行安全判斷; 所述的平臺抽象層包括平臺支持的各種操作系統(tǒng)不同的操作集封裝、內(nèi)存對象封 裝和內(nèi)核API封裝,為核心安全服務(wù)器提供平臺抽象; 所述的核心安全服務(wù)器包括策略緩存模塊、策略管理模塊、安全上下文管理模塊 和策略數(shù)據(jù)庫;所述的策略緩存模塊用于保存最近發(fā)生的對系統(tǒng)操作進程的判定;所述的 策略管理模塊用于支持多種安全策略,并支持動態(tài)策略;所述的安全上下文管理模塊主要 用于管理安全上下文;所述的策略數(shù)據(jù)庫中,保存平臺支持的各種操作系統(tǒng)安全模型的安 全規(guī)則,用于核心安全服務(wù)器對請求進行訪問權(quán)限判定時提供依據(jù)。
—種操作系統(tǒng)的訪問控制方法,其特征在于包括如下步驟 (1)操作系統(tǒng)Hook層將截獲的請求發(fā)給核心安全服務(wù)器,由核心安全服務(wù)器的策 略緩存模塊對該請求進行查詢,判定在否有相同的請求存在于策略緩存模塊中;如果有,直 接返回操作系統(tǒng)Hook層,執(zhí)行該請求;如果沒有,執(zhí)行步驟(2); (2)查詢核心安全服務(wù)器中的策略管理模塊,依據(jù)策略數(shù)據(jù)庫中保存的平臺所支 持的操作系統(tǒng)安全模型的安全規(guī)則,判定是否有該請求的訪問權(quán)限,如果有,則將該請求存 放在緩存中,并返回操作系統(tǒng)Hook層,執(zhí)行該請求;如果沒有,則返回不允許,拒絕該請求。
研究表明,對于實施訪問控制,各個操作系統(tǒng)的不同點主要以下幾點操作集不 同,內(nèi)存對象不同和內(nèi)核API不同,本發(fā)明所提供的與操作系統(tǒng)無關(guān)的訪問控制實現(xiàn)平臺平臺,依據(jù)多種安全系統(tǒng)的實現(xiàn)以及訪問控制相關(guān)的理論,將訪問控制模塊分為操作系統(tǒng) 相關(guān)部分和無關(guān)部分,將訪問控制分作三部分操作系統(tǒng)Hook層,平臺抽象層,以及核心安 全服務(wù)器層。操作系統(tǒng)Hook層的作用是監(jiān)控系統(tǒng)的操作;平臺抽象層的作用是抽出核心安 全服務(wù)器層依賴于系統(tǒng)的部分,使核心安全服務(wù)器可以應(yīng)用到多個系統(tǒng)中;核心安全服務(wù) 器是實現(xiàn)本發(fā)明技術(shù)方案的核心部分,其作用是進行訪問控制判定等。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下顯著的優(yōu)點 1、本發(fā)明采用平臺抽象層的方法,擴展包括了對象管理器的封裝,操作系統(tǒng)內(nèi)核 API的封裝和操作集的封裝,核心安全服務(wù)器不依賴于操作系統(tǒng)操作的不同,也不依賴于操 作系統(tǒng)內(nèi)核對象的不同,可以保護不同系統(tǒng)中不同的內(nèi)核對象,不同的系統(tǒng)資源。核心安全 服務(wù)器獨立于目標(biāo)操作系統(tǒng)文件系統(tǒng)的實現(xiàn),不管目標(biāo)文件系統(tǒng)是否支持?jǐn)U展屬性,其都 可以對文件進行保護,使核心安全服務(wù)器能運行于系統(tǒng)內(nèi)核,實現(xiàn)訪問控制的功能。因此, 核心安全服務(wù)器可以被實施到多個操作系統(tǒng)中,并實現(xiàn)了動態(tài)多策略。 2、本發(fā)明采用平臺抽象層的方法,抽象了訪問控制模型的共同點,建立了一種安 全規(guī)則描述,可以支持目前已有的多數(shù)安全模型,為實施了核心安全服務(wù)器的操作系統(tǒng)提 供了統(tǒng)一的策略配置,方便了安全管理員對多種系統(tǒng)進行安全配置。 3、在新的操作平臺上實施核心安全服務(wù)器時,只需要實現(xiàn)操作系統(tǒng)Hook層并擴 展平臺抽象層,無需修改核心安全服務(wù)器。本發(fā)明制定了操作系統(tǒng)Hook層的實施標(biāo)準(zhǔn),用 戶只需要按照標(biāo)準(zhǔn)實現(xiàn)操作系統(tǒng)Hook層即可。
圖1是本發(fā)明實施例操作系統(tǒng)訪問控制實現(xiàn)平臺的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實施例的核心安全服務(wù)器的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實施例的平臺抽象層的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實施例的安全標(biāo)簽設(shè)置的結(jié)構(gòu)示意圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明的具體實施作進一步描述
實施例1 在訪問控制中,主體一般代表動作的發(fā)起者,客體代表動作的接受者。對于計算機
而言,主體一般指一個進程,而客體一般指進程、文件或Socket等資源。 對于"安全標(biāo)簽"或"安全上下文",其概念即為安全模型的標(biāo)簽,這是安全模型進
行權(quán)限判斷的依據(jù)。在本發(fā)明中采用"安全上下文"(context)來描述。每個安全模型都有
自己的安全上下文,對于操作系統(tǒng)中的主客體來說,其安全上下文是系統(tǒng)中加載的每個安
全模型安全上下文的集合。如一個實施了BLP、BIBA模型的系統(tǒng)中,進程A的BLP級別為1,
BIBA級別為5,則進程A的安全上下文為BLP、 BIBA安全上下文的集合{1, 5}。 對一個安全模型而言,其進行權(quán)限判定的依據(jù)一般是主/客體安全上下文及此模
型的安全規(guī)則。如BLP模型判定依據(jù)是主/客體的的敏感級別,安全規(guī)則是所謂的"上讀下
寫"規(guī)則;TE模型的安全上下文是主/客體的域/類型,其安全規(guī)則是域轉(zhuǎn)移規(guī)則、域/類
型訪問規(guī)則等。本實施例中,安全策略指某個安全模型的安全規(guī)則,對于BLP、BIBA等,均以安全模型表示。 操作系統(tǒng)訪問控制的實現(xiàn)一般是通過監(jiān)控系統(tǒng)調(diào)用,并通過訪問控制核心模塊進 行安全判定。訪問控制核心模塊使用主客體安全上下文以及安全規(guī)則做出判定,由于其需 要運行于操作系統(tǒng)內(nèi)核,故而其依賴于部分內(nèi)核API(如內(nèi)存、鎖操作)。由于各個系統(tǒng)實現(xiàn) 的不同,操作系統(tǒng)HOOK層的實現(xiàn)也不同,如Li皿x系統(tǒng)提供了可以作為操作系統(tǒng)Hook層的 LSM框架,而Windows系統(tǒng)并沒有這種框架。為了抽出訪問控制的無關(guān)部分,本實施例提供 了一個與操作系統(tǒng)無關(guān)的訪問控制平臺,能方便的將平臺的核心部分實施到各個操作系統(tǒng) 上去,從而實現(xiàn)對不同操作系統(tǒng)的訪問控制。 參見附圖l,它是本實施例提供的操作系統(tǒng)訪問控制實現(xiàn)平臺的結(jié)構(gòu)示意圖,該平 臺由操作系統(tǒng)Hook層、平臺抽象層和核心安全服務(wù)器三部分組成。操作系統(tǒng)Hook層部分, 在本實施例中以Linux和Windows的實現(xiàn)為例,說明了操作系統(tǒng)Hook層所處的位置以及 作用;核心安全服務(wù)器包括策略緩存模塊、策略管理模塊、安全上下文管理模塊和策略數(shù)據(jù) 庫;平臺抽象層為核心安全服務(wù)器提供操作系統(tǒng)抽象,使核心安全服務(wù)器不需要考慮各個 系統(tǒng)的不同。 參見附圖2,它是本實施例的核心安全服務(wù)器的結(jié)構(gòu)示意圖;核心安全服務(wù)器的 策略緩存模塊提高了核心安全服務(wù)器的性能,策略緩存模塊中保存的是對最近發(fā)生的系統(tǒng) 操作的判定,這樣極大的提升了核心安全服務(wù)器進行判定的性能;在核心安全服務(wù)器更新 策略時,可以通過清空決策緩存來實現(xiàn)策略的一致性,實現(xiàn)了動態(tài)策略。策略管理模塊、安 全上下文管理模塊以及策略數(shù)據(jù)庫是核心安全服務(wù)器進行訪問控制的主要部分,完成了訪 問控制功能的主要工作。其中,策略管理模塊實現(xiàn)了多策略的共存,核心安全服務(wù)器包括的 安全模型都由策略管理模塊進行管理。安全上下文管理模塊管理了核心安全服務(wù)器中使用 的安全上下文,集中管理安全上下文,提高了系統(tǒng)的安全性。策略數(shù)據(jù)庫中保存的是平臺所 支持的各種操作系統(tǒng)安全模型的安全規(guī)則,是核心安全服務(wù)器進行權(quán)限判定的重要依據(jù), 核心安全服務(wù)器中的策略數(shù)據(jù)庫通過讀取二進制策略文件形成。核心安全服務(wù)器的決策緩 存模塊和策略管理模塊通過核心安全服務(wù)器接口與操作系統(tǒng)內(nèi)核Hook層進行交互。
參見附圖3,它是本實施例平臺抽象層的結(jié)構(gòu)示意圖;對于實施訪問控制,本實 施例考慮到的各個操作系統(tǒng)的不同點主要為以下幾點操作集不同,內(nèi)存對象不同和內(nèi)核 API不同。操作集合的不同主要影響訪問控制實施時需要監(jiān)控不同的操作,如Windows系 統(tǒng)需要監(jiān)控注冊表操作,Li皿x需要監(jiān)控文件系統(tǒng)掛載、卸載操作;內(nèi)存對象不同主要影響 對內(nèi)核對象打標(biāo)簽的方法以及位置不同,如Windows進程以PEPR0CESS表示,而Linux進 程以TaSk_Struct表示,這就影響了對系統(tǒng)主客體打標(biāo)簽的不同;由于核心安全服務(wù)器需 要運行于系統(tǒng)內(nèi)核中,故而內(nèi)核API的不同影響了核心安全服務(wù)器的實現(xiàn),比如Windows、 Linux內(nèi)核中有不同的鎖操作API ;訪問控制需要對整個系統(tǒng)的重要資源進行加固,但是各 個系統(tǒng)的重要資源是不同的,如Windows需要對注冊表進行控制,Linux需要對各個虛擬文 件系統(tǒng)進行控制,這就需要核心安全服務(wù)器可以保護不同的資源。 正是針對這些不同點,本發(fā)明提出了與各操作系統(tǒng)無關(guān)的訪問控制平臺,加入了 一個平臺抽象層,抽象出所要支持的各個操作系統(tǒng)的不同,使得核心安全服務(wù)器可以方便 的被實施到各個系統(tǒng)上。平臺抽象層包含了內(nèi)核API封裝、內(nèi)核對象抽象、內(nèi)核操作集合抽 象等內(nèi)容,使得核心安全服務(wù)器無需考慮各個平臺的不同點,而只需要集中考慮訪問控制機制的實現(xiàn),方便了訪問控制在各個平臺的實施。 在本發(fā)明中,操作系統(tǒng)Hook層和核心安全服務(wù)器的安全上下文管理的實現(xiàn)方法 如下 由于訪問控制需要對內(nèi)核對象打標(biāo)簽,故而本實施例提供的操作系統(tǒng)訪問控制平 臺考慮到了各個系統(tǒng)實現(xiàn)的不同,包括系統(tǒng)是否開源,下面以Windows和Li皿x作為非開 源、開源操作系統(tǒng)的典型代表來說明本發(fā)明如何為不同的操作系統(tǒng)打標(biāo)簽。在本發(fā)明中, Context是安全標(biāo)簽(安全上下文),SID則是Context的索引,SID與Context——對應(yīng), 其對應(yīng)關(guān)系由核心安全服務(wù)器的安全上下文管理器維護。為了"應(yīng)付"各個操作系統(tǒng)內(nèi)核 對象的不同,本發(fā)明規(guī)定在操作系統(tǒng)Hook層維護內(nèi)核對象至SID的映射,而在核心安全服 務(wù)器維護SID至Conetx的映射,參見附圖4,它是本實施例安全標(biāo)簽設(shè)置的結(jié)構(gòu)示意圖;對 于Li皿x而言,2. 6以后的版本都支持LSM框架,LSM框架的實現(xiàn)就是通過為各個內(nèi)核對象 添加安全域,所謂的安全域,實際上就是為安全模塊打標(biāo)簽預(yù)留的位置。對于Windows而 言,是一個非開源操作系統(tǒng),故而不能在各個內(nèi)核對象上直接打標(biāo)簽,故而本發(fā)明采用了通 過為內(nèi)核對象的句柄和SID做映射的方法給內(nèi)核對象打標(biāo)簽。
下面通過一個訪問控制的過程來說明平臺無關(guān)的訪問框架上具體流程。
設(shè)某個操作系統(tǒng)的一個進程其SID為l,想讀一個SID為8的文件,操作系統(tǒng)Hook 層截獲了這個請求,并將這個請求發(fā)給核心安全服務(wù)器。核心安全服務(wù)器先查看訪問緩存, 看是否有在緩存中有相同請求,如果有,直接將結(jié)果返回給操作系統(tǒng)Hook層。如果緩存中 沒有該請求,就查詢核心安全服務(wù)器中的策略管理器,查看是否有進程1對文件8的讀訪問 權(quán)限,如果有則將該請求存放在緩存中,并返回允許。如果沒有則返回不允許。
目前,本發(fā)明技術(shù)方案已在Windows、 Linux以及Rtems系統(tǒng)上實施,在Linux下, 操作系統(tǒng)Hook層使用了 LSM框架,成功加載了核心安全服務(wù)器,對Li皿x系統(tǒng)進行了安全 加固;在Windows下,本發(fā)明自行設(shè)計了 Windows訪問控制實施框架,加載核心安全服務(wù)器, 控制Windows各個進程的行為;Rtems系統(tǒng)通過加載核心安全服務(wù)器提供了安全API,用戶 可以使用安全API進行編程,控制進程的權(quán)限。
權(quán)利要求
一種操作系統(tǒng)的訪問控制實現(xiàn)平臺,其特征在于它包括操作系統(tǒng)Hook層、平臺抽象層和核心安全服務(wù)器;所述的操作系統(tǒng)Hook層用于截獲操作系統(tǒng)的請求,并提供給核心安全服務(wù)器進行安全判斷;所述的平臺抽象層包括平臺支持的各種操作系統(tǒng)不同的操作集封裝、內(nèi)存對象封裝和內(nèi)核API封裝,為核心安全服務(wù)器提供平臺抽象;所述的核心安全服務(wù)器包括策略緩存模塊、策略管理模塊、安全上下文管理模塊和策略數(shù)據(jù)庫;所述的策略緩存模塊用于保存最近發(fā)生的對系統(tǒng)操作的判定;所述的策略管理模塊用于支持多種安全策略,并支持動態(tài)策略;所述的安全上下文管理模塊用于管理安全上下文;所述的策略數(shù)據(jù)庫中,保存平臺支持的各種操作系統(tǒng)安全模型的安全規(guī)則,用于核心安全服務(wù)器對請求進行訪問權(quán)限判定時提供依據(jù)。
2. —種操作系統(tǒng)的訪問控制方法,其特征在于包括如下步驟(1) 操作系統(tǒng)Hook層將截獲的請求發(fā)給核心安全服務(wù)器,由核心安全服務(wù)器的策略緩 存模塊對該請求進行查詢,判定在否有相同的請求存在于策略緩存模塊中;如果有,直接返 回操作系統(tǒng)H(X)k層,執(zhí)行該請求;如果沒有,執(zhí)行步驟(2);(2) 查詢核心安全服務(wù)器中的策略管理模塊,依據(jù)策略數(shù)據(jù)庫中保存的平臺所支持的 操作系統(tǒng)安全模型的安全規(guī)則,判定是否有該請求的訪問權(quán)限,如果有,則將該請求存放在 緩存中,并返回操作系統(tǒng)Hook層,執(zhí)行該請求;如果沒有,則返回不允許,拒絕該請求。
全文摘要
本發(fā)明涉及一種操作系統(tǒng)的訪問控制方法及其實現(xiàn)平臺。該平臺包括操作系統(tǒng)Hook層、平臺抽象層和核心安全服務(wù)器。操作系統(tǒng)Hook層將截獲的請求發(fā)給核心安全服務(wù)器,查詢策略緩存模塊,判定在否有相同的請求存在,如果有則執(zhí)行,如果沒有,查詢策略管理模塊,依據(jù)策略數(shù)據(jù)庫中保存的操作系統(tǒng)安全模型的安全規(guī)則,判定是否有該請求的訪問權(quán)限,如果有則將該請求存放在緩存中并執(zhí)行,如果沒有則拒絕。本發(fā)明提供一種可應(yīng)用于多種操作系統(tǒng)的、靈活的訪問控制平臺,并提供統(tǒng)一的策略配置方法,能方便地將其在各個操作系統(tǒng)上實施。
文檔編號G06F9/44GK101727555SQ20091023266
公開日2010年6月9日 申請日期2009年12月4日 優(yōu)先權(quán)日2009年12月4日
發(fā)明者余艷瑋, 楊峰, 胡大磊, 胡楠, 賈剛勇, 趙振西, 龔育昌 申請人:蘇州昂信科技有限公司