基于云的SELinux策略加載方法、裝置、終端設(shè)備及系統(tǒng)的制作方法
【專利摘要】本申請(qǐng)公開了一種基于云的SELinux策略加載方法、裝置、終端設(shè)備及系統(tǒng)。該方法包括:當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求;接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略;以及加載所述應(yīng)用程序的SELinux策略;其中,所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。該方法能夠保證SELinux的安全性,并提高SELinux策略的加載效率。
【專利說明】
基于云的SEL i nux策略加載方法、裝置、終端設(shè)備及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及終端設(shè)備安全技術(shù)領(lǐng)域,具體而言,涉及一種基于云的SELinux策略加載方法、裝置、終端設(shè)備及系統(tǒng)。
【背景技術(shù)】
[0002]SELi nux (Security-Enhanced Linux,安全增強(qiáng) Linux)是一種美國(guó)國(guó)家安全局(NSA)制定的對(duì)于強(qiáng)制訪問控制(MAC)的實(shí)現(xiàn)方法,是Linux操作系統(tǒng)中新的安全子系統(tǒng)。當(dāng)終端設(shè)備加載了 SELinux安全子系統(tǒng)后,能夠極大地提高其操作系統(tǒng)的安全等級(jí)。
[0003]SELinux策略是SELinux安全子系統(tǒng)實(shí)現(xiàn)強(qiáng)制訪問控制的重要組成部分。在SELinux策略中包含了整個(gè)操作系統(tǒng)中主體對(duì)客體的訪問控制。SELinux策略的設(shè)計(jì)不僅關(guān)系到SELinux能否發(fā)揮出強(qiáng)制訪問控制的安全特性,同時(shí)對(duì)終端設(shè)備操作系統(tǒng)將有性能的影響,所以當(dāng)終端設(shè)備操作系統(tǒng)初始加載不合理的SELinux策略然將會(huì)影響終端設(shè)備的性能,還可能出現(xiàn)安全漏洞。
[0004]在所述【背景技術(shù)】部分公開的上述信息僅用于加強(qiáng)對(duì)本發(fā)明的背景的理解,因此它可以包括不構(gòu)成對(duì)本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供一種基于云的SELinux策略加載方法、裝置、終端設(shè)備及系統(tǒng),能夠保證SELinux的安全性,并提高SELinux策略的加載效率。
[0006]本發(fā)明的其他特性和優(yōu)點(diǎn)將通過下面的詳細(xì)描述變得顯然,或部分地通過本發(fā)明的實(shí)踐而習(xí)得。
[0007]根據(jù)本發(fā)明的一方面,提供了一種基于云的SELinux策略加載方法,包括:當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求;接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略;以及加載所述應(yīng)用程序的SELinux策略;其中,所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。
[0008]根據(jù)本發(fā)明的一實(shí)施方式,上述方法還包括:當(dāng)所述終端設(shè)備安裝了一個(gè)新的應(yīng)用程序時(shí),向所述云端設(shè)備發(fā)送新安裝的所述應(yīng)用程序的SELinux策略請(qǐng)求。
[0009]根據(jù)本發(fā)明的一實(shí)施方式,上述方法還包括:當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),動(dòng)態(tài)生成并加載新安裝的所述應(yīng)用程序的SELinux策略,并將動(dòng)態(tài)生成的新安裝的所述應(yīng)用程序的SELinux策略上傳至所述云端設(shè)備存儲(chǔ)。
[0010]根據(jù)本發(fā)明的一實(shí)施方式,所述通信連接為一VPN連接。
[0011]根據(jù)本發(fā)明的一實(shí)施方式,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述應(yīng)用程序的特別權(quán)限和/或所述終端設(shè)備的型號(hào)。
[0012]根據(jù)本發(fā)明的另一方面,提供了一種基于云的SELinux策略加載裝置,包括:請(qǐng)求發(fā)送模塊,用于當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求;策略接收模塊,用于接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略;以及策略加載模塊,用于加載所述應(yīng)用程序的SELinux策略;其中,所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。
[0013]根據(jù)本發(fā)明的一實(shí)施方式,所述請(qǐng)求發(fā)送模塊還用于當(dāng)所述終端設(shè)備安裝了一個(gè)新的應(yīng)用程序時(shí),向所述云端設(shè)備發(fā)送新安裝的所述應(yīng)用程序的SELinux策略請(qǐng)求;以及策略生成模塊,用于當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),動(dòng)態(tài)生成并加載新安裝的所述應(yīng)用程序的SEL i nux策略。
[0014]根據(jù)本發(fā)明的一實(shí)施方式,還包括:策略上傳模塊,用于將動(dòng)態(tài)生成的新安裝的所述應(yīng)用程序的SELinux策略上傳至所述云端設(shè)備存儲(chǔ)。
[0015]根據(jù)本發(fā)明的一實(shí)施方式,所述通信連接為一VPN連接。
[0016]根據(jù)本發(fā)明的一實(shí)施方式,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述應(yīng)用程序的特別權(quán)限和/或所述終端設(shè)備的型號(hào)。
[0017]根據(jù)本發(fā)明的再一方面,提供了一種終端設(shè)備,包括:處理器;以及存儲(chǔ)器,用于存儲(chǔ)所述處理器的可執(zhí)行指令;其中所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行以下操作:當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求;接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略;以及加載所述應(yīng)用程序的SELinux策略;其中,所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。
[0018]根據(jù)本發(fā)明的再一方面,提供了一種基于云的SELinux策略處理系統(tǒng),包括:終端設(shè)備,包括:上述任一種基于云的SELinux策略加載裝置;以及云端設(shè)備,用于存儲(chǔ)合法應(yīng)用程序的SELinux策略。
[0019]根據(jù)本發(fā)明的一實(shí)施方式,所述云端設(shè)備還用于當(dāng)接收到所述終端設(shè)備發(fā)送的應(yīng)用程序的SELinux策略請(qǐng)求時(shí),驗(yàn)證所述終端設(shè)備及所述應(yīng)用程序的合法性;以及,當(dāng)所述終端設(shè)備及所述應(yīng)用程序驗(yàn)證通過時(shí),向所述終端設(shè)備返回已存儲(chǔ)的與所述終端設(shè)備的所述應(yīng)用程序匹配的SELinux策略。
[0020]根據(jù)本發(fā)明的基于云的SELinux策略加載方法,在終端設(shè)備中僅存儲(chǔ)基本應(yīng)用程序的基本SELinux策略,而對(duì)于其他應(yīng)用程序的其他SELinux策略,則需要在其被第一次啟動(dòng)時(shí),向云端設(shè)備進(jìn)行請(qǐng)求。僅當(dāng)該請(qǐng)求被云端設(shè)備審核通過后,云端設(shè)備才會(huì)將該應(yīng)用程序的SELinux策略發(fā)送給終端設(shè)備,而該應(yīng)用程序僅當(dāng)加載了其SELinux策略后,才允許被使用。這種加載方法,進(jìn)一步增加了 SELinux策略使用上的安全性,從而避免了因加載了未認(rèn)證、未授權(quán)的的SELinux策略而導(dǎo)致的安全漏洞的出現(xiàn)。
[0021 ]另外,根據(jù)一些實(shí)施例,本發(fā)明的基于云的SELinux策略加載方法將一個(gè)終端設(shè)備動(dòng)態(tài)生成的應(yīng)用程序的SELinux策略存儲(chǔ)到云端設(shè)備保存,當(dāng)其他相同型號(hào)的終端設(shè)備在下載安裝該應(yīng)用程序時(shí),則無需再次動(dòng)態(tài)生成SELinux策略,從而提升了SELinux策略的加載處理效率。
[0022]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本發(fā)明。
【附圖說明】
[0023]通過參照附圖詳細(xì)描述其示例實(shí)施例,本發(fā)明的上述和其它目標(biāo)、特征及優(yōu)點(diǎn)將變得更加顯而易見。
[0024]圖1是根據(jù)一示例性實(shí)施方式示出的一種基于云的SELinux策略加載方法的流程圖。
[0025]圖2是根據(jù)一示例性實(shí)施方式示出的另一種基于云的SELinux策略加載方法的流程圖。
[0026]圖3是根據(jù)一示例性實(shí)施方式示出的再一種基于云的SELinux策略加載方法的流程圖。
[0027]圖4是根據(jù)一示例性實(shí)施方式示出的再一種基于云的SELinux策略加載方法的流程圖。
[0028]圖5是根據(jù)一示例性實(shí)施方式示出的一種基于云的SELinux策略加載裝置的框圖。
[0029]圖6是根據(jù)一示例性實(shí)施方式示出的另一種基于云的SELinux策略加載裝置的框圖。
[0030]圖7是根據(jù)一示例性實(shí)施方式示出的再一種基于云的SELinux策略加載裝置的框圖。
[0031]圖8是根據(jù)一示例性實(shí)施方式示出的再一種基于云的SELinux策略加載裝置的框圖。
[0032]圖9是根據(jù)一示例性實(shí)施方式示出的另一種基于云的SELinux策略處理系統(tǒng)的架構(gòu)示意圖。
【具體實(shí)施方式】
[0033]現(xiàn)在將參考附圖更全面地描述示例實(shí)施方式。然而,示例實(shí)施方式能夠以多種形式實(shí)施,且不應(yīng)被理解為限于在此闡述的范例;相反,提供這些實(shí)施方式使得本發(fā)明將更加全面和完整,并將示例實(shí)施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。附圖僅為本發(fā)明的示意性圖解,并非一定是按比例繪制。圖中相同的附圖標(biāo)記表示相同或類似的部分,因而將省略對(duì)它們的重復(fù)描述。
[0034]此外,所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個(gè)或更多實(shí)施方式中。在下面的描述中,提供許多具體細(xì)節(jié)從而給出對(duì)本發(fā)明的實(shí)施方式的充分理解。然而,本領(lǐng)域技術(shù)人員將意識(shí)到,可以實(shí)踐本發(fā)明的技術(shù)方案而省略所述特定細(xì)節(jié)中的一個(gè)或更多,或者可以采用其它的方法、組元、裝置、步驟等。在其它情況下,不詳細(xì)示出或描述公知結(jié)構(gòu)、方法、裝置、實(shí)現(xiàn)或者操作以避免喧賓奪主而使得本發(fā)明的各方面變得模糊。
[0035]圖1是根據(jù)一示例性實(shí)施方式示出的一種基于云的SELinux策略加載方法的流程圖。如圖1所示,該方法1包括:
[0036]在步驟S102中,當(dāng)一應(yīng)用程序第一次被啟動(dòng)時(shí),向一云端設(shè)備發(fā)送該應(yīng)用程序的SELinux策略請(qǐng)求。
[0037]SELinux是一套基于策略的安全系統(tǒng)。在其安全策略中,通過標(biāo)簽的設(shè)定來實(shí)現(xiàn)主體對(duì)客體的控制。其中主體可以為終端設(shè)備中運(yùn)行的每個(gè)進(jìn)程,客體則為系統(tǒng)中的所有資源,包括:文件系統(tǒng)、目錄、文件、文件啟動(dòng)指示符、端口、消息接□和網(wǎng)絡(luò)接口等。每個(gè)進(jìn)程都擁有自己的標(biāo)簽,而每個(gè)客體對(duì)象也都擁有自己的標(biāo)簽。通過編寫的SELinux安全策略,來控制進(jìn)程標(biāo)簽可以對(duì)客體對(duì)象標(biāo)簽進(jìn)行訪問,如文件訪問、讀寫及SOCKET操作等。例如,通過策略配置,允許標(biāo)簽為A的進(jìn)程對(duì)標(biāo)簽為B的文件進(jìn)行讀寫操作;或者,允許標(biāo)簽為C的進(jìn)程對(duì)標(biāo)簽為D的消息接口進(jìn)行SOCKET通信等。在終端設(shè)備被啟動(dòng)時(shí),將SELinux策略文件加載到內(nèi)核中,從而實(shí)現(xiàn)后續(xù)SELinux的強(qiáng)制訪問控制。
[0038]在本發(fā)明中,可以將SELinux策略分為基本SELinux策略和公共SELinux策略。其中終端設(shè)備中僅存儲(chǔ)基本SELinux策略,而將公共SELinux策略存儲(chǔ)在云端設(shè)備中。其中基本SELinux策略例如為終端設(shè)備基本應(yīng)用程序的SELinux策略,基本應(yīng)用程序例如可以包括:撥打/接聽電話應(yīng)用、短消息應(yīng)用、聯(lián)系人應(yīng)用及通信連接功能/應(yīng)用等。
[0039]當(dāng)終端設(shè)備被啟動(dòng)后,僅加載其存儲(chǔ)的基本SELinux策略,從而允許該終端設(shè)備中相應(yīng)基本應(yīng)用的使用。而對(duì)于而對(duì)于終端設(shè)備中其他應(yīng)用程序的SELinux策略,則需要在第一次啟動(dòng)該應(yīng)用程序時(shí),通過通信連接功能/應(yīng)用建立與云端設(shè)備之間的連接,從而向云端設(shè)備請(qǐng)求該應(yīng)用程序的SELinux策略。當(dāng)從云端設(shè)備請(qǐng)求下載了該應(yīng)用程序的SELinux策略,及終端設(shè)備加載該SELinux策略后,該應(yīng)用程序才能在SELinux策略的控制下,被允許使用。
[0040]在一些實(shí)施例中,通信連接功能/應(yīng)用可以為僅允許連接一特定VPN,該VPN用于提供該終端設(shè)備與該云端設(shè)備之間的安全通道,從而保證SELinux策略傳輸?shù)陌踩浴?br>[0041]應(yīng)用程序第一次被啟動(dòng)的場(chǎng)景例如可以包括:每次終端設(shè)備被啟動(dòng)(即開機(jī))或重啟后,應(yīng)用程序被第一次啟動(dòng),也即每次終端設(shè)備被關(guān)機(jī)后,會(huì)相應(yīng)刪除除基本SELinux策略之外的所有SELinux策略,因此當(dāng)終端設(shè)備被再次啟動(dòng)時(shí),每次非基本應(yīng)用程序的其他應(yīng)用程序在第一次被啟動(dòng)時(shí),均需要向云端設(shè)備請(qǐng)求下載其SELinux策略;或者,對(duì)于每個(gè)新安裝的應(yīng)用程序在終端設(shè)備被重啟后的第一次被啟動(dòng)時(shí),向云端設(shè)備請(qǐng)求下載其SELinux策略,而下載后終端設(shè)備就存儲(chǔ)了該應(yīng)用程序的SELinux策略,即使終端設(shè)備關(guān)機(jī),也不會(huì)刪除存儲(chǔ)的這些應(yīng)用程序的SELinux策略;再或者,當(dāng)終端設(shè)備連接登錄至一安全系統(tǒng),如保密單位的安全系統(tǒng)中后,因其存儲(chǔ)的應(yīng)用程序的SELinux策略因安全環(huán)境發(fā)生變化而發(fā)生改變時(shí),終端設(shè)備可以刪除當(dāng)前存儲(chǔ)的除通信連接功能/應(yīng)用外的所有應(yīng)用程序的SELinux策略,或者僅刪除非基本應(yīng)用程序的SELinux策略,而當(dāng)這些應(yīng)用程序再次被啟動(dòng)時(shí),重新向云端設(shè)備請(qǐng)求下載其SELinux策略。在請(qǐng)求時(shí),因權(quán)限發(fā)生改變,需在請(qǐng)求時(shí)攜帶相應(yīng)權(quán)限,以使云端設(shè)備將對(duì)應(yīng)權(quán)限的該應(yīng)用程序的SELinux策略發(fā)送給該終端設(shè)備。
[0042]云端設(shè)備在接收到終端設(shè)備的策略請(qǐng)求時(shí),云端設(shè)備還需要對(duì)該終端設(shè)備及其請(qǐng)求的應(yīng)用程序進(jìn)行審核。其審核標(biāo)準(zhǔn)例如可以是根據(jù)云端設(shè)備已存儲(chǔ)的合法設(shè)備ID號(hào)對(duì)請(qǐng)求的終端設(shè)備進(jìn)行審核,而對(duì)應(yīng)用程序的審核例如可以是根據(jù)終端設(shè)備已存儲(chǔ)的合法應(yīng)用程序?qū)φ?qǐng)求的應(yīng)用程序進(jìn)行審核。僅當(dāng)終端設(shè)備和應(yīng)用程序的審核均被通過時(shí),云端設(shè)備才會(huì)向該終端設(shè)備發(fā)送其請(qǐng)求的應(yīng)用程序的SELinux策略。在一些實(shí)施例中,云端設(shè)備存儲(chǔ)的合法設(shè)備ID和/或合法應(yīng)用程序可以從一數(shù)據(jù)庫中導(dǎo)入。
[0043]通常,針對(duì)不同型號(hào)的終端設(shè)備,即使所安裝的應(yīng)用程序相同,但該應(yīng)用程序?qū)?yīng)的SELinux策略也不同。因此,云端設(shè)備在向終端設(shè)備返回該應(yīng)用程序的SELinux策略時(shí),需要返回該終端設(shè)備的型號(hào)所對(duì)應(yīng)的該應(yīng)用程序的SELinux策略。終端設(shè)備的型號(hào)例如可以攜帶在該應(yīng)用程序的的SELinux策略請(qǐng)求中?;蛘?,云端設(shè)備也可以從與終端設(shè)備所建立的底層通信連接中獲得。
[0044]此外,即使相同型號(hào)的終端設(shè)備安裝的相同的應(yīng)用程序,如果該應(yīng)用程序在個(gè)別終端設(shè)備上有特別權(quán)限(例如主體進(jìn)程權(quán)限)的需求,則該應(yīng)用程序?qū)?yīng)的SELinux策略也會(huì)不同。因此,終端設(shè)備在向云端設(shè)備請(qǐng)求時(shí),需要在請(qǐng)求中指明特別權(quán)限。而云端設(shè)備在向終端設(shè)備返回該應(yīng)用程序的SELinux策略時(shí),需要返回具有特別權(quán)限的該應(yīng)用程序的SELinux 策略。
[0045]在步驟S104中,接收從云端設(shè)備返回的該應(yīng)用程序的SELinux策略。
[0046]終端設(shè)備從云端設(shè)備接收其請(qǐng)求的應(yīng)用程序的SELinux策略。
[0047]在步驟S106中,加載該應(yīng)用程序的SELinux策略。
[0048]當(dāng)加載該應(yīng)用程序的SELinux策略之后,該應(yīng)用程序才允許被使用。
[0049]本發(fā)明實(shí)施方式的基于云的SELinux策略加載方法,在終端設(shè)備中僅存儲(chǔ)基本應(yīng)用程序的基本SELinux策略,而對(duì)于其他應(yīng)用程序的其他SELinux策略,則需要在其被第一次啟動(dòng)時(shí),向云端設(shè)備進(jìn)行請(qǐng)求。僅當(dāng)該請(qǐng)求被云端設(shè)備審核通過后,云端設(shè)備才會(huì)將該應(yīng)用程序的SELinux策略發(fā)送給終端設(shè)備,而該應(yīng)用程序僅當(dāng)加載了其SELinux策略后,才允許被使用。這種加載方法,進(jìn)一步增加了SELinux策略使用上的安全性,從而避免了因加載了未認(rèn)證、未授權(quán)的的SELinux策略而導(dǎo)致的安全漏洞的出現(xiàn)。
[0050]應(yīng)清楚地理解,本發(fā)明描述了如何形成和使用特定示例,但本發(fā)明的原理不限于這些示例的任何細(xì)節(jié)。相反,基于本發(fā)明公開的內(nèi)容的教導(dǎo),這些原理能夠應(yīng)用于許多其它實(shí)施方式。
[0051]圖2是根據(jù)一示例性實(shí)施方式示出的另一種基于云的SELinux策略加載方法的流程圖。如圖2所示,該方法20包括:
[0052]在步驟S202中,當(dāng)終端設(shè)備被啟動(dòng)時(shí),加載該終端設(shè)備中基本應(yīng)用程序的基本SELinux 策略。
[0053]其中基本應(yīng)用程序例如可以包括:撥打/接聽電話應(yīng)用、短消息應(yīng)用、聯(lián)系人應(yīng)用及通信連接功能/應(yīng)用等。其中通信連接功能/應(yīng)用的SELinux策略被加載,以保證終端設(shè)備可以通過該通信連接功能/應(yīng)用連接到云端設(shè)備。
[0054]在步驟S204中,當(dāng)一應(yīng)用程序第一次被啟動(dòng)時(shí),向一云端設(shè)備發(fā)送該應(yīng)用程序的SELinux策略請(qǐng)求。
[0055]在步驟S206中,接收從云端設(shè)備返回的該應(yīng)用程序的SELinux策略。
[0056]在步驟S208中,加載該應(yīng)用程序的SELinux策略。
[0057]上述步驟S204?S208與方法10中的步驟S102?S106相同,在此不再贅述。
[0058]圖3是根據(jù)一示例性實(shí)施方式示出的再一種基于云的SELinux策略加載方法的流程圖。如圖3所示,該方法30包括:
[0059]在步驟S302中,當(dāng)終端設(shè)備連接登錄至一安全系統(tǒng)中時(shí),刪除其加載的除通信連接功能/應(yīng)用的SELinux策略之外的或者除基本應(yīng)用程序的SELinux之外的所有SELinux策略。
[0060]安全系統(tǒng)例如為當(dāng)用戶攜帶終端設(shè)備進(jìn)入一保密單位時(shí),需要對(duì)該終端設(shè)備的功能進(jìn)行控制,從而該終端設(shè)備需要連接登錄至該保密單位的安全系統(tǒng)中。
[0061]登錄之后,因在該安全系統(tǒng)中,對(duì)于終端設(shè)備的應(yīng)用程序的強(qiáng)制訪問控制有不同的要求,因此需要終端設(shè)備自動(dòng)刪除其加載的除通信連接功能/應(yīng)用的SELinux策略之外的或者除基本應(yīng)用程序的SELinux之外的所有SELinux策略。
[0062]在步驟S304中,當(dāng)一應(yīng)用程序第一次被啟動(dòng)時(shí),向一云端設(shè)備發(fā)送該應(yīng)用程序的SELinux策略請(qǐng)求。
[0063]在請(qǐng)求時(shí),因在安全系統(tǒng)中,應(yīng)用程序的權(quán)限因受到限制而發(fā)生改變,因此需在請(qǐng)求時(shí)攜帶相應(yīng)權(quán)限,以使云端設(shè)備將該應(yīng)用程序?qū)?yīng)權(quán)限的SELinux策略發(fā)送給該終端設(shè)備。
[0064]在步驟S306中,接收從云端設(shè)備返回的該應(yīng)用程序的SELinux策略。
[0065]在步驟S308中,加載該應(yīng)用程序的SELinux策略。
[0066]上述步驟S304?S308與方法10中的步驟S102?S106相同,在此不再贅述。
[0067]圖4是根據(jù)一示例性實(shí)施方式示出的再一種基于云的SELinux策略加載方法的流程圖。該方法用于終端設(shè)備中新安裝一個(gè)應(yīng)用程序時(shí)使用。如圖4所示,該方法40包括:
[0068]在步驟S402中,當(dāng)終端設(shè)備新安裝了一個(gè)合法的應(yīng)用程序時(shí),終端設(shè)備向云端設(shè)備發(fā)送該新安裝的應(yīng)用程序的SELinux策略請(qǐng)求。
[0069]合法的應(yīng)用程序例如可以包括終端設(shè)備的應(yīng)用市場(chǎng)中的應(yīng)用程序,也可以包括從其他合法渠道獲取的應(yīng)用程序。對(duì)于該新安裝的應(yīng)用程序的合法性,如上所述,云端設(shè)備仍需要進(jìn)行審核。
[0070]在步驟S404中,接收云端設(shè)備返回的響應(yīng)。
[0071]在步驟S406中,判斷從云端設(shè)備接收到的響應(yīng),如果接收到的是該新安裝的應(yīng)用程序的SELinux策略,則執(zhí)行步驟S408 ;如果接收到的是無該新安裝的應(yīng)用程序的SELinux策略的指示,則執(zhí)行步驟S410。
[0072]當(dāng)云端設(shè)備存儲(chǔ)該新安裝的應(yīng)用程序的SELinux策略時(shí),接收從云端設(shè)備返回的該新安裝的應(yīng)用程序的SELinux策略;而當(dāng)云端設(shè)備沒有存儲(chǔ)該新安裝的應(yīng)用程序的SELinux策略時(shí),接收云端設(shè)備發(fā)送的無該新安裝的應(yīng)用程序的SELinux策略的響應(yīng)。
[0073]通常,針對(duì)不同型號(hào)的終端設(shè)備,即使所安裝的應(yīng)用程序相同,但該應(yīng)用程序?qū)?yīng)的SELinux策略也不同。因此,云端設(shè)備在查找其是否存儲(chǔ)有該新安裝的應(yīng)用程序的SELinux策略時(shí),還需要確定所存儲(chǔ)的該應(yīng)用程序的SELinux策略所對(duì)應(yīng)的終端設(shè)備的型號(hào)。如果該型號(hào)不是申請(qǐng)SELinux策略的終端設(shè)備的型號(hào),則也確認(rèn)為沒有存儲(chǔ)該新安裝的應(yīng)用程序的SELinux策略。終端設(shè)備的型號(hào)例如可以攜帶在該應(yīng)用程序的的SELinux策略請(qǐng)求中?;蛘撸贫嗽O(shè)備也可以從與終端設(shè)備所建立的底層通信連接中獲得。
[0074]此外,即使相同型號(hào)的終端設(shè)備安裝的相同的應(yīng)用程序,如果該應(yīng)用程序在個(gè)別終端設(shè)備上有特別權(quán)限(例如主體進(jìn)程權(quán)限)的需求,則該應(yīng)用程序?qū)?yīng)的SELinux策略也會(huì)不同。因此,終端設(shè)備在向云端設(shè)備請(qǐng)求時(shí),需要在請(qǐng)求中指明特別權(quán)限。而云端設(shè)備在查找是否存儲(chǔ)該應(yīng)用程序的SELinux策略時(shí),也需要判斷所存儲(chǔ)的該應(yīng)用程序的SELinux策略是否有特別權(quán)限的要求。
[0075]在步驟S408中,加載該新安裝的應(yīng)用程序的SELinux策略。
[0076]在步驟S410中,動(dòng)態(tài)生成并加載該新安裝的應(yīng)用程序的SELinux策略。
[0077]例如,終端設(shè)備的操作系統(tǒng)通過敏感權(quán)限進(jìn)程,對(duì)新安裝的應(yīng)用程序申請(qǐng)的權(quán)限進(jìn)行判斷,從而動(dòng)態(tài)生成該新安裝的應(yīng)用程序的SELinux策略。
[0078]在步驟S412中,將動(dòng)態(tài)生成的該新安裝的應(yīng)用程序的SELinux策略上傳給云端設(shè)備進(jìn)行存儲(chǔ)。
[0079]由于上述動(dòng)態(tài)生成SELinux策略的過程較為耗時(shí),而本發(fā)明實(shí)施方式的加載方法將一個(gè)終端設(shè)備動(dòng)態(tài)生成的應(yīng)用程序的SELinux策略存儲(chǔ)到云端設(shè)備保存,當(dāng)其他相同型號(hào)的終端設(shè)備在下載安裝該應(yīng)用程序時(shí),則無需再次動(dòng)態(tài)生成SELinux策略,從而提升了SELinux策略的加載處理效率。
[0080]本領(lǐng)域技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施方式的全部或部分步驟被實(shí)現(xiàn)為由CPU執(zhí)行的計(jì)算機(jī)程序。在該計(jì)算機(jī)程序被(PU執(zhí)行時(shí),執(zhí)行本發(fā)明提供的上述方法所限定的上述功能。所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0081]此外,需要注意的是,上述附圖僅是根據(jù)本發(fā)明示例性實(shí)施方式的方法所包括的處理的示意性說明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時(shí)間順序。另外,也易于理解,這些處理可以是例如在多個(gè)模塊中同步或異步執(zhí)行的。
[0082]下述為本發(fā)明裝置實(shí)施例,可以用于執(zhí)行本發(fā)明方法實(shí)施例。對(duì)于本發(fā)明裝置實(shí)施例中未披露的細(xì)節(jié),請(qǐng)參照本發(fā)明方法實(shí)施例。
[0083]圖5是根據(jù)一示例性實(shí)施方式示出的一種基于云的SELinux策略加載裝置的框圖。該裝置應(yīng)用于一終端設(shè)備中。如圖5所示,該裝置50包括:請(qǐng)求發(fā)送模塊502、策略接收模塊504及策略加載模塊506。
[0084]所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。
[0085]其中,請(qǐng)求發(fā)送模塊502用于當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求。
[0086]策略接收模塊504用于接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略。
[0087]策略加載模塊506用于加載所述應(yīng)用程序的SELinux策略。
[0088]在一些實(shí)施例中,所述通信連接為一VPN連接。
[0089]在一些實(shí)施例中,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述應(yīng)用程序的特別權(quán)限。
[0090]在一些實(shí)施例中,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述終端設(shè)備的型號(hào)。
[0091]本發(fā)明實(shí)施方式的基于云的SELinux策略加載裝置,在終端設(shè)備中僅存儲(chǔ)基本應(yīng)用程序的基本SELinux策略,而對(duì)于其他應(yīng)用程序的其他SELinux策略,則需要在其被第一次啟動(dòng)時(shí),向云端設(shè)備進(jìn)行請(qǐng)求。僅當(dāng)該請(qǐng)求被云端設(shè)備審核通過后,云端設(shè)備才會(huì)將該應(yīng)用程序的SELinux策略發(fā)送給終端設(shè)備,而該應(yīng)用程序僅當(dāng)加載了其SELinux策略后,才允許被使用。這種加載方法,進(jìn)一步增加了SELinux策略使用上的安全性,從而避免了因加載了未認(rèn)證、未授權(quán)的的SELinux策略而導(dǎo)致的安全漏洞的出現(xiàn)。
[0092]圖6是根據(jù)一示例性實(shí)施方式示出的另一種基于云的SELinux策略加載裝置的框圖。該裝置應(yīng)用于一終端設(shè)備中。如圖6所示,裝置60包括:請(qǐng)求發(fā)送模塊602、策略接收模塊604、策略加載模塊606及基本策略加載模塊608。
[0093]所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。
[0094]其中,基本策略加載模塊608用于當(dāng)所述終端設(shè)備被啟動(dòng)時(shí),加載所述終端設(shè)備的所述基本應(yīng)用程序的SELinux策略。
[0095]請(qǐng)求發(fā)送模塊602用于當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求。
[0096]策略接收模塊604用于接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略。
[0097]策略加載模塊606用于加載所述應(yīng)用程序的SELinux策略。
[0098]在一些實(shí)施例中,所述通信連接為一VPN連接。
[0099]在一些實(shí)施例中,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述應(yīng)用程序的特別權(quán)限。
[0100]在一些實(shí)施例中,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述終端設(shè)備的型號(hào)。
[0101]圖7是根據(jù)一示例性實(shí)施方式示出的再一種基于云的SELinux策略加載裝置的框圖。該裝置應(yīng)用于一終端設(shè)備中。如圖7所示,裝置70包括:請(qǐng)求發(fā)送模塊702、策略接收模塊704、策略加載模塊706及策略刪除模塊708。
[0102]所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。
[0103]其中,策略刪除模塊708用于當(dāng)所述終端設(shè)備被啟動(dòng)時(shí),刪除所述終端設(shè)備加載的除所述基本應(yīng)用程序之外的應(yīng)用程序的SELinux策略;或者,當(dāng)所述終端設(shè)備被啟動(dòng)時(shí),刪除所述終端設(shè)備加載的除所述通信連接功能/應(yīng)用之外的應(yīng)用程序的SELinux策略。
[0104]請(qǐng)求發(fā)送模塊702用于當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求。
[0105]策略接收模塊704用于接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略。
[0106]策略加載模塊706用于加載所述應(yīng)用程序的SELinux策略。
[0107]在一些實(shí)施例中,所述通信連接為一VPN連接。
[0108]在一些實(shí)施例中,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述應(yīng)用程序的特別權(quán)限。
[0109]在一些實(shí)施例中,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述終端設(shè)備的型號(hào)。
[0110]圖8是根據(jù)一示例性實(shí)施方式示出的再一種基于云的SELinux策略加載裝置的框圖。該裝置應(yīng)用于一終端設(shè)備中。如圖8所示,裝置80包括:請(qǐng)求發(fā)送模塊802、策略接收模塊804、策略加載模塊806、策略生成模塊808及策略上傳模塊810。
[0111]所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。
[0112]其中,請(qǐng)求發(fā)送模塊802用于當(dāng)所述終端設(shè)備安裝了一個(gè)新的應(yīng)用程序時(shí),向所述云端設(shè)備發(fā)送新安裝的所述應(yīng)用程序的SELinux策略請(qǐng)求。
[0113]策略接收模塊804用于接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略。
[0114]策略加載模塊806用于加載所述應(yīng)用程序的SELinux策略。
[0115]策略生成模塊808用于當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),動(dòng)態(tài)生成并加載新安裝的所述應(yīng)用程序的SELinux策略。
[0116]策略上傳模塊810用于將動(dòng)態(tài)生成的新安裝的所述應(yīng)用程序的SELinux策略上傳至所述云端設(shè)備存儲(chǔ)。
[0117]在一些實(shí)施例中,所述通信連接為一VPN連接。
[0118]在一些實(shí)施例中,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述應(yīng)用程序的特別權(quán)限。
[0119]在一些實(shí)施例中,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述終端設(shè)備的型號(hào)。
[0120]本發(fā)明實(shí)施方式的加載裝置將一個(gè)終端設(shè)備動(dòng)態(tài)生成的應(yīng)用程序的SELinux策略存儲(chǔ)到云端設(shè)備保存,當(dāng)其他相同型號(hào)的終端設(shè)備在下載安裝該應(yīng)用程序時(shí),則無需再次動(dòng)態(tài)生成SELinux策略,從而提升了 SELinux策略的加載處理效率。
[0121]圖9是根據(jù)一示例性實(shí)施方式示出的另一種基于云的SELinux策略處理系統(tǒng)的架構(gòu)不意圖。如圖9所不,該系統(tǒng)90包括:Ζ5Γ端設(shè)備902及至少個(gè)終端設(shè)備904。
[0122]其中,終端設(shè)備904包括上述裝置50?80中的任一種。
[0123]云端設(shè)備902用于存儲(chǔ)合法應(yīng)用程序的SELinux策略,以及。當(dāng)接收到所述終端設(shè)備發(fā)送的應(yīng)用程序的SELinux策略請(qǐng)求時(shí),驗(yàn)證所述終端設(shè)備及所述應(yīng)用程序的合法性;以及,當(dāng)所述終端設(shè)備及所述應(yīng)用程序驗(yàn)證通過時(shí),向所述終端設(shè)備返回已存儲(chǔ)的與所述終端設(shè)備的所述應(yīng)用程序匹配的SELinux策略。
[0124]需要注意的是,上述附圖中所示的框圖是功能實(shí)體,不一定必須與物理或邏輯上獨(dú)立的實(shí)體相對(duì)應(yīng)??梢圆捎密浖问絹韺?shí)現(xiàn)這些功能實(shí)體,或在一個(gè)或多個(gè)硬件模塊或集成電路中實(shí)現(xiàn)這些功能實(shí)體,或在不同網(wǎng)絡(luò)和/或處理器裝置和/或微控制器裝置中實(shí)現(xiàn)這些功能實(shí)體。
[0125]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實(shí)施方式可以通過軟件實(shí)現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實(shí)現(xiàn)。因此,根據(jù)本發(fā)明實(shí)施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM,U盤,移動(dòng)硬盤等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺(tái)計(jì)算設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、移動(dòng)終端、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本發(fā)明實(shí)施方式的方法。
[0126]以上具體地示出和描述了本發(fā)明的示例性實(shí)施方式。應(yīng)可理解的是,本發(fā)明不限于這里描述的詳細(xì)結(jié)構(gòu)、設(shè)置方式或?qū)崿F(xiàn)方法;相反,本發(fā)明意圖涵蓋包含在所附權(quán)利要求的精神和范圍內(nèi)的各種修改和等效設(shè)置。
【主權(quán)項(xiàng)】
1.一種基于云的SELinux策略加載方法,其特征在于,包括: 當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求; 接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略;以及 加載所述應(yīng)用程序的SELinux策略; 其中,所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:當(dāng)所述終端設(shè)備安裝了一個(gè)新的應(yīng)用程序時(shí),向所述云端設(shè)備發(fā)送新安裝的所述應(yīng)用程序的SELinux策略請(qǐng)求。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),動(dòng)態(tài)生成并加載新安裝的所述應(yīng)用程序的SELinux策略,并將動(dòng)態(tài)生成的新安裝的所述應(yīng)用程序的SELinux策略上傳至所述云端設(shè)備存儲(chǔ)。4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,所述通信連接為一VPN連接。5.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述應(yīng)用程序的特別權(quán)限和/或所述終端設(shè)備的型號(hào)。6.一種基于云的SELinux策略加載裝置,其特征在于,包括: 請(qǐng)求發(fā)送模塊,用于當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求; 策略接收模塊,用于接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略;以及 策略加載模塊,用于加載所述應(yīng)用程序的SELinux策略; 其中,所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述請(qǐng)求發(fā)送模塊還用于當(dāng)所述終端設(shè)備安裝了一個(gè)新的應(yīng)用程序時(shí),向所述云端設(shè)備發(fā)送新安裝的所述應(yīng)用程序的SELinux策略請(qǐng)求。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括: 策略生成模塊,用于當(dāng)接收到所述云端設(shè)備發(fā)送的無新安裝的所述應(yīng)用程序的SELinux策略的指示時(shí),動(dòng)態(tài)生成并加載新安裝的所述應(yīng)用程序的SELinux策略;以及 策略上傳模塊,用于將動(dòng)態(tài)生成的新安裝的所述應(yīng)用程序的SELinux策略上傳至所述 而設(shè)備存儲(chǔ)。9.根據(jù)權(quán)利要求6?8任一項(xiàng)所述的裝置,其特征在于,所述通信連接為一VPN連接。10.根據(jù)權(quán)利要求6?8任一項(xiàng)所述的裝置,其特征在于,所述應(yīng)用程序的SELinux策略請(qǐng)求包括所述應(yīng)用程序的特別權(quán)限和/或所述終端設(shè)備的型號(hào)。11.一種終端設(shè)備,其特征在于,包括: 處理器;以及 存儲(chǔ)器,用于存儲(chǔ)所述處理器的可執(zhí)行指令; 其中所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行以下操作: 當(dāng)終端設(shè)備的應(yīng)用程序第一次被啟動(dòng)時(shí),向云端設(shè)備發(fā)送所述應(yīng)用程序的SELinux策略請(qǐng)求; 接收從所述云端設(shè)備返回的所述應(yīng)用程序的SELinux策略;以及 加載所述應(yīng)用程序的SELinux策略; 其中,所述終端設(shè)備中加載有基本應(yīng)用程序的SELinux策略,所述基本應(yīng)用程序至少包括:通信連接功能/應(yīng)用,以使所述終端設(shè)備通過所述通信連接功能/應(yīng)用建立與所述云端設(shè)備之間的通信連接。12.一種基于云的SELinux策略處理系統(tǒng),其特征在于,包括: 終端設(shè)備,包括:權(quán)利要求6?10任一項(xiàng)所述的基于云的SELinux策略加載裝置;以及 云端設(shè)備,用于存儲(chǔ)合法應(yīng)用程序的SELinux策略。13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述云端設(shè)備還用于當(dāng)接收到所述終端設(shè)備發(fā)送的應(yīng)用程序的SELinux策略請(qǐng)求時(shí),驗(yàn)證所述終端設(shè)備及所述應(yīng)用程序的合法性;以及,當(dāng)所述終端設(shè)備及所述應(yīng)用程序驗(yàn)證通過時(shí),向所述終端設(shè)備返回已存儲(chǔ)的與所述終端設(shè)備的所述應(yīng)用程序匹配的SELinux策略。
【文檔編號(hào)】G06F9/445GK106020912SQ201610389131
【公開日】2016年10月12日
【申請(qǐng)日】2016年6月2日
【發(fā)明人】蘭書俊
【申請(qǐng)人】北京元心科技有限公司