本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體而言,本發(fā)明涉及一種在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的方法,及一種在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的裝置。
背景技術(shù):
SELinux是一種基于域-類型(Domain-Type)模型的強(qiáng)制訪問(wèn)控制(MAC)安全系統(tǒng),它由美國(guó)國(guó)家安全局(NationalSecurityAgency,NSA)進(jìn)行設(shè)計(jì),并設(shè)計(jì)成將安全模塊放入系統(tǒng)內(nèi)核中的系統(tǒng)形式,SELinux還包括相應(yīng)的安全策略,上層系統(tǒng)可以基于安全策略來(lái)進(jìn)行相應(yīng)的安全運(yùn)行操作。另外,一些安全相關(guān)應(yīng)用也可以被打上與SELinux相關(guān)的補(bǔ)丁,以提高安全相關(guān)應(yīng)用的安全等級(jí)。在普通的Linux系統(tǒng)中,任何應(yīng)用程序?qū)ζ滟Y源享有完全的控制權(quán),某個(gè)應(yīng)用程序若將含有潛在重要信息的文件存儲(chǔ)于臨時(shí)文件目錄下,該操作在普通的Linux系統(tǒng)中是被允許的。然而,在SELinux中,上述操作是被禁止的,因?yàn)镾ELinux應(yīng)用的是強(qiáng)制訪問(wèn)控制(Mandatory Access Control,MAC)機(jī)制。
在強(qiáng)制訪問(wèn)控制機(jī)制中,用戶、進(jìn)程或者文件操作的權(quán)限是由基于安全策略決定的。例如,可以設(shè)定如下的安全策略:不允許將用戶A創(chuàng)建的文件C授予用戶B訪問(wèn),基于上述安全策略的強(qiáng)制訪問(wèn)控制機(jī)制下,無(wú)論用戶A對(duì)文件C的操作權(quán)限進(jìn)行何種形式的修改,用戶B永遠(yuǎn)無(wú)法對(duì)文件C進(jìn)行訪問(wèn),但是在普通的Linux系統(tǒng)環(huán)境下通過(guò)用戶A對(duì)文件C的操作權(quán)限進(jìn)行適當(dāng)?shù)男薷牟僮骺梢允沟糜脩鬊對(duì)文件C進(jìn)行訪問(wèn),因此,SELinux提供的強(qiáng)制訪問(wèn)控制機(jī)制可以強(qiáng)有力地保護(hù)系統(tǒng)的安全和可靠性。
在另一方面,隨著技術(shù)的高速發(fā)展,智能終端已經(jīng)成為必不可少的通信產(chǎn)品,功能強(qiáng)大、用戶體驗(yàn)豐富的智能終端為人們的生活帶來(lái)了極大的便利?,F(xiàn)有的單操作系統(tǒng)的智能終端已經(jīng)不能滿足人們的需要,多操作系統(tǒng)的智能終端已經(jīng)應(yīng)運(yùn)而生,現(xiàn)有技術(shù)中存在多種針對(duì)單操作系統(tǒng)的安全控制方案如SELinux安全控制策略,但是針對(duì)多系統(tǒng)的安全控制方案少之又少。
技術(shù)實(shí)現(xiàn)要素:
為克服上述技術(shù)問(wèn)題或者至少部分地解決上述技術(shù)問(wèn)題,特提出以下技術(shù)方案:
本發(fā)明的實(shí)施例提出了一種在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的方法,應(yīng)用于包括一個(gè)主控系統(tǒng)和至少一個(gè)容器系統(tǒng)的終端設(shè)備運(yùn)行環(huán)境中,包括:
通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)各個(gè)容器系統(tǒng),并通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略;
若判斷至少一個(gè)容器系統(tǒng)選擇應(yīng)用SELinux安全策略時(shí),通過(guò)容器啟動(dòng)進(jìn)程將至少一個(gè)容器系統(tǒng)的選擇結(jié)果消息發(fā)送至對(duì)應(yīng)的容器系統(tǒng);
在選擇應(yīng)用SELinux安全策略的容器系統(tǒng)啟動(dòng)時(shí),將其各自對(duì)應(yīng)的SELinux安全策略分別導(dǎo)入系統(tǒng)內(nèi)核;
當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核來(lái)選擇應(yīng)用其對(duì)應(yīng)的SELinux安全策略。
優(yōu)選地,通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略的步驟,包括:
通過(guò)容器啟動(dòng)進(jìn)程讀取容器系統(tǒng)啟動(dòng)配置文件,并基于容器系統(tǒng)啟動(dòng)配置文件判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
優(yōu)選地,容器系統(tǒng)啟動(dòng)配置文件中配置有各個(gè)容器系統(tǒng)SELinux安全策略的相關(guān)參數(shù);
其中,相關(guān)參數(shù)包括以下至少一項(xiàng):
各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的參數(shù);
與各個(gè)容器系統(tǒng)相應(yīng)的SELinux安全策略的文件信息;
其中,基于容器系統(tǒng)啟動(dòng)配置文件判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略的步驟,包括:
從容器系統(tǒng)啟動(dòng)配置文件中讀取各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的相關(guān)參數(shù);
根據(jù)相關(guān)參數(shù),通過(guò)容器啟動(dòng)進(jìn)程判斷各容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
優(yōu)選地,容器系統(tǒng)啟動(dòng)配置文件由服務(wù)器下發(fā)至終端設(shè)備,或預(yù)存儲(chǔ)于主控系統(tǒng)的預(yù)定存儲(chǔ)位置中。
可選地,若判斷一個(gè)或多個(gè)容器系統(tǒng)不選擇應(yīng)用SELinux安全策略,該方法還包括:
當(dāng)不選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核確定其預(yù)定的安全策略。
本發(fā)明的另一實(shí)施例提出了一種在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的裝置,應(yīng)用于包括一個(gè)主控系統(tǒng)和至少一個(gè)容器系統(tǒng)的終端設(shè)備運(yùn)行環(huán)境中,包括:
啟動(dòng)及判斷模塊,用于通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)各個(gè)容器系統(tǒng),并通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略;
發(fā)送模塊,用于若判斷至少一個(gè)容器系統(tǒng)選擇應(yīng)用SELinux安全策略時(shí),通過(guò)容器啟動(dòng)進(jìn)程將至少一個(gè)容器系統(tǒng)的選擇結(jié)果消息發(fā)送至對(duì)應(yīng)的容器系統(tǒng);
導(dǎo)入模塊,用于在選擇應(yīng)用SELinux安全策略的容器系統(tǒng)啟動(dòng)時(shí),將其各自對(duì)應(yīng)的SELinux安全策略分別導(dǎo)入系統(tǒng)內(nèi)核;
選擇應(yīng)用模塊,用于當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核來(lái)選擇應(yīng)用其對(duì)應(yīng)的SELinux安全策略。
優(yōu)選地,啟動(dòng)及判斷模塊,包括:
讀取及判斷單元,用于通過(guò)容器啟動(dòng)進(jìn)程讀取容器系統(tǒng)啟動(dòng)配置文件,并基于容器系統(tǒng)啟動(dòng)配置文件判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
優(yōu)選地,容器系統(tǒng)啟動(dòng)配置文件中配置有各個(gè)容器系統(tǒng)SELinux安全策略的相關(guān)參數(shù);
其中,相關(guān)參數(shù)包括以下至少一項(xiàng):
各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的參數(shù);
與各個(gè)容器系統(tǒng)相應(yīng)的SELinux安全策略的文件信息;
優(yōu)選地,讀取及判斷單元,包括:
讀取子單元,用于從容器系統(tǒng)啟動(dòng)配置文件中讀取各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的相關(guān)參數(shù);
判斷子單元,用于根據(jù)相關(guān)參數(shù),通過(guò)容器啟動(dòng)進(jìn)程判斷各容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
優(yōu)選地,容器系統(tǒng)啟動(dòng)配置文件由服務(wù)器下發(fā)至終端設(shè)備,或預(yù)存儲(chǔ)于主控系統(tǒng)的預(yù)定存儲(chǔ)位置中。
可選地,若判斷一個(gè)或多個(gè)容器系統(tǒng)不選擇應(yīng)用SELinux安全策略,該裝置還包括:
確定模塊,用于當(dāng)不選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核確定其預(yù)定的安全策略。
本發(fā)明的實(shí)施例中,提出了一種在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的方案,通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)各個(gè)容器系統(tǒng),并通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略,為各個(gè)容器系統(tǒng)選擇應(yīng)用各自對(duì)應(yīng)的SELinux安全策略提供了必要的前提保障;若判斷至少一個(gè)容器系統(tǒng)選擇應(yīng)用SELinux安全策略時(shí),通過(guò)容器啟動(dòng)進(jìn)程將至少一個(gè)容器系統(tǒng)的選擇結(jié)果消息發(fā)送至對(duì)應(yīng)的容器系統(tǒng),為是否在系統(tǒng)內(nèi)核中導(dǎo)入各個(gè)容器系統(tǒng)選擇應(yīng)用的SELinux安全策略提供了重要的前提保障;在選擇應(yīng)用SELinux安全策略的容器系統(tǒng)啟動(dòng)時(shí),將其各自對(duì)應(yīng)的SELinux安全策略分別導(dǎo)入系統(tǒng)內(nèi)核,當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核來(lái)選擇應(yīng)用其對(duì)應(yīng)的SELinux安全策略,實(shí)現(xiàn)了在不需要主控系統(tǒng)應(yīng)用SELinux安全策略的情況下,使得各個(gè)容器系統(tǒng)有選擇的單獨(dú)應(yīng)用各自的安全策略,既不影響其它容器系統(tǒng)的運(yùn)行,也保證了各個(gè)容器系統(tǒng)自身的安全性;進(jìn)一步地,通過(guò)加固了多系統(tǒng)的安全性,從而為用戶創(chuàng)造了良好的終端設(shè)備體驗(yàn)環(huán)境。
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
附圖說(shuō)明
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1為本發(fā)明中一個(gè)實(shí)施例的在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的方法的流程圖;
圖2為本發(fā)明中一個(gè)優(yōu)選實(shí)施例的在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的方法的流程圖;
圖3為本發(fā)明中另一實(shí)施例的在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個(gè)”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說(shuō)明書(shū)中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無(wú)線連接或無(wú)線耦接。這里使用的措辭“和/或”包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù)術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ)),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語(yǔ),應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會(huì)用理想化或過(guò)于正式的含義來(lái)解釋。
需要說(shuō)明的是,本發(fā)明實(shí)施例提供的在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的方法及裝置適用于包括一個(gè)主控系統(tǒng)和至少一個(gè)容器系統(tǒng)的終端設(shè)備運(yùn)行環(huán)境中。其中,主控系統(tǒng)和容器系統(tǒng)都是基于同一系統(tǒng)內(nèi)核,如Linux系統(tǒng)內(nèi)核來(lái)實(shí)現(xiàn)的。
本發(fā)明實(shí)施例中的容器系統(tǒng),是設(shè)置在以Linux container(容器)虛擬化技術(shù)創(chuàng)建的容器中的操作系統(tǒng)。操作系統(tǒng)可以為傳統(tǒng)意義上的Linux操作系統(tǒng)或Unix操作系統(tǒng),也可以是基于Linux操作系統(tǒng)衍生出來(lái)的Android系統(tǒng)、Ubuntu系統(tǒng)或FireFox系統(tǒng)等,還可以為以Windows平臺(tái)為基礎(chǔ)的windows系統(tǒng)等等。實(shí)際上,本發(fā)明中的容器系統(tǒng)不限于前述例舉的操作系統(tǒng),可以涵蓋所有能夠在容器中運(yùn)行的操作系統(tǒng)。
優(yōu)選地,主控系統(tǒng)可以是上述傳統(tǒng)的操作系統(tǒng),也可以是對(duì)傳統(tǒng)的kernel進(jìn)行改進(jìn)和/或在kernel之外(例如框架層和應(yīng)用層)增加功能模塊之后,得到的操作系統(tǒng)。
主控系統(tǒng)用于對(duì)多個(gè)容器系統(tǒng)進(jìn)行控制管理,并且還用于輔助各個(gè)容器系統(tǒng)完成各個(gè)容器系統(tǒng)的各自的功能,主控系統(tǒng)本身可以不提供具體應(yīng)用功能,例如通話、短信息、運(yùn)行應(yīng)用程序等功能。優(yōu)選地,主控系統(tǒng)可以通過(guò)預(yù)定義的通道與容器系統(tǒng)進(jìn)行通信。同理,容器系統(tǒng)之間可以通過(guò)容器通道進(jìn)行通信。其中,預(yù)定義的通道可以是socket(套接字)通道。
圖1為本發(fā)明中一個(gè)實(shí)施例的在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的方法的流程圖。
本發(fā)明的實(shí)施例中,各步驟所執(zhí)行的內(nèi)容概述如下:步驟S110:通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)各個(gè)容器系統(tǒng),并通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略;步驟S120:若判斷至少一個(gè)容器系統(tǒng)選擇應(yīng)用SELinux安全策略時(shí),通過(guò)容器啟動(dòng)進(jìn)程將至少一個(gè)容器系統(tǒng)的選擇結(jié)果消息發(fā)送至對(duì)應(yīng)的容器系統(tǒng);步驟S130:在選擇應(yīng)用SELinux安全策略的容器系統(tǒng)啟動(dòng)時(shí),將其各自對(duì)應(yīng)的SELinux安全策略分別導(dǎo)入系統(tǒng)內(nèi)核;步驟S140:當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核來(lái)選擇應(yīng)用其對(duì)應(yīng)的SELinux安全策略。
本發(fā)明的實(shí)施例中,提出了一種在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的方法,通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)各個(gè)容器系統(tǒng),并通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略,為各個(gè)容器系統(tǒng)選擇應(yīng)用各自對(duì)應(yīng)的SELinux安全策略提供了必要的前提保障;若判斷至少一個(gè)容器系統(tǒng)選擇應(yīng)用SELinux安全策略時(shí),通過(guò)容器啟動(dòng)進(jìn)程將至少一個(gè)容器系統(tǒng)的選擇結(jié)果消息發(fā)送至對(duì)應(yīng)的容器系統(tǒng),為是否在系統(tǒng)內(nèi)核中導(dǎo)入各個(gè)容器系統(tǒng)選擇應(yīng)用的SELinux安全策略提供了重要的前提保障;在選擇應(yīng)用SELinux安全策略的容器系統(tǒng)啟動(dòng)時(shí),將其各自對(duì)應(yīng)的SELinux安全策略分別導(dǎo)入系統(tǒng)內(nèi)核,當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核來(lái)選擇應(yīng)用其對(duì)應(yīng)的SELinux安全策略,實(shí)現(xiàn)了在不需要主控系統(tǒng)應(yīng)用SELinux安全策略的情況下,使得各個(gè)容器系統(tǒng)有選擇的單獨(dú)應(yīng)用各自的安全策略,既不影響其它容器系統(tǒng)的運(yùn)行,也保證了各個(gè)容器系統(tǒng)自身的安全性;進(jìn)一步地,通過(guò)加固了多系統(tǒng)的安全性,從而為用戶創(chuàng)造了良好的終端設(shè)備體驗(yàn)環(huán)境。以下針對(duì)各個(gè)步驟的具體實(shí)現(xiàn)做進(jìn)一步的說(shuō)明:
步驟S110:通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)各個(gè)容器系統(tǒng),并通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
需要說(shuō)明的是,本領(lǐng)域的技術(shù)人員可以了解到,SELinux定義了系統(tǒng)中各個(gè)用戶、進(jìn)程、應(yīng)用和文件的訪問(wèn)權(quán)限,它通過(guò)安全策略來(lái)控制用戶、進(jìn)程、應(yīng)用和文件之間的交互操作,其中,安全策略可以根據(jù)實(shí)際需要設(shè)置為嚴(yán)格的或?qū)捤傻?,它指定了如何?yán)格地或?qū)捤傻貙?duì)用戶、進(jìn)程、應(yīng)用和文件的訪問(wèn)權(quán)限進(jìn)行鑒權(quán)操作。SELinux對(duì)系統(tǒng)普通用戶是透明的,只有系統(tǒng)管理員需要考慮在終端設(shè)備中如何配置安全策略。只有同時(shí)滿足Linux標(biāo)準(zhǔn)的訪問(wèn)控制條件和SELinux安全訪問(wèn)控制條件時(shí),某一主體才能訪問(wèn)某一客體。
在SELinux中存在一關(guān)鍵性的概念如安全上下文,安全上下文由用戶、角色、類型、安全級(jí)別四部分組成,安全上下文中通過(guò)一個(gè)冒號(hào)來(lái)分隔每一部分,如u:r:t:s0,描述的就是一個(gè)SEAndroid的安全上下文。SELinux中所有訪問(wèn)控制都是以關(guān)聯(lián)的客體和主體的特定類型的訪問(wèn)控制屬性為基礎(chǔ)的,上述訪問(wèn)控制屬性即為安全上下文。因此,當(dāng)每一個(gè)進(jìn)程和文件都被與其相應(yīng)的安全上下文標(biāo)識(shí)后,系統(tǒng)管理員就可以基于安全上下文制定安全策略,從而安全策略可以用來(lái)規(guī)定具有特定屬性的進(jìn)程可以訪問(wèn)具有特定屬性的文件。
在本發(fā)明實(shí)施例中,不同容器系統(tǒng)所需的安全等級(jí)不盡相同,故而在不同容器系統(tǒng)中可以定義不同的SELinux安全策略。例如,一臺(tái)終端設(shè)備運(yùn)行兩個(gè)子系統(tǒng),分別為Android1和Android2,其中,Android1搭載的應(yīng)用服務(wù)需要更高、更可靠的安全性,因此設(shè)定Android1運(yùn)行的安全等級(jí)為高級(jí)。從而,設(shè)定與Android1相應(yīng)的安全策略是:在不影響預(yù)定的進(jìn)程外,禁止運(yùn)行預(yù)定的進(jìn)程外的所有進(jìn)程。在定義安全上下文時(shí),對(duì)Android1的專屬資源進(jìn)行嚴(yán)格地保護(hù),進(jìn)而可以通過(guò)嚴(yán)格的保護(hù)來(lái)禁止預(yù)定的進(jìn)程外的進(jìn)程調(diào)用相關(guān)資源以進(jìn)行運(yùn)行。在另一方面,可以設(shè)定Android2運(yùn)行的安全等級(jí)為普通等級(jí),與Android2相應(yīng)的安全策略是:在不影響所有進(jìn)程的運(yùn)行的情況下,保證Android2的安全性。
需要說(shuō)明的是,在本實(shí)施例的多系統(tǒng)終端設(shè)備中,主機(jī)可以用系統(tǒng)管理員權(quán)限,如root權(quán)限,在各個(gè)容器系統(tǒng)中運(yùn)行任何應(yīng)用程序,而各個(gè)容器系統(tǒng)通過(guò)其各自的安全機(jī)制來(lái)保護(hù)其各自容器系統(tǒng),其中,安全機(jī)制為SELinux安全策略機(jī)制。同時(shí),各個(gè)容器系統(tǒng)可以擁有自己的SELinux安全策略,各個(gè)容器系統(tǒng)間對(duì)其各自的SELinux安全策略訪問(wèn)互不影響。在終端設(shè)備的系統(tǒng)內(nèi)核中,通過(guò)SELinux安全策略對(duì)各進(jìn)程進(jìn)行訪問(wèn)控制時(shí),針對(duì)主控系統(tǒng)的進(jìn)程僅提出警告而不進(jìn)行限制,保證了在各個(gè)容器系統(tǒng)導(dǎo)入其各自的SELinux安全策略至系統(tǒng)內(nèi)核時(shí)不影響主控系統(tǒng)的相關(guān)進(jìn)程運(yùn)行,從而保證了本發(fā)明實(shí)施例中的容器啟動(dòng)進(jìn)程順利的啟動(dòng)各個(gè)容器系統(tǒng)。
例如,在運(yùn)行多系統(tǒng)的終端設(shè)備A中,啟動(dòng)主控系統(tǒng),隨后通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)容器系統(tǒng)OS1和容器系統(tǒng)OS2,并通過(guò)容器啟動(dòng)進(jìn)程判斷容器系統(tǒng)OS1和容器系統(tǒng)OS2是否選擇應(yīng)用SELinux安全策略。
優(yōu)選地,步驟S110中通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略的步驟,具體包括:通過(guò)容器啟動(dòng)進(jìn)程讀取容器系統(tǒng)啟動(dòng)配置文件,并基于容器系統(tǒng)啟動(dòng)配置文件判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
優(yōu)選地,容器系統(tǒng)啟動(dòng)配置文件中配置有各個(gè)容器系統(tǒng)SELinux安全策略的相關(guān)參數(shù)。
其中,相關(guān)參數(shù)包括以下至少一項(xiàng):
各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的參數(shù);例如,當(dāng)容器系統(tǒng)OS1的該參數(shù)為“IsStartSELinux=true”時(shí),容器系統(tǒng)OS1啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制,當(dāng)容器系統(tǒng)OS2的該參數(shù)為“IsStartSELinux=false”時(shí),容器系統(tǒng)OS2不啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制。
與各個(gè)容器系統(tǒng)相應(yīng)的SELinux安全策略的文件信息;例如,與各個(gè)容器系統(tǒng)相應(yīng)的SELinux安全策略的文件的文件名稱信息和文件存儲(chǔ)路徑信息等。
優(yōu)選地,步驟S110中基于容器系統(tǒng)啟動(dòng)配置文件判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略的步驟,進(jìn)一步包括步驟S111和步驟S112;步驟S111:從容器系統(tǒng)啟動(dòng)配置文件中讀取各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的相關(guān)參數(shù);步驟S112:根據(jù)相關(guān)參數(shù),通過(guò)容器啟動(dòng)進(jìn)程判斷各容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
優(yōu)選地,容器系統(tǒng)啟動(dòng)配置文件由服務(wù)器下發(fā)至終端設(shè)備,或預(yù)存儲(chǔ)于主控系統(tǒng)的預(yù)定存儲(chǔ)位置中。
例如,在運(yùn)行多系統(tǒng)的終端設(shè)備A中,容器系統(tǒng)啟動(dòng)配置文件由服務(wù)器下發(fā)至終端設(shè)備;啟動(dòng)主控系統(tǒng),隨后通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程,如process1,啟動(dòng)容器系統(tǒng)OS1和容器系統(tǒng)OS2,從容器系統(tǒng)啟動(dòng)配置文件中讀取各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的相關(guān)參數(shù),如讀取到容器系統(tǒng)OS1對(duì)應(yīng)的權(quán)限控制參數(shù)包括:是否選擇應(yīng)用SELinux安全策略的參數(shù)“IsStartSELinux=true”、選擇應(yīng)用的SELinux安全策略的文件名稱參數(shù)“SELinuxFileName=OS1SELinux”和選擇應(yīng)用的SELinux安全策略的文件的存儲(chǔ)位置參數(shù)“SELinuxFilePath=..\Server1\SELinux\”,容器系統(tǒng)OS2對(duì)應(yīng)的權(quán)限控制參數(shù)包括是否選擇應(yīng)用的SELinux安全策略的參數(shù)“IsStartSELinux=false”;隨后,process1根據(jù)容器系統(tǒng)OS1和容器系統(tǒng)OS2各自對(duì)應(yīng)的權(quán)限控制相關(guān)參數(shù)中的是否選擇應(yīng)用SELinux安全策略的參數(shù)“IsStartSELinux=true”和“IsStartSELinux=false”,可判容器系統(tǒng)OS1選擇應(yīng)用SELinux安全策略,容器系統(tǒng)OS2不選擇應(yīng)用SELinux安全策略。
步驟S120:若判斷至少一個(gè)容器系統(tǒng)選擇應(yīng)用SELinux安全策略時(shí),通過(guò)容器啟動(dòng)進(jìn)程將至少一個(gè)容器系統(tǒng)的選擇結(jié)果消息發(fā)送至對(duì)應(yīng)的容器系統(tǒng)。
例如,在運(yùn)行多系統(tǒng)的終端設(shè)備A中,容器系統(tǒng)啟動(dòng)配置文件由服務(wù)器下發(fā)至終端設(shè)備A;啟動(dòng)主控系統(tǒng),隨后通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程,如process1,啟動(dòng)容器系統(tǒng)OS1和容器系統(tǒng)OS2,并從容器系統(tǒng)啟動(dòng)配置文件中讀取各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的相關(guān)參數(shù);當(dāng)process1判斷得到容器系統(tǒng)OS1選擇應(yīng)用SELinux安全策略時(shí),process1將容器系統(tǒng)OS1的選擇結(jié)果消息,如“容器系統(tǒng)OS1選擇應(yīng)用SELinux安全策略”的消息發(fā)送至容器系統(tǒng)OS1。
步驟S130:在選擇應(yīng)用SELinux安全策略的容器系統(tǒng)啟動(dòng)時(shí),將其各自對(duì)應(yīng)的SELinux安全策略分別導(dǎo)入系統(tǒng)內(nèi)核。
例如,在運(yùn)行多系統(tǒng)的終端設(shè)備A中,當(dāng)通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程process1將選擇應(yīng)用SELinux安全策略的容器系統(tǒng)OS1啟動(dòng)時(shí),在容器系統(tǒng)OS1啟動(dòng)過(guò)程中,根據(jù)容器系統(tǒng)啟動(dòng)配置文件從服務(wù)器Server1的“..\Server1\SELinux\”路徑下獲取容器系統(tǒng)OS1選擇應(yīng)用文件名為“OS1SELinux”的SELinux安全策略文件,并將文件名為“OS1SELinux”的SELinux安全策略導(dǎo)入系統(tǒng)內(nèi)核。
步驟S140:當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核來(lái)選擇應(yīng)用其對(duì)應(yīng)的SELinux安全策略。
例如,在運(yùn)行多系統(tǒng)的終端設(shè)備A中,當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)OS1調(diào)用系統(tǒng)資源時(shí),根據(jù)容器系統(tǒng)OS1的系統(tǒng)標(biāo)識(shí)信息,如“容器系統(tǒng)OS1”,通過(guò)系統(tǒng)內(nèi)核應(yīng)用容器系統(tǒng)OS1選擇的文件名為“OS1SELinux”的SELinux安全策略。
在一優(yōu)選實(shí)施例中,若判斷一個(gè)或多個(gè)容器系統(tǒng)不選擇應(yīng)用SELinux安全策略,該方法還包括步驟S150;步驟S150:當(dāng)不選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核確定其預(yù)定的安全策略。
例如,接上例,主控系統(tǒng)的容器啟動(dòng)進(jìn)程process1判斷得到容器系統(tǒng)OS2不選擇應(yīng)用SELinux安全策略,當(dāng)容器系統(tǒng)OS2調(diào)用終端設(shè)備的系統(tǒng)資源時(shí),根據(jù)容器系統(tǒng)OS2的系統(tǒng)標(biāo)識(shí)信息,如“容器系統(tǒng)OS2”,通過(guò)系統(tǒng)內(nèi)核確定容器系統(tǒng)OS2的安全策略為預(yù)定的安全策略。
圖2為本發(fā)明另一優(yōu)選實(shí)施例的在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的方法的流程示意圖,該示意圖中,多系統(tǒng)中包括主控系統(tǒng)、容器系統(tǒng)OS1和容器系統(tǒng)OS2,容器系統(tǒng)OS1和容器系統(tǒng)OS2均為Android系統(tǒng),主控系統(tǒng)的容器啟動(dòng)進(jìn)程為L(zhǎng)otusd,通過(guò)Lotusd判斷容器系統(tǒng)OS1和容器系統(tǒng)OS2均選擇應(yīng)用其各自的SELinux安全策略,在系統(tǒng)內(nèi)核中分別導(dǎo)入容器系統(tǒng)OS1和容器系統(tǒng)OS2其各自的SELinux安全策略。
圖3為本發(fā)明中另一實(shí)施例的在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的裝置的結(jié)構(gòu)示意圖。
本發(fā)明的實(shí)施例中,各模塊所執(zhí)行的內(nèi)容概述如下:?jiǎn)?dòng)及判斷模塊310通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)各個(gè)容器系統(tǒng),并通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略;發(fā)送模塊320若判斷至少一個(gè)容器系統(tǒng)選擇應(yīng)用SELinux安全策略時(shí),通過(guò)容器啟動(dòng)進(jìn)程將至少一個(gè)容器系統(tǒng)的選擇結(jié)果消息發(fā)送至對(duì)應(yīng)的容器系統(tǒng);導(dǎo)入模塊330在選擇應(yīng)用SELinux安全策略的容器系統(tǒng)啟動(dòng)時(shí),將其各自對(duì)應(yīng)的SELinux安全策略分別導(dǎo)入系統(tǒng)內(nèi)核;選擇應(yīng)用模塊340當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核來(lái)選擇應(yīng)用其對(duì)應(yīng)的SELinux安全策略。
本發(fā)明的實(shí)施例中,提出了一種在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的裝置,通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)各個(gè)容器系統(tǒng),并通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略,為各個(gè)容器系統(tǒng)選擇應(yīng)用各自對(duì)應(yīng)的SELinux安全策略提供了必要的前提保障;若判斷至少一個(gè)容器系統(tǒng)選擇應(yīng)用SELinux安全策略時(shí),通過(guò)容器啟動(dòng)進(jìn)程將至少一個(gè)容器系統(tǒng)的選擇結(jié)果消息發(fā)送至對(duì)應(yīng)的容器系統(tǒng),為是否在系統(tǒng)內(nèi)核中導(dǎo)入各個(gè)容器系統(tǒng)選擇應(yīng)用的SELinux安全策略提供了重要的前提保障;在選擇應(yīng)用SELinux安全策略的容器系統(tǒng)啟動(dòng)時(shí),將其各自對(duì)應(yīng)的SELinux安全策略分別導(dǎo)入系統(tǒng)內(nèi)核,當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核來(lái)選擇應(yīng)用其對(duì)應(yīng)的SELinux安全策略,實(shí)現(xiàn)了在不需要主控系統(tǒng)應(yīng)用SELinux安全策略的情況下,使得各個(gè)容器系統(tǒng)有選擇的單獨(dú)應(yīng)用各自的安全策略,既不影響其它容器系統(tǒng)的運(yùn)行,也保證了各個(gè)容器系統(tǒng)自身的安全性;進(jìn)一步地,通過(guò)加固了多系統(tǒng)的安全性,從而為用戶創(chuàng)造了良好的終端設(shè)備體驗(yàn)環(huán)境。以下針對(duì)各個(gè)模塊的具體實(shí)現(xiàn)做進(jìn)一步的說(shuō)明:
啟動(dòng)及判斷模塊310用于通過(guò)主控系統(tǒng)的容器啟動(dòng)進(jìn)程啟動(dòng)各個(gè)容器系統(tǒng),并通過(guò)容器啟動(dòng)進(jìn)程判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
發(fā)送模塊320用于若判斷至少一個(gè)容器系統(tǒng)選擇應(yīng)用SELinux安全策略時(shí),通過(guò)容器啟動(dòng)進(jìn)程將至少一個(gè)容器系統(tǒng)的選擇結(jié)果消息發(fā)送至對(duì)應(yīng)的容器系統(tǒng)。
導(dǎo)入模塊330用于在選擇應(yīng)用SELinux安全策略的容器系統(tǒng)啟動(dòng)時(shí),將其各自對(duì)應(yīng)的SELinux安全策略分別導(dǎo)入系統(tǒng)內(nèi)核。
選擇應(yīng)用模塊340用于當(dāng)選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核來(lái)選擇應(yīng)用其對(duì)應(yīng)的SELinux安全策略。
優(yōu)選地,啟動(dòng)及判斷模塊包括讀取及判斷單元;讀取及判斷單元用于通過(guò)容器啟動(dòng)進(jìn)程讀取容器系統(tǒng)啟動(dòng)配置文件,并基于容器系統(tǒng)啟動(dòng)配置文件判斷各個(gè)容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
優(yōu)選地,容器系統(tǒng)啟動(dòng)配置文件中配置有各個(gè)容器系統(tǒng)SELinux安全策略的相關(guān)參數(shù)。
其中,相關(guān)參數(shù)包括以下至少一項(xiàng):
各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的參數(shù);
與各個(gè)容器系統(tǒng)相應(yīng)的SELinux安全策略的文件信息。
優(yōu)選地,讀取及判斷單元包括讀取子單元和判斷子單元;讀取子單元用于從容器系統(tǒng)啟動(dòng)配置文件中讀取各個(gè)容器系統(tǒng)是否啟動(dòng)SELinux安全策略進(jìn)行權(quán)限控制的相關(guān)參數(shù);判斷子單元用于根據(jù)相關(guān)參數(shù),通過(guò)容器啟動(dòng)進(jìn)程判斷各容器系統(tǒng)是否選擇應(yīng)用SELinux安全策略。
優(yōu)選地,容器系統(tǒng)啟動(dòng)配置文件由服務(wù)器下發(fā)至終端設(shè)備,或預(yù)存儲(chǔ)于主控系統(tǒng)的預(yù)定存儲(chǔ)位置中。
可選地,若判斷一個(gè)或多個(gè)容器系統(tǒng)不選擇應(yīng)用SELinux安全策略,該裝置還包括確定模塊;確定模塊用于當(dāng)不選擇應(yīng)用SELinux安全策略的容器系統(tǒng)調(diào)用系統(tǒng)資源時(shí),根據(jù)其各自的系統(tǒng)標(biāo)識(shí)信息,通過(guò)系統(tǒng)內(nèi)核確定其預(yù)定的安全策略。
本發(fā)明實(shí)施例提供的在多系統(tǒng)中選擇應(yīng)用SELinux安全策略的裝置可以實(shí)現(xiàn)上述提供的方法實(shí)施例,具體功能實(shí)現(xiàn)請(qǐng)參見(jiàn)方法實(shí)施例中的說(shuō)明,在此不再贅述。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請(qǐng)中所述操作中的一項(xiàng)或多項(xiàng)的設(shè)備。這些設(shè)備可以為所需的目的而專門(mén)設(shè)計(jì)和制造,或者也可以包括通用計(jì)算機(jī)中的已知設(shè)備。這些設(shè)備具有存儲(chǔ)在其內(nèi)的計(jì)算機(jī)程序,這些計(jì)算機(jī)程序選擇性地激活或重構(gòu)。這樣的計(jì)算機(jī)程序可以被存儲(chǔ)在設(shè)備(例如,計(jì)算機(jī))可讀介質(zhì)中或者存儲(chǔ)在適于存儲(chǔ)電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計(jì)算機(jī)可讀介質(zhì)包括但不限于任何類型的盤(pán)(包括軟盤(pán)、硬盤(pán)、光盤(pán)、CD-ROM、和磁光盤(pán))、ROM(Read-Only Memory,只讀存儲(chǔ)器)、RAM(Random Access Memory,隨即存儲(chǔ)器)、EPROM(Erasable Programmable Read-Only Memory,可擦寫(xiě)可編程只讀存儲(chǔ)器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計(jì)算機(jī))以能夠讀的形式存儲(chǔ)或傳輸信息的任何介質(zhì)。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個(gè)框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計(jì)算機(jī)程序指令提供給通用計(jì)算機(jī)、專業(yè)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來(lái)實(shí)現(xiàn),從而通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來(lái)執(zhí)行本發(fā)明公開(kāi)的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個(gè)框中指定的方案。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過(guò)的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進(jìn)一步地,具有本發(fā)明中已經(jīng)討論過(guò)的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進(jìn)一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開(kāi)的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅是本發(fā)明的部分實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。