專(zhuān)利名稱(chēng):一種基于SELinux安全子系統(tǒng)的策略適配系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Linux操作系統(tǒng)領(lǐng)域,特別涉及安全服務(wù)器領(lǐng)域,具體是指ー種基于 SELinux安全子系統(tǒng)的策略適配系統(tǒng)及方法。
背景技術(shù):
SELinux(Security-Enhanced Linux)是美國(guó)國(guó)家安全局(簡(jiǎn)稱(chēng)NSA)對(duì)于強(qiáng)制訪問(wèn)控制的實(shí)現(xiàn),是Linux上最杰出的新安全子系統(tǒng)。NSA在Linux社區(qū)的幫助下開(kāi)發(fā)了ー種訪問(wèn)控制體系,在這種訪問(wèn)控制體系的限制下,進(jìn)程只能訪問(wèn)那些在它的任務(wù)中所需要的文件。通常,SELinux默認(rèn)安裝在Fedora操作系統(tǒng)和Red Hat Enterprise Linux操作系統(tǒng)上,還可以安裝在其他相關(guān)的系統(tǒng)中,如CentOS,NeoKylinOS等。Linux增加了ー個(gè)通用的安全訪問(wèn)控制框架,它通過(guò)Hook函數(shù)來(lái)控制程序的執(zhí)行,這個(gè)框架是LSM(Linux Secuirty Module),在LSM框架中可以使用各種安全控制機(jī)制 (如Flask機(jī)制)來(lái)實(shí)現(xiàn)對(duì)程序的控制。SELinux系統(tǒng)應(yīng)用了類(lèi)型加強(qiáng)(Type Enforcement,簡(jiǎn)稱(chēng)TE)和基于角色的訪問(wèn)控制(Role-Based Access Control,簡(jiǎn)稱(chēng)RBAC),其相比通用Linux系統(tǒng)來(lái)說(shuō),安全性較高, SELinux系統(tǒng)通過(guò)細(xì)粒度訪問(wèn)控制的方法,使用戶及進(jìn)程權(quán)限最小化,即使受到攻擊,進(jìn)程或者用戶權(quán)限被奪去,也不會(huì)對(duì)整個(gè)系統(tǒng)造成重大影響。SELinux具有以下特點(diǎn)對(duì)訪問(wèn)的控制徹底化,對(duì)于進(jìn)程只賦予最小權(quán)限,防止權(quán)限升級(jí),對(duì)于用戶賦予最小權(quán)限。SELinux能夠有效地防止0_day漏洞,更好的控制系統(tǒng)的安全性。SELinux的訪問(wèn)控制規(guī)則存放在安全策略文件中,策略文件分為ニ進(jìn)制文件和源代碼文件,因?yàn)镾ELinux 細(xì)粒度的影響造成策略文件源代碼的難以編寫(xiě)和維護(hù)。源代碼編譯后便被加載到內(nèi)核空間,形成內(nèi)存中的策略庫(kù)及緩存。由于這ー特征,很多系統(tǒng)工程師便手工修改SELinux工作模式,當(dāng)SELinux工作模式降為Permissive (只是警告違反SELinux規(guī)則但并不阻止)狀態(tài)或Disabled狀態(tài)便失去了作用。因此,亟需ー種針對(duì)于SELinux安全子系統(tǒng)的策略適配方法,以更好地處理 SELinux所需要的策略文件,提高系統(tǒng)的安全性。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題之ー是需要提供一種基于SELinux安全子系統(tǒng)的策略適配系統(tǒng)及方法。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于SELinux安全子系統(tǒng)的策略適配系統(tǒng),該系統(tǒng)包括信息采集模塊,其用于采集SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)中所運(yùn)行的服務(wù)的信息;策略模板存儲(chǔ)模塊,其用于以數(shù)據(jù)庫(kù)的存儲(chǔ)方式來(lái)存儲(chǔ)原子性策略模板和預(yù)先設(shè)定服務(wù)的策略庫(kù);策略生成模塊,其利用所述原子性策略模板和所述策略庫(kù),根據(jù)所采集的信息來(lái)生成策略語(yǔ)句;策略測(cè)試模塊,其測(cè)試所述策略生成模塊所生成的策略語(yǔ)句的語(yǔ)法是否合法;以及策略修復(fù)模塊,其在所述策略測(cè)試模塊的測(cè)試結(jié)果為合法時(shí),重新啟動(dòng)系統(tǒng),通過(guò)降低或升高SELinux安全子系統(tǒng)的安全等級(jí)來(lái)測(cè)試已加載的所述策略語(yǔ)句在不同的安全等級(jí)中是否運(yùn)行正常,在所述策略測(cè)試模塊的測(cè)試結(jié)果為不合法吋,則進(jìn)入所述策略生成模塊重新利用所述原子性策略模板和所述策略庫(kù)根據(jù)所采集的信息來(lái)生成策略語(yǔ)句,其中,所述原子性策略模板包括關(guān)鍵字策略模板和宏定義策略模板。根據(jù)本發(fā)明另一方面的基于SELinux安全子系統(tǒng)的策略適配系統(tǒng),在所述策略修復(fù)模塊中,當(dāng)所述策略語(yǔ)句在所述不同安全等級(jí)的其中ー個(gè)安全等級(jí)中運(yùn)行不正常吋,所述信息采集模塊采集處于所述安全等級(jí)中的SELinux安全子系統(tǒng)的擴(kuò)展屬性資源信息;所述策略修復(fù)模塊,其基于擴(kuò)展屬性資源信息生成補(bǔ)充策略語(yǔ)句,將所述補(bǔ)充策略語(yǔ)句添加至所述策略語(yǔ)句中以生成新的策略語(yǔ)句以使所生成的新的策略語(yǔ)句在所述安全等級(jí)中運(yùn)行正常,以及在所述策略模板存儲(chǔ)模塊中存儲(chǔ)運(yùn)行正常的所述新的策略語(yǔ)句。根據(jù)本發(fā)明另一方面的基于SELinux安全子系統(tǒng)的策略適配系統(tǒng),還包括日志存儲(chǔ)模塊,其對(duì)運(yùn)行正常的所述新的策略語(yǔ)句所產(chǎn)生的日志信息進(jìn)行存儲(chǔ), 所述日志信息包括新的策略語(yǔ)句的生成的時(shí)間和新的策略語(yǔ)句所存儲(chǔ)的位置。根據(jù)本發(fā)明另一方面的基于SELinux安全子系統(tǒng)的策略適配系統(tǒng),所述信息采集模塊,其基于細(xì)粒度權(quán)限來(lái)采集SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)的服務(wù)的信息,其中,所采集的信息包括SELinux安全子系統(tǒng)的服務(wù)文件常規(guī)資源信息、SELinux安全子系統(tǒng)的服務(wù)文件模擬啟動(dòng)所需資源信息、SELinux安全子系統(tǒng)的擴(kuò)展屬性資源信息和用戶補(bǔ)充資源信息。根據(jù)本發(fā)明另一方面的基于SELinux安全子系統(tǒng)的策略適配系統(tǒng),所述信息采集模塊,其根據(jù)服務(wù)器軟件安裝列表中的服務(wù)文件的資源來(lái)采集服務(wù)文件系統(tǒng)常規(guī)資源信息。根據(jù)本發(fā)明另一方面的基于SELinux安全子系統(tǒng)的策略適配系統(tǒng),在所述策略生成模塊,其利用所述原子性策略模板和所述策略庫(kù),根據(jù)所采集的信息來(lái)生成符合最小權(quán)限原則的策略語(yǔ)句。根據(jù)本發(fā)明的另一方面,還提供了一種基于SELinux安全子系統(tǒng)的策略適配方法,包括采集SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)中所運(yùn)行的服務(wù)的信息;利用原子性策略模板和策略庫(kù),根據(jù)所采集的信息來(lái)生成策略語(yǔ)句;測(cè)試所生成的所述策略語(yǔ)句的語(yǔ)法是否合法;若測(cè)試結(jié)果為合法,則重新啟動(dòng)系統(tǒng),通過(guò)降低或升高SELinux安全子系統(tǒng)的安全等級(jí)來(lái)測(cè)試已加載的所述策略語(yǔ)句在不同的安全等級(jí)中是否運(yùn)行正常,反之,則重新利用原子性策略模板和策略庫(kù)、根據(jù)所采集的信息來(lái)生成策略,其中,所述原子性策略模板包括關(guān)鍵字策略模板和宏定義策略模板。根據(jù)本發(fā)明另一方面的基于SELinux安全子系統(tǒng)的策略適配方法,所述策略語(yǔ)句在所述不同安全等級(jí)的其中ー個(gè)安全等級(jí)中運(yùn)行不正常吋,
采集處于所述安全等級(jí)中的SELinux安全子系統(tǒng)的擴(kuò)展屬性資源信息;基于所述擴(kuò)展屬性資源信息生成補(bǔ)充策略;將所述補(bǔ)充策略添加至所述策略中以生成新的策略語(yǔ)句以使得所生成的新的策略語(yǔ)句在所述安全等級(jí)中運(yùn)行正常,以及存儲(chǔ)運(yùn)行正常的所述新的策略語(yǔ)句。根據(jù)本發(fā)明另一方面的基于SELinux安全子系統(tǒng)的策略適配方法,存儲(chǔ)運(yùn)行正常的所述新的策略語(yǔ)句所產(chǎn)生的日志信息,所述日志信息包括新的策略語(yǔ)句的生成的時(shí)間和新的策略語(yǔ)句所存儲(chǔ)的位置。根據(jù)本發(fā)明另一方面的基于SELinux安全子系統(tǒng)的策略適配方法,對(duì)SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)的服務(wù)進(jìn)行細(xì)粒度權(quán)限的信息采集,其中,所采集的信息包括SELinux安全子系統(tǒng)的服務(wù)文件常規(guī)資源信息、SELinux安全子系統(tǒng)的服務(wù)文件模擬啟動(dòng)所需資源信息、SELinux安全子系統(tǒng)的擴(kuò)展屬性資源信息和用戶補(bǔ)充資源信息。與現(xiàn)有技術(shù)相比,本發(fā)明的一個(gè)或多個(gè)實(shí)施例可以具有以下優(yōu)點(diǎn)本發(fā)明方法通過(guò)采取數(shù)據(jù)庫(kù)方式對(duì)策略語(yǔ)句進(jìn)行管理便于靈活控制策略語(yǔ)句的篩選,采取服務(wù)即開(kāi)啟的方法完成策略的生成,針對(duì)用戶在使用過(guò)程的定制而生成策略,而不是事先生成策略加載到模塊中,這種靈活性可以提高系統(tǒng)的安全性。本發(fā)明在信息采集,策略模板定制,策略存儲(chǔ),策略組合以及策略測(cè)試等方面加以改進(jìn),在信息采集方面,采取常規(guī)信息與特殊信息采集相結(jié)合的方式,配合用戶的定制,使得采集工作更加靈活方便,也保證服務(wù)即策略的原則,這樣減少了漏洞的產(chǎn)生和系統(tǒng)的負(fù)載。策略模板的定制采取原子性的分拆,將策略模版所需的保留字,關(guān)鍵字以及宏調(diào)用,分別存儲(chǔ)在數(shù)據(jù)庫(kù)中,利用數(shù)據(jù)庫(kù)的操作,組合成合法的策略語(yǔ)句,并加載到SELinux 的模塊中。本發(fā)明方法是為了更好的彌補(bǔ)SElinux安全子系統(tǒng)難于管理和使用的缺點(diǎn),幫助用戶更好的管理SElinux安全子系統(tǒng),加固Linux操作系統(tǒng),防御非法的入侵以及有效控制 0-day漏洞所產(chǎn)生的影響。本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在說(shuō)明書(shū)、權(quán)利要求書(shū)以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)ー步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中圖I是根據(jù)本發(fā)明第一實(shí)施例的基于SELinux安全子系統(tǒng)的策略適配方法的流程示意圖;圖2是根據(jù)本發(fā)明第二實(shí)施例的基于SELinux安全子系統(tǒng)的策略適配系統(tǒng)的結(jié)構(gòu)示意圖;圖3是根據(jù)本發(fā)明第二實(shí)施例的信息采集模塊的功能示意圖。
具體實(shí)施例方式以下將結(jié)合附圖及實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式,借此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來(lái)解決技術(shù)問(wèn)題,并達(dá)成技術(shù)效果的實(shí)現(xiàn)過(guò)程能充分理解并據(jù)以實(shí)施。需要說(shuō)明的是,只要不構(gòu)成沖突,本發(fā)明中的各個(gè)實(shí)施例以及各實(shí)施例中的各個(gè)特征可以相互結(jié)合, 所形成的技術(shù)方案均在本發(fā)明的保護(hù)范圍之內(nèi)。另外,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。圖I是根據(jù)本發(fā)明第一實(shí)施例的基于SELinux安全子系統(tǒng)的策略適配方法的流程示意圖,下面參考圖I詳細(xì)說(shuō)明該方法的各個(gè)步驟。舉例而言,以基于SELinux安全子系統(tǒng)的mysql-server服務(wù)器為例詳細(xì)說(shuō)明基于 SELinux安全子系統(tǒng)的策略適配方法。步驟110,采集對(duì)SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)中所運(yùn)行的服務(wù)的信
O具體地,對(duì)SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)的服務(wù)進(jìn)行細(xì)粒度權(quán)限的信息采集,所采集的信息包括SELinux安全子系統(tǒng)的服務(wù)文件常規(guī)資源信息、SELinux安全子系統(tǒng)的服務(wù)文件模擬啟動(dòng)所需資源信息、SELinux安全子系統(tǒng)的擴(kuò)展屬性資源信息和用戶補(bǔ)充資源信息。需要說(shuō)明的是,在SELinux安全子系統(tǒng)中,策略語(yǔ)言用于指導(dǎo)SELinux安全引擎計(jì)算安全決策,通過(guò)基于相關(guān)的資源信息來(lái)生成策略語(yǔ)言,例如文件的客體類(lèi)型,進(jìn)程的域, 限制進(jìn)入的角色和/或訪問(wèn)許可的規(guī)則表達(dá)式等相關(guān)資源信息。因此在進(jìn)行策略制定之前,需要采集這些資源信息。在服務(wù)正常運(yùn)行時(shí),對(duì)系統(tǒng)所需的資源信息進(jìn)行細(xì)粒度權(quán)限資源采集。采集服務(wù)文件系統(tǒng)常規(guī)資源信息,更具體地,本實(shí)施例根據(jù)用戶的軟件安裝列表所得出的該服務(wù)文件的資源需求性來(lái)采集服務(wù)文件系統(tǒng)常規(guī)資源信息例如針對(duì)ー個(gè)常用的mysql服務(wù)來(lái)進(jìn)行詳細(xì)說(shuō)明,如下表格I所示
權(quán)利要求
1.一種基于SELinux安全子系統(tǒng)的策略適配系統(tǒng),其特征在于,包括信息采集模塊,其用于采集SELinux安全子系統(tǒng)和SELinux安全子系統(tǒng)中所運(yùn)行的服務(wù)的信息;策略模板存儲(chǔ)模塊,其用于以數(shù)據(jù)庫(kù)的存儲(chǔ)方式來(lái)存儲(chǔ)原子性策略模板和預(yù)先設(shè)定服務(wù)的策略庫(kù);策略生成模塊,其利用所述原子性策略模板和所述策略庫(kù),根據(jù)所采集的信息來(lái)生成策略語(yǔ)句;策略測(cè)試模塊,其測(cè)試所述策略生成模塊所生成的策略語(yǔ)句的語(yǔ)法是否合法;以及策略修復(fù)模塊,其在所述策略測(cè)試模塊的測(cè)試結(jié)果為合法時(shí),重新啟動(dòng)系統(tǒng),通過(guò)降低或升高SELinux安全子系統(tǒng)的安全等級(jí)來(lái)測(cè)試已加載的所述策略語(yǔ)句在不同的安全等級(jí)中是否運(yùn)行正常,在所述策略測(cè)試模塊的測(cè)試結(jié)果為不合法吋,則進(jìn)入所述策略生成模塊以重新利用所述原子性策略模板和所述策略庫(kù)根據(jù)所采集的信息來(lái)生成策略語(yǔ)句,其中,所述原子性策略模板包括關(guān)鍵字策略模板和宏定義策略模板。
2.根據(jù)權(quán)利要求I所述的系統(tǒng),其特征在于,在所述策略修復(fù)模塊中,當(dāng)所述策略語(yǔ)句在所述不同安全等級(jí)的其中ー個(gè)安全等級(jí)中運(yùn)行不正常吋,所述信息采集模塊采集處于所述安全等級(jí)中的SELinux安全子系統(tǒng)的擴(kuò)展屬性資源信息;所述策略修復(fù)模塊,其基于擴(kuò)展屬性資源信息生成補(bǔ)充策略語(yǔ)句,將所述補(bǔ)充策略語(yǔ)句添加至所述策略語(yǔ)句中以生成新的策略語(yǔ)句以使所生成的新的策略語(yǔ)句在所述安全等級(jí)中運(yùn)行正常,以及在所述策略模板存儲(chǔ)模塊中存儲(chǔ)運(yùn)行正常的所述新的策略語(yǔ)句。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,還包括日志存儲(chǔ)模塊,其對(duì)運(yùn)行正常的所述新的策略語(yǔ)句所產(chǎn)生的日志信息進(jìn)行存儲(chǔ),所述日志信息包括新的策略語(yǔ)句的生成的時(shí)間和新的策略語(yǔ)句所存儲(chǔ)的位置。
4.根據(jù)權(quán)利要求I所述的系統(tǒng),其特征在干,所述信息采集模塊,其基于細(xì)粒度權(quán)限來(lái)采集SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)的服務(wù)的信息,其中,所采集的信息包括SELinux安全子系統(tǒng)的服務(wù)文件常規(guī)資源信息、SELinux安全子系統(tǒng)的服務(wù)文件模擬啟動(dòng)所需資源信息、SELinux安全子系統(tǒng)的擴(kuò)展屬性資源信息和用戶補(bǔ)充資源信息。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在干,所述信息采集模塊,其根據(jù)服務(wù)器軟件安裝列表中的服務(wù)文件的資源來(lái)采集服務(wù)文件系統(tǒng)常規(guī)資源信息。
6.根據(jù)權(quán)利要求I所述的系統(tǒng),其特征在干,在所述策略生成模塊,其利用所述原子性策略模板和所述策略庫(kù),根據(jù)所采集的信息來(lái)生成符合最小權(quán)限原則的策略語(yǔ)句。
7.一種基于SELinux安全子系統(tǒng)的策略適配方法,其特征在于,包括采集SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)中所運(yùn)行的服務(wù)的信息;利用原子性策略模板和策略庫(kù),根據(jù)所采集的信息來(lái)生成策略語(yǔ)句;測(cè)試所生成的所述策略語(yǔ)句的語(yǔ)法是否合法;若測(cè)試結(jié)果為合法,則重新啟動(dòng)系統(tǒng),通過(guò)降低或升高SELinux安全子系統(tǒng)的安全等級(jí)來(lái)測(cè)試已加載的所述策略語(yǔ)句在不同的安全等級(jí)中是否運(yùn)行正常,反之,則重新利用原子性策略模板和策略庫(kù)、根據(jù)所采集的信息來(lái)生成策略,其中,所述原子性策略模板包括關(guān)鍵字策略模板和宏定義策略模板。
8.根據(jù)權(quán)利要求7所述的方法,其特征在干,所述策略語(yǔ)句在所述不同安全等級(jí)的其中ー個(gè)安全等級(jí)中運(yùn)行不正常吋,采集處于所述安全等級(jí)中的SELinux安全子系統(tǒng)的擴(kuò)展屬性資源信息;基于所述擴(kuò)展屬性資源信息生成補(bǔ)充策略語(yǔ)句;將所述補(bǔ)充策略語(yǔ)句添加至所述策略語(yǔ)句中以生成新的策略語(yǔ)句以使得所生成的新的策略語(yǔ)句在所述安全等級(jí)中運(yùn)行正常,以及存儲(chǔ)運(yùn)行正常的所述新的策略語(yǔ)句。
9.根據(jù)權(quán)利要求8所述的方法,其特征在干,存儲(chǔ)運(yùn)行正常的所述新的策略語(yǔ)句所產(chǎn)生的日志信息,所述日志信息包括新的策略語(yǔ)句的生成的時(shí)間和新的策略語(yǔ)句所存儲(chǔ)的位置。
10.根據(jù)權(quán)利要求8所述的方法,其特征在干,對(duì)SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)的服務(wù)進(jìn)行細(xì)粒度權(quán)限的信息采集,其中,所采集的信息包括SELinux安全子系統(tǒng)的服務(wù)文件常規(guī)資源信息、SELinux安全子系統(tǒng)的服務(wù)文件模擬啟動(dòng)所需資源信息、SELinux安全子系統(tǒng)的擴(kuò)展屬性資源信息和用戶補(bǔ)充資源信息。
全文摘要
本發(fā)明公開(kāi)了一種基于SELinux安全子系統(tǒng)的策略適配系統(tǒng)及方法,該系統(tǒng)包括信息采集模塊,其用于采集SELinux安全子系統(tǒng)及SELinux安全子系統(tǒng)中所運(yùn)行的服務(wù)的信息;策略模板存儲(chǔ)模塊,其用于以數(shù)據(jù)庫(kù)的存儲(chǔ)方式來(lái)存儲(chǔ)原子性策略模板和預(yù)先設(shè)定服務(wù)的策略庫(kù);策略生成模塊,其利用原子性策略模板和策略庫(kù),來(lái)生成策略語(yǔ)句;策略測(cè)試模塊,其測(cè)試策略生成模塊所生成的策略語(yǔ)句的語(yǔ)法是否合法;策略修復(fù)模塊,其重新啟動(dòng)系統(tǒng)來(lái)測(cè)試已加載的所述策略語(yǔ)句在不同的安全等級(jí)中是否運(yùn)行正常。本發(fā)明采取服務(wù)即開(kāi)啟的方式完成策略的生成,針對(duì)用戶在使用過(guò)程的定制而生成策略,而不事先生成策略加載到模塊中,提高系統(tǒng)的安全性。
文檔編號(hào)G06F21/00GK102592092SQ201210005060
公開(kāi)日2012年7月18日 申請(qǐng)日期2012年1月9日 優(yōu)先權(quán)日2012年1月9日
發(fā)明者徐寧, 王青峰, 田勇 申請(qǐng)人:中標(biāo)軟件有限公司