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